From 489549a0ea7abd1758f34dfbb5e89a456eddc857 Mon Sep 17 00:00:00 2001 From: unknown Date: Mon, 5 May 2014 00:01:57 +0200 Subject: [PATCH] Warn when NMS versions don't match. Resolves #165 --- buildnumber.properties | 4 ++-- .../TotalFreedomMod/TFM_ServerInterface.java | 3 ++- .../TotalFreedomMod/TFM_Util.java | 24 +++++++++++++++++++ .../TotalFreedomMod/TotalFreedomMod.java | 19 ++++++--------- 4 files changed, 35 insertions(+), 15 deletions(-) diff --git a/buildnumber.properties b/buildnumber.properties index 9cf2fc33..8deedcda 100644 --- a/buildnumber.properties +++ b/buildnumber.properties @@ -1,3 +1,3 @@ #Build Number for ANT. Do not edit! -#Sun May 04 23:06:18 CEST 2014 -build.number=811 +#Sun May 04 23:59:18 CEST 2014 +build.number=816 diff --git a/src/me/StevenLawson/TotalFreedomMod/TFM_ServerInterface.java b/src/me/StevenLawson/TotalFreedomMod/TFM_ServerInterface.java index 8e2266e0..017ced33 100644 --- a/src/me/StevenLawson/TotalFreedomMod/TFM_ServerInterface.java +++ b/src/me/StevenLawson/TotalFreedomMod/TFM_ServerInterface.java @@ -16,8 +16,9 @@ import org.bukkit.event.player.PlayerLoginEvent.Result; public class TFM_ServerInterface { - private static final SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd \'at\' HH:mm:ss z"); + public static final String COMPILE_NMS_VERSION = "v1_7_R3"; public static final Pattern USERNAME_REGEX = Pattern.compile("^[\\w\\d_]{3,20}$"); + private static final SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd \'at\' HH:mm:ss z"); public static void setOnlineMode(boolean mode) { diff --git a/src/me/StevenLawson/TotalFreedomMod/TFM_Util.java b/src/me/StevenLawson/TotalFreedomMod/TFM_Util.java index 5d759eca..f9ae28f8 100644 --- a/src/me/StevenLawson/TotalFreedomMod/TFM_Util.java +++ b/src/me/StevenLawson/TotalFreedomMod/TFM_Util.java @@ -363,6 +363,24 @@ public class TFM_Util return false; } + public static void deleteCoreDumps() + { + final File[] coreDumps = new File(".").listFiles(new FileFilter() + { + @Override + public boolean accept(File file) + { + return file.getName().startsWith("java.core"); + } + }); + + for (File dump : coreDumps) + { + TFM_Log.info("Removing core dump file: " + dump.getName()); + dump.delete(); + } + } + public static EntityType getEntityType(String mobname) throws Exception { mobname = mobname.toLowerCase().trim(); @@ -881,6 +899,12 @@ public class TFM_Util return date.getTime() / 1000L; } + public static String getNmsVersion() + { + String packageName = Bukkit.getServer().getClass().getPackage().getName(); + return packageName.substring(packageName.lastIndexOf('.') + 1); + } + public static class TFM_EntityWiper { private static final List> WIPEABLES = new ArrayList>(); diff --git a/src/me/StevenLawson/TotalFreedomMod/TotalFreedomMod.java b/src/me/StevenLawson/TotalFreedomMod/TotalFreedomMod.java index 09cac012..ccf1803c 100644 --- a/src/me/StevenLawson/TotalFreedomMod/TotalFreedomMod.java +++ b/src/me/StevenLawson/TotalFreedomMod/TotalFreedomMod.java @@ -15,6 +15,7 @@ import java.util.Properties; import me.StevenLawson.TotalFreedomMod.Commands.TFM_CommandLoader; import me.StevenLawson.TotalFreedomMod.HTTPD.TFM_HTTPD_Manager; import me.StevenLawson.TotalFreedomMod.Listener.*; +import org.bukkit.Bukkit; import org.bukkit.ChatColor; import org.bukkit.Server; import org.bukkit.World; @@ -79,19 +80,13 @@ public class TotalFreedomMod extends JavaPlugin TFM_Log.info("Made by Madgeek1450 and DarthSalamon"); TFM_Log.info("Compiled " + buildDate + " by " + buildCreator); - final File[] coreDumps = new File(".").listFiles(new FileFilter() - { - @Override - public boolean accept(File file) - { - return file.getName().startsWith("java.core"); - } - }); + TFM_Util.deleteCoreDumps(); - for (File dump : coreDumps) + if (!TFM_ServerInterface.COMPILE_NMS_VERSION.equals(TFM_Util.getNmsVersion())) { - TFM_Log.info("Removing core dump file: " + dump.getName()); - dump.delete(); + TFM_Log.warning(pluginName + " is compiled for " + TFM_ServerInterface.COMPILE_NMS_VERSION + " but the server is running " + + "version " + TFM_Util.getNmsVersion() + "!"); + TFM_Log.warning("This might result in unexpected behaviour!"); } // Admin list @@ -177,7 +172,7 @@ public class TotalFreedomMod extends JavaPlugin TFM_HTTPD_Manager.getInstance().start(); TFM_FrontDoor.getInstance().start(); - TFM_Log.info("Version " + pluginVersion + " enabled"); + TFM_Log.info("Version " + pluginVersion + " for " + TFM_ServerInterface.COMPILE_NMS_VERSION + " enabled"); // Delayed Start: new BukkitRunnable()