From 55bbc54335a7c0bab206d89c3906fc736704e5f0 Mon Sep 17 00:00:00 2001 From: Xanadu13 Date: Wed, 27 Dec 2023 16:20:47 +0800 Subject: [PATCH] Update DragonRespawnPostEvent --- .../pers/xanadu/enderdragon/EnderDragon.java | 1 + .../enderdragon/command/MainCommand.java | 75 +---------- .../event/DragonRespawnPostEvent.java | 16 +-- .../java/pers/xanadu/enderdragon/gui/GUI.java | 11 +- .../listener/DragonAttackListener.java | 4 +- .../listener/DragonDeathListener.java | 4 +- .../listener/DragonFireballListener.java | 12 +- .../listener/DragonHealListener.java | 6 +- .../listener/DragonSpawnListener.java | 13 +- .../listener/InventoryListener.java | 6 +- .../enderdragon/manager/DragonManager.java | 32 ++++- .../enderdragon/manager/RewardManager.java | 12 +- .../enderdragon/metadata/DragonInfo.java | 8 ++ .../{util => metadata}/MyDragon.java | 125 +++++++++--------- .../xanadu/enderdragon/reward/RewardDist.java | 2 +- .../enderdragon/reward/dist/Dist_All.java | 2 +- .../enderdragon/reward/dist/Dist_Drop.java | 2 +- .../enderdragon/reward/dist/Dist_Killer.java | 2 +- .../enderdragon/reward/dist/Dist_Pack.java | 2 +- .../enderdragon/reward/dist/Dist_Rank.java | 2 +- .../reward/dist/Dist_Termwise.java | 2 +- src/main/resources/plugin.yml | 2 +- 22 files changed, 159 insertions(+), 182 deletions(-) create mode 100644 src/main/java/pers/xanadu/enderdragon/metadata/DragonInfo.java rename src/main/java/pers/xanadu/enderdragon/{util => metadata}/MyDragon.java (95%) diff --git a/src/main/java/pers/xanadu/enderdragon/EnderDragon.java b/src/main/java/pers/xanadu/enderdragon/EnderDragon.java index 5bc0785..7fad18b 100644 --- a/src/main/java/pers/xanadu/enderdragon/EnderDragon.java +++ b/src/main/java/pers/xanadu/enderdragon/EnderDragon.java @@ -246,6 +246,7 @@ public final class EnderDragon extends JavaPlugin { catch (Exception ignored) {} } } + private void fixWorldBossBar(){ new BukkitRunnable(){ @Override diff --git a/src/main/java/pers/xanadu/enderdragon/command/MainCommand.java b/src/main/java/pers/xanadu/enderdragon/command/MainCommand.java index ad42a45..d294fae 100644 --- a/src/main/java/pers/xanadu/enderdragon/command/MainCommand.java +++ b/src/main/java/pers/xanadu/enderdragon/command/MainCommand.java @@ -15,7 +15,7 @@ import pers.xanadu.enderdragon.maven.DependencyManager; import pers.xanadu.enderdragon.reward.Chance; import pers.xanadu.enderdragon.config.FileUpdater; import pers.xanadu.enderdragon.task.DragonRespawnTimer; -import pers.xanadu.enderdragon.util.MyDragon; +import pers.xanadu.enderdragon.metadata.MyDragon; import org.jetbrains.annotations.NotNull; import java.io.IOException; @@ -248,7 +248,7 @@ public class MainCommand implements CommandExecutor { } if(args.length == 3){ String key = args[2]; - MyDragon dragon = DragonManager.mp.get(key); + MyDragon dragon = DragonManager.get_dragon_config(key); if(dragon == null){ Lang.sendFeedback(sender, Lang.dragon_not_found); return false; @@ -349,74 +349,3 @@ public class MainCommand implements CommandExecutor { } -// long st=System.currentTimeMillis(),ed; -// for(int i=0;i<1;i++) { -// try { -// ItemStack item = p.getItemInHand(); -// Class CraftItemStackClass = Class.forName("org.bukkit.craftbukkit.v1_13_R1.inventory.CraftItemStack"); -// Object ci = CraftItemStackClass.cast(item); -// Method asNMSCopy = CraftItemStackClass.getDeclaredMethod("asNMSCopy", ItemStack.class); -// Object ei = asNMSCopy.invoke(ci, item); -// Class NBTTagCompoundClass = Class.forName("net.minecraft.server.v1_13_R1.NBTTagCompound"); -// Method save = ei.getClass().getDeclaredMethod("save", NBTTagCompoundClass); -// Object cpd = save.invoke(ei, NBTTagCompoundClass.newInstance()); -// String str = cpd.toString(); -// p.sendMessage(cpd.toString()); -// } catch (ReflectiveOperationException e) { -// e.printStackTrace(); -// } -// } -// ed=System.currentTimeMillis(); -// Bukkit.broadcastMessage("test #1: "+(ed-st)+"ms"); -// st=System.currentTimeMillis(); -// for(int i=0;i<1e5;i++) { -// ItemStack item = p.getItemInHand(); -// net.minecraft.server.v1_13_R1.ItemStack ni = CraftItemStack.asNMSCopy(item); -// NBTTagCompound cpd = ni.save(new NBTTagCompound()); -// String str = cpd.toString(); -// } -// ed=System.currentTimeMillis(); -// Bukkit.broadcastMessage("test #2: "+(ed-st)+"ms"); -// -// try { -// CraftItemStackClass=Class.forName("org.bukkit.craftbukkit.v1_13_R1.inventory.CraftItemStack"); -// asNMSCopy = CraftItemStackClass.getDeclaredMethod("asNMSCopy", ItemStack.class); -// NBTTagCompoundClass = Class.forName("net.minecraft.server.v1_13_R1.NBTTagCompound"); -// ItemStackClass_e = Class.forName("net.minecraft.server.v1_13_R1.ItemStack"); -// save = ItemStackClass_e.getDeclaredMethod("save", NBTTagCompoundClass); -// } catch (ReflectiveOperationException e) { -// e.printStackTrace(); -// } -// for(int i=0;i<1e5;i++) { -// try { -// ItemStack item = p.getItemInHand(); -// Object ci = CraftItemStackClass.cast(item); -// Object ei = asNMSCopy.invoke(ci, item); -// Object cpd = save.invoke(ei, NBTTagCompoundClass.newInstance()); -// String str = cpd.toString(); -// //p.sendMessage(cpd.toString()); -// } catch (ReflectiveOperationException e) { -// e.printStackTrace(); -// } -// } -// ed=System.currentTimeMillis(); -// Bukkit.broadcastMessage("test #3: "+(ed-st)+"ms"); - - -// st=System.currentTimeMillis(); -// -// for(int i=0;i<1;i++) { -// ItemStack item = p.getItemInHand(); -// String str = new NbtItemStack(item).getOrCreateTag().toString(); -// //Bukkit.broadcastMessage(str); -// p.sendMessage(str); -// } -// ed=System.currentTimeMillis(); -// Bukkit.broadcastMessage("test #3: "+(ed-st)+"ms"); - -// net.minecraft.server.v1_16_R3.ItemStack nmsItem = CraftItemStack.asNMSCopy(item); -// NBTTagCompound cpd = nmsItem.save(new NBTTagCompound()); - -// net.minecraft.world.item.ItemStack nmsItem = CraftItemStack.asNMSCopy(item); -// NBTTagCompound cpd = nmsItem.b(new NBTTagCompound()); -// p.sendMessage(cpd.toString()); \ No newline at end of file diff --git a/src/main/java/pers/xanadu/enderdragon/event/DragonRespawnPostEvent.java b/src/main/java/pers/xanadu/enderdragon/event/DragonRespawnPostEvent.java index bae8264..7f9b662 100644 --- a/src/main/java/pers/xanadu/enderdragon/event/DragonRespawnPostEvent.java +++ b/src/main/java/pers/xanadu/enderdragon/event/DragonRespawnPostEvent.java @@ -6,7 +6,8 @@ import org.bukkit.entity.EnderDragon; import org.bukkit.event.HandlerList; import org.bukkit.event.entity.CreatureSpawnEvent; import pers.xanadu.enderdragon.manager.DragonManager; -import pers.xanadu.enderdragon.util.MyDragon; +import pers.xanadu.enderdragon.metadata.DragonInfo; + /** * Called when a dragon is spawned, filtered through blacklist. *

@@ -16,11 +17,11 @@ public final class DragonRespawnPostEvent extends CreatureSpawnEvent { private static final HandlerList handlers = new HandlerList(); private boolean cancel = false; private final World world; - private final MyDragon myDragon; - public DragonRespawnPostEvent(final EnderDragon dragon, final SpawnReason reason, final MyDragon myDragon) { + private final DragonInfo info; + public DragonRespawnPostEvent(final EnderDragon dragon, final SpawnReason reason, final DragonInfo dragonInfo) { super(dragon,reason); world = dragon.getWorld(); - this.myDragon = myDragon; + this.info = dragonInfo; } public EnderDragon getEnderDragon(){ @@ -30,11 +31,8 @@ public final class DragonRespawnPostEvent extends CreatureSpawnEvent { public Location getEndPortalLocation(){ return DragonManager.getEndPortalLocation(world); } - public MyDragon getDragonConfiguration(){ - return myDragon; - } - public String getDragonUniqueId(){ - return myDragon.unique_name; + public DragonInfo getDragonInformation(){ + return info; } public static HandlerList getHandlerList() { return handlers; diff --git a/src/main/java/pers/xanadu/enderdragon/gui/GUI.java b/src/main/java/pers/xanadu/enderdragon/gui/GUI.java index cfc83d3..e9ff465 100644 --- a/src/main/java/pers/xanadu/enderdragon/gui/GUI.java +++ b/src/main/java/pers/xanadu/enderdragon/gui/GUI.java @@ -12,8 +12,9 @@ import pers.xanadu.enderdragon.manager.DragonManager; import pers.xanadu.enderdragon.manager.ItemManager; import pers.xanadu.enderdragon.gui.slot.EmptySlot; import pers.xanadu.enderdragon.gui.slot.ItemSlot; +import pers.xanadu.enderdragon.manager.RewardManager; import pers.xanadu.enderdragon.reward.Reward; -import pers.xanadu.enderdragon.util.MyDragon; +import pers.xanadu.enderdragon.metadata.MyDragon; import java.util.ArrayList; import java.util.HashSet; @@ -117,7 +118,7 @@ public class GUI { resetPagedItem(key,cmd); } else if(type == 2){ - for(MyDragon myDragon : DragonManager.dragons){ + for(MyDragon myDragon : DragonManager.get_dragons()){ this.addDragon(myDragon.icon.clone(),myDragon.unique_name); } } @@ -125,9 +126,9 @@ public class GUI { } public void resetPagedItem(String key,boolean cmd){ this.pagedItems.clear(); - MyDragon dragon = DragonManager.mp.get(key); - if(dragon == null) return; - for(Reward reward : dragon.datum){ + List rewards = RewardManager.getRewards(key); + if(rewards == null) return; + for(Reward reward : rewards){ if(Config.debug) Bukkit.getLogger().info(reward.toString()); //if(ItemManager.isEmpty(reward.getItem())) continue; ItemStack item = reward.getItem().clone(); diff --git a/src/main/java/pers/xanadu/enderdragon/listener/DragonAttackListener.java b/src/main/java/pers/xanadu/enderdragon/listener/DragonAttackListener.java index de53154..b94897a 100644 --- a/src/main/java/pers/xanadu/enderdragon/listener/DragonAttackListener.java +++ b/src/main/java/pers/xanadu/enderdragon/listener/DragonAttackListener.java @@ -8,7 +8,7 @@ import org.bukkit.event.entity.EntityDamageByEntityEvent; import org.bukkit.potion.PotionEffect; import pers.xanadu.enderdragon.manager.DragonManager; import pers.xanadu.enderdragon.util.ExtraPotionEffect; -import pers.xanadu.enderdragon.util.MyDragon; +import pers.xanadu.enderdragon.metadata.MyDragon; public class DragonAttackListener implements Listener { @EventHandler(priority = EventPriority.LOW) @@ -19,7 +19,7 @@ public class DragonAttackListener implements Listener { EnderDragon dragon = (EnderDragon) attack; String unique_name = DragonManager.getSpecialKey(dragon); if(unique_name == null) return; - MyDragon myDragon = DragonManager.mp.get(unique_name); + MyDragon myDragon = DragonManager.get_dragon_config(unique_name); if(myDragon == null) return; e.setDamage(Math.max(0.1, e.getDamage() + myDragon.attack_damage_modify)); if(victim instanceof Player){ diff --git a/src/main/java/pers/xanadu/enderdragon/listener/DragonDeathListener.java b/src/main/java/pers/xanadu/enderdragon/listener/DragonDeathListener.java index 43cad70..ca46647 100644 --- a/src/main/java/pers/xanadu/enderdragon/listener/DragonDeathListener.java +++ b/src/main/java/pers/xanadu/enderdragon/listener/DragonDeathListener.java @@ -19,7 +19,7 @@ import pers.xanadu.enderdragon.config.Lang; import pers.xanadu.enderdragon.manager.DamageManager; import pers.xanadu.enderdragon.manager.DragonManager; import pers.xanadu.enderdragon.manager.TimerManager; -import pers.xanadu.enderdragon.util.MyDragon; +import pers.xanadu.enderdragon.metadata.MyDragon; import pers.xanadu.enderdragon.util.Pair; import java.io.IOException; @@ -36,7 +36,7 @@ public class DragonDeathListener implements Listener { EnderDragon dragon = (EnderDragon) e.getEntity(); String unique_name = DragonManager.getSpecialKey(dragon); if(unique_name == null) return; - MyDragon myDragon = DragonManager.mp.get(unique_name); + MyDragon myDragon = DragonManager.get_dragon_config(unique_name); if(myDragon == null) return; int times = data.getInt("times"); data.set("times",times+1); diff --git a/src/main/java/pers/xanadu/enderdragon/listener/DragonFireballListener.java b/src/main/java/pers/xanadu/enderdragon/listener/DragonFireballListener.java index de0ca51..3f8c4f3 100644 --- a/src/main/java/pers/xanadu/enderdragon/listener/DragonFireballListener.java +++ b/src/main/java/pers/xanadu/enderdragon/listener/DragonFireballListener.java @@ -1,24 +1,18 @@ package pers.xanadu.enderdragon.listener; -import org.bukkit.Bukkit; import org.bukkit.Color; import org.bukkit.Particle; import org.bukkit.entity.AreaEffectCloud; -import org.bukkit.entity.DragonFireball; import org.bukkit.entity.EnderDragon; -import org.bukkit.entity.Projectile; import org.bukkit.event.EventHandler; import org.bukkit.event.EventPriority; import org.bukkit.event.Listener; -import org.bukkit.event.entity.EnderDragonChangePhaseEvent; import org.bukkit.event.entity.EntitySpawnEvent; -import org.bukkit.event.entity.ProjectileLaunchEvent; import org.bukkit.potion.PotionEffect; -import org.bukkit.projectiles.ProjectileSource; -import pers.xanadu.enderdragon.util.MyDragon; +import pers.xanadu.enderdragon.manager.DragonManager; +import pers.xanadu.enderdragon.metadata.MyDragon; import static pers.xanadu.enderdragon.manager.DragonManager.getSpecialKey; -import static pers.xanadu.enderdragon.manager.DragonManager.mp; public class DragonFireballListener implements Listener { @@ -49,7 +43,7 @@ public class DragonFireballListener implements Listener { EnderDragon dragon = (EnderDragon) effectCloud.getSource(); String unique_name = getSpecialKey(dragon); if(unique_name == null) return; - MyDragon myDragon = mp.get(unique_name); + MyDragon myDragon = DragonManager.get_dragon_config(unique_name); if(myDragon == null) return; effectCloud.setRadius((float) myDragon.effect_cloud_original_radius); effectCloud.setRadiusPerTick((float) myDragon.effect_cloud_expand_speed/20f); diff --git a/src/main/java/pers/xanadu/enderdragon/listener/DragonHealListener.java b/src/main/java/pers/xanadu/enderdragon/listener/DragonHealListener.java index 60351d4..25bf4d4 100644 --- a/src/main/java/pers/xanadu/enderdragon/listener/DragonHealListener.java +++ b/src/main/java/pers/xanadu/enderdragon/listener/DragonHealListener.java @@ -5,10 +5,10 @@ import org.bukkit.event.EventHandler; import org.bukkit.event.EventPriority; import org.bukkit.event.Listener; import org.bukkit.event.entity.EntityRegainHealthEvent; -import pers.xanadu.enderdragon.util.MyDragon; +import pers.xanadu.enderdragon.manager.DragonManager; +import pers.xanadu.enderdragon.metadata.MyDragon; import static pers.xanadu.enderdragon.manager.DragonManager.getSpecialKey; -import static pers.xanadu.enderdragon.manager.DragonManager.mp; public class DragonHealListener implements Listener { @EventHandler(priority = EventPriority.HIGH) @@ -18,7 +18,7 @@ public class DragonHealListener implements Listener { if(!e.getRegainReason().equals(EntityRegainHealthEvent.RegainReason.ENDER_CRYSTAL)) return; String unique_name = getSpecialKey(dragon); if(unique_name == null) return; - MyDragon myDragon = mp.get(unique_name); + MyDragon myDragon = DragonManager.get_dragon_config(unique_name); if(myDragon == null) return; e.setAmount(myDragon.crystal_heal_speed / 2d); } diff --git a/src/main/java/pers/xanadu/enderdragon/listener/DragonSpawnListener.java b/src/main/java/pers/xanadu/enderdragon/listener/DragonSpawnListener.java index 2ca58af..52d1a50 100644 --- a/src/main/java/pers/xanadu/enderdragon/listener/DragonSpawnListener.java +++ b/src/main/java/pers/xanadu/enderdragon/listener/DragonSpawnListener.java @@ -14,7 +14,8 @@ import pers.xanadu.enderdragon.config.Config; import pers.xanadu.enderdragon.config.Lang; import pers.xanadu.enderdragon.event.DragonRespawnPostEvent; import pers.xanadu.enderdragon.manager.DamageManager; -import pers.xanadu.enderdragon.util.MyDragon; +import pers.xanadu.enderdragon.metadata.DragonInfo; +import pers.xanadu.enderdragon.metadata.MyDragon; import pers.xanadu.enderdragon.util.Version; import java.util.*; @@ -40,6 +41,15 @@ public class DragonSpawnListener implements Listener { Lang.warn("special_dragon_jude_mode setting error!"); return; } + DragonInfo info = new DragonInfo(myDragon.unique_name); + Bukkit.getPluginManager().callEvent(new DragonRespawnPostEvent(dragon,e.getSpawnReason(),info)); + MyDragon update = getFromInfo(info); + if(update == null) { + Lang.error("Unknown unique_name in DragonInfo: "+info.unique_name); + } + else{ + myDragon = update; + } setSpecialKey(dragon, myDragon.unique_name); DamageManager.data.put(dragon.getUniqueId(),new ConcurrentHashMap<>()); int times = data.getInt("times"); @@ -73,7 +83,6 @@ public class DragonSpawnListener implements Listener { else if(Version.mcMainVersion >= 12){ getInstance().getBossBarManager().setBossBar(dragon.getWorld(),myDragon.display_name,bossBar_color,bossBar_style); } - Bukkit.getPluginManager().callEvent(new DragonRespawnPostEvent(dragon,e.getSpawnReason(),myDragon)); if(Config.advanced_setting_save_bossbar){ getInstance().getBossBarManager().saveBossBarData(Collections.singletonList(dragon.getWorld())); } diff --git a/src/main/java/pers/xanadu/enderdragon/listener/InventoryListener.java b/src/main/java/pers/xanadu/enderdragon/listener/InventoryListener.java index 7ce64c2..895f80e 100644 --- a/src/main/java/pers/xanadu/enderdragon/listener/InventoryListener.java +++ b/src/main/java/pers/xanadu/enderdragon/listener/InventoryListener.java @@ -17,7 +17,7 @@ import pers.xanadu.enderdragon.gui.slot.PageJumpSlot; import pers.xanadu.enderdragon.manager.DragonManager; import pers.xanadu.enderdragon.manager.GuiManager; import pers.xanadu.enderdragon.manager.RewardManager; -import pers.xanadu.enderdragon.util.MyDragon; +import pers.xanadu.enderdragon.metadata.MyDragon; public class InventoryListener implements Listener { @EventHandler(priority = EventPriority.LOWEST) @@ -65,7 +65,7 @@ public class InventoryListener implements Listener { } if(type == GUISlotType.DRAGON_SLOT){ String unique_name = guiWrapper.getData(guiWrapper.getPage(),e.getRawSlot()); - MyDragon dragon = DragonManager.mp.get(unique_name); + MyDragon dragon = DragonManager.get_dragon_config(unique_name); if(dragon == null){ Lang.sendFeedback(p,Lang.gui_not_found); return; @@ -98,7 +98,7 @@ public class InventoryListener implements Listener { } if(type == GUISlotType.DRAGON_SLOT){ String unique_name = guiWrapper.getData(guiWrapper.getPage(),e.getRawSlot()); - MyDragon dragon = DragonManager.mp.get(unique_name); + MyDragon dragon = DragonManager.get_dragon_config(unique_name); if(dragon == null){ Lang.sendFeedback(p,Lang.gui_not_found); return; diff --git a/src/main/java/pers/xanadu/enderdragon/manager/DragonManager.java b/src/main/java/pers/xanadu/enderdragon/manager/DragonManager.java index 0ff6cc5..cd179e6 100644 --- a/src/main/java/pers/xanadu/enderdragon/manager/DragonManager.java +++ b/src/main/java/pers/xanadu/enderdragon/manager/DragonManager.java @@ -12,11 +12,13 @@ import org.bukkit.entity.*; import org.bukkit.potion.PotionEffect; import org.bukkit.potion.PotionEffectType; import org.bukkit.scheduler.BukkitRunnable; +import org.jetbrains.annotations.Nullable; import pers.xanadu.enderdragon.config.Config; import pers.xanadu.enderdragon.config.Lang; +import pers.xanadu.enderdragon.metadata.DragonInfo; import pers.xanadu.enderdragon.reward.RewardDist; import pers.xanadu.enderdragon.util.ExtraPotionEffect; -import pers.xanadu.enderdragon.util.MyDragon; +import pers.xanadu.enderdragon.metadata.MyDragon; import pers.xanadu.enderdragon.util.Version; import java.io.File; @@ -28,8 +30,8 @@ import java.util.concurrent.ThreadLocalRandom; import static pers.xanadu.enderdragon.EnderDragon.*; public class DragonManager { - public static ArrayList dragons = new ArrayList<>(); - public static HashMap mp = new HashMap<>(); + static final ArrayList dragons = new ArrayList<>(); + static final Map mp = new HashMap<>(); public static List dragon_names = new ArrayList<>(); private static int sum = 0; private static final int[][] nxt = {{3,0},{0,3},{-3,0},{0,-3}}; @@ -272,6 +274,30 @@ public class DragonManager { dragon_names.clear(); } + /** + * 请勿修改MyDragon对象

+ * 方法将在后续被删除 + * @return MyDragon configuration + */ + @Deprecated + public static MyDragon get_dragon_config(String unique_name){ + return mp.get(unique_name); + } + + /** + * 请勿修改得到的List + */ + @Deprecated + public static List get_dragons(){ + return dragons; + } + @Nullable + public static MyDragon getFromInfo(DragonInfo info){ + return mp.get(info.unique_name); + } + public static int getCount(){ + return data.getInt("times"); + } public static void setAttribute(final EnderDragon dragon,final Attribute attribute, double amount){ AttributeInstance instance = dragon.getAttribute(attribute); assert instance != null; diff --git a/src/main/java/pers/xanadu/enderdragon/manager/RewardManager.java b/src/main/java/pers/xanadu/enderdragon/manager/RewardManager.java index 44b00d8..008d4e3 100644 --- a/src/main/java/pers/xanadu/enderdragon/manager/RewardManager.java +++ b/src/main/java/pers/xanadu/enderdragon/manager/RewardManager.java @@ -10,7 +10,7 @@ import pers.xanadu.enderdragon.config.Config; import pers.xanadu.enderdragon.config.Lang; import pers.xanadu.enderdragon.reward.Reward; import pers.xanadu.enderdragon.reward.Chance; -import pers.xanadu.enderdragon.util.MyDragon; +import pers.xanadu.enderdragon.metadata.MyDragon; import java.io.File; import java.io.FileNotFoundException; @@ -101,6 +101,16 @@ public class RewardManager { } return false; } + + /** + * 请勿修改获取的List + * @return rewards of one type of dragon + */ + public static List getRewards(String unique_name){ + MyDragon dragon = DragonManager.mp.get(unique_name); + if(dragon == null) return null; + return dragon.datum; + } private static File getRewardFile(String key){ String file_path = "reward/" + key + ".yml"; File file = new File(plugin.getDataFolder(),file_path); diff --git a/src/main/java/pers/xanadu/enderdragon/metadata/DragonInfo.java b/src/main/java/pers/xanadu/enderdragon/metadata/DragonInfo.java new file mode 100644 index 0000000..cfda84c --- /dev/null +++ b/src/main/java/pers/xanadu/enderdragon/metadata/DragonInfo.java @@ -0,0 +1,8 @@ +package pers.xanadu.enderdragon.metadata; + +public class DragonInfo { + public String unique_name; + public DragonInfo(String unique_name){ + this.unique_name = unique_name; + } +} diff --git a/src/main/java/pers/xanadu/enderdragon/util/MyDragon.java b/src/main/java/pers/xanadu/enderdragon/metadata/MyDragon.java similarity index 95% rename from src/main/java/pers/xanadu/enderdragon/util/MyDragon.java rename to src/main/java/pers/xanadu/enderdragon/metadata/MyDragon.java index 65dbf20..e6de4e8 100644 --- a/src/main/java/pers/xanadu/enderdragon/util/MyDragon.java +++ b/src/main/java/pers/xanadu/enderdragon/metadata/MyDragon.java @@ -1,62 +1,63 @@ -package pers.xanadu.enderdragon.util; - -import org.bukkit.inventory.ItemStack; -import org.bukkit.potion.PotionEffect; -import pers.xanadu.enderdragon.reward.Reward; -import pers.xanadu.enderdragon.reward.RewardDist; - -import java.util.ArrayList; -import java.util.List; - -public class MyDragon implements Comparable{ - public ItemStack icon; - public String unique_name; - public String display_name; - public String drop_gui; - public int edge; - public int priority; - public double spawn_chance; - public int max_health; - public int spawn_health; - public int no_damage_tick; - public int exp_drop; - public int dragon_egg_spawn_delay; - public int dragon_egg_spawn_x; - public int dragon_egg_spawn_y; - public int dragon_egg_spawn_z; - public double dragon_egg_spawn_chance; - public double attack_damage_modify; - //public double move_speed_modify; - public double armor_modify; - public double armor_toughness_modify; - public double crystal_heal_speed; - public boolean suck_blood_enable; - public double suck_blood_rate; - public double suck_blood_base_amount; - public boolean suck_blood_only_player; - public List attack_potion_effect; - public List attack_extra_effect; - public List spawn_cmd; - public List death_cmd; - public List spawn_broadcast_msg; - public List death_broadcast_msg; - public List msg_to_killer; - public String glow_color; - public String bossbar_color; - public String bossbar_style; - public double effect_cloud_original_radius; - public double effect_cloud_expand_speed; - public int effect_cloud_duration; - public int effect_cloud_color_R; - public int effect_cloud_color_G; - public int effect_cloud_color_B; - public List effect_cloud_potion; - public List datum = new ArrayList<>(); - public RewardDist reward_dist; - - @Override - public int compareTo(final MyDragon o) { - return o.priority - this.priority;//降序 - } - -} +package pers.xanadu.enderdragon.metadata; + +import org.bukkit.inventory.ItemStack; +import org.bukkit.potion.PotionEffect; +import pers.xanadu.enderdragon.reward.Reward; +import pers.xanadu.enderdragon.reward.RewardDist; +import pers.xanadu.enderdragon.util.ExtraPotionEffect; + +import java.util.ArrayList; +import java.util.List; + +public class MyDragon implements Comparable{ + public ItemStack icon; + public String unique_name; + public String display_name; + public String drop_gui; + public int edge; + public int priority; + public double spawn_chance; + public int max_health; + public int spawn_health; + public int no_damage_tick; + public int exp_drop; + public int dragon_egg_spawn_delay; + public int dragon_egg_spawn_x; + public int dragon_egg_spawn_y; + public int dragon_egg_spawn_z; + public double dragon_egg_spawn_chance; + public double attack_damage_modify; + //public double move_speed_modify; + public double armor_modify; + public double armor_toughness_modify; + public double crystal_heal_speed; + public boolean suck_blood_enable; + public double suck_blood_rate; + public double suck_blood_base_amount; + public boolean suck_blood_only_player; + public List attack_potion_effect; + public List attack_extra_effect; + public List spawn_cmd; + public List death_cmd; + public List spawn_broadcast_msg; + public List death_broadcast_msg; + public List msg_to_killer; + public String glow_color; + public String bossbar_color; + public String bossbar_style; + public double effect_cloud_original_radius; + public double effect_cloud_expand_speed; + public int effect_cloud_duration; + public int effect_cloud_color_R; + public int effect_cloud_color_G; + public int effect_cloud_color_B; + public List effect_cloud_potion; + public List datum = new ArrayList<>(); + public RewardDist reward_dist; + + @Override + public int compareTo(final MyDragon o) { + return o.priority - this.priority;//降序 + } + +} diff --git a/src/main/java/pers/xanadu/enderdragon/reward/RewardDist.java b/src/main/java/pers/xanadu/enderdragon/reward/RewardDist.java index 2b41a98..2b7272d 100644 --- a/src/main/java/pers/xanadu/enderdragon/reward/RewardDist.java +++ b/src/main/java/pers/xanadu/enderdragon/reward/RewardDist.java @@ -6,7 +6,7 @@ import org.bukkit.entity.Player; import org.bukkit.inventory.ItemStack; import pers.xanadu.enderdragon.config.Lang; import pers.xanadu.enderdragon.reward.dist.*; -import pers.xanadu.enderdragon.util.MyDragon; +import pers.xanadu.enderdragon.metadata.MyDragon; import java.util.ArrayList; import java.util.List; diff --git a/src/main/java/pers/xanadu/enderdragon/reward/dist/Dist_All.java b/src/main/java/pers/xanadu/enderdragon/reward/dist/Dist_All.java index 47abdd3..6626b52 100644 --- a/src/main/java/pers/xanadu/enderdragon/reward/dist/Dist_All.java +++ b/src/main/java/pers/xanadu/enderdragon/reward/dist/Dist_All.java @@ -7,7 +7,7 @@ import org.bukkit.inventory.ItemStack; import pers.xanadu.enderdragon.config.Lang; import pers.xanadu.enderdragon.manager.DamageManager; import pers.xanadu.enderdragon.reward.RewardDist; -import pers.xanadu.enderdragon.util.MyDragon; +import pers.xanadu.enderdragon.metadata.MyDragon; import java.util.List; import java.util.concurrent.ConcurrentHashMap; diff --git a/src/main/java/pers/xanadu/enderdragon/reward/dist/Dist_Drop.java b/src/main/java/pers/xanadu/enderdragon/reward/dist/Dist_Drop.java index 8cb1ce3..3db17fa 100644 --- a/src/main/java/pers/xanadu/enderdragon/reward/dist/Dist_Drop.java +++ b/src/main/java/pers/xanadu/enderdragon/reward/dist/Dist_Drop.java @@ -11,7 +11,7 @@ import org.bukkit.inventory.ItemStack; import org.bukkit.util.Vector; import pers.xanadu.enderdragon.manager.GlowManager; import pers.xanadu.enderdragon.reward.RewardDist; -import pers.xanadu.enderdragon.util.MyDragon; +import pers.xanadu.enderdragon.metadata.MyDragon; import java.util.List; import java.util.concurrent.ThreadLocalRandom; diff --git a/src/main/java/pers/xanadu/enderdragon/reward/dist/Dist_Killer.java b/src/main/java/pers/xanadu/enderdragon/reward/dist/Dist_Killer.java index f442e38..c91e4d9 100644 --- a/src/main/java/pers/xanadu/enderdragon/reward/dist/Dist_Killer.java +++ b/src/main/java/pers/xanadu/enderdragon/reward/dist/Dist_Killer.java @@ -5,7 +5,7 @@ import org.bukkit.entity.Player; import org.bukkit.inventory.ItemStack; import pers.xanadu.enderdragon.config.Lang; import pers.xanadu.enderdragon.reward.RewardDist; -import pers.xanadu.enderdragon.util.MyDragon; +import pers.xanadu.enderdragon.metadata.MyDragon; import java.util.List; diff --git a/src/main/java/pers/xanadu/enderdragon/reward/dist/Dist_Pack.java b/src/main/java/pers/xanadu/enderdragon/reward/dist/Dist_Pack.java index a443c3f..27d57d2 100644 --- a/src/main/java/pers/xanadu/enderdragon/reward/dist/Dist_Pack.java +++ b/src/main/java/pers/xanadu/enderdragon/reward/dist/Dist_Pack.java @@ -9,7 +9,7 @@ import pers.xanadu.enderdragon.config.Lang; import pers.xanadu.enderdragon.manager.DamageManager; import pers.xanadu.enderdragon.reward.RewardDist; import pers.xanadu.enderdragon.util.AExpJ; -import pers.xanadu.enderdragon.util.MyDragon; +import pers.xanadu.enderdragon.metadata.MyDragon; import java.util.List; import java.util.concurrent.ConcurrentHashMap; diff --git a/src/main/java/pers/xanadu/enderdragon/reward/dist/Dist_Rank.java b/src/main/java/pers/xanadu/enderdragon/reward/dist/Dist_Rank.java index d17fb95..8dc4e37 100644 --- a/src/main/java/pers/xanadu/enderdragon/reward/dist/Dist_Rank.java +++ b/src/main/java/pers/xanadu/enderdragon/reward/dist/Dist_Rank.java @@ -8,7 +8,7 @@ import org.bukkit.inventory.ItemStack; import pers.xanadu.enderdragon.config.Lang; import pers.xanadu.enderdragon.manager.DamageManager; import pers.xanadu.enderdragon.reward.RewardDist; -import pers.xanadu.enderdragon.util.MyDragon; +import pers.xanadu.enderdragon.metadata.MyDragon; import java.util.List; import java.util.Map; diff --git a/src/main/java/pers/xanadu/enderdragon/reward/dist/Dist_Termwise.java b/src/main/java/pers/xanadu/enderdragon/reward/dist/Dist_Termwise.java index 65bdc1d..05c170d 100644 --- a/src/main/java/pers/xanadu/enderdragon/reward/dist/Dist_Termwise.java +++ b/src/main/java/pers/xanadu/enderdragon/reward/dist/Dist_Termwise.java @@ -8,7 +8,7 @@ import pers.xanadu.enderdragon.config.Lang; import pers.xanadu.enderdragon.manager.DamageManager; import pers.xanadu.enderdragon.reward.RewardDist; import pers.xanadu.enderdragon.util.AliasSample; -import pers.xanadu.enderdragon.util.MyDragon; +import pers.xanadu.enderdragon.metadata.MyDragon; import java.util.ArrayList; import java.util.List; diff --git a/src/main/resources/plugin.yml b/src/main/resources/plugin.yml index 10a3d4e..4c7d5c5 100644 --- a/src/main/resources/plugin.yml +++ b/src/main/resources/plugin.yml @@ -1,5 +1,5 @@ name: EnderDragon -version: 2.3.0 +version: 2.4.0 main: pers.xanadu.enderdragon.EnderDragon author: Xanadu13 api-version: 1.13