Compare commits

...
8 Commits
Author SHA1 Message Date
sk89q e78b639018 Updated CHANGELOG.txt. 2011-02-02 23:37:40 -08:00
sk89q e8ea562b09 Changed 'release' target to also 'clean'. 2011-02-02 23:28:48 -08:00
sk89q 3b5a729ef3 Updated command handling for Bukkit. 2011-02-02 22:27:44 -08:00
sk89q ef7d487ec5 Updated burn event handling. 2011-02-02 22:21:44 -08:00
sk89q b379b8f022 Fixed suffocation disable option. 2011-02-02 21:03:33 -08:00
sk89q a31378c2c8 Changed disable-water-damage to disable-drowning-damage. 2011-02-02 20:51:52 -08:00
sk89q 0d2c2121bb 3.2.1 CHANGELOG.txt. 2011-01-31 14:36:33 -08:00
sk89q 21040b306a Updated for ItemStack change in Bukkit. 2011-01-31 14:35:46 -08:00
6 changed files with 72 additions and 32 deletions

No files matched your search

+9
View File
@@ -1,3 +1,12 @@
3.2.2:
- Changed disable-water-damage to disable-drowning-damage.
- Fixed suffocation disable option.
- Fixed fire spread blocking.
- stopfire and allowfire now work in server console, just like in hMod.
3.2.1:
- Updated for recent Bukkit ItemStack change.
3.2:
- Added regions.default.pvp to control default PvP setting.
- Updated WorldGuard for the newer builds of Bukkit.
+1 -1
View File
@@ -51,7 +51,7 @@
</target>
<!-- Build a release -->
<target name="release">
<target name="release" depends="clean">
<input message="Enter version:" addproperty="version"/>
<antcall target="jar"/>
<delete dir="${release.dir}"/>
@@ -65,7 +65,7 @@ public class WorldGuardBlockListener extends BlockListener {
if (!plugin.itemDurability && event.getDamageLevel() == BlockDamageLevel.BROKEN) {
ItemStack held = player.getItemInHand();
if (held.getTypeId() > 0) {
held.setDamage((byte)-1);
held.setDurability((short) -1);
player.setItemInHand(held);
}
}
@@ -175,8 +175,7 @@ public class WorldGuardBlockListener extends BlockListener {
Block block = event.getBlock();
//Player player = event.getPlayer();
World world = block.getWorld();
boolean isFireSpread = cause == IgniteCause.SLOW_SPREAD
|| cause == IgniteCause.SPREAD;
boolean isFireSpread = cause == IgniteCause.SPREAD;
if (plugin.preventLavaFire && cause == IgniteCause.LAVA) {
event.setCancelled(true);
@@ -247,6 +246,32 @@ public class WorldGuardBlockListener extends BlockListener {
}*/
}
/**
* Called when a block is destroyed from burning
*
* @param event Relevant event details
*/
public void onBlockBurn(BlockBurnEvent event) {
if (plugin.disableFireSpread) {
event.setCancelled(true);
return;
}
if (plugin.fireSpreadDisableToggle) {
event.setCancelled(true);
return;
}
if (plugin.disableFireSpreadBlocks.size() > 0) {
Block block = event.getBlock();
if (plugin.disableFireSpreadBlocks.contains(block.getTypeId())) {
event.setCancelled(true);
return;
}
}
}
/**
* Called when block physics occurs
*
@@ -66,6 +66,11 @@ public class WorldGuardEntityListener extends EntityListener {
event.setCancelled(true);
return;
}
if (plugin.disableContactDamage && type == DamageCause.CONTACT) {
event.setCancelled(true);
return;
}
}
}
@@ -190,11 +195,6 @@ public class WorldGuardEntityListener extends EntityListener {
return;
}
if (plugin.disableContactDamage && type == DamageCause.CONTACT) {
event.setCancelled(true);
return;
}
if (type == DamageCause.DROWNING
&& plugin.amphibiousPlayers.contains(player.getName())) {
event.setCancelled(true);
@@ -100,7 +100,7 @@ public class WorldGuardPlayerListener extends PlayerListener {
if (!plugin.itemDurability) {
// Hoes
if (item.getTypeId() >= 290 && item.getTypeId() <= 294) {
item.setDamage((byte)-1);
item.setDurability((byte)-1);
player.setItemInHand(item);
}
}
@@ -183,6 +183,7 @@ public class WorldGuardPlugin extends JavaPlugin {
registerEvent(Event.Type.BLOCK_INTERACT, blockListener, Priority.High);
registerEvent(Event.Type.BLOCK_PLACED, blockListener, Priority.High);
registerEvent(Event.Type.BLOCK_RIGHTCLICKED, blockListener, Priority.High);
registerEvent(Event.Type.BLOCK_BURN, blockListener, Priority.High);
registerEvent(Event.Type.REDSTONE_CHANGE, blockListener, Priority.High);
registerEvent(Event.Type.ENTITY_DAMAGED, entityListener, Priority.High);
@@ -292,7 +293,7 @@ public class WorldGuardPlugin extends JavaPlugin {
disableFallDamage = config.getBoolean("player-damage.disable-fall-damage", false);
disableLavaDamage = config.getBoolean("player-damage.disable-lava-damage", false);
disableFireDamage = config.getBoolean("player-damage.disable-fire-damage", false);
disableDrowningDamage = config.getBoolean("player-damage.disable-water-damage", false);
disableDrowningDamage = config.getBoolean("player-damage.disable-drowning-damage", false);
disableSuffocationDamage = config.getBoolean("player-damage.disable-suffocation-damage", false);
disableContactDamage = config.getBoolean("player-damage.disable-contact-damage", false);
teleportOnSuffocation = config.getBoolean("player-damage.teleport-on-suffocation", false);
@@ -421,28 +422,22 @@ public class WorldGuardPlugin extends JavaPlugin {
*/
public boolean onCommand(CommandSender sender, Command cmd,
String commandLabel, String[] args) {
if (!sender.isPlayer()) {
return true;
}
Player player = (Player)sender;
try {
return handleCommand(player, cmd.getName(), args);
return handleCommand(sender, cmd.getName(), args);
} catch (InsufficientArgumentsException e) {
if (e.getHelp() != null) {
player.sendMessage(ChatColor.RED + e.getHelp());
sender.sendMessage(ChatColor.RED + e.getHelp());
return true;
} else {
return false;
}
} catch (InsufficientPermissionsException e) {
player.sendMessage(ChatColor.RED + "You don't have sufficient permission.");
sender.sendMessage(ChatColor.RED + "You don't have sufficient permission.");
return true;
} catch (CommandHandlingException e) {
return true;
} catch (Throwable t) {
player.sendMessage(ChatColor.RED + "ERROR: " + t.getMessage());
sender.sendMessage(ChatColor.RED + "ERROR: " + t.getMessage());
t.printStackTrace();
return true;
}
@@ -457,18 +452,20 @@ public class WorldGuardPlugin extends JavaPlugin {
* @return
* @throws CommandHandlingException
*/
private boolean handleCommand(Player player, String cmd, String[] args)
private boolean handleCommand(CommandSender sender, String cmd, String[] args)
throws CommandHandlingException {
String senderName = sender instanceof Player ? ((Player)sender).getName() : "Console";
if (cmd.equalsIgnoreCase("stopfire")) {
checkPermission(player, "/stopfire");
checkPermission(sender, "/stopfire");
checkArgs(args, 0, 0);
if (!fireSpreadDisableToggle) {
getServer().broadcastMessage(ChatColor.YELLOW
+ "Fire spread has been globally disabled by " + player.getName() + ".");
+ "Fire spread has been globally disabled by " + senderName + ".");
} else {
player.sendMessage(ChatColor.YELLOW + "Fire spread was already globally disabled.");
sender.sendMessage(ChatColor.YELLOW + "Fire spread was already globally disabled.");
}
fireSpreadDisableToggle = true;
@@ -477,14 +474,14 @@ public class WorldGuardPlugin extends JavaPlugin {
}
if (cmd.equalsIgnoreCase("allowfire")) {
checkPermission(player, "/stopfire");
checkPermission(sender, "/stopfire");
checkArgs(args, 0, 0);
if (fireSpreadDisableToggle) {
getServer().broadcastMessage(ChatColor.YELLOW
+ "Fire spread has been globally re-enabled by " + player.getName() + ".");
+ "Fire spread has been globally re-enabled by " + senderName + ".");
} else {
player.sendMessage(ChatColor.YELLOW + "Fire spread was already globally enabled.");
sender.sendMessage(ChatColor.YELLOW + "Fire spread was already globally enabled.");
}
fireSpreadDisableToggle = false;
@@ -492,6 +489,12 @@ public class WorldGuardPlugin extends JavaPlugin {
return true;
}
if (!(sender instanceof Player)) {
return false;
}
Player player = (Player)sender;
if (cmd.equalsIgnoreCase("god")) {
checkPermission(player, "/god");
checkArgs(args, 0, 1);
@@ -625,7 +628,7 @@ public class WorldGuardPlugin extends JavaPlugin {
// Blocks store their color in the damage value
if (item2.getTypeId() == item.getTypeId() &&
(!ItemType.usesDamageValue(item.getTypeId())
|| item.getDamage() == item2.getDamage())) {
|| item.getDurability() == item2.getDurability())) {
// This stack won't fit in the parent stack
if (item2.getAmount() > needed) {
item.setAmount(64);
@@ -1269,13 +1272,16 @@ public class WorldGuardPlugin extends JavaPlugin {
* Checks to see if there are sufficient permissions, otherwise an exception
* is raised in that case.
*
* @param player
* @param sender
* @param permission
* @throws InsufficientPermissionsException
*/
private void checkPermission(Player player, String permission)
private void checkPermission(CommandSender sender, String permission)
throws InsufficientPermissionsException {
if (!hasPermission(player, permission)) {
if (!(sender instanceof Player)) {
return;
}
if (!hasPermission((Player)sender, permission)) {
throw new InsufficientPermissionsException();
}
}