From b016ad14e77489d50a1264de0845a29e174d0c00 Mon Sep 17 00:00:00 2001 From: ryanhamshire Date: Mon, 13 Oct 2014 13:53:18 -0700 Subject: [PATCH] Removed donation chests option. This isn't an anti-grief feature, so it belongs in an extension plugin. --- .../GriefPrevention/BlockEventHandler.java | 83 ------------------- .../GriefPrevention/GriefPrevention.java | 4 - 2 files changed, 87 deletions(-) diff --git a/src/me/ryanhamshire/GriefPrevention/BlockEventHandler.java b/src/me/ryanhamshire/GriefPrevention/BlockEventHandler.java index 8d6c1cb..b01b5e3 100644 --- a/src/me/ryanhamshire/GriefPrevention/BlockEventHandler.java +++ b/src/me/ryanhamshire/GriefPrevention/BlockEventHandler.java @@ -79,89 +79,6 @@ public class BlockEventHandler implements Listener this.trashBlocks.add(Material.WORKBENCH); } - //when a block is damaged... - @EventHandler(ignoreCancelled = true) - public void onBlockDamaged(BlockDamageEvent event) - { - //if placing items in protected chests isn't enabled, none of this code needs to run - if(!GriefPrevention.instance.config_addItemsToClaimedChests) return; - - Block block = event.getBlock(); - Player player = event.getPlayer(); - - //only care about player-damaged blocks - if(player == null) return; - - //FEATURE: players may add items to a chest they don't have permission for by hitting it - - //if it's a chest - if(block.getType() == Material.CHEST) - { - //only care about non-creative mode players, since those would outright break the box in one hit - if(player.getGameMode() == GameMode.CREATIVE) return; - - //only care if the player has an itemstack in hand - PlayerInventory playerInventory = player.getInventory(); - ItemStack stackInHand = playerInventory.getItemInHand(); - if(stackInHand == null || stackInHand.getType() == Material.AIR) return; - - //only care if the chest is in a claim, and the player does not have access to the chest - Claim claim = this.dataStore.getClaimAt(block.getLocation(), false, null); - if(claim == null || claim.allowContainers(player) == null) return; - - //if the player is under siege, he can't give away items - PlayerData playerData = this.dataStore.getPlayerData(event.getPlayer().getUniqueId()); - if(playerData.siegeData != null) - { - GriefPrevention.sendMessage(player, TextMode.Err, Messages.SiegeNoDrop); - event.setCancelled(true); - return; - } - - //if a player is in pvp combat, he can't give away items - if(playerData.inPvpCombat()) return; - - //NOTE: to eliminate accidental give-aways, first hit on a chest displays a confirmation message - //subsequent hits donate item to the chest - - //if first time damaging this chest, show confirmation message - if(playerData.lastChestDamageLocation == null || !block.getLocation().equals(playerData.lastChestDamageLocation)) - { - //remember this location - playerData.lastChestDamageLocation = block.getLocation(); - - //give the player instructions - GriefPrevention.sendMessage(player, TextMode.Instr, Messages.DonateItemsInstruction); - } - - //otherwise, try to donate the item stack in hand - else - { - //look for empty slot in chest - Chest chest = (Chest)block.getState(); - Inventory chestInventory = chest.getInventory(); - int availableSlot = chestInventory.firstEmpty(); - - //if there isn't one - if(availableSlot < 0) - { - //tell the player and stop here - GriefPrevention.sendMessage(player, TextMode.Err, Messages.ChestFull); - - return; - } - - //otherwise, transfer item stack from player to chest - //NOTE: Inventory.addItem() is smart enough to add items to existing stacks, making filling a chest with garbage as a grief very difficult - chestInventory.addItem(stackInHand); - playerInventory.setItemInHand(new ItemStack(Material.AIR)); - - //and confirm for the player - GriefPrevention.sendMessage(player, TextMode.Success, Messages.DonationSuccess); - } - } - } - //when a player breaks a block... @EventHandler(ignoreCancelled = true, priority = EventPriority.LOWEST) public void onBlockBreak(BlockBreakEvent breakEvent) diff --git a/src/me/ryanhamshire/GriefPrevention/GriefPrevention.java b/src/me/ryanhamshire/GriefPrevention/GriefPrevention.java index b2e14d9..dccb231 100644 --- a/src/me/ryanhamshire/GriefPrevention/GriefPrevention.java +++ b/src/me/ryanhamshire/GriefPrevention/GriefPrevention.java @@ -130,7 +130,6 @@ public class GriefPrevention extends JavaPlugin public boolean config_fireSpreads; //whether fire spreads outside of claims public boolean config_fireDestroys; //whether fire destroys blocks outside of claims - public boolean config_addItemsToClaimedChests; //whether players may add items to claimed chests by left-clicking them public boolean config_eavesdrop; //whether whispered messages will be visible to administrators public ArrayList config_eavesdrop_whisperCommands; //list of whisper commands to eavesdrop on @@ -351,7 +350,6 @@ public class GriefPrevention extends JavaPlugin this.config_fireSpreads = config.getBoolean("GriefPrevention.FireSpreads", false); this.config_fireDestroys = config.getBoolean("GriefPrevention.FireDestroys", false); - this.config_addItemsToClaimedChests = config.getBoolean("GriefPrevention.AddItemsToClaimedChests", true); this.config_eavesdrop = config.getBoolean("GriefPrevention.EavesdropEnabled", false); String whisperCommandsToMonitor = config.getString("GriefPrevention.WhisperCommands", "/tell;/pm;/r"); @@ -596,8 +594,6 @@ public class GriefPrevention extends JavaPlugin outConfig.set("GriefPrevention.FireSpreads", this.config_fireSpreads); outConfig.set("GriefPrevention.FireDestroys", this.config_fireDestroys); - outConfig.set("GriefPrevention.AddItemsToClaimedChests", this.config_addItemsToClaimedChests); - outConfig.set("GriefPrevention.EavesdropEnabled", this.config_eavesdrop); outConfig.set("GriefPrevention.WhisperCommands", whisperCommandsToMonitor); outConfig.set("GriefPrevention.SmartBan", this.config_smartBan);