Update DragonRespawnPostEvent
This commit is contained in:
@@ -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;
|
||||||
|
}
|
||||||
|
}
|
||||||
+2
-1
@@ -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,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
|
||||||
|
|||||||
Reference in New Issue
Block a user