Skip to content

Commit b4f5f18

Browse files
committed
Strongly recommend Java 8
If you must use Java 7, set 'ignoreJava: true' in the config.
1 parent 17e1503 commit b4f5f18

File tree

3 files changed

+18
-80
lines changed

3 files changed

+18
-80
lines changed

modules/API/src/main/java/com/comphenix/protocol/utility/Util.java

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -60,4 +60,13 @@ public static <E> List<E> asList(E... elements) {
6060
public static boolean isUsingSpigot() {
6161
return Bukkit.getServer().getVersion().contains("Spigot");
6262
}
63+
64+
/**
65+
* Gets the currently running major Java version.
66+
* @return The version
67+
*/
68+
public static int getJavaVersion() {
69+
String version = Runtime.class.getPackage().getSpecificationVersion();
70+
return (int) (Double.valueOf(version) * 10 % 10);
71+
}
6372
}

modules/ProtocolLib/src/main/java/com/comphenix/protocol/Application.java

Lines changed: 0 additions & 58 deletions
This file was deleted.

modules/ProtocolLib/src/main/java/com/comphenix/protocol/ProtocolLib.java

Lines changed: 9 additions & 22 deletions
Original file line numberDiff line numberDiff line change
@@ -52,6 +52,7 @@
5252
import com.comphenix.protocol.utility.ChatExtensions;
5353
import com.comphenix.protocol.utility.EnhancerFactory;
5454
import com.comphenix.protocol.utility.MinecraftVersion;
55+
import com.comphenix.protocol.utility.Util;
5556
import com.google.common.base.Splitter;
5657
import com.google.common.collect.Iterables;
5758
import com.google.common.collect.Sets;
@@ -149,10 +150,16 @@ private enum ProtocolCommand {
149150
@Override
150151
public void onLoad() {
151152
// Logging
152-
logger = getLoggerSafely();
153+
logger = getLogger();
153154
ProtocolLogger.init(this);
154155

155-
Application.registerPrimaryThread();
156+
int java = Util.getJavaVersion();
157+
if (java < 8 && !getConfig().getBoolean("ignoreJava", false)) {
158+
logger.warning("Detected outdated Java version: Java " + java);
159+
logger.warning("It is recommended that you update to Java 8 as soon as possible.");
160+
logger.warning("Future versions of ProtocolLib many not support Java " + java + ".");
161+
logger.warning("Java 8 will allow for much faster reflection performance.");
162+
}
156163

157164
// Initialize enhancer factory
158165
EnhancerFactory.getInstance().setClassLoader(getClassLoader());
@@ -650,26 +657,6 @@ public void onDisable() {
650657
reporter = new BasicErrorReporter();
651658
}
652659

653-
// Get the Bukkit logger first, before we try to create our own
654-
private Logger getLoggerSafely() {
655-
Logger log = null;
656-
657-
try {
658-
log = getLogger();
659-
} catch (OutOfMemoryError e) {
660-
throw e;
661-
} catch (ThreadDeath e) {
662-
throw e;
663-
} catch (Throwable e) {
664-
// Ignore
665-
}
666-
667-
// Use the default logger instead
668-
if (log == null)
669-
log = Logger.getLogger("Minecraft");
670-
return log;
671-
}
672-
673660
/**
674661
* Retrieve the metrics instance used to measure users of this library.
675662
* <p>

0 commit comments

Comments
 (0)