Skip to content

Commit

Permalink
Fix WorldEditPlugin load
Browse files Browse the repository at this point in the history
  • Loading branch information
Mgazul committed Nov 19, 2024
1 parent 8c0396b commit 6a374f6
Show file tree
Hide file tree
Showing 2 changed files with 9 additions and 4 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -19,20 +19,25 @@
public class PluginFixManager {


public static byte[] injectPluginFix(String className, byte[] clazz) {
public static byte[] injectPluginFix(String mainClass, String className, byte[] clazz) {
if (className.endsWith("PaperLib")) {
return patch(clazz, PluginFixManager::removePaper);
}
if (className.equals("com.comphenix.protocol.ProtocolConfig")) {
return removeProtocolASM(clazz);
}
if (className.endsWith("com.sk89q.worldedit.bukkit.WorldEditPlugin")) {
if (mainClass.equals("com.sk89q.worldedit.bukkit.WorldEditPlugin")) {
System.setProperty("worldedit.bukkit.adapter", "com.sk89q.worldedit.bukkit.adapter.impl.v1_20_R1.PaperweightAdapter");
}
if (mainClass.contains("FastAsyncWorldEdit")) {
System.setProperty("worldedit.bukkit.adapter", "com.sk89q.worldedit.bukkit.adapter.impl.fawe.v1_20_R1.PaperweightFaweAdapter");
}

Consumer<ClassNode> patcher = switch (className) {
case "com.sk89q.worldedit.bukkit.BukkitAdapter" -> WorldEdit::handleBukkitAdapter;
case "com.sk89q.worldedit.bukkit.adapter.Refraction" -> WorldEdit::handlePickName;
case "com.sk89q.worldedit.bukkit.adapter.impl.v1_20_R1.PaperweightAdapter$SpigotWatchdog" -> WorldEdit::handleWatchdog;
case "com.sk89q.worldedit.bukkit.adapter.impl.v1_20_R1.PaperweightAdapter$SpigotWatchdog" ->
WorldEdit::handleWatchdog;
case "com.earth2me.essentials.utils.VersionUtil" -> node -> helloWorld(node, 110, 109);
case "net.ess3.nms.refl.providers.ReflServerStateProvider" -> node -> helloWorld(node, "u", "U");
case "net.Zrips.CMILib.Reflections" -> node -> helloWorld(node, "bR", "field_7512");
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -187,7 +187,7 @@ protected Class<?> findClass(String name) throws ClassNotFoundException {
try (InputStream is = connection.getInputStream()) {
byte[] classBytes = ByteStreams.toByteArray(is);
classBytes = Bukkit.getUnsafe().processClass(description, path, classBytes);
classBytes = PluginFixManager.injectPluginFix(name, classBytes); // Mohist - Inject plugin fix
classBytes = PluginFixManager.injectPluginFix(description.getMain(), name, classBytes); // Mohist - Inject plugin fix
return classBytes;
}
};
Expand Down

0 comments on commit 6a374f6

Please sign in to comment.