Properly calculate potionstage

This commit is contained in:
t00thpick1 2016-03-11 22:07:27 -05:00
parent 001b11efc6
commit 11a744a772

View File

@ -2,7 +2,9 @@ package com.gmail.nossr50.datatypes.skills.alchemy;
import java.util.List; import java.util.List;
import org.bukkit.Material;
import org.bukkit.potion.Potion; import org.bukkit.potion.Potion;
import org.bukkit.potion.PotionData;
import org.bukkit.potion.PotionEffect; import org.bukkit.potion.PotionEffect;
import org.bukkit.potion.PotionType; import org.bukkit.potion.PotionType;
@ -47,22 +49,22 @@ public enum PotionStage {
} }
public static PotionStage getPotionStage(AlchemyPotion alchemyPotion) { public static PotionStage getPotionStage(AlchemyPotion alchemyPotion) {
Potion potion = alchemyPotion.toPotion(1); PotionData data = alchemyPotion.getData();
List<PotionEffect> effects = alchemyPotion.getEffects(); List<PotionEffect> effects = alchemyPotion.getEffects();
int stage = 1; int stage = 1;
// Check if potion isn't awkward or mundane // Check if potion has base effect
// Check for custom effects added by mcMMO if (data.getType().getEffectType() != null) {
if (potion.getType() != null || !effects.isEmpty()) {
stage++; stage++;
} }
// Check if potion has a glowstone dust amplifier // Check if potion has a glowstone dust amplifier
// Else check if the potion has a custom effect with an amplifier added by mcMMO // Else check if the potion has a custom effect with an amplifier added by mcMMO
if (potion.getLevel() > 1) { if (data.isUpgraded()) {
stage++; stage++;
}else if(!effects.isEmpty()){ }
if(!effects.isEmpty()){
for (PotionEffect effect : effects){ for (PotionEffect effect : effects){
if(effect.getAmplifier() > 0){ if(effect.getAmplifier() > 0){
stage++; stage++;
@ -72,12 +74,12 @@ public enum PotionStage {
} }
// Check if potion has a redstone dust amplifier // Check if potion has a redstone dust amplifier
if (potion.hasExtendedDuration()) { if (data.isExtended()) {
stage++; stage++;
} }
// Check if potion has a gunpowder amplifier // Check if potion has a gunpowder amplifier
if (potion.isSplash()) { if (alchemyPotion.getMaterial() == Material.SPLASH_POTION || alchemyPotion.getMaterial() == Material.LINGERING_POTION) {
stage++; stage++;
} }