@@ -5,8 +5,13 @@ import java.util.Collection;
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
|
||||
import net.minecraft.server.ItemStack;
|
||||
import net.minecraft.server.Items;
|
||||
import net.minecraft.server.MobEffect;
|
||||
import net.minecraft.server.MobEffectList;
|
||||
import net.minecraft.server.PotionUtil;
|
||||
|
||||
import org.bukkit.Color;
|
||||
import org.bukkit.potion.PotionEffectType;
|
||||
import org.bukkit.potion.PotionBrewer;
|
||||
import org.bukkit.potion.PotionEffect;
|
||||
@@ -20,7 +25,7 @@ public class CraftPotionBrewer implements PotionBrewer {
|
||||
if (cache.containsKey(damage))
|
||||
return cache.get(damage);
|
||||
|
||||
List<?> mcEffects = net.minecraft.server.PotionBrewer.getEffects(damage, false);
|
||||
List<?> mcEffects = PotionUtil.getEffects(new ItemStack(Items.POTION, 1, damage));
|
||||
List<PotionEffect> effects = new ArrayList<PotionEffect>();
|
||||
if (mcEffects == null)
|
||||
return effects;
|
||||
@@ -29,8 +34,8 @@ public class CraftPotionBrewer implements PotionBrewer {
|
||||
if (raw == null || !(raw instanceof MobEffect))
|
||||
continue;
|
||||
MobEffect mcEffect = (MobEffect) raw;
|
||||
PotionEffect effect = new PotionEffect(PotionEffectType.getById(mcEffect.getEffectId()),
|
||||
mcEffect.getDuration(), mcEffect.getAmplifier());
|
||||
PotionEffect effect = new PotionEffect(PotionEffectType.getById(MobEffectList.getId(mcEffect.getMobEffect())),
|
||||
mcEffect.getDuration(), mcEffect.getAmplifier(), true, true, Color.fromRGB(mcEffect.getMobEffect().getColor()));
|
||||
// Minecraft PotionBrewer applies duration modifiers automatically.
|
||||
effects.add(effect);
|
||||
}
|
||||
|
||||
@@ -8,13 +8,13 @@ public class CraftPotionEffectType extends PotionEffectType {
|
||||
private final MobEffectList handle;
|
||||
|
||||
public CraftPotionEffectType(MobEffectList handle) {
|
||||
super(handle.id);
|
||||
super(MobEffectList.getId(handle));
|
||||
this.handle = handle;
|
||||
}
|
||||
|
||||
@Override
|
||||
public double getDurationModifier() {
|
||||
return handle.getDurationModifier();
|
||||
return handle.durationModifier;
|
||||
}
|
||||
|
||||
public MobEffectList getHandle() {
|
||||
@@ -23,7 +23,7 @@ public class CraftPotionEffectType extends PotionEffectType {
|
||||
|
||||
@Override
|
||||
public String getName() {
|
||||
switch (handle.id) {
|
||||
switch (getId()) {
|
||||
case 1:
|
||||
return "SPEED";
|
||||
case 2:
|
||||
@@ -70,8 +70,16 @@ public class CraftPotionEffectType extends PotionEffectType {
|
||||
return "ABSORPTION";
|
||||
case 23:
|
||||
return "SATURATION";
|
||||
case 24:
|
||||
return "GLOWING";
|
||||
case 25:
|
||||
return "LEVITATION";
|
||||
case 26:
|
||||
return "LUCK";
|
||||
case 27:
|
||||
return "UNLUCK";
|
||||
default:
|
||||
return "UNKNOWN_EFFECT_TYPE_" + handle.id;
|
||||
return "UNKNOWN_EFFECT_TYPE_" + getId();
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user