From bbbba12e95c658f42e8eec186913528c05e5db97 Mon Sep 17 00:00:00 2001 From: GJ Date: Thu, 28 Feb 2013 12:13:13 -0500 Subject: [PATCH] Small TamingManager changes. Halting the rest of the major changes for now to prepare for 1.4.00 release. --- .../nossr50/listeners/EntityListener.java | 6 +++- .../nossr50/skills/taming/TamingManager.java | 33 +++++++++---------- 2 files changed, 21 insertions(+), 18 deletions(-) diff --git a/src/main/java/com/gmail/nossr50/listeners/EntityListener.java b/src/main/java/com/gmail/nossr50/listeners/EntityListener.java index 02d35ea20..991cb6bb0 100644 --- a/src/main/java/com/gmail/nossr50/listeners/EntityListener.java +++ b/src/main/java/com/gmail/nossr50/listeners/EntityListener.java @@ -439,7 +439,11 @@ public class EntityListener implements Listener { return; } - SkillManagerStore.getInstance().getTamingManager(player.getName()).awardTamingXP(event); + LivingEntity entity = event.getEntity(); + + if (entity != null && !entity.hasMetadata(mcMMO.entityMetadataKey)) { + SkillManagerStore.getInstance().getTamingManager(player.getName()).awardTamingXP(entity); + } } @EventHandler (priority = EventPriority.HIGHEST, ignoreCancelled = true) diff --git a/src/main/java/com/gmail/nossr50/skills/taming/TamingManager.java b/src/main/java/com/gmail/nossr50/skills/taming/TamingManager.java index 3258c2575..13c697da4 100644 --- a/src/main/java/com/gmail/nossr50/skills/taming/TamingManager.java +++ b/src/main/java/com/gmail/nossr50/skills/taming/TamingManager.java @@ -11,6 +11,7 @@ import com.gmail.nossr50.mcMMO; import com.gmail.nossr50.config.Config; import com.gmail.nossr50.datatypes.McMMOPlayer; import com.gmail.nossr50.skills.SkillManager; +import com.gmail.nossr50.skills.utilities.SkillTools; import com.gmail.nossr50.skills.utilities.SkillType; import com.gmail.nossr50.util.Misc; import com.gmail.nossr50.util.Permissions; @@ -25,25 +26,18 @@ public class TamingManager extends SkillManager { * * @param event The event to award XP for */ - public void awardTamingXP(EntityTameEvent event) { - if (event.getEntity() == null) { - return; - } - else if (event.getEntity().hasMetadata(mcMMO.entityMetadataKey)) { - return; - } - - switch (event.getEntityType()) { + public void awardTamingXP(LivingEntity entity) { + switch (entity.getType()) { case WOLF: - mcMMOPlayer.beginXpGain(SkillType.TAMING, Taming.wolfXp); - break; + applyXpGain(Taming.wolfXp); + return; case OCELOT: - mcMMOPlayer.beginXpGain(SkillType.TAMING, Taming.ocelotXp); - break; + applyXpGain(Taming.ocelotXp); + return; default: - break; + return; } } @@ -54,10 +48,15 @@ public class TamingManager extends SkillManager { * @param damage The damage being absorbed by the wolf */ public void fastFoodService(Wolf wolf, int damage) { - if (Misc.getRandom().nextInt(activationChance) < Taming.fastFoodServiceActivationChance) { - FastFoodServiceEventHandler eventHandler = new FastFoodServiceEventHandler(wolf); + if (SkillTools.activationSuccessful(getPlayer(), skill, Taming.fastFoodServiceActivationChance)) { - eventHandler.modifyHealth(damage); + int health = wolf.getHealth(); + int maxHealth = wolf.getMaxHealth(); + + if (health < maxHealth) { + int newHealth = health + damage; + wolf.setHealth(Math.min(newHealth, maxHealth)); + } } }