11package studio .magemonkey .divinity .hooks .external ;
22
3- import me .lokka30 .levelledmobs .LevelledMobs ;
43import org .bukkit .Bukkit ;
4+ import org .bukkit .persistence .PersistentDataType ;
5+ import org .bukkit .plugin .Plugin ;
6+ import org .bukkit .NamespacedKey ;
57import org .bukkit .entity .Entity ;
68import org .bukkit .entity .LivingEntity ;
79import org .jetbrains .annotations .NotNull ;
1012import studio .magemonkey .divinity .Divinity ;
1113import studio .magemonkey .divinity .hooks .HookMobLevel ;
1214
15+ import java .util .Objects ;
16+
1317public class LevelledMobsHK extends NHook <Divinity > implements HookMobLevel {
1418
1519 public LevelledMobsHK (@ NotNull Divinity plugin ) {
1620 super (plugin );
21+
22+ Plugin levelledMobsPlugin = Bukkit .getPluginManager ().getPlugin ("LevelledMobs" );
23+ levelledMobsIsInstalled = levelledMobsPlugin != null && levelledMobsPlugin .isEnabled ();
24+
25+ if (levelledMobsIsInstalled ){
26+ key = new NamespacedKey (levelledMobsPlugin , "level" );
27+ }
1728 }
1829
30+ private final Boolean levelledMobsIsInstalled ;
31+ private NamespacedKey key ;
32+
1933 @ Override
2034 @ NotNull
2135 protected HookState setup () {
@@ -25,12 +39,15 @@ protected HookState setup() {
2539 @ Override
2640 protected void shutdown () {}
2741
42+ public boolean hasLevelledMobsInstalled (){
43+ return levelledMobsIsInstalled != null && levelledMobsIsInstalled ;
44+ }
45+
2846 @ Override
2947 public double getMobLevel (@ NotNull Entity entity ) {
30- if (!(entity instanceof LivingEntity )) return 0.0D ;
31- if (Bukkit .getPluginManager ().getPlugin ("LevelledMobs" ) == null || !LevelledMobs .getInstance ().isEnabled ())
32- return 0.0D ;
48+ if (!(entity instanceof LivingEntity ) || !hasLevelledMobsInstalled ()) return 0.0D ;
3349
34- return LevelledMobs .getInstance ().levelManager .getLevelOfMob ((LivingEntity ) entity );
50+ Integer mobLevel = entity .getPersistentDataContainer ().get (key , PersistentDataType .INTEGER );
51+ return Objects .requireNonNullElse (mobLevel , 0 );
3552 }
3653}
0 commit comments