Archived
0

Bridge: избавляемся от fake-модуля

This commit is contained in:
2017-05-23 21:52:01 +03:00
parent 08e17004fc
commit 2071e5c554
5 changed files with 16 additions and 34 deletions

View File

@@ -1,14 +0,0 @@
group = 'asys'
version = '0.1-SNAPSHOT'
repositories {
maven { url 'https://hub.spigotmc.org/nexus/content/groups/public/' }
}
task jar(type: Jar, overwrite: true) {
// не собирать jar
}
dependencies {
compile group: 'org.bukkit', name: 'bukkit', version: '1.8.8-R0.1-SNAPSHOT'
}

View File

@@ -1,11 +0,0 @@
/*
* DmitriyMX <dimon550@gmail.com>
* 2017-05-23
*/
package org.bukkit.craftbukkit.v1_8_R3;
public class CraftServer {
public boolean getOnlineMode() {
return false;
}
}

View File

@@ -1,5 +1,5 @@
group = 'asys'
version = '0.5.4-SNAPSHOT'
version = '0.5.5-SNAPSHOT'
repositories {
maven { url 'https://hub.spigotmc.org/nexus/content/groups/public/' }
@@ -18,7 +18,6 @@ configurations {
compileJava {
dependsOn ':bridge-protocol:compileJava'
dependsOn ':bridge-mcserver-fake:compileJava'
}
jar {
@@ -33,7 +32,6 @@ ext {
dependencies {
include files(project(':bridge-protocol').sourceSets.main.output.classesDir)
compile files(project(':bridge-mcserver-fake').sourceSets.main.output.classesDir)
compile (group: 'org.bukkit', name: 'bukkit', version: '1.8.8-R0.1-SNAPSHOT') {
exclude group: 'junit'
exclude group: 'commons-lang'

View File

@@ -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) {

View File

@@ -4,4 +4,3 @@ include 'webinterface'
include 'mcserver-manager'
include 'bridge-protocol'
include 'bridge'
include 'bridge-mcserver-fake'