Bridge: избавляемся от fake-модуля
This commit is contained in:
@@ -5,31 +5,41 @@
|
||||
package asys.bridge.bukkit;
|
||||
|
||||
import org.bukkit.Server;
|
||||
import org.bukkit.craftbukkit.v1_8_R3.CraftServer;
|
||||
|
||||
import java.lang.reflect.Field;
|
||||
import java.lang.reflect.InvocationTargetException;
|
||||
import java.lang.reflect.Method;
|
||||
|
||||
|
||||
class SpigotServer {
|
||||
private CraftServer craftServer;
|
||||
private Object craftServer;
|
||||
private Object booleanWrapper;
|
||||
private Field booleanWrapperValueField;
|
||||
private Method getOnlineModeMethod;
|
||||
|
||||
SpigotServer(Server server) {
|
||||
craftServer = (CraftServer)server;
|
||||
craftServer = server;
|
||||
try {
|
||||
Field onlineField = craftServer.getClass().getDeclaredField("online");
|
||||
onlineField.setAccessible(true);
|
||||
booleanWrapper = onlineField.get(craftServer);
|
||||
booleanWrapperValueField = booleanWrapper.getClass().getDeclaredField("value");
|
||||
booleanWrapperValueField.setAccessible(true);
|
||||
} catch (NoSuchFieldException | IllegalAccessException e) {
|
||||
|
||||
getOnlineModeMethod = craftServer.getClass().getDeclaredMethod("getOnlineMode");
|
||||
} catch (NoSuchFieldException | IllegalAccessException | NoSuchMethodException e) {
|
||||
e.printStackTrace();
|
||||
}
|
||||
}
|
||||
|
||||
boolean getOnlineMode() {
|
||||
return craftServer.getOnlineMode();
|
||||
try {
|
||||
Object result = getOnlineModeMethod.invoke(craftServer);
|
||||
return (Boolean) result;
|
||||
} catch (IllegalAccessException | InvocationTargetException e) {
|
||||
e.printStackTrace();
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
||||
void setOnlineMode(boolean value) {
|
||||
|
||||
Reference in New Issue
Block a user