Changed the proactive infinite stack check to occur on inventory open.

This commit is contained in:
sk89q 2011-06-06 14:35:57 -07:00
parent 12779699e3
commit 24cc2d3b36

View File

@ -77,6 +77,7 @@ public void registerEvents() {
pm.registerEvent(Event.Type.PLAYER_ITEM_HELD, this, Priority.High, plugin);
pm.registerEvent(Event.Type.PLAYER_BED_ENTER, this, Priority.High, plugin);
pm.registerEvent(Event.Type.PLAYER_MOVE, this, Priority.High, plugin);
pm.registerEvent(Event.Type.PLAYER_INVENTORY, this, Priority.High, plugin);
}
/**
@ -122,17 +123,6 @@ 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.");
}
}
}
}
/**
@ -837,4 +827,26 @@ public void onPlayerBedEnter(PlayerBedEnterEvent event) {
}
}
}
/**
* Called when a player opens an inventory.
*/
@Override
public void onInventoryOpen(PlayerInventoryEvent event) {
Player player = event.getPlayer();
ConfigurationManager cfg = plugin.getGlobalStateManager();
WorldConfiguration wcfg = cfg.get(player.getWorld());
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.");
}
}
}
}
}