add enable_worlds
This commit is contained in:
@@ -34,7 +34,7 @@ public class TabCompleter implements org.bukkit.command.TabCompleter {
|
|||||||
result.addAll(arguments_drop);
|
result.addAll(arguments_drop);
|
||||||
}
|
}
|
||||||
else if(args[0].equalsIgnoreCase("respawn")){
|
else if(args[0].equalsIgnoreCase("respawn")){
|
||||||
result.addAll(WorldManager.worlds);
|
result.addAll(WorldManager.all_worlds);
|
||||||
}
|
}
|
||||||
else if(args[0].equalsIgnoreCase("respawn_cd")){
|
else if(args[0].equalsIgnoreCase("respawn_cd")){
|
||||||
result.addAll(arguments_respawn_cd);
|
result.addAll(arguments_respawn_cd);
|
||||||
@@ -60,11 +60,11 @@ public class TabCompleter implements org.bukkit.command.TabCompleter {
|
|||||||
else if("respawn_cd".equals(args[0])){
|
else if("respawn_cd".equals(args[0])){
|
||||||
String str = args[1].toLowerCase();
|
String str = args[1].toLowerCase();
|
||||||
if("get".equals(str) || "remove".equals(str) || "removeAll".equals(str) || "set".equals(str) || "start".equals(str)){
|
if("get".equals(str) || "remove".equals(str) || "removeAll".equals(str) || "set".equals(str) || "start".equals(str)){
|
||||||
result.addAll(WorldManager.worlds);
|
result.addAll(WorldManager.all_worlds);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
else if("spawn".equals(args[0])){
|
else if("spawn".equals(args[0])){
|
||||||
result.addAll(WorldManager.worlds);
|
result.addAll(WorldManager.all_worlds);
|
||||||
}
|
}
|
||||||
else if("action".equals(args[0])){
|
else if("action".equals(args[0])){
|
||||||
result.addAll(arguments_action);
|
result.addAll(arguments_action);
|
||||||
|
|||||||
@@ -7,6 +7,7 @@ import org.bukkit.event.Listener;
|
|||||||
import org.bukkit.event.entity.EntityDamageByEntityEvent;
|
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.manager.WorldManager;
|
||||||
import pers.xanadu.enderdragon.util.ExtraPotionEffect;
|
import pers.xanadu.enderdragon.util.ExtraPotionEffect;
|
||||||
import pers.xanadu.enderdragon.metadata.MyDragon;
|
import pers.xanadu.enderdragon.metadata.MyDragon;
|
||||||
|
|
||||||
@@ -17,6 +18,7 @@ public class DragonAttackListener implements Listener {
|
|||||||
Entity attack = e.getDamager();
|
Entity attack = e.getDamager();
|
||||||
if(!(attack instanceof EnderDragon)) return;
|
if(!(attack instanceof EnderDragon)) return;
|
||||||
EnderDragon dragon = (EnderDragon) attack;
|
EnderDragon dragon = (EnderDragon) attack;
|
||||||
|
if(!WorldManager.enable_worlds.contains(dragon.getWorld().getName())) return;
|
||||||
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.get_dragon_config(unique_name);
|
MyDragon myDragon = DragonManager.get_dragon_config(unique_name);
|
||||||
|
|||||||
@@ -6,6 +6,7 @@ import org.bukkit.event.EventPriority;
|
|||||||
import org.bukkit.event.Listener;
|
import org.bukkit.event.Listener;
|
||||||
import org.bukkit.event.entity.EntityDamageByEntityEvent;
|
import org.bukkit.event.entity.EntityDamageByEntityEvent;
|
||||||
import pers.xanadu.enderdragon.event.DragonDamageByPlayerEvent;
|
import pers.xanadu.enderdragon.event.DragonDamageByPlayerEvent;
|
||||||
|
import pers.xanadu.enderdragon.manager.WorldManager;
|
||||||
|
|
||||||
import static pers.xanadu.enderdragon.EnderDragon.pm;
|
import static pers.xanadu.enderdragon.EnderDragon.pm;
|
||||||
|
|
||||||
@@ -17,6 +18,7 @@ public class DragonBaseHurtListener implements Listener {
|
|||||||
Entity victim = e.getEntity();
|
Entity victim = e.getEntity();
|
||||||
Entity entity = e.getDamager();
|
Entity entity = e.getDamager();
|
||||||
if(victim instanceof EnderDragon){
|
if(victim instanceof EnderDragon){
|
||||||
|
if(!WorldManager.enable_worlds.contains(victim.getWorld().getName())) return;
|
||||||
EnderDragon dragon = (EnderDragon) victim;
|
EnderDragon dragon = (EnderDragon) victim;
|
||||||
if(entity instanceof Player){
|
if(entity instanceof Player){
|
||||||
Player player = (Player) entity;
|
Player player = (Player) entity;
|
||||||
|
|||||||
@@ -11,6 +11,7 @@ import pers.xanadu.enderdragon.config.Config;
|
|||||||
import pers.xanadu.enderdragon.config.Lang;
|
import pers.xanadu.enderdragon.config.Lang;
|
||||||
import pers.xanadu.enderdragon.event.DragonDamageByPlayerEvent;
|
import pers.xanadu.enderdragon.event.DragonDamageByPlayerEvent;
|
||||||
import pers.xanadu.enderdragon.manager.DamageManager;
|
import pers.xanadu.enderdragon.manager.DamageManager;
|
||||||
|
import pers.xanadu.enderdragon.manager.WorldManager;
|
||||||
|
|
||||||
import java.util.UUID;
|
import java.util.UUID;
|
||||||
import java.util.concurrent.ConcurrentHashMap;
|
import java.util.concurrent.ConcurrentHashMap;
|
||||||
@@ -22,6 +23,7 @@ public class DragonDamageByPlayerListener implements Listener {
|
|||||||
if(e.isCancelled()) return;
|
if(e.isCancelled()) return;
|
||||||
Player p = e.getDamager();
|
Player p = e.getDamager();
|
||||||
EnderDragon dragon = e.getDragon();
|
EnderDragon dragon = e.getDragon();
|
||||||
|
if(!WorldManager.enable_worlds.contains(dragon.getWorld().getName())) return;
|
||||||
double health = dragon.getHealth();
|
double health = dragon.getHealth();
|
||||||
double damage = Math.min(e.getFinalDamage(),health);
|
double damage = Math.min(e.getFinalDamage(),health);
|
||||||
if(damage > 0.0d){
|
if(damage > 0.0d){
|
||||||
|
|||||||
@@ -19,6 +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.manager.WorldManager;
|
||||||
import pers.xanadu.enderdragon.metadata.MyDragon;
|
import pers.xanadu.enderdragon.metadata.MyDragon;
|
||||||
import pers.xanadu.enderdragon.reward.SpecialLoot;
|
import pers.xanadu.enderdragon.reward.SpecialLoot;
|
||||||
import pers.xanadu.enderdragon.util.Pair;
|
import pers.xanadu.enderdragon.util.Pair;
|
||||||
@@ -37,6 +38,7 @@ public class DragonDeathListener implements Listener {
|
|||||||
public void OnDragonDeath(final EntityDeathEvent e){
|
public void OnDragonDeath(final EntityDeathEvent e){
|
||||||
if(!(e.getEntity() instanceof EnderDragon)) return;
|
if(!(e.getEntity() instanceof EnderDragon)) return;
|
||||||
EnderDragon dragon = (EnderDragon) e.getEntity();
|
EnderDragon dragon = (EnderDragon) e.getEntity();
|
||||||
|
if(!WorldManager.enable_worlds.contains(dragon.getWorld().getName())) return;
|
||||||
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.get_dragon_config(unique_name);
|
MyDragon myDragon = DragonManager.get_dragon_config(unique_name);
|
||||||
|
|||||||
@@ -15,6 +15,7 @@ import org.bukkit.event.entity.EntityDamageEvent;
|
|||||||
import org.bukkit.event.player.PlayerBedEnterEvent;
|
import org.bukkit.event.player.PlayerBedEnterEvent;
|
||||||
import pers.xanadu.enderdragon.event.DragonDamageByPlayerEvent;
|
import pers.xanadu.enderdragon.event.DragonDamageByPlayerEvent;
|
||||||
import pers.xanadu.enderdragon.event.PlayerExplodeDragonEvent;
|
import pers.xanadu.enderdragon.event.PlayerExplodeDragonEvent;
|
||||||
|
import pers.xanadu.enderdragon.manager.WorldManager;
|
||||||
|
|
||||||
import java.util.Collection;
|
import java.util.Collection;
|
||||||
import java.util.UUID;
|
import java.util.UUID;
|
||||||
@@ -34,6 +35,7 @@ public class DragonExplosionHurtListener implements Listener {
|
|||||||
Entity victim = e.getEntity();
|
Entity victim = e.getEntity();
|
||||||
Entity entity = e.getDamager();
|
Entity entity = e.getDamager();
|
||||||
if(victim instanceof EnderDragon){
|
if(victim instanceof EnderDragon){
|
||||||
|
if(!WorldManager.enable_worlds.contains(victim.getWorld().getName())) return;
|
||||||
EnderDragon dragon = (EnderDragon) victim;
|
EnderDragon dragon = (EnderDragon) victim;
|
||||||
if(entity instanceof TNTPrimed){
|
if(entity instanceof TNTPrimed){
|
||||||
TNTPrimed tnt = (TNTPrimed) entity;
|
TNTPrimed tnt = (TNTPrimed) entity;
|
||||||
@@ -56,6 +58,7 @@ public class DragonExplosionHurtListener implements Listener {
|
|||||||
if(e.getCause() != EntityDamageEvent.DamageCause.BLOCK_EXPLOSION) return;
|
if(e.getCause() != EntityDamageEvent.DamageCause.BLOCK_EXPLOSION) return;
|
||||||
Entity entity = e.getEntity();
|
Entity entity = e.getEntity();
|
||||||
if(entity instanceof EnderDragon){
|
if(entity instanceof EnderDragon){
|
||||||
|
if(!WorldManager.enable_worlds.contains(entity.getWorld().getName())) return;
|
||||||
EnderDragon dragon = (EnderDragon) entity;
|
EnderDragon dragon = (EnderDragon) entity;
|
||||||
for(UUID uuid : mp.keySet()){
|
for(UUID uuid : mp.keySet()){
|
||||||
PlayerExplodeDragonEvent ped = mp.get(uuid);
|
PlayerExplodeDragonEvent ped = mp.get(uuid);
|
||||||
@@ -72,7 +75,10 @@ public class DragonExplosionHurtListener implements Listener {
|
|||||||
@EventHandler(priority = EventPriority.HIGH)
|
@EventHandler(priority = EventPriority.HIGH)
|
||||||
public void OnPlayerClickBed(final PlayerBedEnterEvent e){
|
public void OnPlayerClickBed(final PlayerBedEnterEvent e){
|
||||||
Player p = e.getPlayer();
|
Player p = e.getPlayer();
|
||||||
|
// more precise judgement is needed.
|
||||||
|
// try World::isBedWorks()
|
||||||
if(p.getWorld().getEnvironment() != World.Environment.THE_END) return;
|
if(p.getWorld().getEnvironment() != World.Environment.THE_END) return;
|
||||||
|
if(!WorldManager.enable_worlds.contains(p.getWorld().getName())) return;
|
||||||
long time = pers.xanadu.enderdragon.EnderDragon.getInstance().getWorldDataManager().getGameTime(e.getPlayer().getWorld());
|
long time = pers.xanadu.enderdragon.EnderDragon.getInstance().getWorldDataManager().getGameTime(e.getPlayer().getWorld());
|
||||||
Location bed_loc = e.getBed().getLocation();
|
Location bed_loc = e.getBed().getLocation();
|
||||||
Collection<EnderDragon> entities = getExplosionDragon(5f,bed_loc);
|
Collection<EnderDragon> entities = getExplosionDragon(5f,bed_loc);
|
||||||
|
|||||||
@@ -10,6 +10,7 @@ import org.bukkit.event.Listener;
|
|||||||
import org.bukkit.event.entity.EntitySpawnEvent;
|
import org.bukkit.event.entity.EntitySpawnEvent;
|
||||||
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.manager.WorldManager;
|
||||||
import pers.xanadu.enderdragon.metadata.MyDragon;
|
import pers.xanadu.enderdragon.metadata.MyDragon;
|
||||||
|
|
||||||
import static pers.xanadu.enderdragon.manager.DragonManager.getSpecialKey;
|
import static pers.xanadu.enderdragon.manager.DragonManager.getSpecialKey;
|
||||||
@@ -41,6 +42,7 @@ public class DragonFireballListener implements Listener {
|
|||||||
if(effectCloud.getSource() == null) return;
|
if(effectCloud.getSource() == null) return;
|
||||||
if(!(effectCloud.getSource() instanceof EnderDragon)) return;
|
if(!(effectCloud.getSource() instanceof EnderDragon)) return;
|
||||||
EnderDragon dragon = (EnderDragon) effectCloud.getSource();
|
EnderDragon dragon = (EnderDragon) effectCloud.getSource();
|
||||||
|
if(!WorldManager.enable_worlds.contains(dragon.getWorld().getName())) return;
|
||||||
String unique_name = getSpecialKey(dragon);
|
String unique_name = getSpecialKey(dragon);
|
||||||
if(unique_name == null) return;
|
if(unique_name == null) return;
|
||||||
MyDragon myDragon = DragonManager.get_dragon_config(unique_name);
|
MyDragon myDragon = DragonManager.get_dragon_config(unique_name);
|
||||||
|
|||||||
@@ -6,6 +6,7 @@ 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.manager.DragonManager;
|
import pers.xanadu.enderdragon.manager.DragonManager;
|
||||||
|
import pers.xanadu.enderdragon.manager.WorldManager;
|
||||||
import pers.xanadu.enderdragon.metadata.MyDragon;
|
import pers.xanadu.enderdragon.metadata.MyDragon;
|
||||||
|
|
||||||
import static pers.xanadu.enderdragon.manager.DragonManager.getSpecialKey;
|
import static pers.xanadu.enderdragon.manager.DragonManager.getSpecialKey;
|
||||||
@@ -15,6 +16,7 @@ public class DragonHealListener implements Listener {
|
|||||||
public void OnDragonHeal(final EntityRegainHealthEvent e){
|
public void OnDragonHeal(final EntityRegainHealthEvent e){
|
||||||
if(!(e.getEntity() instanceof EnderDragon)) return;
|
if(!(e.getEntity() instanceof EnderDragon)) return;
|
||||||
EnderDragon dragon = (EnderDragon) e.getEntity();
|
EnderDragon dragon = (EnderDragon) e.getEntity();
|
||||||
|
if(!WorldManager.enable_worlds.contains(dragon.getWorld().getName())) return;
|
||||||
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;
|
||||||
|
|||||||
@@ -1,6 +1,7 @@
|
|||||||
package pers.xanadu.enderdragon.listener;
|
package pers.xanadu.enderdragon.listener;
|
||||||
|
|
||||||
import org.bukkit.Bukkit;
|
import org.bukkit.Bukkit;
|
||||||
|
import org.bukkit.World;
|
||||||
import org.bukkit.attribute.Attribute;
|
import org.bukkit.attribute.Attribute;
|
||||||
import org.bukkit.boss.BarColor;
|
import org.bukkit.boss.BarColor;
|
||||||
import org.bukkit.boss.BarFlag;
|
import org.bukkit.boss.BarFlag;
|
||||||
@@ -15,6 +16,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.manager.DragonManager;
|
||||||
|
import pers.xanadu.enderdragon.manager.WorldManager;
|
||||||
import pers.xanadu.enderdragon.metadata.DragonInfo;
|
import pers.xanadu.enderdragon.metadata.DragonInfo;
|
||||||
import pers.xanadu.enderdragon.metadata.MyDragon;
|
import pers.xanadu.enderdragon.metadata.MyDragon;
|
||||||
import pers.xanadu.enderdragon.util.Version;
|
import pers.xanadu.enderdragon.util.Version;
|
||||||
@@ -30,19 +33,20 @@ public class DragonSpawnListener implements Listener {
|
|||||||
@EventHandler(priority = EventPriority.LOW)
|
@EventHandler(priority = EventPriority.LOW)
|
||||||
public void OnDragonSpawn(final CreatureSpawnEvent e){
|
public void OnDragonSpawn(final CreatureSpawnEvent e){
|
||||||
if(!(e.getEntity() instanceof EnderDragon)) return;
|
if(!(e.getEntity() instanceof EnderDragon)) return;
|
||||||
if(Config.blacklist_worlds.contains(e.getEntity().getWorld().getName())) return;
|
if(!WorldManager.enable_worlds.contains(e.getEntity().getWorld().getName())) return;
|
||||||
if(Config.blacklist_spawn_reason.contains(e.getSpawnReason().name())) return;
|
if(Config.blacklist_spawn_reason.contains(e.getSpawnReason().name())) return;
|
||||||
EnderDragon dragon = (EnderDragon) e.getEntity();
|
EnderDragon dragon = (EnderDragon) e.getEntity();
|
||||||
|
World world = dragon.getWorld();
|
||||||
MyDragon myDragon = null;
|
MyDragon myDragon = null;
|
||||||
if(e.getSpawnReason() == CreatureSpawnEvent.SpawnReason.DEFAULT){
|
if(e.getSpawnReason() == CreatureSpawnEvent.SpawnReason.DEFAULT){
|
||||||
myDragon = getDesignatedDragon(dragon.getWorld());
|
myDragon = getDesignatedDragon(world);
|
||||||
}
|
}
|
||||||
if(myDragon == null) myDragon = judge();
|
if(myDragon == null) myDragon = judge();
|
||||||
if(myDragon == null) {
|
if(myDragon == null) {
|
||||||
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);
|
DragonInfo info = new DragonInfo(dragon,myDragon.unique_name);
|
||||||
Bukkit.getPluginManager().callEvent(new DragonRespawnPostEvent(dragon,e.getSpawnReason(),info));
|
Bukkit.getPluginManager().callEvent(new DragonRespawnPostEvent(dragon,e.getSpawnReason(),info));
|
||||||
MyDragon update = getFromInfo(info);
|
MyDragon update = getFromInfo(info);
|
||||||
if(update == null) {
|
if(update == null) {
|
||||||
@@ -51,6 +55,11 @@ public class DragonSpawnListener implements Listener {
|
|||||||
else{
|
else{
|
||||||
myDragon = update;
|
myDragon = update;
|
||||||
}
|
}
|
||||||
|
{
|
||||||
|
existing_dragon.put(dragon.getUniqueId(),new DragonInfo(dragon,myDragon.unique_name));
|
||||||
|
DragonInfo old = main_dragon.get(world.getName());
|
||||||
|
if(old == null || !old.getHandle().isValid()) main_dragon.put(world.getName(),new DragonInfo(dragon,myDragon.unique_name));
|
||||||
|
}
|
||||||
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");
|
||||||
@@ -86,10 +95,10 @@ public class DragonSpawnListener implements Listener {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
else if(Version.mcMainVersion >= 12){
|
else if(Version.mcMainVersion >= 12){
|
||||||
getInstance().getBossBarManager().setBossBar(dragon.getWorld(),myDragon);
|
getInstance().getBossBarManager().setBossBar(world,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(world));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -7,6 +7,7 @@ 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 pers.xanadu.enderdragon.event.DragonDamageByPlayerEvent;
|
import pers.xanadu.enderdragon.event.DragonDamageByPlayerEvent;
|
||||||
|
import pers.xanadu.enderdragon.manager.WorldManager;
|
||||||
|
|
||||||
import static pers.xanadu.enderdragon.EnderDragon.pm;
|
import static pers.xanadu.enderdragon.EnderDragon.pm;
|
||||||
|
|
||||||
@@ -16,6 +17,7 @@ public class PlayerAttackListener implements Listener {
|
|||||||
if(e.isCancelled()) return;
|
if(e.isCancelled()) return;
|
||||||
if(!(e.getEntity() instanceof org.bukkit.entity.EnderDragon)) return;
|
if(!(e.getEntity() instanceof org.bukkit.entity.EnderDragon)) return;
|
||||||
EnderDragon dragon = (EnderDragon) e.getEntity();
|
EnderDragon dragon = (EnderDragon) e.getEntity();
|
||||||
|
if(!WorldManager.enable_worlds.contains(dragon.getWorld().getName())) return;
|
||||||
DamageMetadata damage = e.getDamage();
|
DamageMetadata damage = e.getDamage();
|
||||||
double final_damage = damage.getDamage();
|
double final_damage = damage.getDamage();
|
||||||
if(final_damage > 0.0d){
|
if(final_damage > 0.0d){
|
||||||
|
|||||||
@@ -5,29 +5,32 @@ import org.bukkit.Location;
|
|||||||
import org.bukkit.World;
|
import org.bukkit.World;
|
||||||
import org.bukkit.entity.EnderDragon;
|
import org.bukkit.entity.EnderDragon;
|
||||||
import org.bukkit.entity.Entity;
|
import org.bukkit.entity.Entity;
|
||||||
|
import pers.xanadu.enderdragon.config.Config;
|
||||||
import pers.xanadu.enderdragon.config.Lang;
|
import pers.xanadu.enderdragon.config.Lang;
|
||||||
|
import pers.xanadu.enderdragon.util.ConcurrentSet;
|
||||||
import pers.xanadu.enderdragon.util.Version;
|
import pers.xanadu.enderdragon.util.Version;
|
||||||
|
|
||||||
import java.lang.reflect.Field;
|
import java.lang.reflect.Field;
|
||||||
import java.lang.reflect.Method;
|
import java.lang.reflect.Method;
|
||||||
import java.util.ArrayList;
|
import java.util.*;
|
||||||
import java.util.Collection;
|
|
||||||
import java.util.Collections;
|
|
||||||
import java.util.List;
|
|
||||||
|
|
||||||
import static java.lang.Math.sqrt;
|
import static java.lang.Math.sqrt;
|
||||||
import static pers.xanadu.enderdragon.EnderDragon.getInstance;
|
import static pers.xanadu.enderdragon.EnderDragon.getInstance;
|
||||||
import static pers.xanadu.enderdragon.util.MathUtil.*;
|
import static pers.xanadu.enderdragon.util.MathUtil.*;
|
||||||
|
|
||||||
public class WorldManager {
|
public class WorldManager {
|
||||||
public static final List<String> worlds = new ArrayList<>();
|
public static final List<String> all_worlds = new ArrayList<>();
|
||||||
|
public static final Set<String> enable_worlds = new ConcurrentSet<>();
|
||||||
private Field dimension;
|
private Field dimension;
|
||||||
private Field world_provider;
|
private Field world_provider;
|
||||||
private Method getDimensionID;
|
private Method getDimensionID;
|
||||||
|
|
||||||
public static void reload(){
|
public static void reload(){
|
||||||
worlds.clear();
|
all_worlds.clear();
|
||||||
Bukkit.getWorlds().forEach(world -> worlds.add(world.getName()));
|
Bukkit.getWorlds().forEach(world -> all_worlds.add(world.getName()));
|
||||||
|
enable_worlds.clear();
|
||||||
|
enable_worlds.addAll(all_worlds);
|
||||||
|
Config.blacklist_worlds.forEach(enable_worlds::remove);
|
||||||
}
|
}
|
||||||
|
|
||||||
public static Collection<EnderDragon> getExplosionDragon(float power, Location loc){
|
public static Collection<EnderDragon> getExplosionDragon(float power, Location loc){
|
||||||
|
|||||||
@@ -82,4 +82,4 @@ public class BossBarManager implements I_BossBarManager {
|
|||||||
}
|
}
|
||||||
public void setBossBar(World world, final MyDragon myDragon){
|
public void setBossBar(World world, final MyDragon myDragon){
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -83,4 +83,4 @@ public class BossBarManager implements I_BossBarManager {
|
|||||||
public void setBossBar(World world, final MyDragon myDragon){
|
public void setBossBar(World world, final MyDragon myDragon){
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
+1
-1
@@ -68,4 +68,4 @@ public class BossBarManager implements I_BossBarManager {
|
|||||||
}
|
}
|
||||||
public void setBossBar(World world, final MyDragon myDragon){
|
public void setBossBar(World world, final MyDragon myDragon){
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -0,0 +1,39 @@
|
|||||||
|
package pers.xanadu.enderdragon.util;
|
||||||
|
|
||||||
|
import java.io.Serializable;
|
||||||
|
import java.util.AbstractSet;
|
||||||
|
import java.util.Iterator;
|
||||||
|
import java.util.concurrent.ConcurrentHashMap;
|
||||||
|
|
||||||
|
public class ConcurrentSet<T> extends AbstractSet<T> implements Serializable {
|
||||||
|
private static final long serialVersionUID = 1072237514L;
|
||||||
|
private final ConcurrentHashMap<T, Boolean> map = new ConcurrentHashMap<>();
|
||||||
|
|
||||||
|
public ConcurrentSet() {
|
||||||
|
}
|
||||||
|
|
||||||
|
public int size() {
|
||||||
|
return this.map.size();
|
||||||
|
}
|
||||||
|
|
||||||
|
public boolean contains(Object o) {
|
||||||
|
return this.map.containsKey(o);
|
||||||
|
}
|
||||||
|
|
||||||
|
public boolean add(T o) {
|
||||||
|
return this.map.putIfAbsent(o, Boolean.TRUE) == null;
|
||||||
|
}
|
||||||
|
|
||||||
|
public boolean remove(Object o) {
|
||||||
|
return this.map.remove(o) != null;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void clear() {
|
||||||
|
this.map.clear();
|
||||||
|
}
|
||||||
|
|
||||||
|
public Iterator<T> iterator() {
|
||||||
|
return this.map.keySet().iterator();
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
Reference in New Issue
Block a user