Skip to content

Commit b3954ed

Browse files
authored
Updated LevelledMobs Hook (#289)
Removed the dependency for the old version of LevelledMobs and updated the code so it works with versions 4.0 and later.
1 parent ea3db77 commit b3954ed

2 files changed

Lines changed: 22 additions & 12 deletions

File tree

pom.xml

Lines changed: 0 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -111,13 +111,6 @@
111111
<artifactId>citizens-main</artifactId>
112112
</dependency>
113113

114-
<dependency>
115-
<groupId>com.github.lokka30</groupId>
116-
<artifactId>LevelledMobs</artifactId>
117-
<version>4.0.0</version>
118-
<scope>provided</scope>
119-
</dependency>
120-
121114
<dependency>
122115
<groupId>com.elmakers.mine.bukkit</groupId>
123116
<artifactId>MagicAPI</artifactId>
Lines changed: 22 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,9 @@
11
package studio.magemonkey.divinity.hooks.external;
22

3-
import me.lokka30.levelledmobs.LevelledMobs;
43
import org.bukkit.Bukkit;
4+
import org.bukkit.persistence.PersistentDataType;
5+
import org.bukkit.plugin.Plugin;
6+
import org.bukkit.NamespacedKey;
57
import org.bukkit.entity.Entity;
68
import org.bukkit.entity.LivingEntity;
79
import org.jetbrains.annotations.NotNull;
@@ -10,12 +12,24 @@
1012
import studio.magemonkey.divinity.Divinity;
1113
import studio.magemonkey.divinity.hooks.HookMobLevel;
1214

15+
import java.util.Objects;
16+
1317
public 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

Comments
 (0)