1
mirror of https://github.com/StarWishsama/Slimefun4.git synced 2024-09-20 11:45:51 +00:00

Extracted dupliocted code blocks to methods

This commit is contained in:
sarhatabaot 2019-05-04 22:04:03 +03:00
parent a622e05ea8
commit 4e32c4981c

View File

@ -92,42 +92,19 @@ public class Talisman extends SlimefunItem {
if (!pass(p, talisman)) { if (!pass(p, talisman)) {
return false; return false;
} }
boolean message = !talisman.getSuffix().equalsIgnoreCase("");
if (p.getInventory().containsAtLeast(talisman.getItem(), 1)) { if (p.getInventory().containsAtLeast(talisman.getItem(), 1)) {
if (Slimefun.hasUnlocked(p, talisman.getItem(), true)) { if (Slimefun.hasUnlocked(p, talisman.getItem(), true)) {
if (talisman.isConsumable()) executeTalismanAttributes(e,p,talisman);
p.getInventory().removeItem(talisman.getItem());
for (PotionEffect effect : talisman.getEffects()) {
p.addPotionEffect(effect);
}
if (e instanceof Cancellable && talisman.isEventCancelled())
((Cancellable) e).setCancelled(true);
if (message)
Messages.local.sendTranslation(p, "messages.talisman." + talisman.getSuffix(), true);
return true; return true;
} else return false; } else return false;
} else if (p.getEnderChest().containsAtLeast(talisman.upgrade(), 1)) { } else if (p.getEnderChest().containsAtLeast(talisman.upgrade(), 1)) {
if (Slimefun.hasUnlocked(p, talisman.upgrade(), true)) { if (Slimefun.hasUnlocked(p, talisman.upgrade(), true)) {
if (talisman.isConsumable()) executeTalismanAttributes(e,p,talisman);
p.getEnderChest().removeItem(talisman.upgrade());
for (PotionEffect effect : talisman.getEffects()) {
p.addPotionEffect(effect);
}
if (e instanceof Cancellable && talisman.isEventCancelled())
((Cancellable) e).setCancelled(true);
if (message)
Messages.local.sendTranslation(p, "messages.talisman." + talisman.getSuffix(), true);
return true; return true;
} else return false; } else return false;
} else return false; } else return false;
} }
public ItemStack upgrade() { public ItemStack upgrade() {
@ -158,6 +135,38 @@ public class Talisman extends SlimefunItem {
Slimefun.addOfficialWikiPage(getID(), "Talismans"); Slimefun.addOfficialWikiPage(getID(), "Talismans");
} }
private static boolean isTalismanMessage(Talisman talisman){
return !("").equalsIgnoreCase(talisman.getSuffix());
}
private static void executeTalismanAttributes(Event e, Player p, Talisman talisman){
consumeItem(p,talisman);
applyTalismanEffects(p,talisman);
cancelEvent(e,talisman);
sendMessage(p,talisman);
}
private static void applyTalismanEffects(Player p, Talisman talisman){
for (PotionEffect effect : talisman.getEffects()) {
p.addPotionEffect(effect);
}
}
private static void cancelEvent(Event e, Talisman talisman){
if (e instanceof Cancellable && talisman.isEventCancelled())
((Cancellable) e).setCancelled(true);
}
private static void sendMessage(Player p, Talisman talisman){
if (isTalismanMessage(talisman))
Messages.local.sendTranslation(p, "messages.talisman." + talisman.getSuffix(), true);
}
private static void consumeItem(Player p, Talisman talisman){
if (talisman.isConsumable())
p.getInventory().removeItem(talisman.getItem());
}
private static Player getPlayerByEventType(Event e) { private static Player getPlayerByEventType(Event e) {
if (e instanceof EntityDeathEvent) return ((EntityDeathEvent) e).getEntity().getKiller(); if (e instanceof EntityDeathEvent) return ((EntityDeathEvent) e).getEntity().getKiller();
else if (e instanceof BlockBreakEvent) return ((BlockBreakEvent) e).getPlayer(); else if (e instanceof BlockBreakEvent) return ((BlockBreakEvent) e).getPlayer();