compatibility with PetDragon

This commit is contained in:
Xanadu13
2024-03-17 21:08:17 +08:00
parent 81e3e1d878
commit ca8290c853
3 changed files with 14 additions and 1 deletions
@@ -1,5 +1,6 @@
package pers.xanadu.enderdragon.hook; package pers.xanadu.enderdragon.hook;
import lombok.Getter;
import me.clip.placeholderapi.PlaceholderAPI; import me.clip.placeholderapi.PlaceholderAPI;
import org.bukkit.OfflinePlayer; import org.bukkit.OfflinePlayer;
import pers.xanadu.enderdragon.config.Lang; import pers.xanadu.enderdragon.config.Lang;
@@ -9,12 +10,18 @@ import static pers.xanadu.enderdragon.EnderDragon.*;
public class HookManager { public class HookManager {
private static boolean papi = false; private static boolean papi = false;
@Getter
private static boolean petDragonInstalled = false;
public static void init(){ public static void init(){
if(pm.getPlugin("PlaceholderAPI") != null){ if(pm.getPlugin("PlaceholderAPI") != null){
Lang.info("Hooking to PlaceholderAPI..."); Lang.info("Hooking to PlaceholderAPI...");
new Papi(getInstance()); new Papi(getInstance());
papi = true; papi = true;
} }
if (pm.getPlugin("PetDragon") != null){
Lang.info("Hooking to PetDragon...");
petDragonInstalled = true;
}
} }
public static boolean isPlaceholderAPILoaded(){ public static boolean isPlaceholderAPILoaded(){
return papi; return papi;
@@ -1,5 +1,6 @@
package pers.xanadu.enderdragon.listener; package pers.xanadu.enderdragon.listener;
import com.ericdebouwer.petdragon.api.PetDragonAPI;
import org.bukkit.Bukkit; import org.bukkit.Bukkit;
import org.bukkit.World; import org.bukkit.World;
import org.bukkit.attribute.Attribute; import org.bukkit.attribute.Attribute;
@@ -15,8 +16,8 @@ import org.bukkit.event.entity.CreatureSpawnEvent;
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.event.DragonRespawnPostEvent; import pers.xanadu.enderdragon.event.DragonRespawnPostEvent;
import pers.xanadu.enderdragon.hook.HookManager;
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.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;
@@ -33,6 +34,10 @@ 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;
//compatibility with plugin PetDragon
if (HookManager.isPetDragonInstalled()){
if (PetDragonAPI.getInstance().isPetDragon(e.getEntity())) return;
}
if(!WorldManager.enable_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();
+1
View File
@@ -7,6 +7,7 @@ softdepend:
- MMOItems - MMOItems
- MythicLib - MythicLib
- PlaceholderAPI - PlaceholderAPI
- PetDragon
commands: commands:
enderdragon: enderdragon:
description: "EnderDragon Command" description: "EnderDragon Command"