Update DragonRespawnPostEvent
This commit is contained in:
@@ -246,6 +246,7 @@ public final class EnderDragon extends JavaPlugin {
|
||||
catch (Exception ignored) {}
|
||||
}
|
||||
}
|
||||
|
||||
private void fixWorldBossBar(){
|
||||
new BukkitRunnable(){
|
||||
@Override
|
||||
|
||||
@@ -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());
|
||||
@@ -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.
|
||||
* <p>
|
||||
@@ -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;
|
||||
|
||||
@@ -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<Reward> 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();
|
||||
|
||||
@@ -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){
|
||||
|
||||
@@ -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);
|
||||
|
||||
@@ -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);
|
||||
|
||||
@@ -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);
|
||||
}
|
||||
|
||||
@@ -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()));
|
||||
}
|
||||
|
||||
@@ -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;
|
||||
|
||||
@@ -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<MyDragon> dragons = new ArrayList<>();
|
||||
public static HashMap<String, MyDragon> mp = new HashMap<>();
|
||||
static final ArrayList<MyDragon> dragons = new ArrayList<>();
|
||||
static final Map<String, MyDragon> mp = new HashMap<>();
|
||||
public static List<String> 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对象<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){
|
||||
AttributeInstance instance = dragon.getAttribute(attribute);
|
||||
assert instance != null;
|
||||
|
||||
@@ -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<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){
|
||||
String file_path = "reward/" + key + ".yml";
|
||||
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;
|
||||
}
|
||||
}
|
||||
+63
-62
@@ -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<MyDragon>{
|
||||
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<PotionEffect> attack_potion_effect;
|
||||
public List<ExtraPotionEffect> attack_extra_effect;
|
||||
public List<String> spawn_cmd;
|
||||
public List<String> death_cmd;
|
||||
public List<String> spawn_broadcast_msg;
|
||||
public List<String> death_broadcast_msg;
|
||||
public List<String> 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<PotionEffect> effect_cloud_potion;
|
||||
public List<Reward> 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<MyDragon>{
|
||||
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<PotionEffect> attack_potion_effect;
|
||||
public List<ExtraPotionEffect> attack_extra_effect;
|
||||
public List<String> spawn_cmd;
|
||||
public List<String> death_cmd;
|
||||
public List<String> spawn_broadcast_msg;
|
||||
public List<String> death_broadcast_msg;
|
||||
public List<String> 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<PotionEffect> effect_cloud_potion;
|
||||
public List<Reward> datum = new ArrayList<>();
|
||||
public RewardDist reward_dist;
|
||||
|
||||
@Override
|
||||
public int compareTo(final MyDragon o) {
|
||||
return o.priority - this.priority;//降序
|
||||
}
|
||||
|
||||
}
|
||||
@@ -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;
|
||||
|
||||
@@ -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;
|
||||
|
||||
@@ -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;
|
||||
|
||||
@@ -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;
|
||||
|
||||
|
||||
@@ -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;
|
||||
|
||||
@@ -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;
|
||||
|
||||
@@ -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;
|
||||
|
||||
@@ -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
|
||||
|
||||
Reference in New Issue
Block a user