Compare commits

..
2 Commits
Author SHA1 Message Date
Josh Roy 8f7b7d0a5f Release 2.19.6 2022-08-12 16:59:48 -04:00
Josh Roy f379323d7a Fix mappings in ReflOnlineModeProvider 2022-08-12 16:59:02 -04:00
3 changed files with 20 additions and 7 deletions

No files matched your search

+2 -2
View File
@@ -76,8 +76,8 @@ To add EssentialsX to your build system, you should use the following artifacts:
| Type | Group ID | Artifact ID | Version |
|:---------------|:------------------|:--------------|:------------------|
| Latest release | `net.essentialsx` | `EssentialsX` | `2.19.5` |
| Snapshots | `net.essentialsx` | `EssentialsX` | `2.19.5-SNAPSHOT` |
| Latest release | `net.essentialsx` | `EssentialsX` | `2.19.6` |
| Snapshots | `net.essentialsx` | `EssentialsX` | `2.19.6-SNAPSHOT` |
| Older releases | `net.ess3` | `EssentialsX` | `2.18.2` |
Note: until version `2.18.2`, EssentialsX used the `net.ess3` group ID.
+1 -1
View File
@@ -3,7 +3,7 @@ plugins {
}
group = "net.essentialsx"
version = "2.19.5"
version = "2.19.6"
project.ext {
GIT_COMMIT = !indraGit.isPresent() ? "unknown" : indraGit.commit().abbreviate(7).name()
@@ -1,5 +1,6 @@
package net.ess3.nms.refl.providers;
import net.ess3.nms.refl.ReflUtil;
import org.bukkit.Bukkit;
import java.lang.invoke.MethodHandle;
@@ -9,23 +10,35 @@ import java.lang.invoke.MethodType;
public class ReflOnlineModeProvider {
private final MethodHandle spigotBungeeGetter;
private final MethodHandle paperBungeeGetter;
private final Object paperProxiesInstance;
private final boolean fancyPaperCheck;
public ReflOnlineModeProvider() {
MethodHandle spigotBungeeGetter = null;
MethodHandle paperBungeeGetter = null;
Object paperProxiesInstance = null;
boolean fancyCheck = false;
try {
final MethodHandles.Lookup lookup = MethodHandles.lookup();
spigotBungeeGetter = lookup.findStaticGetter(Class.forName("org.spigotmc.SpigotConfig"), "bungee", boolean.class);
final Class<?> paperConfig = Class.forName("com.destroystokyo.paper.PaperConfig");
paperBungeeGetter = lookup.findStaticGetter(paperConfig, "bungeeOnlineMode", boolean.class);
paperBungeeGetter = lookup.findStatic(paperConfig, "isProxyOnlineMode", MethodType.methodType(boolean.class));
fancyCheck = true;
final Class<?> newPaperConfigClass = ReflUtil.getClassCached("io.papermc.paper.configuration.GlobalConfiguration");
if (newPaperConfigClass != null) {
final Class<?> proxiesClass = Class.forName("io.papermc.paper.configuration.GlobalConfiguration$Proxies");
final Object globalConfig = lookup.findStatic(newPaperConfigClass, "get", MethodType.methodType(newPaperConfigClass)).invoke();
paperProxiesInstance = lookup.findGetter(newPaperConfigClass, "proxies", proxiesClass).invoke(globalConfig);
paperBungeeGetter = lookup.findVirtual(proxiesClass, "isProxyOnlineMode", MethodType.methodType(boolean.class));
fancyCheck = true;
} else {
final Class<?> paperConfig = Class.forName("com.destroystokyo.paper.PaperConfig");
paperBungeeGetter = lookup.findStaticGetter(paperConfig, "bungeeOnlineMode", boolean.class);
paperBungeeGetter = lookup.findStatic(paperConfig, "isProxyOnlineMode", MethodType.methodType(boolean.class));
fancyCheck = true;
}
} catch (Throwable ignored) {
}
this.spigotBungeeGetter = spigotBungeeGetter;
this.paperBungeeGetter = paperBungeeGetter;
this.paperProxiesInstance = paperProxiesInstance;
this.fancyPaperCheck = fancyCheck;
}