diff --git a/src/main/java/xanadu/enderdragon/commands/MainCommand.java b/src/main/java/xanadu/enderdragon/commands/MainCommand.java index 4dda279..97a2a31 100644 --- a/src/main/java/xanadu/enderdragon/commands/MainCommand.java +++ b/src/main/java/xanadu/enderdragon/commands/MainCommand.java @@ -31,7 +31,7 @@ public class MainCommand implements CommandExecutor { } if (args.length == 1) { switch (args[0].toLowerCase()){ - case "reload" -> { + case "reload" : { if(!sender.hasPermission("ed.reload")){ sendFeedback(sender,Lang.command_no_permission); return false; @@ -41,19 +41,20 @@ public class MainCommand implements CommandExecutor { sendFeedback(sender,Lang.command_reload_config); return true; } - case "respawn" -> { + case "respawn" : { if(!sender.hasPermission("ed.respawn")){ sendFeedback(sender,Lang.command_no_permission); return false; } - if(!(sender instanceof Player player)){ + if(!(sender instanceof Player)){ sendFeedback(sender,Lang.command_only_player); return false; } + Player player = (Player) sender; EnderDragon.getInstance().getDragonManager().initiateRespawn(player); return true; } - case "update" -> { + case "update" : { if(!sender.hasPermission("ed.update")){ sendFeedback(sender,Lang.command_no_permission); return false; @@ -65,19 +66,20 @@ public class MainCommand implements CommandExecutor { } return true; } - default -> { + default : { sendCommandTips(sender); return false; } } } if (args[0].equalsIgnoreCase("drop")) { - if(!(sender instanceof Player p)) { + if(!(sender instanceof Player)) { sendFeedback(sender,Lang.command_only_player); return false; } + Player p = (Player) sender; switch (args[1].toLowerCase()){ - case "gui" -> { + case "gui" : { if(!sender.hasPermission("ed.drop.gui")){ sendFeedback(sender,Lang.command_no_permission); return false; @@ -96,8 +98,9 @@ public class MainCommand implements CommandExecutor { openGui(p,dragon.drop_gui,key); return true; } + break; } - case "clear" -> { + case "clear" : { if(!sender.hasPermission("ed.drop.edit")){ sendFeedback(sender,Lang.command_no_permission); return false; @@ -108,8 +111,9 @@ public class MainCommand implements CommandExecutor { sendFeedback(sender,Lang.command_drop_item_clear); return true; } + break; } - case "add" -> { + case "add" : { if(!sender.hasPermission("ed.drop.edit")){ sendFeedback(sender,Lang.command_no_permission); return false; @@ -138,8 +142,9 @@ public class MainCommand implements CommandExecutor { sendFeedback(p,Lang.command_drop_item_add_succeed.replaceAll("\\{chance}",ChanceStr)); return true; } + break; } - default -> { + default : { sendCommandTips(sender); return false; } diff --git a/src/main/java/xanadu/enderdragon/commands/TabCompleter.java b/src/main/java/xanadu/enderdragon/commands/TabCompleter.java index 00f96dd..9d753c9 100644 --- a/src/main/java/xanadu/enderdragon/commands/TabCompleter.java +++ b/src/main/java/xanadu/enderdragon/commands/TabCompleter.java @@ -1,18 +1,18 @@ package xanadu.enderdragon.commands; -import org.bukkit.Bukkit; import org.bukkit.command.Command; import org.bukkit.command.CommandSender; import java.util.ArrayList; +import java.util.Arrays; import java.util.List; import static xanadu.enderdragon.manager.DragonManager.dragon_names; public class TabCompleter implements org.bukkit.command.TabCompleter { - private static final List arguments_1 = List.of(new String[]{"drop", "reload", "respawn", "update"}); - private static final List arguments_2 = List.of(new String[]{"add", "clear", "gui"}); + private static final List arguments_1 = Arrays.asList("drop", "reload", "respawn", "update"); + private static final List arguments_2 = Arrays.asList("add", "clear", "gui"); @Override public List onTabComplete(CommandSender sender, Command command, String label, String[] args) { diff --git a/src/main/java/xanadu/enderdragon/gui/GUISlot.java b/src/main/java/xanadu/enderdragon/gui/GUISlot.java index 3bb3e0c..15c5226 100644 --- a/src/main/java/xanadu/enderdragon/gui/GUISlot.java +++ b/src/main/java/xanadu/enderdragon/gui/GUISlot.java @@ -18,16 +18,19 @@ public abstract class GUISlot { if(section == null) return new EmptySlot(); GUISlotType guiSlotType = GUISlotType.getByName(section.getString("type")); switch (guiSlotType) { - case ITEM_SLOT -> { + case ITEM_SLOT : { return new ItemSlot(section); } - case DRAGON_SLOT -> { + case DRAGON_SLOT : { return new DragonSlot(section); } - case PAGE_PREV, PAGE_NEXT, PAGE_TIP, TIP -> { + case PAGE_PREV : + case PAGE_NEXT : + case PAGE_TIP : + case TIP : { return new TipSlot(guiSlotType, section); } - case PAGE_JUMP -> { + case PAGE_JUMP : { return new PageJumpSlot(section); } } diff --git a/src/main/java/xanadu/enderdragon/listeners/CreatureSpawnListener.java b/src/main/java/xanadu/enderdragon/listeners/CreatureSpawnListener.java index 139ec49..06729dd 100644 --- a/src/main/java/xanadu/enderdragon/listeners/CreatureSpawnListener.java +++ b/src/main/java/xanadu/enderdragon/listeners/CreatureSpawnListener.java @@ -27,7 +27,8 @@ import static xanadu.enderdragon.manager.DragonManager.*; public class CreatureSpawnListener implements Listener { @EventHandler(priority = EventPriority.LOW) public void OnDragonSpawn(CreatureSpawnEvent e){ - if(!(e.getEntity() instanceof EnderDragon dragon)) return; + if(!(e.getEntity() instanceof EnderDragon)) return; + EnderDragon dragon = (EnderDragon) e.getEntity(); MyDragon myDragon = judge(); if(myDragon == null) { Lang.warn("special_dragon_jude_mode setting error!"); @@ -86,9 +87,11 @@ public class CreatureSpawnListener implements Listener { } @EventHandler(priority = EventPriority.HIGH) public void OnEffectCloudSpawn(final EntitySpawnEvent e){ - if(!(e.getEntity() instanceof AreaEffectCloud effectCloud)) return; + if(!(e.getEntity() instanceof AreaEffectCloud)) return; + AreaEffectCloud effectCloud = (AreaEffectCloud) e.getEntity(); if(effectCloud.getSource() == null) return; - if(!(effectCloud.getSource() instanceof EnderDragon dragon)) return; + if(!(effectCloud.getSource() instanceof EnderDragon)) return; + EnderDragon dragon = (EnderDragon) effectCloud.getSource(); String unique_name = getSpecialKey(dragon); if(unique_name == null) return; MyDragon myDragon = mp.get(unique_name); @@ -116,7 +119,8 @@ public class CreatureSpawnListener implements Listener { Location cen = p.getLocation().clone().add(0d,0.9d,0d); Collection list = world.getNearbyEntities(cen,2.3d,2.9d,2.3d); for(Entity entity : list){ - if(entity instanceof AreaEffectCloud effectCloud) { + if(entity instanceof AreaEffectCloud) { + AreaEffectCloud effectCloud = (AreaEffectCloud) entity; if(effectCloud.getSource() instanceof EnderDragon){ e.setCancelled(true); break; diff --git a/src/main/java/xanadu/enderdragon/listeners/DragonBaseHurtListener.java b/src/main/java/xanadu/enderdragon/listeners/DragonBaseHurtListener.java index f9b6b4d..2955461 100644 --- a/src/main/java/xanadu/enderdragon/listeners/DragonBaseHurtListener.java +++ b/src/main/java/xanadu/enderdragon/listeners/DragonBaseHurtListener.java @@ -16,12 +16,16 @@ public class DragonBaseHurtListener implements Listener { if(e.getDamage() <= 0.0) return; Entity victim = e.getEntity(); Entity entity = e.getDamager(); - if(victim instanceof EnderDragon dragon){ - if(entity instanceof Player player){ + if(victim instanceof EnderDragon){ + EnderDragon dragon = (EnderDragon) victim; + if(entity instanceof Player){ + Player player = (Player) entity; pm.callEvent(new DragonDamageByPlayerEvent(player,dragon,e.getCause(),e.getFinalDamage())); } - else if(entity instanceof Projectile projectile){ - if(!(projectile.getShooter() instanceof Player damager)) return; + else if(entity instanceof Projectile){ + Projectile projectile = (Projectile) entity; + if(!(projectile.getShooter() instanceof Player)) return; + Player damager = (Player) projectile.getShooter(); pm.callEvent(new DragonDamageByPlayerEvent(damager,dragon,e.getCause(),e.getFinalDamage())); } } diff --git a/src/main/java/xanadu/enderdragon/listeners/DragonDamageByPlayerListener.java b/src/main/java/xanadu/enderdragon/listeners/DragonDamageByPlayerListener.java index ec0e473..10464ae 100644 --- a/src/main/java/xanadu/enderdragon/listeners/DragonDamageByPlayerListener.java +++ b/src/main/java/xanadu/enderdragon/listeners/DragonDamageByPlayerListener.java @@ -22,10 +22,19 @@ public class DragonDamageByPlayerListener implements Listener { double remain_health = Math.max(dragon.getHealth()-e.getFinalDamage(),0.0); String str = Lang.dragon_damage_display.replaceAll("%damage%", format(damage)).replaceAll("%remain_health%",format(remain_health)).replaceAll("%max_health%",format(max_health)); switch (Config.damage_visible_mode.toLowerCase()){ - case "actionbar" -> p.spigot().sendMessage(ChatMessageType.ACTION_BAR, TextComponent.fromLegacyText(str)); - case "chatbox" -> Lang.sendFeedback(p,str); - case "subtitle" -> p.sendTitle("",str,5,40,5); - default -> { + case "actionbar" : { + p.spigot().sendMessage(ChatMessageType.ACTION_BAR, TextComponent.fromLegacyText(str)); + break; + } + case "chatbox" : { + Lang.sendFeedback(p,str); + break; + } + case "subtitle" : { + p.sendTitle("",str,5,40,5); + break; + } + default : { } diff --git a/src/main/java/xanadu/enderdragon/listeners/DragonDeathListener.java b/src/main/java/xanadu/enderdragon/listeners/DragonDeathListener.java index a2a8348..7468111 100644 --- a/src/main/java/xanadu/enderdragon/listeners/DragonDeathListener.java +++ b/src/main/java/xanadu/enderdragon/listeners/DragonDeathListener.java @@ -28,7 +28,8 @@ import static xanadu.enderdragon.manager.DragonManager.mp; public class DragonDeathListener implements Listener { @EventHandler public void OnDragonDeath(EntityDeathEvent e){ - if(!(e.getEntity() instanceof EnderDragon dragon)) return; + if(!(e.getEntity() instanceof EnderDragon)) return; + EnderDragon dragon = (EnderDragon) e.getEntity(); String unique_name = getSpecialKey(dragon); if(unique_name == null) return; MyDragon myDragon = mp.get(unique_name); diff --git a/src/main/java/xanadu/enderdragon/listeners/DragonHealListener.java b/src/main/java/xanadu/enderdragon/listeners/DragonHealListener.java index 66d1203..1841947 100644 --- a/src/main/java/xanadu/enderdragon/listeners/DragonHealListener.java +++ b/src/main/java/xanadu/enderdragon/listeners/DragonHealListener.java @@ -13,7 +13,8 @@ import static xanadu.enderdragon.manager.DragonManager.mp; public class DragonHealListener implements Listener { @EventHandler(priority = EventPriority.HIGH) public void OnDragonHeal(EntityRegainHealthEvent e){ - if(!(e.getEntity() instanceof EnderDragon dragon)) return; + if(!(e.getEntity() instanceof EnderDragon)) return; + EnderDragon dragon = (EnderDragon) e.getEntity(); if(!e.getRegainReason().equals(EntityRegainHealthEvent.RegainReason.ENDER_CRYSTAL)) return; String unique_name = getSpecialKey(dragon); if(unique_name == null) return; diff --git a/src/main/java/xanadu/enderdragon/listeners/EntityDamageByEntityListener.java b/src/main/java/xanadu/enderdragon/listeners/EntityDamageByEntityListener.java index cf701df..100e273 100644 --- a/src/main/java/xanadu/enderdragon/listeners/EntityDamageByEntityListener.java +++ b/src/main/java/xanadu/enderdragon/listeners/EntityDamageByEntityListener.java @@ -18,13 +18,15 @@ public class EntityDamageByEntityListener implements Listener { public void OnDragonAttack(EntityDamageByEntityEvent e){ Entity victim = e.getEntity(); Entity attack = e.getDamager(); - if(!(attack instanceof EnderDragon dragon)) return; + if(!(attack instanceof EnderDragon)) return; + EnderDragon dragon = (EnderDragon) attack; String unique_name = getSpecialKey(dragon); if(unique_name == null) return; MyDragon myDragon = mp.get(unique_name); if(myDragon == null) return; e.setDamage(Math.max(0.1, e.getDamage() + myDragon.attack_damage_modify)); - if(victim instanceof Player player){ + if(victim instanceof Player){ + Player player = (Player) victim; for(PotionEffect effect : myDragon.attack_potion_effect){ player.addPotionEffect(effect); } @@ -45,9 +47,12 @@ public class EntityDamageByEntityListener implements Listener { if(e.getDamage() <= 0.0) return; Entity victim = e.getEntity(); Entity entity = e.getDamager(); - if(victim instanceof EnderDragon dragon){ - if(entity instanceof TNTPrimed tnt){ - if(!(tnt.getSource() instanceof Player damager)) return; + if(victim instanceof EnderDragon){ + EnderDragon dragon = (EnderDragon) victim; + if(entity instanceof TNTPrimed){ + TNTPrimed tnt = (TNTPrimed) entity; + if(!(tnt.getSource() instanceof Player)) return; + Player damager = (Player) tnt.getSource(); pm.callEvent(new DragonDamageByPlayerEvent(damager,dragon,e.getCause(),e.getFinalDamage())); } } diff --git a/src/main/java/xanadu/enderdragon/listeners/InventoryListener.java b/src/main/java/xanadu/enderdragon/listeners/InventoryListener.java index 4853c62..19ca06b 100644 --- a/src/main/java/xanadu/enderdragon/listeners/InventoryListener.java +++ b/src/main/java/xanadu/enderdragon/listeners/InventoryListener.java @@ -24,47 +24,42 @@ public class InventoryListener implements Listener { @EventHandler(priority = EventPriority.LOWEST) public void OnInventoryClick(InventoryClickEvent e){ InventoryHolder holder = e.getInventory().getHolder(); - if(!(holder instanceof GUIHolder guiHolder)) return; - if(!(guiHolder.getGUI() instanceof GUIWrapper guiWrapper)) return; + if(!(holder instanceof GUIHolder)) return; + e.setCancelled(true); + GUIHolder guiHolder = (GUIHolder) holder; + if(!(guiHolder.getGUI() instanceof GUIWrapper)) return; + GUIWrapper guiWrapper = (GUIWrapper) guiHolder.getGUI(); if(e.getClickedInventory() instanceof PlayerInventory){ - e.setCancelled(true); return; } if(e.getClick() != ClickType.LEFT && e.getClick() != ClickType.RIGHT){ - e.setCancelled(true); return; } if(e.getRawSlot() >= 54 || e.getRawSlot() < 0){ //点击箱子以外界面会返回-999 - e.setCancelled(true); return; } Player p = (Player) e.getWhoClicked(); GUISlot slot = guiWrapper.getSlot(e.getRawSlot()); GUISlotType type = slot.getType(); if(type == GUISlotType.EMPTY || type == GUISlotType.TIP || type == GUISlotType.PAGE_TIP || type == GUISlotType.ITEM_SLOT){ - e.setCancelled(true); return; } if(type == GUISlotType.PAGE_PREV){ - e.setCancelled(true); guiWrapper.prev(); p.updateInventory(); return; } if(type == GUISlotType.PAGE_NEXT){ - e.setCancelled(true); guiWrapper.next(); p.updateInventory(); return; } if(type == GUISlotType.PAGE_JUMP){ - e.setCancelled(true); String name = ((PageJumpSlot)slot).getGuiName(); GuiManager.openGui(p,name); return; } if(type == GUISlotType.DRAGON_SLOT){ - e.setCancelled(true); String unique_name = guiWrapper.getData(guiWrapper.getPage(),e.getRawSlot()); MyDragon dragon = mp.get(unique_name); if(dragon == null){ @@ -79,8 +74,9 @@ public class InventoryListener implements Listener { @EventHandler(priority = EventPriority.LOWEST) public void OnInventoryDrag(InventoryDragEvent e){ InventoryHolder holder = e.getInventory().getHolder(); - if(!(holder instanceof GUIHolder guiHolder)) return; - if(!(guiHolder.getGUI() instanceof GUIWrapper guiWrapper)) return; + if(!(holder instanceof GUIHolder)) return; + GUIHolder guiHolder = (GUIHolder) holder; + if(!(guiHolder.getGUI() instanceof GUIWrapper)) return; e.setCancelled(true); } } diff --git a/src/main/java/xanadu/enderdragon/listeners/mmoitems/MMOPlayerAttackListener.java b/src/main/java/xanadu/enderdragon/listeners/mmoitems/MMOPlayerAttackListener.java index 6294eba..2fbfc2f 100644 --- a/src/main/java/xanadu/enderdragon/listeners/mmoitems/MMOPlayerAttackListener.java +++ b/src/main/java/xanadu/enderdragon/listeners/mmoitems/MMOPlayerAttackListener.java @@ -17,9 +17,10 @@ public class MMOPlayerAttackListener implements Listener { @EventHandler(priority = EventPriority.NORMAL, ignoreCancelled = true) public void meleeAttacks(PlayerAttackEvent e) { - if (!(e.getAttack() instanceof MeleeAttackMetadata attackMetadata)) { + if (!(e.getAttack() instanceof MeleeAttackMetadata)) { return; } + MeleeAttackMetadata attackMetadata = (MeleeAttackMetadata) e.getAttack(); Player player = e.getPlayer(); PlayerData playerData = PlayerData.get(player); NBTItem nBTItem = MythicLib.plugin.getVersion().getWrapper().getNBTItem(player.getInventory().getItem(attackMetadata.getHand().toBukkit())); diff --git a/src/main/java/xanadu/enderdragon/listeners/mythiclib/PlayerAttackListener.java b/src/main/java/xanadu/enderdragon/listeners/mythiclib/PlayerAttackListener.java index 29af239..8a368ac 100644 --- a/src/main/java/xanadu/enderdragon/listeners/mythiclib/PlayerAttackListener.java +++ b/src/main/java/xanadu/enderdragon/listeners/mythiclib/PlayerAttackListener.java @@ -3,6 +3,7 @@ package xanadu.enderdragon.listeners.mythiclib; import io.lumine.mythic.lib.api.event.PlayerAttackEvent; import io.lumine.mythic.lib.damage.DamageMetadata; import io.lumine.mythic.lib.damage.DamageType; +import org.bukkit.entity.EnderDragon; import org.bukkit.event.EventHandler; import org.bukkit.event.EventPriority; import org.bukkit.event.Listener; @@ -14,7 +15,8 @@ public class PlayerAttackListener implements Listener { @EventHandler(priority = EventPriority.HIGH) public void onPlayerAttack(PlayerAttackEvent e){ if(e.isCancelled()) return; - if(!(e.getEntity() instanceof org.bukkit.entity.EnderDragon dragon)) return; + if(!(e.getEntity() instanceof org.bukkit.entity.EnderDragon)) return; + EnderDragon dragon = (EnderDragon) e.getEntity(); DamageMetadata damage = e.getDamage(); double weapon = damage.getDamage(DamageType.WEAPON) + damage.getDamage(DamageType.UNARMED); if(weapon > 0.0d) { diff --git a/src/main/java/xanadu/enderdragon/manager/DragonManager.java b/src/main/java/xanadu/enderdragon/manager/DragonManager.java index 36b61b9..512d3b9 100644 --- a/src/main/java/xanadu/enderdragon/manager/DragonManager.java +++ b/src/main/java/xanadu/enderdragon/manager/DragonManager.java @@ -349,11 +349,24 @@ public class DragonManager { Object WorldProviderTheEnd = WorldProviderTheEndClass.cast(worldProvider); String method_name; switch (version) { - case "v1_12_R1" -> method_name = "t"; - case "v1_13_R1", "v1_13_R2" -> method_name = "r"; - case "v1_14_R1" -> method_name = "q"; - case "v1_15_R1" -> method_name = "o"; - default -> method_name = null; + case "v1_12_R1" : { + method_name = "t"; + break; + } + case "v1_13_R1" : + case "v1_13_R2" : { + method_name = "r"; + break; + } + case "v1_14_R1" : { + method_name = "q"; + break; + } + case "v1_15_R1" : { + method_name = "o"; + break; + } + default : method_name = null; } if(method_name == null) return null; Method method = WorldProviderTheEnd.getClass().getDeclaredMethod(method_name); diff --git a/src/main/java/xanadu/enderdragon/manager/TaskManager.java b/src/main/java/xanadu/enderdragon/manager/TaskManager.java index 0c837f6..7ccb320 100644 --- a/src/main/java/xanadu/enderdragon/manager/TaskManager.java +++ b/src/main/java/xanadu/enderdragon/manager/TaskManager.java @@ -26,25 +26,25 @@ public class TaskManager { String[] str = string.split(":",2); TaskType taskType = TaskType.getByName(str[0]); switch (taskType){ - case minute -> { + case minute : { return new Minute(TaskType.minute,str[1]); } - case hour -> { + case hour : { return new Hour(TaskType.hour,str[1]); } - case day -> { + case day : { return new Day(TaskType.day,str[1]); } - case week -> { + case week : { return new Week(TaskType.week,str[1]); } - case month -> { + case month : { return new Month(TaskType.month,str[1]); } - case year -> { + case year : { return new Year(TaskType.year,str[1]); } - default -> { + default : { return null; } } diff --git a/src/main/java/xanadu/enderdragon/task/Task.java b/src/main/java/xanadu/enderdragon/task/Task.java index ec0c699..4c2702a 100644 --- a/src/main/java/xanadu/enderdragon/task/Task.java +++ b/src/main/java/xanadu/enderdragon/task/Task.java @@ -18,14 +18,36 @@ public abstract class Task { protected Task(TaskType type,String str){ this.type = type; switch (type){ - case minute, hour -> this.period = Integer.parseInt(str); - case day -> this.period = Integer.parseInt(str.split(",")[0]); - case week, month, year -> this.day = Integer.parseInt(str.split(",")[0]); + case minute : + case hour : { + this.period = Integer.parseInt(str); + break; + } + case day : { + this.period = Integer.parseInt(str.split(",")[0]); + break; + } + case week : + case month : + case year : { + this.day = Integer.parseInt(str.split(",")[0]); + break; + } } if(data.getString(path) == null){ switch (type){ - case minute, hour -> this.nextTime = this.getNextTime(LocalDateTime.now()); - case day, week, month, year -> calcNextTime(str); + case minute : + case hour : { + this.nextTime = this.getNextTime(LocalDateTime.now()); + break; + } + case day : + case week : + case month : + case year : { + calcNextTime(str); + break; + } } saveFile(nextTime); }