add SpawnReason blacklist
This commit is contained in:
@@ -0,0 +1,51 @@
|
||||
package pers.xanadu.enderdragon.event;
|
||||
|
||||
import org.bukkit.Location;
|
||||
import org.bukkit.World;
|
||||
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;
|
||||
|
||||
public final class DragonRespawnEvent extends CreatureSpawnEvent {
|
||||
private static final HandlerList handlers = new HandlerList();
|
||||
private boolean cancel = false;
|
||||
private final World world;
|
||||
private final MyDragon myDragon;
|
||||
public DragonRespawnEvent(final EnderDragon dragon,final SpawnReason reason,final MyDragon myDragon) {
|
||||
super(dragon,reason);
|
||||
world = dragon.getWorld();
|
||||
this.myDragon = myDragon;
|
||||
}
|
||||
|
||||
public EnderDragon getEnderDragon(){
|
||||
return (EnderDragon) getEntity();
|
||||
}
|
||||
|
||||
public Location getEndPortalLocation(){
|
||||
return DragonManager.getEndPortalLocation(world);
|
||||
}
|
||||
public MyDragon getDragonConfiguration(){
|
||||
return myDragon;
|
||||
}
|
||||
public String getDragonUniqueId(){
|
||||
return myDragon.unique_name;
|
||||
}
|
||||
public static HandlerList getHandlerList() {
|
||||
return handlers;
|
||||
}
|
||||
@Override
|
||||
public HandlerList getHandlers() {
|
||||
return handlers;
|
||||
}
|
||||
@Override
|
||||
public void setCancelled(final boolean cancel) {
|
||||
this.cancel = cancel;
|
||||
}
|
||||
@Override
|
||||
public boolean isCancelled() {
|
||||
return cancel;
|
||||
}
|
||||
|
||||
}
|
||||
@@ -1,5 +1,6 @@
|
||||
package pers.xanadu.enderdragon.listener;
|
||||
|
||||
import org.bukkit.Bukkit;
|
||||
import org.bukkit.attribute.Attribute;
|
||||
import org.bukkit.boss.BarColor;
|
||||
import org.bukkit.boss.BarStyle;
|
||||
@@ -11,6 +12,7 @@ import org.bukkit.event.Listener;
|
||||
import org.bukkit.event.entity.CreatureSpawnEvent;
|
||||
import pers.xanadu.enderdragon.config.Config;
|
||||
import pers.xanadu.enderdragon.config.Lang;
|
||||
import pers.xanadu.enderdragon.event.DragonRespawnEvent;
|
||||
import pers.xanadu.enderdragon.manager.DamageManager;
|
||||
import pers.xanadu.enderdragon.util.MyDragon;
|
||||
import pers.xanadu.enderdragon.util.Version;
|
||||
@@ -26,6 +28,7 @@ public class DragonSpawnListener implements Listener {
|
||||
public void OnDragonSpawn(final CreatureSpawnEvent e){
|
||||
if(!(e.getEntity() instanceof EnderDragon)) return;
|
||||
if(Config.blacklist_worlds.contains(e.getEntity().getWorld().getName())) return;
|
||||
if(Config.blacklist_spawn_reason.contains(e.getSpawnReason().name())) return;
|
||||
EnderDragon dragon = (EnderDragon) e.getEntity();
|
||||
MyDragon myDragon = null;
|
||||
if(e.getSpawnReason() == CreatureSpawnEvent.SpawnReason.DEFAULT){
|
||||
@@ -54,8 +57,8 @@ public class DragonSpawnListener implements Listener {
|
||||
|
||||
modifyAttribute(dragon, Attribute.GENERIC_ARMOR_TOUGHNESS, myDragon.armor_toughness_modify);
|
||||
String color = myDragon.glow_color.toUpperCase();
|
||||
if(!color.equals("NONE")) setGlowingColor(dragon,getGlowColor(color));
|
||||
else dragon.setGlowing(false);
|
||||
if(color.equals("NONE")) dragon.setGlowing(false);
|
||||
else setGlowingColor(dragon,getGlowColor(color));
|
||||
String bossBar_color = myDragon.bossbar_color.toUpperCase();
|
||||
String bossBar_style = myDragon.bossbar_style.toUpperCase();
|
||||
|
||||
@@ -69,7 +72,7 @@ public class DragonSpawnListener implements Listener {
|
||||
else if(Version.mcMainVersion >= 12){
|
||||
getInstance().getBossBarManager().setBossBar(dragon.getWorld(),myDragon.display_name,bossBar_color,bossBar_style);
|
||||
}
|
||||
//dragon.getMetadata();
|
||||
Bukkit.getPluginManager().callEvent(new DragonRespawnEvent(dragon,e.getSpawnReason(),myDragon));
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
@@ -67,6 +67,10 @@ blacklist_worlds:
|
||||
- 'world'
|
||||
- 'world_nether'
|
||||
|
||||
#生成原因包含在这里的末影龙不被插件监听
|
||||
#举例: COMMAND,CUSTOM,DEFAULT
|
||||
blacklist_spawn_reason: []
|
||||
|
||||
#可选: [default/nbt/advanced]
|
||||
item_format:
|
||||
reward: default
|
||||
|
||||
@@ -66,6 +66,10 @@ blacklist_worlds:
|
||||
- 'world'
|
||||
- 'world_nether'
|
||||
|
||||
#ender_dragon with these spawn reason will be ignored by this plugin.
|
||||
#example: COMMAND,CUSTOM,DEFAULT
|
||||
blacklist_spawn_reason: []
|
||||
|
||||
#optional: [default/nbt/advanced]
|
||||
item_format:
|
||||
reward: default
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
name: EnderDragon
|
||||
version: 2.2.0
|
||||
version: 2.3.0
|
||||
main: pers.xanadu.enderdragon.EnderDragon
|
||||
author: Xanadu13
|
||||
api-version: 1.13
|
||||
|
||||
Reference in New Issue
Block a user