Some fixes

This commit is contained in:
boy0001
2015-08-04 04:20:04 +10:00
parent 0a0c72bc7d
commit 76ca8a7376
15 changed files with 117 additions and 96 deletions

View File

@ -56,6 +56,12 @@ public interface IPlotMain {
*/
int[] getServerVersion();
/**
* Get the nms package prefix
* @return
*/
String getNMSPackage();
/**
* Get the schematic handler
* @return

View File

@ -75,6 +75,7 @@ import com.intellectualcrafters.plot.util.MainUtil;
import com.intellectualcrafters.plot.util.MathMan;
import com.intellectualcrafters.plot.util.PlotGamemode;
import com.intellectualcrafters.plot.util.PlotWeather;
import com.intellectualcrafters.plot.util.ReflectionUtils;
import com.intellectualcrafters.plot.util.SchematicHandler;
import com.intellectualcrafters.plot.util.SetupUtils;
import com.intellectualcrafters.plot.util.StringMan;
@ -129,6 +130,7 @@ public class PS {
this.thread = Thread.currentThread();
SetupUtils.generators = new HashMap<>();
IMP = imp_class;
new ReflectionUtils(IMP.getNMSPackage());
URL url;
try {
url = PS.class.getProtectionDomain().getCodeSource().getLocation();

View File

@ -87,14 +87,14 @@ public class DebugExec extends SubCommand {
private ScriptEngine engine;
private Bindings scope;
public void init() {
if (engine != null) {
return;
}
engine = (new ScriptEngineManager()).getEngineByName("nashorn");
engine = (new ScriptEngineManager(null)).getEngineByName("nashorn");
if (engine == null) {
engine = (new ScriptEngineManager()).getEngineByName("JavaScript");
engine = (new ScriptEngineManager(null)).getEngineByName("JavaScript");
}
ScriptContext context = new SimpleScriptContext();
scope = context.getBindings(ScriptContext.ENGINE_SCOPE);

View File

@ -947,7 +947,11 @@ public class SQLManager implements AbstractDB {
user = UUID.fromString(o);
uuids.put(o, user);
}
Timestamp timestamp = r.getTimestamp("timestamp");
Timestamp timestamp = null;
try {
timestamp = r.getTimestamp("timestamp");
}
catch (Exception e) {};
long time;
if (timestamp == null) {
time = plot_id.hashCode();

View File

@ -30,14 +30,18 @@ import java.util.Collections;
import java.util.List;
import org.bukkit.Bukkit;
import org.bukkit.Server;
/**
* @author DPOH-VAR
* @version 1.0
*/
@SuppressWarnings({ "UnusedDeclaration", "rawtypes" })
public class ReflectionUtils {
public ReflectionUtils(String version) {
preClassB += "." + version;
preClassM += "." + version;
}
/**
* prefix of bukkit classes
*/
@ -46,36 +50,6 @@ public class ReflectionUtils {
* prefix of minecraft classes
*/
private static String preClassM = "net.minecraft.server";
/**
* boolean value, TRUE if server uses forge or MCPC+
*/
private static boolean forge = false;
/** check server version and class names */
static {
if (Bukkit.getServer() != null) {
if (Bukkit.getVersion().contains("MCPC") || Bukkit.getVersion().contains("Forge")) {
forge = true;
}
final Server server = Bukkit.getServer();
final Class<?> bukkitServerClass = server.getClass();
String[] pas = bukkitServerClass.getName().split("\\.");
if (pas.length == 5) {
final String verB = pas[3];
preClassB += "." + verB;
}
try {
final Method getHandle = bukkitServerClass.getDeclaredMethod("getHandle");
final Object handle = getHandle.invoke(server);
final Class handleServerClass = handle.getClass();
pas = handleServerClass.getName().split("\\.");
if (pas.length == 5) {
final String verM = pas[3];
preClassM += "." + verM;
}
} catch (final Exception ignored) {
}
}
}
public static Class<?> getNmsClass(final String name) {
final String className = "net.minecraft.server." + getVersion() + "." + name;
@ -211,13 +185,6 @@ public class ReflectionUtils {
}
}
/**
* @return true if server has forge classes
*/
public static boolean isForge() {
return forge;
}
/**
* Get class for name. Replace {nms} to net.minecraft.server.V*. Replace {cb} to org.bukkit.craftbukkit.V*. Replace
* {nm} to net.minecraft