2013-01-22 18:43:25 +01:00
package com.gmail.nossr50.skills.herbalism ;
2012-01-09 20:00:13 +01:00
2013-02-19 06:56:25 +01:00
import org.bukkit.Material ;
2012-04-27 11:47:11 +02:00
import com.gmail.nossr50.locale.LocaleLoader ;
2013-01-22 18:43:25 +01:00
import com.gmail.nossr50.skills.SkillCommand ;
2013-01-30 17:53:51 +01:00
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 ;
2013-01-10 21:33:39 +01:00
private String greenTerraLengthEndurance ;
2012-04-24 15:21:21 +02:00
private String greenThumbChance ;
2013-01-06 12:16:08 +01:00
private String greenThumbChanceLucky ;
2012-04-24 15:21:21 +02:00
private String greenThumbStage ;
private String farmersDietRank ;
private String doubleDropChance ;
2013-01-06 12:16:08 +01:00
private String doubleDropChanceLucky ;
2013-01-19 18:33:57 +01:00
private String hylianLuckChance ;
private String hylianLuckChanceLucky ;
2013-02-25 15:58:25 +01:00
private String shroomThumbChance ;
private String shroomThumbChanceLucky ;
2012-04-24 15:21:21 +02:00
2013-01-19 18:33:57 +01: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 ;
2013-02-25 15:58:25 +01:00
private boolean canShroomThumb ;
2012-05-01 21:56:09 +02:00
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 ( ) {
2013-01-22 07:52:34 +01:00
//GREEN TERRA
String [ ] greenTerraStrings = calculateLengthDisplayValues ( ) ;
greenTerraLength = greenTerraStrings [ 0 ] ;
greenTerraLengthEndurance = greenTerraStrings [ 1 ] ;
2013-01-10 21:33:39 +01:00
2012-11-26 01:18:30 +01:00
//FARMERS DIET
2013-01-24 21:46:29 +01:00
farmersDietRank = calculateRank ( Herbalism . farmersDietMaxLevel , Herbalism . farmersDietRankLevel1 ) ;
2013-01-22 07:52:34 +01:00
2012-11-26 01:18:30 +01:00
//GREEN THUMB
2013-02-16 01:18:43 +01:00
greenThumbStage = calculateRank ( Herbalism . greenThumbStageMaxLevel , Herbalism . greenThumbStageChangeLevel ) ;
2013-01-22 07:52:34 +01:00
String [ ] greenThumbStrings = calculateAbilityDisplayValues ( Herbalism . greenThumbMaxLevel , Herbalism . greenThumbMaxChance ) ;
greenThumbChance = greenThumbStrings [ 0 ] ;
greenThumbChanceLucky = greenThumbStrings [ 1 ] ;
2012-11-26 01:18:30 +01:00
//DOUBLE DROPS
2013-01-22 07:52:34 +01:00
String [ ] doubleDropStrings = calculateAbilityDisplayValues ( Herbalism . doubleDropsMaxLevel , Herbalism . doubleDropsMaxChance ) ;
doubleDropChance = doubleDropStrings [ 0 ] ;
doubleDropChanceLucky = doubleDropStrings [ 1 ] ;
2013-01-19 18:33:57 +01:00
//HYLIAN LUCK
2013-01-22 07:52:34 +01:00
String [ ] hylianLuckStrings = calculateAbilityDisplayValues ( Herbalism . hylianLuckMaxLevel , Herbalism . hylianLuckMaxChance ) ;
hylianLuckChance = hylianLuckStrings [ 0 ] ;
hylianLuckChanceLucky = hylianLuckStrings [ 1 ] ;
2013-02-25 15:58:25 +01:00
//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 ( ) {
2013-01-19 18:33:57 +01:00
hasHylianLuck = Permissions . hylianLuck ( player ) ;
2013-01-07 02:52:31 +01:00
canGreenTerra = Permissions . greenTerra ( player ) ;
2013-02-19 06:56:25 +01:00
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 ) ;
2013-02-19 06:56:25 +01:00
canDoubleDrop = Permissions . doubleDrops ( player , skill ) ;
2013-02-20 22:44:15 +01:00
doubleDropsDisabled = skill . getDoubleDropsDisabled ( ) ;
2013-02-25 15:58:25 +01:00
canShroomThumb = Permissions . shroomThumb ( player ) ;
2012-05-01 15:11:56 +02:00
}
2012-05-31 20:36:14 +02:00
@Override
protected boolean effectsHeaderPermissions ( ) {
2013-02-25 15:58:25 +01:00
return canGreenTerra | | ( canDoubleDrop & & ! doubleDropsDisabled ) | | canFarmersDiet | | canGreenThumbBlocks | | canGreenThumbWheat | | canShroomThumb ;
2012-05-31 20:36:14 +02:00
}
@Override
protected void effectsDisplay ( ) {
2013-01-22 07:52:34 +01:00
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
}
2013-01-19 18:33:57 +01: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 " ) ) ) ;
2013-01-19 18:33:57 +01:00
}
2013-02-25 15:58:25 +01:00
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 ( ) {
2013-02-25 15:58:25 +01:00
return canGreenTerra | | ( canDoubleDrop & & ! doubleDropsDisabled ) | | canFarmersDiet | | canGreenThumbBlocks | | canGreenThumbWheat | | canShroomThumb ;
2012-05-31 20:36:14 +02:00
}
@Override
protected void statsDisplay ( ) {
if ( canGreenTerra ) {
2013-01-22 07:52:34 +01:00
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 ) ) ;
2013-01-22 07:52:34 +01:00
}
else {
2013-02-02 08:55:49 +01:00
player . sendMessage ( LocaleLoader . getString ( " Herbalism.Ability.GTe.Length " , greenTerraLength ) ) ;
2013-01-22 07:52:34 +01:00
}
2012-05-31 20:36:14 +02:00
}
if ( canGreenThumbBlocks | | canGreenThumbWheat ) {
2013-01-22 07:52:34 +01:00
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 ) ) ;
2013-01-22 07:52:34 +01:00
}
else {
2013-02-02 08:55:49 +01:00
player . sendMessage ( LocaleLoader . getString ( " Herbalism.Ability.GTh.Chance " , greenThumbChance ) ) ;
2013-01-22 07:52:34 +01:00
}
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
}
2013-01-19 18:33:57 +01:00
if ( hasHylianLuck ) {
2013-01-22 07:52:34 +01:00
if ( isLucky ) {
2013-02-02 08:55:49 +01:00
player . sendMessage ( LocaleLoader . getString ( " Herbalism.Ability.HylianLuck " , hylianLuckChance ) + LocaleLoader . getString ( " Perks.lucky.bonus " , hylianLuckChanceLucky ) ) ;
2013-01-22 07:52:34 +01:00
}
else {
2013-02-02 08:55:49 +01:00
player . sendMessage ( LocaleLoader . getString ( " Herbalism.Ability.HylianLuck " , hylianLuckChance ) ) ;
2013-01-22 07:52:34 +01:00
}
2013-01-19 18:33:57 +01:00
}
2013-02-25 15:58:25 +01:00
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 ) {
2013-01-22 07:52:34 +01:00
if ( isLucky ) {
2013-02-02 08:55:49 +01:00
player . sendMessage ( LocaleLoader . getString ( " Herbalism.Ability.DoubleDropChance " , doubleDropChance ) + LocaleLoader . getString ( " Perks.lucky.bonus " , doubleDropChanceLucky ) ) ;
2013-01-22 07:52:34 +01:00
}
else {
2013-02-02 08:55:49 +01:00
player . sendMessage ( LocaleLoader . getString ( " Herbalism.Ability.DoubleDropChance " , doubleDropChance ) ) ;
2013-01-22 07:52:34 +01:00
}
2012-05-31 20:36:14 +02:00
}
}
2012-01-09 20:00:13 +01:00
}