From 7c59621c9e903aca63b8aada9a51ec06970f662a Mon Sep 17 00:00:00 2001 From: GJ Date: Thu, 24 Jan 2013 15:46:29 -0500 Subject: [PATCH] More cleaning on listeners. Also fixes NPE with itemInHand, because Bukkit is dumb. --- .../nossr50/listeners/BlockListener.java | 4 +- .../nossr50/listeners/EntityListener.java | 87 ++++++++++--------- .../nossr50/listeners/PlayerListener.java | 22 ++--- .../java/com/gmail/nossr50/skills/Combat.java | 2 +- .../java/com/gmail/nossr50/skills/Skills.java | 23 +++++ .../acrobatics/AcrobaticsEventHandler.java | 2 +- .../skills/acrobatics/AcrobaticsManager.java | 4 +- .../skills/archery/ArcheryManager.java | 6 +- .../gmail/nossr50/skills/axes/AxeManager.java | 8 +- .../nossr50/skills/herbalism/Herbalism.java | 14 ++- .../skills/herbalism/HerbalismCommand.java | 2 +- .../nossr50/skills/mining/MiningManager.java | 6 +- .../skills/smelting/SmeltingManager.java | 4 +- .../nossr50/skills/swords/SwordsManager.java | 2 +- .../skills/unarmed/UnarmedManager.java | 2 +- .../java/com/gmail/nossr50/util/Misc.java | 14 ++- 16 files changed, 124 insertions(+), 78 deletions(-) diff --git a/src/main/java/com/gmail/nossr50/listeners/BlockListener.java b/src/main/java/com/gmail/nossr50/listeners/BlockListener.java index 432c2065a..afc8029a0 100644 --- a/src/main/java/com/gmail/nossr50/listeners/BlockListener.java +++ b/src/main/java/com/gmail/nossr50/listeners/BlockListener.java @@ -103,7 +103,7 @@ public class BlockListener implements Listener { public void onBlockPlace(BlockPlaceEvent event) { Player player = event.getPlayer(); - if (Misc.isNPC(player)) { + if (Misc.isNPCPlayer(player)) { return; } @@ -229,7 +229,7 @@ public class BlockListener implements Listener { Block block = event.getBlock(); ItemStack inHand = player.getItemInHand(); - if (Misc.isNPC(player)) { + if (Misc.isNPCPlayer(player)) { return; } diff --git a/src/main/java/com/gmail/nossr50/listeners/EntityListener.java b/src/main/java/com/gmail/nossr50/listeners/EntityListener.java index c11890bda..4d361aa02 100644 --- a/src/main/java/com/gmail/nossr50/listeners/EntityListener.java +++ b/src/main/java/com/gmail/nossr50/listeners/EntityListener.java @@ -40,6 +40,7 @@ import com.gmail.nossr50.skills.SkillType; import com.gmail.nossr50.skills.Skills; import com.gmail.nossr50.skills.acrobatics.AcrobaticsManager; import com.gmail.nossr50.skills.archery.Archery; +import com.gmail.nossr50.skills.herbalism.Herbalism; import com.gmail.nossr50.skills.mining.MiningManager; import com.gmail.nossr50.skills.taming.TamingManager; import com.gmail.nossr50.util.Misc; @@ -53,7 +54,12 @@ public class EntityListener implements Listener { this.plugin = plugin; } - @EventHandler(priority = EventPriority.MONITOR) + /** + * Monitor EntityChangeBlock events. + * + * @param event The event to watch + */ + @EventHandler(priority = EventPriority.MONITOR, ignoreCancelled = true) public void onEntityChangeBlockEvent(EntityChangeBlockEvent event) { Entity entity = event.getEntity(); @@ -74,7 +80,7 @@ public class EntityListener implements Listener { /** * Monitor EntityDamageByEntity events. * - * @param event The event to monitor + * @param event The event to watch */ @EventHandler(priority = EventPriority.HIGHEST, ignoreCancelled = true) public void onEntityDamageByEntity(EntityDamageByEntityEvent event) { @@ -128,7 +134,7 @@ public class EntityListener implements Listener { /** * Monitor EntityDamage events. * - * @param event The event to monitor + * @param event The event to watch */ @EventHandler(priority = EventPriority.HIGHEST, ignoreCancelled = true) public void onEntityDamage(EntityDamageEvent event) { @@ -194,46 +200,45 @@ public class EntityListener implements Listener { /** * Monitor EntityDeath events. * - * @param event The event to monitor + * @param event The event to watch */ @EventHandler (priority = EventPriority.MONITOR) public void onEntityDeath(EntityDeathEvent event) { LivingEntity entity = event.getEntity(); - if (entity.hasMetadata("NPC")) return; // Check if this player is a Citizens NPC + if (Misc.isNPCEntity(entity)) { + return; + } entity.setFireTicks(0); BleedTimer.remove(entity); Archery.arrowRetrievalCheck(entity); mcMMO.placeStore.removeSpawnedMob(entity); - mcMMO.placeStore.removeSpawnedPet(entity); } /** * Monitor CreatureSpawn events. * - * @param event The event to monitor + * @param event The event to watch */ - @EventHandler (priority = EventPriority.MONITOR) + @EventHandler (priority = EventPriority.MONITOR, ignoreCancelled = true) public void onCreatureSpawn(CreatureSpawnEvent event) { SpawnReason reason = event.getSpawnReason(); - if ((reason.equals(SpawnReason.SPAWNER) || reason.equals(SpawnReason.SPAWNER_EGG)) && !Config.getInstance().getExperienceGainsMobspawnersEnabled()) { + if ((reason.equals(SpawnReason.SPAWNER) || reason.equals(SpawnReason.SPAWNER_EGG)) && Misc.isSpawnerXPEnabled) { mcMMO.placeStore.addSpawnedMob(event.getEntity()); } } /** - * Monitor ExplosionPrime events. + * Handle ExplosionPrime events that involve modifying the event. * - * @param event The event to monitor + * @param event The event to modify */ @EventHandler (priority = EventPriority.HIGHEST, ignoreCancelled = true) public void onExplosionPrime(ExplosionPrimeEvent event) { Entity entity = event.getEntity(); - if (entity.hasMetadata("NPC")) return; // Check if this player is a Citizens NPC - if (entity instanceof TNTPrimed) { int id = entity.getEntityId(); @@ -249,25 +254,23 @@ public class EntityListener implements Listener { } /** - * Monitor EntityExplode events. + * Handle EntityExplode events that involve modifying the event. * - * @param event The event to monitor + * @param event The event to modify */ @EventHandler (priority = EventPriority.HIGHEST, ignoreCancelled = true) public void onEnitityExplode(EntityExplodeEvent event) { Entity entity = event.getEntity(); - if (entity == null) return; - - if (entity.hasMetadata("NPC")) return; // Check if this player is a Citizens NPC - if (entity instanceof TNTPrimed) { int id = entity.getEntityId(); if (plugin.tntIsTracked(id)) { Player player = plugin.getTNTPlayer(id); + MiningManager miningManager = new MiningManager(player); miningManager.blastMiningDropProcessing(event); + plugin.removeFromTNTTracker(id); } } @@ -276,17 +279,20 @@ public class EntityListener implements Listener { /** * Monitor FoodLevelChange events. * - * @param event The event to monitor + * @param event The event to watch */ @EventHandler (priority = EventPriority.LOW) public void onFoodLevelChange(FoodLevelChangeEvent event) { - AdvancedConfig advancedConfig = AdvancedConfig.getInstance(); - if (event.getEntity() instanceof Player) { - Player player = (Player) event.getEntity(); - - if (player.hasMetadata("NPC")) return; // Check if this player is a Citizens NPC + Entity entity = event.getEntity(); + if (entity instanceof Player) { + Player player = (Player) entity; PlayerProfile profile = Users.getProfile(player); + + if (Misc.isNPCPlayer(player, profile)) { + return; + } + int currentFoodLevel = player.getFoodLevel(); int newFoodLevel = event.getFoodLevel(); @@ -305,72 +311,69 @@ public class EntityListener implements Listener { int rankChange = 0; boolean fish = false; boolean herb = false; - int herbFoodRank1 = advancedConfig.getFarmerDietRankChange(); - int herbFoodRank2 = advancedConfig.getFarmerDietRankChange() * 2; - int herbFoodRankMax = advancedConfig.getFarmerDietRankChange() * 5; - int fishFoodRank1 = advancedConfig.getFishermanDietRankChange(); - int fishFoodRank2 = advancedConfig.getFishermanDietRankChange() * 2; - int fishFoodRankMax = advancedConfig.getFishermanDietRankChange() * 5; + int fishFoodRank1 = AdvancedConfig.getInstance().getFishermanDietRankChange(); + int fishFoodRank2 = AdvancedConfig.getInstance().getFishermanDietRankChange() * 2; + int fishFoodRankMax = AdvancedConfig.getInstance().getFishermanDietRankChange() * 5; switch (food) { case BREAD: /* BREAD RESTORES 2 1/2 HUNGER - RESTORES 5 HUNGER @ 1000 */ herb = true; - rankChange = herbFoodRank1; + rankChange = Herbalism.farmersDietRankLevel1; break; case COOKIE: /* COOKIE RESTORES 1/2 HUNGER - RESTORES 2 HUNGER @ 1000 */ herb = true; - rankChange = herbFoodRank2; + rankChange = Herbalism.farmersDietRankLevel2; break; case MELON: /* MELON RESTORES 1 HUNGER - RESTORES 2 1/2 HUNGER @ 1000 */ herb = true; - rankChange = herbFoodRank2; + rankChange = Herbalism.farmersDietRankLevel2; break; case MUSHROOM_SOUP: /* MUSHROOM SOUP RESTORES 4 HUNGER - RESTORES 6 1/2 HUNGER @ 1000 */ herb = true; - rankChange = herbFoodRank1; + rankChange = Herbalism.farmersDietRankLevel1; break; case CARROT_ITEM: /* CARROT RESTORES 2 HUNGER - RESTORES 4 1/2 HUNGER @ 1000 */ herb = true; - rankChange = herbFoodRank1; + rankChange = Herbalism.farmersDietRankLevel1; break; case POTATO_ITEM: /* POTATO RESTORES 1/2 HUNGER - RESTORES 2 HUNGER @ 1000 */ herb = true; - rankChange = herbFoodRank2; + rankChange = Herbalism.farmersDietRankLevel2; break; case BAKED_POTATO: /* BAKED POTATO RESTORES 3 HUNGER - RESTORES 5 1/2 HUNGER @ 1000 */ herb = true; - rankChange = herbFoodRank1; + rankChange = Herbalism.farmersDietRankLevel1; break; case POISONOUS_POTATO: /* POISONOUS POTATO RESTORES 1 HUNGER - RESTORES 2 1/2 HUNGER @ 1000 */ herb = true; - rankChange = herbFoodRank2; + rankChange = Herbalism.farmersDietRankLevel2; break; case GOLDEN_CARROT: /* GOLDEN CARROT RESTORES 3 HUNGER - RESTORES 5 1/2 HUNGER @ 1000 */ herb = true; - rankChange = herbFoodRank1; + rankChange = Herbalism.farmersDietRankLevel1; break; case PUMPKIN_PIE: /* PUMPKIN PIE RESTORES 4 HUNGER - RESTORES 6 1/2 HUNGER @ 1000 */ herb = true; - rankChange = herbFoodRank1; + rankChange = Herbalism.farmersDietRankLevel1; break; case RAW_FISH: @@ -394,7 +397,7 @@ public class EntityListener implements Listener { return; } - for (int i = herbFoodRank1; i <= herbFoodRankMax; i += rankChange) { + for (int i = Herbalism.farmersDietRankLevel1; i <= Herbalism.farmersDietMaxLevel; i += rankChange) { if (herbLevel >= i) { foodChange++; } diff --git a/src/main/java/com/gmail/nossr50/listeners/PlayerListener.java b/src/main/java/com/gmail/nossr50/listeners/PlayerListener.java index dfa864bea..ff764d86a 100644 --- a/src/main/java/com/gmail/nossr50/listeners/PlayerListener.java +++ b/src/main/java/com/gmail/nossr50/listeners/PlayerListener.java @@ -59,7 +59,7 @@ public class PlayerListener implements Listener { Player player = event.getPlayer(); PlayerProfile profile = Users.getProfile(player); - if (Misc.isNPC(player, profile)) { + if (Misc.isNPCPlayer(player, profile)) { return; } @@ -83,7 +83,7 @@ public class PlayerListener implements Listener { public void onPlayerFish(PlayerFishEvent event) { Player player = event.getPlayer(); - if (Misc.isNPC(player)) { + if (Misc.isNPCPlayer(player)) { return; } @@ -131,7 +131,7 @@ public class PlayerListener implements Listener { public void onPlayerQuit(PlayerQuitEvent event) { Player player = event.getPlayer(); - if (Misc.isNPC(player)) { + if (Misc.isNPCPlayer(player)) { return; } @@ -148,7 +148,7 @@ public class PlayerListener implements Listener { public void onPlayerJoin(PlayerJoinEvent event) { Player player = event.getPlayer(); - if (Misc.isNPC(player)) { + if (Misc.isNPCPlayer(player)) { return; } @@ -179,7 +179,7 @@ public class PlayerListener implements Listener { Player player = event.getPlayer(); PlayerProfile profile = Users.getProfile(player); - if (Misc.isNPC(player, profile)) { + if (Misc.isNPCPlayer(player, profile)) { return; } @@ -189,18 +189,18 @@ public class PlayerListener implements Listener { /** * Handle PlayerInteract events that involve modifying the event. * - * @param event The event to watch + * @param event The event to modify */ @EventHandler(priority = EventPriority.LOWEST) public void onPlayerInteractLowest(PlayerInteractEvent event) { Player player = event.getPlayer(); - if (Misc.isNPC(player)) { + if (Misc.isNPCPlayer(player)) { return; } Block block = event.getClickedBlock(); - ItemStack heldItem = event.getItem(); + ItemStack heldItem = player.getItemInHand(); switch (event.getAction()) { case RIGHT_CLICK_BLOCK: @@ -252,12 +252,12 @@ public class PlayerListener implements Listener { public void onPlayerInteract(PlayerInteractEvent event) { Player player = event.getPlayer(); - if (Misc.isNPC(player)) { + if (Misc.isNPCPlayer(player)) { return; } Block block = event.getClickedBlock(); - ItemStack heldItem = event.getItem(); + ItemStack heldItem = player.getItemInHand(); switch (event.getAction()) { case RIGHT_CLICK_BLOCK: @@ -339,7 +339,7 @@ public class PlayerListener implements Listener { Player player = event.getPlayer(); PlayerProfile profile = Users.getProfile(player); - if (Misc.isNPC(player, profile)) { + if (Misc.isNPCPlayer(player, profile)) { return; } diff --git a/src/main/java/com/gmail/nossr50/skills/Combat.java b/src/main/java/com/gmail/nossr50/skills/Combat.java index b8e79a963..00bc9d2d7 100644 --- a/src/main/java/com/gmail/nossr50/skills/Combat.java +++ b/src/main/java/com/gmail/nossr50/skills/Combat.java @@ -327,7 +327,7 @@ public class Combat { for (Entity entity : target.getNearbyEntities(2.5, 2.5, 2.5)) { if (entity instanceof Player) { - if (Misc.isNPC((Player) entity)) { + if (Misc.isNPCPlayer((Player) entity)) { continue; } } diff --git a/src/main/java/com/gmail/nossr50/skills/Skills.java b/src/main/java/com/gmail/nossr50/skills/Skills.java index 27664419b..15c0f71be 100644 --- a/src/main/java/com/gmail/nossr50/skills/Skills.java +++ b/src/main/java/com/gmail/nossr50/skills/Skills.java @@ -3,6 +3,7 @@ package com.gmail.nossr50.skills; import org.bukkit.block.Block; import org.bukkit.enchantments.Enchantment; import org.bukkit.entity.Player; +import org.bukkit.event.entity.FoodLevelChangeEvent; import org.bukkit.inventory.ItemStack; import org.getspout.spoutapi.SpoutManager; import org.getspout.spoutapi.player.SpoutPlayer; @@ -25,6 +26,28 @@ public class Skills { public static int abilityLengthIncreaseLevel = advancedConfig.getAbilityLength(); public static boolean abilitiesEnabled = Config.getInstance().getAbilitiesEnabled(); + public static void handleFoodSkills(Player player, SkillType skill, FoodLevelChangeEvent event, int baseLevel, int maxLevel, int rankChange) { + int skillLevel = Users.getProfile(player).getSkillLevel(skill); + int currentFoodLevel = player.getFoodLevel(); + int newFoodLevel = event.getFoodLevel(); + int foodChange = newFoodLevel - currentFoodLevel; + + for (int i = baseLevel; i <= maxLevel; i+= rankChange) { + if (skillLevel >= i) { + foodChange++; + } + } + + /* Make sure we don't go over the max value */ + newFoodLevel = currentFoodLevel + foodChange; + if (newFoodLevel > 20) { + event.setFoodLevel(20); + } + else { + event.setFoodLevel(newFoodLevel); + } + } + /** * Checks to see if the cooldown for an item or ability is expired. * diff --git a/src/main/java/com/gmail/nossr50/skills/acrobatics/AcrobaticsEventHandler.java b/src/main/java/com/gmail/nossr50/skills/acrobatics/AcrobaticsEventHandler.java index 5a7545677..f261e787a 100644 --- a/src/main/java/com/gmail/nossr50/skills/acrobatics/AcrobaticsEventHandler.java +++ b/src/main/java/com/gmail/nossr50/skills/acrobatics/AcrobaticsEventHandler.java @@ -53,7 +53,7 @@ public abstract class AcrobaticsEventHandler { * @return true if the damage is fatal, false otherwise */ protected boolean isFatal(int damage) { - if (Misc.isNPC(player) || player.getHealth() - damage < 1) { + if (Misc.isNPCPlayer(player) || player.getHealth() - damage < 1) { return true; } diff --git a/src/main/java/com/gmail/nossr50/skills/acrobatics/AcrobaticsManager.java b/src/main/java/com/gmail/nossr50/skills/acrobatics/AcrobaticsManager.java index 37344494b..588ac8f24 100644 --- a/src/main/java/com/gmail/nossr50/skills/acrobatics/AcrobaticsManager.java +++ b/src/main/java/com/gmail/nossr50/skills/acrobatics/AcrobaticsManager.java @@ -20,7 +20,7 @@ public class AcrobaticsManager extends SkillManager { * @param event The event to check */ public void rollCheck(EntityDamageEvent event) { - if (Misc.isNPC(player) || !Permissions.roll(player)) { + if (Misc.isNPCPlayer(player) || !Permissions.roll(player)) { return; } @@ -55,7 +55,7 @@ public class AcrobaticsManager extends SkillManager { * @param event The event to check */ public void dodgeCheck(EntityDamageEvent event) { - if (Misc.isNPC(player) || !Permissions.dodge(player)) { + if (Misc.isNPCPlayer(player) || !Permissions.dodge(player)) { return; } diff --git a/src/main/java/com/gmail/nossr50/skills/archery/ArcheryManager.java b/src/main/java/com/gmail/nossr50/skills/archery/ArcheryManager.java index 43d7ff462..eb6944e44 100644 --- a/src/main/java/com/gmail/nossr50/skills/archery/ArcheryManager.java +++ b/src/main/java/com/gmail/nossr50/skills/archery/ArcheryManager.java @@ -20,7 +20,7 @@ public class ArcheryManager extends SkillManager { * @param livingEntity Entity damaged by the arrow */ public void trackArrows(LivingEntity livingEntity) { - if (Misc.isNPC(player) || !Permissions.trackArrows(player)) { + if (Misc.isNPCPlayer(player) || !Permissions.trackArrows(player)) { return; } @@ -40,7 +40,7 @@ public class ArcheryManager extends SkillManager { * @param event The event to modify */ public void dazeCheck(Player defender, EntityDamageEvent event) { - if (Misc.isNPC(player) || !Permissions.daze(player)) { + if (Misc.isNPCPlayer(player) || !Permissions.daze(player)) { return; } @@ -60,7 +60,7 @@ public class ArcheryManager extends SkillManager { * @param event The event to modify. */ public void skillShot(EntityDamageEvent event) { - if (Misc.isNPC(player) || !Permissions.archeryBonus(player)) { + if (Misc.isNPCPlayer(player) || !Permissions.archeryBonus(player)) { return; } diff --git a/src/main/java/com/gmail/nossr50/skills/axes/AxeManager.java b/src/main/java/com/gmail/nossr50/skills/axes/AxeManager.java index a041f3494..3bcbf0dc5 100644 --- a/src/main/java/com/gmail/nossr50/skills/axes/AxeManager.java +++ b/src/main/java/com/gmail/nossr50/skills/axes/AxeManager.java @@ -21,7 +21,7 @@ public class AxeManager extends SkillManager { * @param event The event to modify */ public void bonusDamage(EntityDamageByEntityEvent event) { - if (Misc.isNPC(player) || !Permissions.axeBonus(player)) { + if (Misc.isNPCPlayer(player) || !Permissions.axeBonus(player)) { return; } @@ -37,7 +37,7 @@ public class AxeManager extends SkillManager { * @param event The event to modify */ public void criticalHitCheck(EntityDamageByEntityEvent event) { - if (Misc.isNPC(player) || !Permissions.criticalHit(player)) { + if (Misc.isNPCPlayer(player) || !Permissions.criticalHit(player)) { return; } @@ -61,7 +61,7 @@ public class AxeManager extends SkillManager { * @param event The event to modify */ public void impact(EntityDamageByEntityEvent event) { - if (Misc.isNPC(player) || !Permissions.impact(player)) { + if (Misc.isNPCPlayer(player) || !Permissions.impact(player)) { return; } @@ -85,7 +85,7 @@ public class AxeManager extends SkillManager { * @param event The event to process */ public void skullSplitter(EntityDamageByEntityEvent event) { - if (Misc.isNPC(player) || !Permissions.skullSplitter(player) || !profile.getAbilityMode(AbilityType.SKULL_SPLIITER)) { + if (Misc.isNPCPlayer(player) || !Permissions.skullSplitter(player) || !profile.getAbilityMode(AbilityType.SKULL_SPLIITER)) { return; } diff --git a/src/main/java/com/gmail/nossr50/skills/herbalism/Herbalism.java b/src/main/java/com/gmail/nossr50/skills/herbalism/Herbalism.java index cda9d6643..70b647b14 100644 --- a/src/main/java/com/gmail/nossr50/skills/herbalism/Herbalism.java +++ b/src/main/java/com/gmail/nossr50/skills/herbalism/Herbalism.java @@ -7,6 +7,7 @@ import org.bukkit.Material; import org.bukkit.block.Block; import org.bukkit.entity.Player; import org.bukkit.event.block.BlockBreakEvent; +import org.bukkit.event.entity.FoodLevelChangeEvent; import org.bukkit.inventory.ItemStack; import org.bukkit.inventory.PlayerInventory; import org.bukkit.material.MaterialData; @@ -28,8 +29,9 @@ import com.gmail.nossr50.util.Permissions; import com.gmail.nossr50.util.Users; public class Herbalism { - public static int farmersDietRankChangeLevel = AdvancedConfig.getInstance().getFarmerDietRankChange(); - public static int farmersDietMaxLevel = farmersDietRankChangeLevel * 5; + public static int farmersDietRankLevel1 = AdvancedConfig.getInstance().getFarmerDietRankChange(); + public static int farmersDietRankLevel2 = farmersDietRankLevel1 * 2; + public static int farmersDietMaxLevel = farmersDietRankLevel1 * 5; public static int greenThumbStageChangeLevel = AdvancedConfig.getInstance().getGreenThumbStageChange(); public static int greenThumbStageMaxLevel = greenThumbStageChangeLevel * 4; @@ -44,6 +46,14 @@ public class Herbalism { public static double hylianLuckMaxChance = AdvancedConfig.getInstance().getHylianLuckChanceMax(); public static int hylianLuckMaxLevel = AdvancedConfig.getInstance().getHylianLucksMaxLevel(); + public static void farmersDiet(Player player, int rankChange, FoodLevelChangeEvent event) { + if (!Permissions.farmersDiet(player)) { + return; + } + + Skills.handleFoodSkills(player, SkillType.HERBALISM, event, farmersDietRankLevel1, farmersDietMaxLevel, rankChange); + } + /** * Activate the Green Terra ability. * diff --git a/src/main/java/com/gmail/nossr50/skills/herbalism/HerbalismCommand.java b/src/main/java/com/gmail/nossr50/skills/herbalism/HerbalismCommand.java index ba821cfdc..f6bc36898 100644 --- a/src/main/java/com/gmail/nossr50/skills/herbalism/HerbalismCommand.java +++ b/src/main/java/com/gmail/nossr50/skills/herbalism/HerbalismCommand.java @@ -37,7 +37,7 @@ public class HerbalismCommand extends SkillCommand { greenTerraLengthEndurance = greenTerraStrings[1]; //FARMERS DIET - farmersDietRank = calculateRank(Herbalism.farmersDietMaxLevel, Herbalism.farmersDietRankChangeLevel); + farmersDietRank = calculateRank(Herbalism.farmersDietMaxLevel, Herbalism.farmersDietRankLevel1); //GREEN THUMB greenThumbStage = calculateRank(Herbalism.greenThumbStageMaxLevel, Herbalism.greenThumbStageMaxLevel); diff --git a/src/main/java/com/gmail/nossr50/skills/mining/MiningManager.java b/src/main/java/com/gmail/nossr50/skills/mining/MiningManager.java index fba4e8cdb..ddd01a8a8 100644 --- a/src/main/java/com/gmail/nossr50/skills/mining/MiningManager.java +++ b/src/main/java/com/gmail/nossr50/skills/mining/MiningManager.java @@ -58,7 +58,7 @@ public class MiningManager extends SkillManager{ * @param event Event whose explosion is being processed */ public void blastMiningDropProcessing(EntityExplodeEvent event) { - if (Misc.isNPC(player)) { + if (Misc.isNPCPlayer(player)) { return; } @@ -83,7 +83,7 @@ public class MiningManager extends SkillManager{ * @param event Event whose explosion damage is being reduced */ public void demolitionsExpertise(EntityDamageEvent event) { - if (Misc.isNPC(player)) { + if (Misc.isNPCPlayer(player)) { return; } @@ -100,7 +100,7 @@ public class MiningManager extends SkillManager{ * @param event Event whose explosion radius is being changed */ public void biggerBombs(ExplosionPrimeEvent event) { - if (Misc.isNPC(player)) { + if (Misc.isNPCPlayer(player)) { return; } diff --git a/src/main/java/com/gmail/nossr50/skills/smelting/SmeltingManager.java b/src/main/java/com/gmail/nossr50/skills/smelting/SmeltingManager.java index a16b59273..bdb0b6a83 100644 --- a/src/main/java/com/gmail/nossr50/skills/smelting/SmeltingManager.java +++ b/src/main/java/com/gmail/nossr50/skills/smelting/SmeltingManager.java @@ -23,7 +23,7 @@ public class SmeltingManager extends SkillManager { * @param event The {@link FurnaceBurnEvent} to modify. */ public void fuelEfficiency(FurnaceBurnEvent event) { - if (Misc.isNPC(player) || !Permissions.fuelEfficiency(player)) { + if (Misc.isNPCPlayer(player) || !Permissions.fuelEfficiency(player)) { return; } @@ -33,7 +33,7 @@ public class SmeltingManager extends SkillManager { } public void smeltProcessing(FurnaceSmeltEvent event) { - if (Misc.isNPC(player)) { + if (Misc.isNPCPlayer(player)) { return; } diff --git a/src/main/java/com/gmail/nossr50/skills/swords/SwordsManager.java b/src/main/java/com/gmail/nossr50/skills/swords/SwordsManager.java index a24124468..a069b773e 100644 --- a/src/main/java/com/gmail/nossr50/skills/swords/SwordsManager.java +++ b/src/main/java/com/gmail/nossr50/skills/swords/SwordsManager.java @@ -65,7 +65,7 @@ public class SwordsManager extends SkillManager { } public void serratedStrikes(LivingEntity target, int damage) { - if (Misc.isNPC(player) || !Permissions.serratedStrikes(player) || !profile.getAbilityMode(AbilityType.SERRATED_STRIKES)) { + if (Misc.isNPCPlayer(player) || !Permissions.serratedStrikes(player) || !profile.getAbilityMode(AbilityType.SERRATED_STRIKES)) { return; } diff --git a/src/main/java/com/gmail/nossr50/skills/unarmed/UnarmedManager.java b/src/main/java/com/gmail/nossr50/skills/unarmed/UnarmedManager.java index dfed24889..5f533685b 100644 --- a/src/main/java/com/gmail/nossr50/skills/unarmed/UnarmedManager.java +++ b/src/main/java/com/gmail/nossr50/skills/unarmed/UnarmedManager.java @@ -19,7 +19,7 @@ public class UnarmedManager extends SkillManager { * @param defender The defending player */ public void disarmCheck(Player defender) { - if (Misc.isNPC(player) || !Permissions.disarm(player)) { + if (Misc.isNPCPlayer(player) || !Permissions.disarm(player)) { return; } diff --git a/src/main/java/com/gmail/nossr50/util/Misc.java b/src/main/java/com/gmail/nossr50/util/Misc.java index f8d968d36..efd1d2b09 100644 --- a/src/main/java/com/gmail/nossr50/util/Misc.java +++ b/src/main/java/com/gmail/nossr50/util/Misc.java @@ -6,6 +6,7 @@ import org.bukkit.Location; import org.bukkit.Material; import org.bukkit.block.Block; import org.bukkit.entity.AnimalTamer; +import org.bukkit.entity.Entity; import org.bukkit.entity.Item; import org.bukkit.entity.LivingEntity; import org.bukkit.entity.Player; @@ -29,6 +30,7 @@ public class Misc { public static int toolDurabilityLoss = Config.getInstance().getAbilityToolDamage(); public static int abilityLengthIncreaseLevel = AdvancedConfig.getInstance().getAbilityLength(); + public static boolean isSpawnerXPEnabled = Config.getInstance().getExperienceGainsMobspawnersEnabled(); public static final int PLAYER_RESPAWN_COOLDOWN_SECONDS = 5; public static final int TIME_CONVERSION_FACTOR = 1000; @@ -82,7 +84,15 @@ public class Misc { return false; } - public static boolean isNPC(Player player) { + public static boolean isNPCEntity(Entity entity) { + if (entity == null || entity.hasMetadata("NPC")) { + return true; + } + + return false; + } + + public static boolean isNPCPlayer(Player player) { if (player == null || Users.getProfile(player) == null || player.hasMetadata("NPC")) { return true; } @@ -90,7 +100,7 @@ public class Misc { return false; } - public static boolean isNPC(Player player, PlayerProfile profile) { + public static boolean isNPCPlayer(Player player, PlayerProfile profile) { if (player == null || profile == null || player.hasMetadata("NPC")) { return true; }