Quit passing this event around.

This commit is contained in:
GJ 2013-02-26 18:21:14 -05:00
parent e46ed07b94
commit 0201ed332f
4 changed files with 34 additions and 41 deletions

View File

@ -388,23 +388,23 @@ public class EntityListener implements Listener {
case GOLDEN_CARROT: /* RESTORES 3 HUNGER - RESTORES 5 1/2 HUNGER @ 1000 */ case GOLDEN_CARROT: /* RESTORES 3 HUNGER - RESTORES 5 1/2 HUNGER @ 1000 */
case MUSHROOM_SOUP: /* RESTORES 4 HUNGER - RESTORES 6 1/2 HUNGER @ 1000 */ case MUSHROOM_SOUP: /* RESTORES 4 HUNGER - RESTORES 6 1/2 HUNGER @ 1000 */
case PUMPKIN_PIE: /* RESTORES 4 HUNGER - RESTORES 6 1/2 HUNGER @ 1000 */ case PUMPKIN_PIE: /* RESTORES 4 HUNGER - RESTORES 6 1/2 HUNGER @ 1000 */
Herbalism.farmersDiet(player, Herbalism.farmersDietRankLevel1, event); event.setFoodLevel(Herbalism.farmersDiet(player, Herbalism.farmersDietRankLevel1, newFoodLevel));
break; return;
case COOKIE: /* RESTORES 1/2 HUNGER - RESTORES 2 HUNGER @ 1000 */ case COOKIE: /* RESTORES 1/2 HUNGER - RESTORES 2 HUNGER @ 1000 */
case MELON: /* RESTORES 1 HUNGER - RESTORES 2 1/2 HUNGER @ 1000 */ case MELON: /* RESTORES 1 HUNGER - RESTORES 2 1/2 HUNGER @ 1000 */
case POISONOUS_POTATO: /* RESTORES 1 HUNGER - RESTORES 2 1/2 HUNGER @ 1000 */ case POISONOUS_POTATO: /* RESTORES 1 HUNGER - RESTORES 2 1/2 HUNGER @ 1000 */
case POTATO_ITEM: /* RESTORES 1/2 HUNGER - RESTORES 2 HUNGER @ 1000 */ case POTATO_ITEM: /* RESTORES 1/2 HUNGER - RESTORES 2 HUNGER @ 1000 */
Herbalism.farmersDiet(player, Herbalism.farmersDietRankLevel2, event); event.setFoodLevel(Herbalism.farmersDiet(player, Herbalism.farmersDietRankLevel2, newFoodLevel));
break; return;
case COOKED_FISH: /* RESTORES 2 1/2 HUNGER - RESTORES 5 HUNGER @ 1000 */ case COOKED_FISH: /* RESTORES 2 1/2 HUNGER - RESTORES 5 HUNGER @ 1000 */
Fishing.beginFishermansDiet(player, Fishing.fishermansDietRankLevel1, event); event.setFoodLevel(Fishing.beginFishermansDiet(player, Fishing.fishermansDietRankLevel1, newFoodLevel));
break; return;
case RAW_FISH: /* RESTORES 1 HUNGER - RESTORES 2 1/2 HUNGER @ 1000 */ case RAW_FISH: /* RESTORES 1 HUNGER - RESTORES 2 1/2 HUNGER @ 1000 */
Fishing.beginFishermansDiet(player, Fishing.fishermansDietRankLevel2, event); event.setFoodLevel(Fishing.beginFishermansDiet(player, Fishing.fishermansDietRankLevel2, newFoodLevel));
break; return;
default: default:
return; return;

View File

@ -8,7 +8,6 @@ import org.bukkit.enchantments.Enchantment;
import org.bukkit.entity.Item; import org.bukkit.entity.Item;
import org.bukkit.entity.LivingEntity; import org.bukkit.entity.LivingEntity;
import org.bukkit.entity.Player; import org.bukkit.entity.Player;
import org.bukkit.event.entity.FoodLevelChangeEvent;
import org.bukkit.event.player.PlayerFishEvent; import org.bukkit.event.player.PlayerFishEvent;
import org.bukkit.inventory.ItemStack; import org.bukkit.inventory.ItemStack;
@ -26,30 +25,28 @@ import com.gmail.nossr50.util.Misc;
import com.gmail.nossr50.util.Permissions; import com.gmail.nossr50.util.Permissions;
public final class Fishing { public final class Fishing {
static final AdvancedConfig ADVANCED_CONFIG = AdvancedConfig.getInstance();
// The order of the values is extremely important, a few methods depend on it to work properly // The order of the values is extremely important, a few methods depend on it to work properly
protected enum Tier { protected enum Tier {
FIVE(5) { FIVE(5) {
@Override public int getLevel() {return ADVANCED_CONFIG.getFishingTierLevelsTier5();} @Override public int getLevel() {return AdvancedConfig.getInstance().getFishingTierLevelsTier5();}
@Override public int getShakeChance() {return ADVANCED_CONFIG.getShakeChanceRank5();} @Override public int getShakeChance() {return AdvancedConfig.getInstance().getShakeChanceRank5();}
@Override public int getVanillaXPBoostModifier() {return ADVANCED_CONFIG.getFishingVanillaXPModifierRank5();}}, @Override public int getVanillaXPBoostModifier() {return AdvancedConfig.getInstance().getFishingVanillaXPModifierRank5();}},
FOUR(4) { FOUR(4) {
@Override public int getLevel() {return ADVANCED_CONFIG.getFishingTierLevelsTier4();} @Override public int getLevel() {return AdvancedConfig.getInstance().getFishingTierLevelsTier4();}
@Override public int getShakeChance() {return ADVANCED_CONFIG.getShakeChanceRank4();} @Override public int getShakeChance() {return AdvancedConfig.getInstance().getShakeChanceRank4();}
@Override public int getVanillaXPBoostModifier() {return ADVANCED_CONFIG.getFishingVanillaXPModifierRank4();}}, @Override public int getVanillaXPBoostModifier() {return AdvancedConfig.getInstance().getFishingVanillaXPModifierRank4();}},
THREE(3) { THREE(3) {
@Override public int getLevel() {return ADVANCED_CONFIG.getFishingTierLevelsTier3();} @Override public int getLevel() {return AdvancedConfig.getInstance().getFishingTierLevelsTier3();}
@Override public int getShakeChance() {return ADVANCED_CONFIG.getShakeChanceRank3();} @Override public int getShakeChance() {return AdvancedConfig.getInstance().getShakeChanceRank3();}
@Override public int getVanillaXPBoostModifier() {return ADVANCED_CONFIG.getFishingVanillaXPModifierRank3();}}, @Override public int getVanillaXPBoostModifier() {return AdvancedConfig.getInstance().getFishingVanillaXPModifierRank3();}},
TWO(2) { TWO(2) {
@Override public int getLevel() {return ADVANCED_CONFIG.getFishingTierLevelsTier2();} @Override public int getLevel() {return AdvancedConfig.getInstance().getFishingTierLevelsTier2();}
@Override public int getShakeChance() {return ADVANCED_CONFIG.getShakeChanceRank2();} @Override public int getShakeChance() {return AdvancedConfig.getInstance().getShakeChanceRank2();}
@Override public int getVanillaXPBoostModifier() {return ADVANCED_CONFIG.getFishingVanillaXPModifierRank2();}}, @Override public int getVanillaXPBoostModifier() {return AdvancedConfig.getInstance().getFishingVanillaXPModifierRank2();}},
ONE(1) { ONE(1) {
@Override public int getLevel() {return ADVANCED_CONFIG.getFishingTierLevelsTier1();} @Override public int getLevel() {return AdvancedConfig.getInstance().getFishingTierLevelsTier1();}
@Override public int getShakeChance() {return ADVANCED_CONFIG.getShakeChanceRank1();} @Override public int getShakeChance() {return AdvancedConfig.getInstance().getShakeChanceRank1();}
@Override public int getVanillaXPBoostModifier() {return ADVANCED_CONFIG.getFishingVanillaXPModifierRank1();}}; @Override public int getVanillaXPBoostModifier() {return AdvancedConfig.getInstance().getFishingVanillaXPModifierRank1();}};
int numerical; int numerical;
@ -67,7 +64,7 @@ public final class Fishing {
} }
// TODO: Get rid of that // TODO: Get rid of that
public static int fishermansDietRankLevel1 = ADVANCED_CONFIG.getFishermanDietRankChange(); public static int fishermansDietRankLevel1 = AdvancedConfig.getInstance().getFishermanDietRankChange();
public static int fishermansDietRankLevel2 = fishermansDietRankLevel1 * 2; public static int fishermansDietRankLevel2 = fishermansDietRankLevel1 * 2;
public static int fishermansDietMaxLevel = fishermansDietRankLevel1 * 5; public static int fishermansDietMaxLevel = fishermansDietRankLevel1 * 5;
@ -80,14 +77,13 @@ public final class Fishing {
* @param rankChange ??? * @param rankChange ???
* @param event Event to process * @param event Event to process
*/ */
public static void beginFishermansDiet(Player player, int rankChange, FoodLevelChangeEvent event) { public static int beginFishermansDiet(Player player, int rankChange, int eventFoodLevel) {
// TODO: The permission should probably not be checked here // TODO: The permission should probably not be checked here
// TODO: Also I don't like the idea of moving event around
if (!Permissions.fishermansDiet(player)) { if (!Permissions.fishermansDiet(player)) {
return; return eventFoodLevel;
} }
SkillTools.handleFoodSkills(player, SkillType.FISHING, event, fishermansDietRankLevel1, fishermansDietMaxLevel, rankChange); return SkillTools.handleFoodSkills(player, SkillType.FISHING, eventFoodLevel, fishermansDietRankLevel1, fishermansDietMaxLevel, rankChange);
} }
/** /**
@ -198,7 +194,7 @@ public final class Fishing {
activationChance = (int) (activationChance * 0.909); activationChance = (int) (activationChance * 0.909);
} }
if (Misc.getRandom().nextInt(activationChance) > getLootTier(skillLevel) * ADVANCED_CONFIG.getFishingMagicMultiplier()) { if (Misc.getRandom().nextInt(activationChance) > getLootTier(skillLevel) * AdvancedConfig.getInstance().getFishingMagicMultiplier()) {
return false; return false;
} }

View File

@ -9,7 +9,6 @@ import org.bukkit.block.Block;
import org.bukkit.block.BlockFace; import org.bukkit.block.BlockFace;
import org.bukkit.block.BlockState; import org.bukkit.block.BlockState;
import org.bukkit.entity.Player; import org.bukkit.entity.Player;
import org.bukkit.event.entity.FoodLevelChangeEvent;
import org.bukkit.inventory.ItemStack; import org.bukkit.inventory.ItemStack;
import org.bukkit.inventory.PlayerInventory; import org.bukkit.inventory.PlayerInventory;
@ -57,12 +56,12 @@ public class Herbalism {
* @param rankChange The # of levels to change rank for the food * @param rankChange The # of levels to change rank for the food
* @param event The actual FoodLevelChange event * @param event The actual FoodLevelChange event
*/ */
public static void farmersDiet(Player player, int rankChange, FoodLevelChangeEvent event) { public static int farmersDiet(Player player, int rankChange, int eventFoodLevel) {
if (!Permissions.farmersDiet(player)) { if (!Permissions.farmersDiet(player)) {
return; return eventFoodLevel;
} }
SkillTools.handleFoodSkills(player, SkillType.HERBALISM, event, farmersDietRankLevel1, farmersDietMaxLevel, rankChange); return SkillTools.handleFoodSkills(player, SkillType.HERBALISM, eventFoodLevel, farmersDietRankLevel1, farmersDietMaxLevel, rankChange);
} }
/** /**

View File

@ -7,7 +7,6 @@ import org.bukkit.Material;
import org.bukkit.block.Block; import org.bukkit.block.Block;
import org.bukkit.enchantments.Enchantment; import org.bukkit.enchantments.Enchantment;
import org.bukkit.entity.Player; import org.bukkit.entity.Player;
import org.bukkit.event.entity.FoodLevelChangeEvent;
import org.bukkit.inventory.ItemStack; import org.bukkit.inventory.ItemStack;
import org.bukkit.inventory.PlayerInventory; import org.bukkit.inventory.PlayerInventory;
import org.bukkit.inventory.meta.ItemMeta; import org.bukkit.inventory.meta.ItemMeta;
@ -38,12 +37,11 @@ import com.gmail.nossr50.util.StringUtils;
import com.gmail.nossr50.util.Users; import com.gmail.nossr50.util.Users;
public class SkillTools { public class SkillTools {
public static void handleFoodSkills(Player player, SkillType skill, FoodLevelChangeEvent event, int baseLevel, int maxLevel, int rankChange) { public static int handleFoodSkills(Player player, SkillType skill, int eventFoodLevel, int baseLevel, int maxLevel, int rankChange) {
int skillLevel = Users.getPlayer(player).getProfile().getSkillLevel(skill); int skillLevel = Users.getPlayer(player).getProfile().getSkillLevel(skill);
int currentFoodLevel = player.getFoodLevel(); int currentFoodLevel = player.getFoodLevel();
int newFoodLevel = event.getFoodLevel(); int foodChange = eventFoodLevel - currentFoodLevel;
int foodChange = newFoodLevel - currentFoodLevel;
for (int i = baseLevel; i <= maxLevel; i+= rankChange) { for (int i = baseLevel; i <= maxLevel; i+= rankChange) {
if (skillLevel >= i) { if (skillLevel >= i) {
@ -51,7 +49,7 @@ public class SkillTools {
} }
} }
event.setFoodLevel(currentFoodLevel + foodChange); return currentFoodLevel + foodChange;
} }
/** /**