v3 of TwosideKeeper plugin. Compatible with Minecraft v1.9.2. Now being retired. A Bukkit Plugin designed to improve the server experience for other players while adding in new conveniences and features.
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
TwosideKeeper/src/sig/plugin/TwosideKeeper/ActionBarBuffUpdater.java

110 lines
3.8 KiB

package sig.plugin.TwosideKeeper;
import org.bukkit.ChatColor;
import org.bukkit.entity.LivingEntity;
import org.bukkit.entity.Player;
import org.bukkit.potion.PotionEffect;
import org.bukkit.potion.PotionEffectType;
import sig.plugin.TwosideKeeper.HelperStructures.WorldShop;
import sig.plugin.TwosideKeeper.HelperStructures.Common.GenericFunctions;
public class ActionBarBuffUpdater{
public static String getActionBarPrefix(LivingEntity p) {
StringBuilder actionbardisplay = new StringBuilder("");
for (PotionEffect pe : p.getActivePotionEffects()) {
if (pe.getAmplifier()>3) {
actionbardisplay.append(ParseEffect(p,pe));
}
}
actionbardisplay.append(AddAdditionalEffects(p));
if (actionbardisplay.toString().contains(" ")) {
return actionbardisplay.toString().substring(0, actionbardisplay.toString().lastIndexOf(" "));
} else {
return actionbardisplay.toString();
}
}
private static String AddAdditionalEffects(LivingEntity p) {
StringBuilder effectString=new StringBuilder("");
if (p instanceof Player) {
PlayerStructure pd = PlayerStructure.GetPlayerStructure((Player)p);
if (pd.lifestealstacks>4) {
effectString.append(ChatColor.AQUA+"❣");
effectString.append(AppendAmplifier(pd.lifestealstacks-1));
effectString.append(" ");
}
if (pd.weaponcharges>4) {
effectString.append(ChatColor.DARK_AQUA+"☤");
effectString.append(AppendAmplifier(pd.weaponcharges-1));
effectString.append(" ");
}
if (pd.damagepool>4) {
effectString.append(ChatColor.DARK_PURPLE+"♥");
effectString.append(AppendAmplifier((int)(pd.damagepool-1)));
effectString.append(" ");
}
if (pd.swiftaegisamt>4) {
effectString.append(ChatColor.YELLOW+"❈");
effectString.append(AppendAmplifier((int)(GenericFunctions.getSwiftAegisAmt((Player)p)-1)));
effectString.append(" ");
}
}
if (effectString.length()>0) {
return effectString.toString()+ChatColor.RESET;
} else {
return "";
}
}
private static String ParseEffect(LivingEntity p, PotionEffect pe) {
StringBuilder effectString=new StringBuilder("");
PotionEffectType pet = pe.getType();
if (pet.equals(PotionEffectType.INCREASE_DAMAGE)) {
effectString.append(ChatColor.GOLD+"⚔");
} else
if (pet.equals(PotionEffectType.DAMAGE_RESISTANCE)) {
effectString.append(ChatColor.BLUE+"❈");
} else
if (pet.equals(PotionEffectType.REGENERATION)) {
effectString.append(ChatColor.GREEN+"✙");
} else
if (pet.equals(PotionEffectType.SPEED)) {
effectString.append(ChatColor.WHITE+"➠");
} else
if (pet.equals(PotionEffectType.POISON) ||
(pet.equals(PotionEffectType.BLINDNESS) && (p instanceof LivingEntity && !(p instanceof Player)))) {
effectString.append(ChatColor.YELLOW+"☣");
} else
if ((pet.equals(PotionEffectType.UNLUCK) && (p instanceof LivingEntity && !(p instanceof Player)))) {
effectString.append(ChatColor.DARK_RED+"☠");
} else
if (pet.equals(PotionEffectType.SLOW)) {
effectString.append(ChatColor.DARK_AQUA+"♒");
} else
if (pet.equals(PotionEffectType.WEAKNESS) || pet.equals(PotionEffectType.SLOW_DIGGING)) {
effectString.append(ChatColor.RED+"✘");
}
if (effectString.length()>0) {
effectString.append(AppendAmplifier(pe.getAmplifier()));
effectString.append(" ");
}
if (effectString.length()>0) {
return effectString.toString()+ChatColor.RESET;
} else {
return "";
}
}
private static String AppendAmplifier(int amplifier) {
StringBuilder amp = new StringBuilder(" ");
if (amplifier+1<=10) {
amp.append(ChatColor.GRAY+""+WorldShop.toRomanNumeral(amplifier+1));
} else {
amp.append(ChatColor.GRAY+""+(amplifier+1));
}
return amp.toString();
}
}