diff --git a/pom.xml b/pom.xml
index 32ba863..6903b55 100644
--- a/pom.xml
+++ b/pom.xml
@@ -3,7 +3,7 @@
com.extendedclip.papi.expansion.player
player-expansion
- 2.0.8
+ 2.0.9
PAPI-Expansion-Player
PlaceholderAPI expansion for player placeholders
diff --git a/src/main/java/com/extendedclip/papi/expansion/player/PlayerExpansion.java b/src/main/java/com/extendedclip/papi/expansion/player/PlayerExpansion.java
index f8b6dd6..0571eaf 100644
--- a/src/main/java/com/extendedclip/papi/expansion/player/PlayerExpansion.java
+++ b/src/main/java/com/extendedclip/papi/expansion/player/PlayerExpansion.java
@@ -76,7 +76,7 @@ public String getAuthor() {
@Override
public String getVersion() {
- return "2.0.8";
+ return "2.0.9";
}
@Override
diff --git a/src/main/java/com/extendedclip/papi/expansion/player/PlayerUtil.java b/src/main/java/com/extendedclip/papi/expansion/player/PlayerUtil.java
index cd37449..05abb49 100644
--- a/src/main/java/com/extendedclip/papi/expansion/player/PlayerUtil.java
+++ b/src/main/java/com/extendedclip/papi/expansion/player/PlayerUtil.java
@@ -125,12 +125,16 @@ private void cacheReflection(final Player player) throws NoSuchFieldException, N
final Object entityPlayer = getHandle.invoke(player);
- if (VersionHelper.IS_1_20_4_OR_NEWER) {
- locale = entityPlayer.getClass().getField("cO");
+ if (VersionHelper.IS_MOJMAP) {
+ locale = entityPlayer.getClass().getField("language");
+ } else if (VersionHelper.IS_1_20_6_OR_NEWER) {
+ locale = entityPlayer.getClass().getField("dd");
+ } else if (VersionHelper.IS_1_20_4_OR_NEWER) {
+ locale = entityPlayer.getClass().getField("cO");
} else if (VersionHelper.IS_1_20_2_OR_NEWER) {
- locale = entityPlayer.getClass().getField("cM");
+ locale = entityPlayer.getClass().getField("cM");
} else {
- locale = entityPlayer.getClass().getField("locale");
+ locale = entityPlayer.getClass().getField("locale");
}
}
};
diff --git a/src/main/java/com/extendedclip/papi/expansion/player/VersionHelper.java b/src/main/java/com/extendedclip/papi/expansion/player/VersionHelper.java
index 11a218b..0058c4c 100644
--- a/src/main/java/com/extendedclip/papi/expansion/player/VersionHelper.java
+++ b/src/main/java/com/extendedclip/papi/expansion/player/VersionHelper.java
@@ -35,6 +35,16 @@ public final class VersionHelper {
*/
public static final boolean IS_1_20_4_OR_NEWER = VERSION >= 1_20_4;
+ /**
+ * @see Player#getLocale()
+ */
+ public static final boolean IS_1_20_6_OR_NEWER = VERSION >= 1_20_6;
+
+ /**
+ * @see Player#getLocale()
+ */
+ public static final boolean IS_MOJMAP = IS_1_20_6_OR_NEWER && doesClassExist("org.bukkit.craftbukkit.CraftServer");
+
private VersionHelper() { }
/**
@@ -65,4 +75,19 @@ private static int getCurrentVersion() {
return version;
}
+ /**
+ * Detect specific class exists
+ *
+ * @param className
+ * @return true if the class exists, otherwise false
+ */
+ private static boolean doesClassExist(String className) {
+ try {
+ Class.forName(className);
+ return true;
+ } catch (ClassNotFoundException e) {
+ return false;
+ }
+ }
+
}