Trying to clean up duplicate checks & whatnot in our listeners.

This commit is contained in:
GJ
2013-01-24 20:10:50 -05:00
parent 7c59621c9e
commit 9cdfebda9a
22 changed files with 215 additions and 348 deletions

View File

@ -18,9 +18,6 @@ public class EnvironmentallyAwareEventHandler {
}
protected void teleportWolf() {
if (player == null)
return;
if (event.getDamage() > wolf.getHealth()) {
return;
}
@ -29,9 +26,6 @@ public class EnvironmentallyAwareEventHandler {
}
protected void sendAbilityMessage() {
if (player == null)
return;
player.sendMessage(LocaleLoader.getString("Taming.Listener.Wolf"));
}

View File

@ -1,6 +1,7 @@
package com.gmail.nossr50.skills.taming;
import com.gmail.nossr50.config.AdvancedConfig;
import com.gmail.nossr50.config.Config;
public class Taming {
public static int environmentallyAwareUnlockLevel = AdvancedConfig.getInstance().getEnviromentallyAwareUnlock();
@ -21,4 +22,10 @@ public class Taming {
public static int thickFurUnlockLevel = AdvancedConfig.getInstance().getThickFurUnlock();
public static int thickFurModifier = AdvancedConfig.getInstance().getThickFurModifier();
public static int wolfXP = Config.getInstance().getTamingXPWolf();
public static int ocelotXP = Config.getInstance().getTamingXPOcelot();
public static boolean pvpEnabled = Config.getInstance().getTamingPVP();
public static boolean pveEnabled = Config.getInstance().getTamingPVE();
}

View File

@ -6,11 +6,14 @@ import org.bukkit.entity.Player;
import org.bukkit.entity.Wolf;
import org.bukkit.event.entity.EntityDamageEvent;
import org.bukkit.event.entity.EntityDamageEvent.DamageCause;
import org.bukkit.event.entity.EntityTameEvent;
import org.bukkit.inventory.ItemStack;
import com.gmail.nossr50.mcMMO;
import com.gmail.nossr50.config.Config;
import com.gmail.nossr50.skills.SkillManager;
import com.gmail.nossr50.skills.SkillType;
import com.gmail.nossr50.skills.Skills;
import com.gmail.nossr50.util.Misc;
import com.gmail.nossr50.util.Permissions;
@ -22,6 +25,30 @@ public class TamingManager extends SkillManager {
this.configInstance = Config.getInstance();
}
/**
* Award XP for taming.
*
* @param event The event to award XP for
*/
public void awardTamingXP(EntityTameEvent event) {
if (mcMMO.placeStore.isSpawnedMob(event.getEntity())) {
return;
}
switch (event.getEntityType()) {
case WOLF:
Skills.xpProcessing(player, profile, SkillType.TAMING, Taming.wolfXP);
break;
case OCELOT:
Skills.xpProcessing(player, profile, SkillType.TAMING, Taming.ocelotXP);
break;
default:
break;
}
}
/**
* Apply the Fast Food Service ability.
*
@ -29,14 +56,7 @@ public class TamingManager extends SkillManager {
* @param damage The damage being absorbed by the wolf
*/
public void fastFoodService(Wolf wolf, int damage) {
if (player == null)
return;
if (!Permissions.fastFoodService(player)) {
return;
}
if (skillLevel >= Taming.fastFoodServiceUnlockLevel) {
if (skillLevel >= Taming.fastFoodServiceUnlockLevel && Permissions.fastFoodService(player)) {
if (Misc.getRandom().nextInt(activationChance) < Taming.fastFoodServiceActivationChance) {
FastFoodServiceEventHandler eventHandler = new FastFoodServiceEventHandler(wolf);
@ -51,14 +71,7 @@ public class TamingManager extends SkillManager {
* @param event The event to modify
*/
public void sharpenedClaws(EntityDamageEvent event) {
if (player == null)
return;
if (!Permissions.sharpenedClaws(player)) {
return;
}
if (skillLevel >= Taming.sharpenedClawsUnlockLevel) {
if (skillLevel >= Taming.sharpenedClawsUnlockLevel && Permissions.sharpenedClaws(player)) {
SharpenedClawsEventHandler eventHandler = new SharpenedClawsEventHandler(event);
eventHandler.modifyEventDamage();
@ -71,9 +84,6 @@ public class TamingManager extends SkillManager {
* @param event The event to modify
*/
public void gore(EntityDamageEvent event) {
if (player == null)
return;
if (!Permissions.gore(player)) {
return;
}
@ -143,15 +153,11 @@ public class TamingManager extends SkillManager {
* @param livingEntity The entity to examine
*/
public void beastLore(LivingEntity livingEntity) {
if (player == null)
return;
if (!Permissions.beastLore(player)) {
return;
}
BeastLoreEventHandler eventHandler = new BeastLoreEventHandler(player, livingEntity);
eventHandler.sendInspectMessage();
}
@ -193,14 +199,7 @@ public class TamingManager extends SkillManager {
* @param cause The damage cause of the event
*/
private void environmentallyAware(EntityDamageEvent event, DamageCause cause) {
if (player == null)
return;
if (!Permissions.environmentallyAware(player)) {
return;
}
if (skillLevel >= Taming.environmentallyAwareUnlockLevel) {
if (skillLevel >= Taming.environmentallyAwareUnlockLevel && Permissions.environmentallyAware(player)) {
EnvironmentallyAwareEventHandler eventHandler = new EnvironmentallyAwareEventHandler(this, event);
switch (cause) {
@ -228,16 +227,8 @@ public class TamingManager extends SkillManager {
* @param cause The damage cause of the event
*/
private void thickFur(EntityDamageEvent event, DamageCause cause) {
if (player == null)
return;
if (!Permissions.thickFur(player)) {
return;
}
if (skillLevel >= Taming.thickFurUnlockLevel) {
if (skillLevel >= Taming.thickFurUnlockLevel && Permissions.thickFur(player)) {
ThickFurEventHandler eventHandler = new ThickFurEventHandler(event, cause);
eventHandler.modifyEventDamage();
}
}
@ -248,16 +239,8 @@ public class TamingManager extends SkillManager {
* @param event The event to modify
*/
private void shockProof(EntityDamageEvent event) {
if (player == null)
return;
if (!Permissions.shockProof(player)) {
return;
}
if (skillLevel >= Taming.shockProofUnlockLevel) {
if (skillLevel >= Taming.shockProofUnlockLevel && Permissions.shockProof(player)) {
ShockProofEventHandler eventHandler = new ShockProofEventHandler(event);
eventHandler.modifyEventDamage();
}
}