mcMMO/src/main/java/com/gmail/nossr50/skills/herbalism/HerbalismCommand.java

181 lines
8.0 KiB
Java
Raw Normal View History

package com.gmail.nossr50.skills.herbalism;
2012-01-09 20:00:13 +01:00
import org.bukkit.Material;
2012-04-27 11:47:11 +02:00
import com.gmail.nossr50.locale.LocaleLoader;
import com.gmail.nossr50.skills.SkillCommand;
import com.gmail.nossr50.skills.utilities.SkillType;
2013-01-07 02:52:31 +01:00
import com.gmail.nossr50.util.Permissions;
2012-01-09 20:00:13 +01:00
2012-05-31 20:36:14 +02:00
public class HerbalismCommand extends SkillCommand {
2012-04-24 15:21:21 +02:00
private String greenTerraLength;
private String greenTerraLengthEndurance;
2012-04-24 15:21:21 +02:00
private String greenThumbChance;
private String greenThumbChanceLucky;
2012-04-24 15:21:21 +02:00
private String greenThumbStage;
private String farmersDietRank;
private String doubleDropChance;
private String doubleDropChanceLucky;
private String hylianLuckChance;
private String hylianLuckChanceLucky;
private String shroomThumbChance;
private String shroomThumbChanceLucky;
2012-04-24 15:21:21 +02:00
private boolean hasHylianLuck;
2012-05-01 15:11:56 +02:00
private boolean canGreenTerra;
private boolean canGreenThumbWheat;
private boolean canGreenThumbBlocks;
private boolean canFarmersDiet;
private boolean canDoubleDrop;
private boolean canShroomThumb;
private boolean doubleDropsDisabled;
2012-05-01 15:11:56 +02:00
2012-05-31 20:36:14 +02:00
public HerbalismCommand() {
super(SkillType.HERBALISM);
2012-04-24 15:21:21 +02:00
}
2012-05-31 20:36:14 +02:00
@Override
protected void dataCalculations() {
//GREEN TERRA
String[] greenTerraStrings = calculateLengthDisplayValues();
greenTerraLength = greenTerraStrings[0];
greenTerraLengthEndurance = greenTerraStrings[1];
//FARMERS DIET
farmersDietRank = calculateRank(Herbalism.farmersDietMaxLevel, Herbalism.farmersDietRankLevel1);
//GREEN THUMB
greenThumbStage = calculateRank(Herbalism.greenThumbStageMaxLevel, Herbalism.greenThumbStageChangeLevel);
String[] greenThumbStrings = calculateAbilityDisplayValues(Herbalism.greenThumbMaxLevel, Herbalism.greenThumbMaxChance);
greenThumbChance = greenThumbStrings[0];
greenThumbChanceLucky = greenThumbStrings[1];
//DOUBLE DROPS
String[] doubleDropStrings = calculateAbilityDisplayValues(Herbalism.doubleDropsMaxLevel, Herbalism.doubleDropsMaxChance);
doubleDropChance = doubleDropStrings[0];
doubleDropChanceLucky = doubleDropStrings[1];
//HYLIAN LUCK
String[] hylianLuckStrings = calculateAbilityDisplayValues(Herbalism.hylianLuckMaxLevel, Herbalism.hylianLuckMaxChance);
hylianLuckChance = hylianLuckStrings[0];
hylianLuckChanceLucky = hylianLuckStrings[1];
//SHROOM THUMB
String[] shroomThumbStrings = calculateAbilityDisplayValues(Herbalism.shroomThumbMaxLevel, Herbalism.shroomThumbMaxChance);
shroomThumbChance = shroomThumbStrings[0];
shroomThumbChanceLucky = shroomThumbStrings[1];
2012-04-24 15:21:21 +02:00
}
2012-05-01 15:11:56 +02:00
2012-05-31 20:36:14 +02:00
@Override
protected void permissionsCheck() {
hasHylianLuck = Permissions.hylianLuck(player);
2013-01-07 02:52:31 +01:00
canGreenTerra = Permissions.greenTerra(player);
canGreenThumbWheat = Permissions.greenThumbPlant(player, Material.CROPS); //TODO: This isn't really accurate - they could have perms for other crops but not wheat.
canGreenThumbBlocks = (Permissions.greenThumbBlock(player, Material.DIRT) || Permissions.greenThumbBlock(player, Material.COBBLESTONE) || Permissions.greenThumbBlock(player, Material.COBBLE_WALL) || Permissions.greenThumbBlock(player, Material.SMOOTH_BRICK));
2013-01-07 02:52:31 +01:00
canFarmersDiet = Permissions.farmersDiet(player);
canDoubleDrop = Permissions.doubleDrops(player, skill);
doubleDropsDisabled = skill.getDoubleDropsDisabled();
canShroomThumb = Permissions.shroomThumb(player);
2012-05-01 15:11:56 +02:00
}
2012-05-31 20:36:14 +02:00
@Override
protected boolean effectsHeaderPermissions() {
return canGreenTerra || (canDoubleDrop && !doubleDropsDisabled) || canFarmersDiet || canGreenThumbBlocks || canGreenThumbWheat || canShroomThumb;
2012-05-31 20:36:14 +02:00
}
@Override
protected void effectsDisplay() {
luckyEffectsDisplay();
2012-11-22 22:40:55 +01:00
2012-05-31 20:36:14 +02:00
if (canGreenTerra) {
2013-02-02 08:55:49 +01:00
player.sendMessage(LocaleLoader.getString("Effects.Template", LocaleLoader.getString("Herbalism.Effect.0"), LocaleLoader.getString("Herbalism.Effect.1")));
2012-05-31 20:36:14 +02:00
}
if (canGreenThumbWheat) {
2013-02-02 08:55:49 +01:00
player.sendMessage(LocaleLoader.getString("Effects.Template", LocaleLoader.getString("Herbalism.Effect.2"), LocaleLoader.getString("Herbalism.Effect.3")));
2012-05-31 20:36:14 +02:00
}
if (canGreenThumbBlocks) {
2013-02-02 08:55:49 +01:00
player.sendMessage(LocaleLoader.getString("Effects.Template", LocaleLoader.getString("Herbalism.Effect.4"), LocaleLoader.getString("Herbalism.Effect.5")));
2012-05-31 20:36:14 +02:00
}
if (canFarmersDiet) {
2013-02-02 08:55:49 +01:00
player.sendMessage(LocaleLoader.getString("Effects.Template", LocaleLoader.getString("Herbalism.Effect.6"), LocaleLoader.getString("Herbalism.Effect.7")));
2012-05-31 20:36:14 +02:00
}
if (hasHylianLuck) {
2013-02-02 08:55:49 +01:00
player.sendMessage(LocaleLoader.getString("Effects.Template", LocaleLoader.getString("Herbalism.Effect.10"), LocaleLoader.getString("Herbalism.Effect.11")));
}
if (canShroomThumb) {
player.sendMessage(LocaleLoader.getString("Effects.Template", LocaleLoader.getString("Herbalism.Effect.12"), LocaleLoader.getString("Herbalism.Effect.13")));
}
2012-05-31 20:36:14 +02:00
if (canDoubleDrop && !doubleDropsDisabled) {
2013-02-02 08:55:49 +01:00
player.sendMessage(LocaleLoader.getString("Effects.Template", LocaleLoader.getString("Herbalism.Effect.8"), LocaleLoader.getString("Herbalism.Effect.9")));
2012-05-31 20:36:14 +02:00
}
}
@Override
protected boolean statsHeaderPermissions() {
return canGreenTerra || (canDoubleDrop && !doubleDropsDisabled) || canFarmersDiet || canGreenThumbBlocks || canGreenThumbWheat || canShroomThumb;
2012-05-31 20:36:14 +02:00
}
@Override
protected void statsDisplay() {
if (canGreenTerra) {
if (hasEndurance) {
2013-02-02 08:55:49 +01:00
player.sendMessage(LocaleLoader.getString("Herbalism.Ability.GTe.Length", greenTerraLength) + LocaleLoader.getString("Perks.activationtime.bonus", greenTerraLengthEndurance));
}
else {
2013-02-02 08:55:49 +01:00
player.sendMessage(LocaleLoader.getString("Herbalism.Ability.GTe.Length", greenTerraLength));
}
2012-05-31 20:36:14 +02:00
}
if (canGreenThumbBlocks || canGreenThumbWheat) {
if (isLucky) {
2013-02-02 08:55:49 +01:00
player.sendMessage(LocaleLoader.getString("Herbalism.Ability.GTh.Chance", greenThumbChance) + LocaleLoader.getString("Perks.lucky.bonus", greenThumbChanceLucky));
}
else {
2013-02-02 08:55:49 +01:00
player.sendMessage(LocaleLoader.getString("Herbalism.Ability.GTh.Chance", greenThumbChance));
}
2012-05-31 20:36:14 +02:00
}
if (canGreenThumbWheat) {
2013-02-02 08:55:49 +01:00
player.sendMessage(LocaleLoader.getString("Herbalism.Ability.GTh.Stage", greenThumbStage));
2012-05-31 20:36:14 +02:00
}
if (canFarmersDiet) {
2013-02-02 08:55:49 +01:00
player.sendMessage(LocaleLoader.getString("Herbalism.Ability.FD", farmersDietRank));
2012-05-31 20:36:14 +02:00
}
if (hasHylianLuck) {
if (isLucky) {
2013-02-02 08:55:49 +01:00
player.sendMessage(LocaleLoader.getString("Herbalism.Ability.HylianLuck", hylianLuckChance) + LocaleLoader.getString("Perks.lucky.bonus", hylianLuckChanceLucky));
}
else {
2013-02-02 08:55:49 +01:00
player.sendMessage(LocaleLoader.getString("Herbalism.Ability.HylianLuck", hylianLuckChance));
}
}
if (canShroomThumb) {
if (isLucky) {
player.sendMessage(LocaleLoader.getString("Herbalism.Ability.ShroomThumb.Chance", shroomThumbChance) + LocaleLoader.getString("Perks.lucky.bonus", shroomThumbChanceLucky));
}
else {
player.sendMessage(LocaleLoader.getString("Herbalism.Ability.ShroomThumb.Chance", shroomThumbChance));
}
}
2012-05-31 20:36:14 +02:00
if (canDoubleDrop && !doubleDropsDisabled) {
if (isLucky) {
2013-02-02 08:55:49 +01:00
player.sendMessage(LocaleLoader.getString("Herbalism.Ability.DoubleDropChance", doubleDropChance) + LocaleLoader.getString("Perks.lucky.bonus", doubleDropChanceLucky));
}
else {
2013-02-02 08:55:49 +01:00
player.sendMessage(LocaleLoader.getString("Herbalism.Ability.DoubleDropChance", doubleDropChance));
}
2012-05-31 20:36:14 +02:00
}
}
2012-01-09 20:00:13 +01:00
}