mirror of
https://github.com/mcMMO-Dev/mcMMO.git
synced 2025-06-25 02:04:44 +02:00
Adding Fishermans Diet ability to fishing.
This commit is contained in:
@ -10,10 +10,12 @@ public class FishingCommand extends SkillCommand {
|
||||
private int lootTier;
|
||||
private String magicChance;
|
||||
private String shakeChance;
|
||||
private String fishermansDietRank;
|
||||
|
||||
private boolean canTreasureHunt;
|
||||
private boolean canMagicHunt;
|
||||
private boolean canShake;
|
||||
private boolean canFishermansDiet;
|
||||
|
||||
public FishingCommand() {
|
||||
super(SkillType.FISHING);
|
||||
@ -24,6 +26,22 @@ public class FishingCommand extends SkillCommand {
|
||||
lootTier = Fishing.getFishingLootTier(profile);
|
||||
magicChance = percent.format((float) lootTier / 15);
|
||||
shakeChance = String.valueOf(Fishing.getShakeChance(lootTier));
|
||||
|
||||
if (skillValue >= 1000) {
|
||||
fishermansDietRank = "5";
|
||||
}
|
||||
else if (skillValue >= 800) {
|
||||
fishermansDietRank = "4";
|
||||
}
|
||||
else if (skillValue >= 600) {
|
||||
fishermansDietRank = "3";
|
||||
}
|
||||
else if (skillValue >= 400) {
|
||||
fishermansDietRank = "2";
|
||||
}
|
||||
else {
|
||||
fishermansDietRank = "1";
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
@ -31,6 +49,7 @@ public class FishingCommand extends SkillCommand {
|
||||
canTreasureHunt = permInstance.fishingTreasures(player);
|
||||
canMagicHunt = permInstance.fishingMagic(player);
|
||||
canShake = permInstance.shakeMob(player);
|
||||
canFishermansDiet = permInstance.fishermansDiet(player);
|
||||
}
|
||||
|
||||
@Override
|
||||
@ -51,6 +70,10 @@ public class FishingCommand extends SkillCommand {
|
||||
if (canShake) {
|
||||
player.sendMessage(LocaleLoader.getString("Effects.Template", new Object[] { LocaleLoader.getString("Fishing.Effect.4"), LocaleLoader.getString("Fishing.Effect.5") }));
|
||||
}
|
||||
|
||||
if (canFishermansDiet) {
|
||||
player.sendMessage(LocaleLoader.getString("Effects.Template", new Object[] { LocaleLoader.getString("Fishing.Effect.6"), LocaleLoader.getString("Fishing.Effect.7") }));
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
@ -76,5 +99,9 @@ public class FishingCommand extends SkillCommand {
|
||||
player.sendMessage(LocaleLoader.getString("Fishing.Ability.Shake", new Object[] { shakeChance }));
|
||||
}
|
||||
}
|
||||
|
||||
if (canFishermansDiet) {
|
||||
player.sendMessage(LocaleLoader.getString("Fishing.Ability.FD", new Object[] { fishermansDietRank }));
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -261,10 +261,6 @@ public class EntityListener implements Listener {
|
||||
int currentFoodLevel = player.getFoodLevel();
|
||||
int newFoodLevel = event.getFoodLevel();
|
||||
|
||||
if (!Permissions.getInstance().farmersDiet(player)) {
|
||||
return;
|
||||
}
|
||||
|
||||
/*
|
||||
* Some foods have 3 ranks
|
||||
* Some foods have 5 ranks
|
||||
@ -275,65 +271,97 @@ public class EntityListener implements Listener {
|
||||
if (newFoodLevel > currentFoodLevel) {
|
||||
Material food = player.getItemInHand().getType();
|
||||
int herbLevel = profile.getSkillLevel(SkillType.HERBALISM);
|
||||
int fishLevel = profile.getSkillLevel(SkillType.FISHING);
|
||||
int foodChange = newFoodLevel - currentFoodLevel;
|
||||
int rankChange = 0;
|
||||
boolean fish = false;
|
||||
boolean herb = false;
|
||||
|
||||
switch (food) {
|
||||
case BREAD:
|
||||
/* BREAD RESTORES 2 1/2 HUNGER - RESTORES 5 HUNGER @ 1000 */
|
||||
rankChange = 200;
|
||||
herb = true;
|
||||
break;
|
||||
|
||||
case COOKIE:
|
||||
/* COOKIE RESTORES 1/2 HUNGER - RESTORES 2 HUNGER @ 1000 */
|
||||
rankChange = 400;
|
||||
herb = true;
|
||||
break;
|
||||
|
||||
case MELON:
|
||||
/* MELON RESTORES 1 HUNGER - RESTORES 2 1/2 HUNGER @ 1000 */
|
||||
rankChange = 400;
|
||||
herb = true;
|
||||
break;
|
||||
|
||||
case MUSHROOM_SOUP:
|
||||
/* MUSHROOM SOUP RESTORES 4 HUNGER - RESTORES 6 1/2 HUNGER @ 1000 */
|
||||
rankChange = 200;
|
||||
herb = true;
|
||||
break;
|
||||
|
||||
case CARROT_ITEM:
|
||||
/* CARROT RESTORES 2 HUNGER - RESTORES 4 1/2 HUNGER @ 1000 */
|
||||
rankChange = 200;
|
||||
herb = true;
|
||||
break;
|
||||
|
||||
case POTATO_ITEM:
|
||||
/* POTATO RESTORES 1/2 HUNGER - RESTORES 2 HUNGER @ 1000 */
|
||||
rankChange = 400;
|
||||
herb = true;
|
||||
break;
|
||||
|
||||
case BAKED_POTATO:
|
||||
/* BAKED POTATO RESTORES 3 HUNGER - RESTORES 5 1/2 HUNGER @ 1000 */
|
||||
rankChange = 200;
|
||||
herb = true;
|
||||
break;
|
||||
|
||||
case POISONOUS_POTATO:
|
||||
/* POISONOUS POTATO RESTORES 1 HUNGER - RESTORES 2 1/2 HUNGER @ 1000 */
|
||||
rankChange = 400;
|
||||
herb = true;
|
||||
break;
|
||||
|
||||
case GOLDEN_CARROT:
|
||||
/* GOLDEN CARROT RESTORES 3 HUNGER - RESTORES 5 1/2 HUNGER @ 1000 */
|
||||
rankChange = 200;
|
||||
herb = true;
|
||||
break;
|
||||
|
||||
case PUMPKIN_PIE:
|
||||
/* PUMPKIN PIE RESTORES 4 HUNGER - RESTORES 6 1/2 HUNGER @ 1000 */
|
||||
rankChange = 200;
|
||||
herb = true;
|
||||
break;
|
||||
|
||||
case RAW_FISH:
|
||||
/* RAW FISH RESTORES 1 HUNGER - RESTORES 2 1/2 HUNGER @ 1000 */
|
||||
rankChange = 400;
|
||||
fish = true;
|
||||
break;
|
||||
|
||||
case COOKED_FISH:
|
||||
/* COOKED FISH RESTORES 2 1/2 HUNGER - RESTORES 5 HUNGER @ 1000 */
|
||||
rankChange = 200;
|
||||
fish = true;
|
||||
break;
|
||||
default:
|
||||
return;
|
||||
}
|
||||
|
||||
if (herb && !Permissions.getInstance().farmersDiet(player)) {
|
||||
return;
|
||||
}
|
||||
else if (fish && !Permissions.getInstance().fishermansDiet(player)) {
|
||||
return;
|
||||
}
|
||||
|
||||
for (int i = 200; i <= 1000; i += rankChange) {
|
||||
if (herbLevel >= i) {
|
||||
if ((herb && herbLevel >= i) || (fish && fishLevel >= i)) {
|
||||
foodChange++;
|
||||
}
|
||||
}
|
||||
|
@ -120,6 +120,10 @@ public class Permissions {
|
||||
return player.hasPermission("mcmmo.ability.fishing.magic");
|
||||
}
|
||||
|
||||
public boolean fishermansDiet(Player player) {
|
||||
return player.hasPermission("mcmmo.ability.fishing.fishermansdiet");
|
||||
}
|
||||
|
||||
/*
|
||||
* MCMMO.ABILITY.MINING.*
|
||||
*/
|
||||
|
Reference in New Issue
Block a user