Update DragonRespawnPostEvent

This commit is contained in:
Xanadu13
2023-12-27 16:20:47 +08:00
parent 74f61b646c
commit 55bbc54335
22 changed files with 159 additions and 182 deletions
@@ -246,6 +246,7 @@ public final class EnderDragon extends JavaPlugin {
catch (Exception ignored) {} catch (Exception ignored) {}
} }
} }
private void fixWorldBossBar(){ private void fixWorldBossBar(){
new BukkitRunnable(){ new BukkitRunnable(){
@Override @Override
@@ -15,7 +15,7 @@ import pers.xanadu.enderdragon.maven.DependencyManager;
import pers.xanadu.enderdragon.reward.Chance; import pers.xanadu.enderdragon.reward.Chance;
import pers.xanadu.enderdragon.config.FileUpdater; import pers.xanadu.enderdragon.config.FileUpdater;
import pers.xanadu.enderdragon.task.DragonRespawnTimer; import pers.xanadu.enderdragon.task.DragonRespawnTimer;
import pers.xanadu.enderdragon.util.MyDragon; import pers.xanadu.enderdragon.metadata.MyDragon;
import org.jetbrains.annotations.NotNull; import org.jetbrains.annotations.NotNull;
import java.io.IOException; import java.io.IOException;
@@ -248,7 +248,7 @@ public class MainCommand implements CommandExecutor {
} }
if(args.length == 3){ if(args.length == 3){
String key = args[2]; String key = args[2];
MyDragon dragon = DragonManager.mp.get(key); MyDragon dragon = DragonManager.get_dragon_config(key);
if(dragon == null){ if(dragon == null){
Lang.sendFeedback(sender, Lang.dragon_not_found); Lang.sendFeedback(sender, Lang.dragon_not_found);
return false; 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());
@@ -6,7 +6,8 @@ import org.bukkit.entity.EnderDragon;
import org.bukkit.event.HandlerList; import org.bukkit.event.HandlerList;
import org.bukkit.event.entity.CreatureSpawnEvent; import org.bukkit.event.entity.CreatureSpawnEvent;
import pers.xanadu.enderdragon.manager.DragonManager; 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. * Called when a dragon is spawned, filtered through blacklist.
* <p> * <p>
@@ -16,11 +17,11 @@ public final class DragonRespawnPostEvent extends CreatureSpawnEvent {
private static final HandlerList handlers = new HandlerList(); private static final HandlerList handlers = new HandlerList();
private boolean cancel = false; private boolean cancel = false;
private final World world; private final World world;
private final MyDragon myDragon; private final DragonInfo info;
public DragonRespawnPostEvent(final EnderDragon dragon, final SpawnReason reason, final MyDragon myDragon) { public DragonRespawnPostEvent(final EnderDragon dragon, final SpawnReason reason, final DragonInfo dragonInfo) {
super(dragon,reason); super(dragon,reason);
world = dragon.getWorld(); world = dragon.getWorld();
this.myDragon = myDragon; this.info = dragonInfo;
} }
public EnderDragon getEnderDragon(){ public EnderDragon getEnderDragon(){
@@ -30,11 +31,8 @@ public final class DragonRespawnPostEvent extends CreatureSpawnEvent {
public Location getEndPortalLocation(){ public Location getEndPortalLocation(){
return DragonManager.getEndPortalLocation(world); return DragonManager.getEndPortalLocation(world);
} }
public MyDragon getDragonConfiguration(){ public DragonInfo getDragonInformation(){
return myDragon; return info;
}
public String getDragonUniqueId(){
return myDragon.unique_name;
} }
public static HandlerList getHandlerList() { public static HandlerList getHandlerList() {
return handlers; return handlers;
@@ -12,8 +12,9 @@ import pers.xanadu.enderdragon.manager.DragonManager;
import pers.xanadu.enderdragon.manager.ItemManager; import pers.xanadu.enderdragon.manager.ItemManager;
import pers.xanadu.enderdragon.gui.slot.EmptySlot; import pers.xanadu.enderdragon.gui.slot.EmptySlot;
import pers.xanadu.enderdragon.gui.slot.ItemSlot; import pers.xanadu.enderdragon.gui.slot.ItemSlot;
import pers.xanadu.enderdragon.manager.RewardManager;
import pers.xanadu.enderdragon.reward.Reward; 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.ArrayList;
import java.util.HashSet; import java.util.HashSet;
@@ -117,7 +118,7 @@ public class GUI {
resetPagedItem(key,cmd); resetPagedItem(key,cmd);
} }
else if(type == 2){ else if(type == 2){
for(MyDragon myDragon : DragonManager.dragons){ for(MyDragon myDragon : DragonManager.get_dragons()){
this.addDragon(myDragon.icon.clone(),myDragon.unique_name); this.addDragon(myDragon.icon.clone(),myDragon.unique_name);
} }
} }
@@ -125,9 +126,9 @@ public class GUI {
} }
public void resetPagedItem(String key,boolean cmd){ public void resetPagedItem(String key,boolean cmd){
this.pagedItems.clear(); this.pagedItems.clear();
MyDragon dragon = DragonManager.mp.get(key); List<Reward> rewards = RewardManager.getRewards(key);
if(dragon == null) return; if(rewards == null) return;
for(Reward reward : dragon.datum){ for(Reward reward : rewards){
if(Config.debug) Bukkit.getLogger().info(reward.toString()); if(Config.debug) Bukkit.getLogger().info(reward.toString());
//if(ItemManager.isEmpty(reward.getItem())) continue; //if(ItemManager.isEmpty(reward.getItem())) continue;
ItemStack item = reward.getItem().clone(); ItemStack item = reward.getItem().clone();
@@ -8,7 +8,7 @@ import org.bukkit.event.entity.EntityDamageByEntityEvent;
import org.bukkit.potion.PotionEffect; import org.bukkit.potion.PotionEffect;
import pers.xanadu.enderdragon.manager.DragonManager; import pers.xanadu.enderdragon.manager.DragonManager;
import pers.xanadu.enderdragon.util.ExtraPotionEffect; import pers.xanadu.enderdragon.util.ExtraPotionEffect;
import pers.xanadu.enderdragon.util.MyDragon; import pers.xanadu.enderdragon.metadata.MyDragon;
public class DragonAttackListener implements Listener { public class DragonAttackListener implements Listener {
@EventHandler(priority = EventPriority.LOW) @EventHandler(priority = EventPriority.LOW)
@@ -19,7 +19,7 @@ public class DragonAttackListener implements Listener {
EnderDragon dragon = (EnderDragon) attack; EnderDragon dragon = (EnderDragon) attack;
String unique_name = DragonManager.getSpecialKey(dragon); String unique_name = DragonManager.getSpecialKey(dragon);
if(unique_name == null) return; if(unique_name == null) return;
MyDragon myDragon = DragonManager.mp.get(unique_name); MyDragon myDragon = DragonManager.get_dragon_config(unique_name);
if(myDragon == null) return; if(myDragon == null) return;
e.setDamage(Math.max(0.1, e.getDamage() + myDragon.attack_damage_modify)); e.setDamage(Math.max(0.1, e.getDamage() + myDragon.attack_damage_modify));
if(victim instanceof Player){ if(victim instanceof Player){
@@ -19,7 +19,7 @@ import pers.xanadu.enderdragon.config.Lang;
import pers.xanadu.enderdragon.manager.DamageManager; import pers.xanadu.enderdragon.manager.DamageManager;
import pers.xanadu.enderdragon.manager.DragonManager; import pers.xanadu.enderdragon.manager.DragonManager;
import pers.xanadu.enderdragon.manager.TimerManager; 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 pers.xanadu.enderdragon.util.Pair;
import java.io.IOException; import java.io.IOException;
@@ -36,7 +36,7 @@ public class DragonDeathListener implements Listener {
EnderDragon dragon = (EnderDragon) e.getEntity(); EnderDragon dragon = (EnderDragon) e.getEntity();
String unique_name = DragonManager.getSpecialKey(dragon); String unique_name = DragonManager.getSpecialKey(dragon);
if(unique_name == null) return; if(unique_name == null) return;
MyDragon myDragon = DragonManager.mp.get(unique_name); MyDragon myDragon = DragonManager.get_dragon_config(unique_name);
if(myDragon == null) return; if(myDragon == null) return;
int times = data.getInt("times"); int times = data.getInt("times");
data.set("times",times+1); data.set("times",times+1);
@@ -1,24 +1,18 @@
package pers.xanadu.enderdragon.listener; package pers.xanadu.enderdragon.listener;
import org.bukkit.Bukkit;
import org.bukkit.Color; import org.bukkit.Color;
import org.bukkit.Particle; import org.bukkit.Particle;
import org.bukkit.entity.AreaEffectCloud; import org.bukkit.entity.AreaEffectCloud;
import org.bukkit.entity.DragonFireball;
import org.bukkit.entity.EnderDragon; import org.bukkit.entity.EnderDragon;
import org.bukkit.entity.Projectile;
import org.bukkit.event.EventHandler; import org.bukkit.event.EventHandler;
import org.bukkit.event.EventPriority; import org.bukkit.event.EventPriority;
import org.bukkit.event.Listener; import org.bukkit.event.Listener;
import org.bukkit.event.entity.EnderDragonChangePhaseEvent;
import org.bukkit.event.entity.EntitySpawnEvent; import org.bukkit.event.entity.EntitySpawnEvent;
import org.bukkit.event.entity.ProjectileLaunchEvent;
import org.bukkit.potion.PotionEffect; import org.bukkit.potion.PotionEffect;
import org.bukkit.projectiles.ProjectileSource; import pers.xanadu.enderdragon.manager.DragonManager;
import pers.xanadu.enderdragon.util.MyDragon; import pers.xanadu.enderdragon.metadata.MyDragon;
import static pers.xanadu.enderdragon.manager.DragonManager.getSpecialKey; import static pers.xanadu.enderdragon.manager.DragonManager.getSpecialKey;
import static pers.xanadu.enderdragon.manager.DragonManager.mp;
public class DragonFireballListener implements Listener { public class DragonFireballListener implements Listener {
@@ -49,7 +43,7 @@ public class DragonFireballListener implements Listener {
EnderDragon dragon = (EnderDragon) effectCloud.getSource(); EnderDragon dragon = (EnderDragon) effectCloud.getSource();
String unique_name = getSpecialKey(dragon); String unique_name = getSpecialKey(dragon);
if(unique_name == null) return; if(unique_name == null) return;
MyDragon myDragon = mp.get(unique_name); MyDragon myDragon = DragonManager.get_dragon_config(unique_name);
if(myDragon == null) return; if(myDragon == null) return;
effectCloud.setRadius((float) myDragon.effect_cloud_original_radius); effectCloud.setRadius((float) myDragon.effect_cloud_original_radius);
effectCloud.setRadiusPerTick((float) myDragon.effect_cloud_expand_speed/20f); effectCloud.setRadiusPerTick((float) myDragon.effect_cloud_expand_speed/20f);
@@ -5,10 +5,10 @@ import org.bukkit.event.EventHandler;
import org.bukkit.event.EventPriority; import org.bukkit.event.EventPriority;
import org.bukkit.event.Listener; import org.bukkit.event.Listener;
import org.bukkit.event.entity.EntityRegainHealthEvent; 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.getSpecialKey;
import static pers.xanadu.enderdragon.manager.DragonManager.mp;
public class DragonHealListener implements Listener { public class DragonHealListener implements Listener {
@EventHandler(priority = EventPriority.HIGH) @EventHandler(priority = EventPriority.HIGH)
@@ -18,7 +18,7 @@ public class DragonHealListener implements Listener {
if(!e.getRegainReason().equals(EntityRegainHealthEvent.RegainReason.ENDER_CRYSTAL)) return; if(!e.getRegainReason().equals(EntityRegainHealthEvent.RegainReason.ENDER_CRYSTAL)) return;
String unique_name = getSpecialKey(dragon); String unique_name = getSpecialKey(dragon);
if(unique_name == null) return; if(unique_name == null) return;
MyDragon myDragon = mp.get(unique_name); MyDragon myDragon = DragonManager.get_dragon_config(unique_name);
if(myDragon == null) return; if(myDragon == null) return;
e.setAmount(myDragon.crystal_heal_speed / 2d); e.setAmount(myDragon.crystal_heal_speed / 2d);
} }
@@ -14,7 +14,8 @@ import pers.xanadu.enderdragon.config.Config;
import pers.xanadu.enderdragon.config.Lang; import pers.xanadu.enderdragon.config.Lang;
import pers.xanadu.enderdragon.event.DragonRespawnPostEvent; import pers.xanadu.enderdragon.event.DragonRespawnPostEvent;
import pers.xanadu.enderdragon.manager.DamageManager; 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 pers.xanadu.enderdragon.util.Version;
import java.util.*; import java.util.*;
@@ -40,6 +41,15 @@ public class DragonSpawnListener implements Listener {
Lang.warn("special_dragon_jude_mode setting error!"); Lang.warn("special_dragon_jude_mode setting error!");
return; 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); setSpecialKey(dragon, myDragon.unique_name);
DamageManager.data.put(dragon.getUniqueId(),new ConcurrentHashMap<>()); DamageManager.data.put(dragon.getUniqueId(),new ConcurrentHashMap<>());
int times = data.getInt("times"); int times = data.getInt("times");
@@ -73,7 +83,6 @@ public class DragonSpawnListener implements Listener {
else if(Version.mcMainVersion >= 12){ else if(Version.mcMainVersion >= 12){
getInstance().getBossBarManager().setBossBar(dragon.getWorld(),myDragon.display_name,bossBar_color,bossBar_style); 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){ if(Config.advanced_setting_save_bossbar){
getInstance().getBossBarManager().saveBossBarData(Collections.singletonList(dragon.getWorld())); getInstance().getBossBarManager().saveBossBarData(Collections.singletonList(dragon.getWorld()));
} }
@@ -17,7 +17,7 @@ import pers.xanadu.enderdragon.gui.slot.PageJumpSlot;
import pers.xanadu.enderdragon.manager.DragonManager; import pers.xanadu.enderdragon.manager.DragonManager;
import pers.xanadu.enderdragon.manager.GuiManager; import pers.xanadu.enderdragon.manager.GuiManager;
import pers.xanadu.enderdragon.manager.RewardManager; import pers.xanadu.enderdragon.manager.RewardManager;
import pers.xanadu.enderdragon.util.MyDragon; import pers.xanadu.enderdragon.metadata.MyDragon;
public class InventoryListener implements Listener { public class InventoryListener implements Listener {
@EventHandler(priority = EventPriority.LOWEST) @EventHandler(priority = EventPriority.LOWEST)
@@ -65,7 +65,7 @@ public class InventoryListener implements Listener {
} }
if(type == GUISlotType.DRAGON_SLOT){ if(type == GUISlotType.DRAGON_SLOT){
String unique_name = guiWrapper.getData(guiWrapper.getPage(),e.getRawSlot()); 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){ if(dragon == null){
Lang.sendFeedback(p,Lang.gui_not_found); Lang.sendFeedback(p,Lang.gui_not_found);
return; return;
@@ -98,7 +98,7 @@ public class InventoryListener implements Listener {
} }
if(type == GUISlotType.DRAGON_SLOT){ if(type == GUISlotType.DRAGON_SLOT){
String unique_name = guiWrapper.getData(guiWrapper.getPage(),e.getRawSlot()); 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){ if(dragon == null){
Lang.sendFeedback(p,Lang.gui_not_found); Lang.sendFeedback(p,Lang.gui_not_found);
return; return;
@@ -12,11 +12,13 @@ import org.bukkit.entity.*;
import org.bukkit.potion.PotionEffect; import org.bukkit.potion.PotionEffect;
import org.bukkit.potion.PotionEffectType; import org.bukkit.potion.PotionEffectType;
import org.bukkit.scheduler.BukkitRunnable; import org.bukkit.scheduler.BukkitRunnable;
import org.jetbrains.annotations.Nullable;
import pers.xanadu.enderdragon.config.Config; import pers.xanadu.enderdragon.config.Config;
import pers.xanadu.enderdragon.config.Lang; import pers.xanadu.enderdragon.config.Lang;
import pers.xanadu.enderdragon.metadata.DragonInfo;
import pers.xanadu.enderdragon.reward.RewardDist; import pers.xanadu.enderdragon.reward.RewardDist;
import pers.xanadu.enderdragon.util.ExtraPotionEffect; 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 pers.xanadu.enderdragon.util.Version;
import java.io.File; import java.io.File;
@@ -28,8 +30,8 @@ import java.util.concurrent.ThreadLocalRandom;
import static pers.xanadu.enderdragon.EnderDragon.*; import static pers.xanadu.enderdragon.EnderDragon.*;
public class DragonManager { public class DragonManager {
public static ArrayList<MyDragon> dragons = new ArrayList<>(); static final ArrayList<MyDragon> dragons = new ArrayList<>();
public static HashMap<String, MyDragon> mp = new HashMap<>(); static final Map<String, MyDragon> mp = new HashMap<>();
public static List<String> dragon_names = new ArrayList<>(); public static List<String> dragon_names = new ArrayList<>();
private static int sum = 0; private static int sum = 0;
private static final int[][] nxt = {{3,0},{0,3},{-3,0},{0,-3}}; private static final int[][] nxt = {{3,0},{0,3},{-3,0},{0,-3}};
@@ -272,6 +274,30 @@ public class DragonManager {
dragon_names.clear(); dragon_names.clear();
} }
/**
* 请勿修改MyDragon对象<p>
* 方法将在后续被删除
* @return MyDragon configuration
*/
@Deprecated
public static MyDragon get_dragon_config(String unique_name){
return mp.get(unique_name);
}
/**
* 请勿修改得到的List
*/
@Deprecated
public static List<MyDragon> 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){ public static void setAttribute(final EnderDragon dragon,final Attribute attribute, double amount){
AttributeInstance instance = dragon.getAttribute(attribute); AttributeInstance instance = dragon.getAttribute(attribute);
assert instance != null; assert instance != null;
@@ -10,7 +10,7 @@ import pers.xanadu.enderdragon.config.Config;
import pers.xanadu.enderdragon.config.Lang; import pers.xanadu.enderdragon.config.Lang;
import pers.xanadu.enderdragon.reward.Reward; import pers.xanadu.enderdragon.reward.Reward;
import pers.xanadu.enderdragon.reward.Chance; 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.File;
import java.io.FileNotFoundException; import java.io.FileNotFoundException;
@@ -101,6 +101,16 @@ public class RewardManager {
} }
return false; return false;
} }
/**
* 请勿修改获取的List
* @return rewards of one type of dragon
*/
public static List<Reward> 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){ private static File getRewardFile(String key){
String file_path = "reward/" + key + ".yml"; String file_path = "reward/" + key + ".yml";
File file = new File(plugin.getDataFolder(),file_path); File file = new File(plugin.getDataFolder(),file_path);
@@ -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;
}
}
@@ -1,9 +1,10 @@
package pers.xanadu.enderdragon.util; package pers.xanadu.enderdragon.metadata;
import org.bukkit.inventory.ItemStack; import org.bukkit.inventory.ItemStack;
import org.bukkit.potion.PotionEffect; import org.bukkit.potion.PotionEffect;
import pers.xanadu.enderdragon.reward.Reward; import pers.xanadu.enderdragon.reward.Reward;
import pers.xanadu.enderdragon.reward.RewardDist; import pers.xanadu.enderdragon.reward.RewardDist;
import pers.xanadu.enderdragon.util.ExtraPotionEffect;
import java.util.ArrayList; import java.util.ArrayList;
import java.util.List; import java.util.List;
@@ -6,7 +6,7 @@ import org.bukkit.entity.Player;
import org.bukkit.inventory.ItemStack; import org.bukkit.inventory.ItemStack;
import pers.xanadu.enderdragon.config.Lang; import pers.xanadu.enderdragon.config.Lang;
import pers.xanadu.enderdragon.reward.dist.*; 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.ArrayList;
import java.util.List; import java.util.List;
@@ -7,7 +7,7 @@ import org.bukkit.inventory.ItemStack;
import pers.xanadu.enderdragon.config.Lang; import pers.xanadu.enderdragon.config.Lang;
import pers.xanadu.enderdragon.manager.DamageManager; import pers.xanadu.enderdragon.manager.DamageManager;
import pers.xanadu.enderdragon.reward.RewardDist; 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.List;
import java.util.concurrent.ConcurrentHashMap; import java.util.concurrent.ConcurrentHashMap;
@@ -11,7 +11,7 @@ import org.bukkit.inventory.ItemStack;
import org.bukkit.util.Vector; import org.bukkit.util.Vector;
import pers.xanadu.enderdragon.manager.GlowManager; import pers.xanadu.enderdragon.manager.GlowManager;
import pers.xanadu.enderdragon.reward.RewardDist; 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.List;
import java.util.concurrent.ThreadLocalRandom; import java.util.concurrent.ThreadLocalRandom;
@@ -5,7 +5,7 @@ import org.bukkit.entity.Player;
import org.bukkit.inventory.ItemStack; import org.bukkit.inventory.ItemStack;
import pers.xanadu.enderdragon.config.Lang; import pers.xanadu.enderdragon.config.Lang;
import pers.xanadu.enderdragon.reward.RewardDist; 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.List;
@@ -9,7 +9,7 @@ import pers.xanadu.enderdragon.config.Lang;
import pers.xanadu.enderdragon.manager.DamageManager; import pers.xanadu.enderdragon.manager.DamageManager;
import pers.xanadu.enderdragon.reward.RewardDist; import pers.xanadu.enderdragon.reward.RewardDist;
import pers.xanadu.enderdragon.util.AExpJ; 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.List;
import java.util.concurrent.ConcurrentHashMap; import java.util.concurrent.ConcurrentHashMap;
@@ -8,7 +8,7 @@ import org.bukkit.inventory.ItemStack;
import pers.xanadu.enderdragon.config.Lang; import pers.xanadu.enderdragon.config.Lang;
import pers.xanadu.enderdragon.manager.DamageManager; import pers.xanadu.enderdragon.manager.DamageManager;
import pers.xanadu.enderdragon.reward.RewardDist; 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.List;
import java.util.Map; import java.util.Map;
@@ -8,7 +8,7 @@ import pers.xanadu.enderdragon.config.Lang;
import pers.xanadu.enderdragon.manager.DamageManager; import pers.xanadu.enderdragon.manager.DamageManager;
import pers.xanadu.enderdragon.reward.RewardDist; import pers.xanadu.enderdragon.reward.RewardDist;
import pers.xanadu.enderdragon.util.AliasSample; 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.ArrayList;
import java.util.List; import java.util.List;
+1 -1
View File
@@ -1,5 +1,5 @@
name: EnderDragon name: EnderDragon
version: 2.3.0 version: 2.4.0
main: pers.xanadu.enderdragon.EnderDragon main: pers.xanadu.enderdragon.EnderDragon
author: Xanadu13 author: Xanadu13
api-version: 1.13 api-version: 1.13