From bb5d0034303f0adc1902c67545055aac2f334c1e Mon Sep 17 00:00:00 2001 From: GJ Date: Thu, 15 Mar 2012 00:52:37 -0400 Subject: [PATCH] Updates to metadata, change to use block.getRelative in Woodcutting.java --- src/main/java/com/gmail/nossr50/Combat.java | 4 +- .../nossr50/listeners/mcBlockListener.java | 10 ++--- .../nossr50/listeners/mcEntityListener.java | 4 +- .../com/gmail/nossr50/skills/BlastMining.java | 4 +- .../com/gmail/nossr50/skills/Excavation.java | 2 +- .../com/gmail/nossr50/skills/Herbalism.java | 14 +++---- .../java/com/gmail/nossr50/skills/Mining.java | 4 +- .../java/com/gmail/nossr50/skills/Taming.java | 2 +- .../com/gmail/nossr50/skills/WoodCutting.java | 39 +++++++++---------- 9 files changed, 40 insertions(+), 43 deletions(-) diff --git a/src/main/java/com/gmail/nossr50/Combat.java b/src/main/java/com/gmail/nossr50/Combat.java index 2dc2ce036..33934ddb5 100644 --- a/src/main/java/com/gmail/nossr50/Combat.java +++ b/src/main/java/com/gmail/nossr50/Combat.java @@ -395,8 +395,8 @@ public class Combat { baseXP = 20 * LoadProperties.pvpxprewardmodifier; } } - else if (!target.hasMetadata("fromMobSpawner")) { - if (target instanceof Animals && !target.hasMetadata("summoned")) { + else if (!target.hasMetadata("mcmmoFromMobSpawner")) { + if (target instanceof Animals && !target.hasMetadata("mcmmoSummoned")) { baseXP = LoadProperties.animalXP; } else { diff --git a/src/main/java/com/gmail/nossr50/listeners/mcBlockListener.java b/src/main/java/com/gmail/nossr50/listeners/mcBlockListener.java index 68ad897fc..98342878d 100644 --- a/src/main/java/com/gmail/nossr50/listeners/mcBlockListener.java +++ b/src/main/java/com/gmail/nossr50/listeners/mcBlockListener.java @@ -75,7 +75,7 @@ public class mcBlockListener implements Listener { } else { Block newLocation = block.getRelative(0, y+1, 0); - newLocation.setMetadata("placedBlock", new FixedMetadataValue(plugin, true)); + newLocation.setMetadata("mcmmoPlacedBlock", new FixedMetadataValue(plugin, true)); break; } } @@ -83,7 +83,7 @@ public class mcBlockListener implements Listener { /* Check if the blocks placed should be monitored so they do not give out XP in the future */ if (BlockChecks.shouldBeWatched(mat)) { - block.setMetadata("placedBlock", new FixedMetadataValue(plugin, true)); + block.setMetadata("mcmmoPlacedBlock", new FixedMetadataValue(plugin, true)); } if (id == LoadProperties.anvilID && LoadProperties.anvilmessages) { @@ -176,7 +176,7 @@ public class mcBlockListener implements Listener { * EXCAVATION */ - if (Excavation.canBeGigaDrillBroken(mat) && mcPermissions.getInstance().excavation(player) && !block.hasMetadata("placedBlock")) { + if (Excavation.canBeGigaDrillBroken(mat) && mcPermissions.getInstance().excavation(player) && !block.hasMetadata("mcmmoPlacedBlock")) { if (LoadProperties.excavationRequiresShovel && ItemChecks.isShovel(inhand)) { Excavation.excavationProcCheck(block, player); } @@ -186,8 +186,8 @@ public class mcBlockListener implements Listener { } //Remove metadata when broken - if (block.hasMetadata("placedBlock") && BlockChecks.shouldBeWatched(mat)) { - block.removeMetadata("placedBlock", plugin); + if (block.hasMetadata("mcmmoPlacedBlock") && BlockChecks.shouldBeWatched(mat)) { + block.removeMetadata("mcmmoPlacedBlock", plugin); } } diff --git a/src/main/java/com/gmail/nossr50/listeners/mcEntityListener.java b/src/main/java/com/gmail/nossr50/listeners/mcEntityListener.java index 266b2e569..8c6e1e42f 100644 --- a/src/main/java/com/gmail/nossr50/listeners/mcEntityListener.java +++ b/src/main/java/com/gmail/nossr50/listeners/mcEntityListener.java @@ -165,7 +165,7 @@ public class mcEntityListener implements Listener { @EventHandler (priority = EventPriority.MONITOR) public void onCreatureSpawn(CreatureSpawnEvent event) { if (event.getSpawnReason().equals(SpawnReason.SPAWNER) && !LoadProperties.xpGainsMobSpawners) { - event.getEntity().setMetadata("fromMobSpawner", new FixedMetadataValue(plugin, true)); + event.getEntity().setMetadata("mcmmoFromMobSpawner", new FixedMetadataValue(plugin, true)); } } @@ -287,7 +287,7 @@ public class mcEntityListener implements Listener { public void onEntityTame(EntityTameEvent event) { Player player = (Player) event.getOwner(); - if (mcPermissions.getInstance().taming(player) && !event.getEntity().hasMetadata("summoned")) { + if (mcPermissions.getInstance().taming(player) && !event.getEntity().hasMetadata("mcmmoSummoned")) { PlayerProfile PP = Users.getProfile(player); EntityType type = event.getEntityType(); int xp = 0; diff --git a/src/main/java/com/gmail/nossr50/skills/BlastMining.java b/src/main/java/com/gmail/nossr50/skills/BlastMining.java index 4c8a92a30..359a566ae 100644 --- a/src/main/java/com/gmail/nossr50/skills/BlastMining.java +++ b/src/main/java/com/gmail/nossr50/skills/BlastMining.java @@ -48,7 +48,7 @@ public class BlastMining { blocksDropped.add(temp); Mining.miningDrops(temp); - if (!temp.hasMetadata("placedBlock")) { + if (!temp.hasMetadata("mcmmoPlacedBlock")) { if (extraDrops == 2) { blocksDropped.add(temp); Mining.miningDrops(temp); @@ -160,7 +160,7 @@ public class BlastMining { } for (Block block : xp) { - if (!block.hasMetadata("placedBlock")) { + if (!block.hasMetadata("mcmmoPlacedBlock")) { Mining.miningXP(player, block); } } diff --git a/src/main/java/com/gmail/nossr50/skills/Excavation.java b/src/main/java/com/gmail/nossr50/skills/Excavation.java index b4259f991..4f26b6628 100644 --- a/src/main/java/com/gmail/nossr50/skills/Excavation.java +++ b/src/main/java/com/gmail/nossr50/skills/Excavation.java @@ -126,7 +126,7 @@ public class Excavation { public static void gigaDrillBreaker(Player player, Block block) { Skills.abilityDurabilityLoss(player.getItemInHand(), LoadProperties.abilityDurabilityLoss); - if (!block.hasMetadata("placedBlock")) { + if (!block.hasMetadata("mcmmoPlacedBlock")) { PlayerAnimationEvent armswing = new PlayerAnimationEvent(player); Bukkit.getPluginManager().callEvent(armswing); diff --git a/src/main/java/com/gmail/nossr50/skills/Herbalism.java b/src/main/java/com/gmail/nossr50/skills/Herbalism.java index eda4c05a8..eb5872905 100644 --- a/src/main/java/com/gmail/nossr50/skills/Herbalism.java +++ b/src/main/java/com/gmail/nossr50/skills/Herbalism.java @@ -135,7 +135,7 @@ public class Herbalism { Block b = block.getRelative(0, y, 0); if (b.getType().equals(Material.CACTUS)) { mat = Material.CACTUS; - if (!b.hasMetadata("placedBlock")) { + if (!b.hasMetadata("mcmmoPlacedBlock")) { if(herbLevel > MAX_BONUS_LEVEL || (Math.random() * 1000 <= herbLevel)) { catciDrops++; } @@ -154,7 +154,7 @@ public class Herbalism { break; case MELON_BLOCK: - if (!block.hasMetadata("placedBlock")) { + if (!block.hasMetadata("mcmmoPlacedBlock")) { mat = Material.MELON; xp = LoadProperties.mmelon; } @@ -169,7 +169,7 @@ public class Herbalism { case PUMPKIN: case JACK_O_LANTERN: - if (!block.hasMetadata("placedBlock")) { + if (!block.hasMetadata("mcmmoPlacedBlock")) { mat = Material.getMaterial(id); xp = LoadProperties.mpumpkin; } @@ -177,7 +177,7 @@ public class Herbalism { case RED_ROSE: case YELLOW_FLOWER: - if (!block.hasMetadata("placedBlock")) { + if (!block.hasMetadata("mcmmoPlacedBlock")) { mat = Material.getMaterial(id); xp = LoadProperties.mflower; } @@ -188,7 +188,7 @@ public class Herbalism { Block b = block.getRelative(0, y, 0); if (b.getType().equals(Material.SUGAR_CANE_BLOCK)) { mat = Material.SUGAR_CANE; - if (!b.hasMetadata("placedBlock")) { + if (!b.hasMetadata("mcmmoPlacedBlock")) { if(herbLevel > MAX_BONUS_LEVEL || (Math.random() * 1000 <= herbLevel)) { caneDrops++; } @@ -199,14 +199,14 @@ public class Herbalism { break; case VINE: - if (!block.hasMetadata("placedBlock")) { + if (!block.hasMetadata("mcmmoPlacedBlock")) { mat = type; xp = LoadProperties.mvines; } break; case WATER_LILY: - if (!block.hasMetadata("placedBlock")) { + if (!block.hasMetadata("mcmmoPlacedBlock")) { mat = type; xp = LoadProperties.mlilypad; } diff --git a/src/main/java/com/gmail/nossr50/skills/Mining.java b/src/main/java/com/gmail/nossr50/skills/Mining.java index ba3ca4625..45ac762ca 100644 --- a/src/main/java/com/gmail/nossr50/skills/Mining.java +++ b/src/main/java/com/gmail/nossr50/skills/Mining.java @@ -156,7 +156,7 @@ public class Mining * @param plugin mcMMO plugin instance */ public static void miningBlockCheck(Player player, Block block, mcMMO plugin) { - if (block.hasMetadata("placedBlock")) { + if (block.hasMetadata("mcmmoPlacedBlock")) { return; } @@ -251,7 +251,7 @@ public class Mining case NETHERRACK: case SANDSTONE: case STONE: - if (!block.hasMetadata("placedBlock")) { + if (!block.hasMetadata("mcmmoPlacedBlock")) { return; } diff --git a/src/main/java/com/gmail/nossr50/skills/Taming.java b/src/main/java/com/gmail/nossr50/skills/Taming.java index f10d4243a..b0ddafa87 100644 --- a/src/main/java/com/gmail/nossr50/skills/Taming.java +++ b/src/main/java/com/gmail/nossr50/skills/Taming.java @@ -215,7 +215,7 @@ public class Taming { } } LivingEntity entity = player.getWorld().spawnCreature(player.getLocation(), type); - entity.setMetadata("summoned", new FixedMetadataValue(plugin, true)); + entity.setMetadata("mcmmoSummoned", new FixedMetadataValue(plugin, true)); ((Tameable) entity).setOwner(player); player.setItemInHand(new ItemStack(summonItem, item.getAmount() - summonAmount)); diff --git a/src/main/java/com/gmail/nossr50/skills/WoodCutting.java b/src/main/java/com/gmail/nossr50/skills/WoodCutting.java index f57540fcd..17d5b738f 100644 --- a/src/main/java/com/gmail/nossr50/skills/WoodCutting.java +++ b/src/main/java/com/gmail/nossr50/skills/WoodCutting.java @@ -3,7 +3,6 @@ package com.gmail.nossr50.skills; import java.util.ArrayList; import org.bukkit.Material; -import org.bukkit.World; import org.bukkit.block.Block; import org.bukkit.entity.Player; import org.bukkit.inventory.ItemStack; @@ -32,13 +31,12 @@ public class WoodCutting Player player = event.getPlayer(); Block firstBlock = event.getBlock(); PlayerProfile PP = Users.getProfile(player); - World world = firstBlock.getWorld(); //Prepare array ArrayList toBeFelled = new ArrayList(); //NOTE: Tree Feller will cut upwards like how you actually fell trees - processTreeFelling(firstBlock, world, toBeFelled, plugin); + processTreeFelling(firstBlock, toBeFelled, plugin); removeBlocks(toBeFelled, player, PP, plugin); } @@ -97,7 +95,7 @@ public class WoodCutting break; } - if(!x.hasMetadata("placedBlock")) + if(!x.hasMetadata("mcmmoPlacedBlock")) { WoodCutting.woodCuttingProcCheck(player, x); @@ -149,9 +147,8 @@ public class WoodCutting return block.getType() == Material.LOG || block.getType() == Material.LEAVES || block.getType() == Material.AIR; } - private static void processTreeFelling(Block currentBlock, World world, ArrayList toBeFelled, mcMMO plugin) + private static void processTreeFelling(Block currentBlock, ArrayList toBeFelled, mcMMO plugin) { - int x = currentBlock.getX(), y = currentBlock.getY(), z = currentBlock.getZ(); if(currentBlock.getType() == Material.LOG || currentBlock.getType() == Material.LEAVES) toBeFelled.add(currentBlock); @@ -159,32 +156,32 @@ public class WoodCutting //These 2 are to make sure that Tree Feller isn't so aggressive boolean isAirOrLeaves = currentBlock.getType() == Material.LEAVES || currentBlock.getType() == Material.AIR; - Block xPositive = world.getBlockAt(x+1, y, z); - Block xNegative = world.getBlockAt(x-1, y, z); - Block zPositive = world.getBlockAt(x, y, z+1); - Block zNegative = world.getBlockAt(x, y, z-1); + Block xPositive = currentBlock.getRelative(1, 0, 0); + Block xNegative = currentBlock.getRelative(-1, 0, 0); + Block zPositive = currentBlock.getRelative(0, 0, 1); + Block zNegative = currentBlock.getRelative(0, 0, -1); - if(!currentBlock.hasMetadata("placedBlock") && + if(!currentBlock.hasMetadata("mcmmoPlacedBlock") && !isTooAgressive(isAirOrLeaves, xPositive) && treeFellerCompatible(xPositive) && !toBeFelled.contains(xPositive)) - processTreeFelling(xPositive, world, toBeFelled, plugin); - if(!currentBlock.hasMetadata("placedBlock") && + processTreeFelling(xPositive, toBeFelled, plugin); + if(!currentBlock.hasMetadata("mcmmoPlacedBlock") && !isTooAgressive(isAirOrLeaves, xNegative) && treeFellerCompatible(xNegative) && !toBeFelled.contains(xNegative)) - processTreeFelling(xNegative, world, toBeFelled, plugin); - if(!currentBlock.hasMetadata("placedBlock") && + processTreeFelling(xNegative, toBeFelled, plugin); + if(!currentBlock.hasMetadata("mcmmoPlacedBlock") && !isTooAgressive(isAirOrLeaves, zPositive) && treeFellerCompatible(zPositive) && !toBeFelled.contains(zPositive)) - processTreeFelling(zPositive, world, toBeFelled, plugin); - if(!currentBlock.hasMetadata("placedBlock") && + processTreeFelling(zPositive, toBeFelled, plugin); + if(!currentBlock.hasMetadata("mcmmoPlacedBlock") && !isTooAgressive(isAirOrLeaves, zNegative) && treeFellerCompatible(zNegative) && !toBeFelled.contains(zNegative)) - processTreeFelling(zNegative, world, toBeFelled, plugin); + processTreeFelling(zNegative, toBeFelled, plugin); //Finally go Y+ - Block yPositive = world.getBlockAt(x, y+1, z); + Block yPositive = currentBlock.getRelative(0, 1, 0); if(treeFellerCompatible(yPositive)) { - if(!currentBlock.hasMetadata("placedBlock") && !toBeFelled.contains(yPositive)) + if(!currentBlock.hasMetadata("mcmmoPlacedBlock") && !toBeFelled.contains(yPositive)) { - processTreeFelling(yPositive, world, toBeFelled, plugin); + processTreeFelling(yPositive, toBeFelled, plugin); } } }