Improved the infinite item stack remover by making it a bit more proactive.

This commit is contained in:
sk89q 2011-06-06 14:31:17 -07:00
parent 2188690d20
commit 12779699e3

View File

@ -122,6 +122,17 @@ public void onPlayerJoin(PlayerJoinEvent event) {
if (plugin.inGroup(player, "wg-amphibious")) {
cfg.enableAmphibiousMode(player);
}
if (wcfg.removeInfiniteStacks
&& !plugin.hasPermission(player, "worldguard.override.infinite-stack")) {
for (int slot = 0; slot < player.getInventory().getSize(); slot++) {
ItemStack heldItem = player.getInventory().getItem(slot);
if (heldItem.getAmount() < 0) {
player.getInventory().setItem(slot, null);
player.sendMessage(ChatColor.RED + "Infinite stack in slot #" + slot + " removed.");
}
}
}
}
/**
@ -141,6 +152,9 @@ public void onPlayerQuit(PlayerQuitEvent event) {
*/
@Override
public void onPlayerInteract(PlayerInteractEvent event) {
Player player = event.getPlayer();
World world = player.getWorld();
if (event.getAction() == Action.RIGHT_CLICK_BLOCK) {
handleBlockRightClick(event);
} else if (event.getAction() == Action.RIGHT_CLICK_AIR) {
@ -152,6 +166,19 @@ public void onPlayerInteract(PlayerInteractEvent event) {
} else if (event.getAction() == Action.PHYSICAL) {
handlePhysicalInteract(event);
}
ConfigurationManager cfg = plugin.getGlobalStateManager();
WorldConfiguration wcfg = cfg.get(world);
if (wcfg.removeInfiniteStacks
&& !plugin.hasPermission(player, "worldguard.override.infinite-stack")) {
int slot = player.getInventory().getHeldItemSlot();
ItemStack heldItem = player.getInventory().getItem(slot);
if (heldItem.getAmount() < 0) {
player.getInventory().setItem(slot, null);
player.sendMessage(ChatColor.RED + "Infinite stack removed.");
}
}
}
/**