Fixed bug where Green Terra could possibly activate on crops that

weren't fully grown. Also fixed crop growth rates being checked twice.
This commit is contained in:
GJ
2013-01-27 16:34:47 -05:00
parent a3c92b07cb
commit cc6850b37d
3 changed files with 43 additions and 39 deletions

View File

@ -173,13 +173,11 @@ public class Herbalism {
break;
case CROPS:
if (data == CropState.RIPE.getData()) {
mat = Material.WHEAT;
xp = Config.getInstance().getHerbalismXPWheat();
mat = Material.WHEAT;
xp = Config.getInstance().getHerbalismXPWheat();
if (Permissions.greenThumbWheat(player)) {
greenThumbWheat(block, player, event, plugin);
}
if (Permissions.greenThumbWheat(player)) {
greenThumbWheat(block, player, event, plugin);
}
break;
@ -191,13 +189,11 @@ public class Herbalism {
break;
case NETHER_WARTS:
if (data == (byte) 0x3) {
mat = Material.NETHER_STALK;
xp = Config.getInstance().getHerbalismXPNetherWart();
mat = Material.NETHER_STALK;
xp = Config.getInstance().getHerbalismXPNetherWart();
if (Permissions.greenThumbNetherwart(player)) {
greenThumbWheat(block, player, event, plugin);
}
if (Permissions.greenThumbNetherwart(player)) {
greenThumbWheat(block, player, event, plugin);
}
break;
@ -246,42 +242,36 @@ public class Herbalism {
break;
case COCOA:
CocoaPlant plant = (CocoaPlant) block.getState().getData();
mat = type;
xp = Config.getInstance().getHerbalismXPCocoa();
if (plant.getSize() == CocoaPlantSize.LARGE) {
mat = type;
xp = Config.getInstance().getHerbalismXPCocoa();
if (Permissions.greenThumbCocoa(player)) {
greenThumbWheat(block, player, event, plugin);
}
if (Permissions.greenThumbCocoa(player)) {
greenThumbWheat(block, player, event, plugin);
}
break;
case CARROT:
if (data == CropState.RIPE.getData()) {
mat = Material.CARROT;
xp = Config.getInstance().getHerbalismXPCarrot();
mat = Material.CARROT;
xp = Config.getInstance().getHerbalismXPCarrot();
if (Permissions.greenThumbCarrots(player)) {
greenThumbWheat(block, player, event, plugin);
}
if (Permissions.greenThumbCarrots(player)) {
greenThumbWheat(block, player, event, plugin);
}
break;
case POTATO:
if (data == CropState.RIPE.getData()) {
mat = Material.POTATO;
xp = Config.getInstance().getHerbalismXPPotato();
mat = Material.POTATO;
xp = Config.getInstance().getHerbalismXPPotato();
if (Permissions.greenThumbPotatoes(player)) {
greenThumbWheat(block, player, event, plugin);
}
if (Permissions.greenThumbPotatoes(player)) {
greenThumbWheat(block, player, event, plugin);
}
break;
default:
// We REALLY shouldn't have to check this again, given that we check it in the BlockChecks before this function is even called.
// Safe to remove?
ItemStack item = (new MaterialData(block.getTypeId(), block.getData())).toItemStack(1);
if (Config.getInstance().getBlockModsEnabled() && CustomBlocksConfig.getInstance().customHerbalismBlocks.contains(item)) {

View File

@ -4,7 +4,9 @@ import org.bukkit.CropState;
import org.bukkit.Material;
import org.bukkit.block.Block;
import org.bukkit.inventory.ItemStack;
import org.bukkit.material.CocoaPlant;
import org.bukkit.material.MaterialData;
import org.bukkit.material.CocoaPlant.CocoaPlantSize;
import com.gmail.nossr50.config.Config;
import com.gmail.nossr50.config.mods.CustomBlocksConfig;
@ -179,7 +181,6 @@ public final class BlockChecks {
case BROWN_MUSHROOM:
case CACTUS:
case MELON_BLOCK:
case NETHER_WARTS:
case PUMPKIN:
case RED_MUSHROOM:
case RED_ROSE:
@ -187,16 +188,28 @@ public final class BlockChecks {
case VINE:
case WATER_LILY:
case YELLOW_FLOWER:
case COCOA:
case CARROT:
case POTATO:
return true;
case CARROT:
case CROPS:
case POTATO:
if (block.getData() == CropState.RIPE.getData()) {
return true;
}
return false;
case NETHER_WARTS:
if (block.getData() == (byte) 0x3) {
return true;
}
return false;
case COCOA:
CocoaPlant plant = (CocoaPlant) block.getState().getData();
if (plant.getSize() == CocoaPlantSize.LARGE) {
return true;
}
return false;
default: