From 20dcfd0a223bba10f0434d31aad8b0a98ac5502b Mon Sep 17 00:00:00 2001 From: fullwall Date: Tue, 9 Jun 2015 23:38:33 +0800 Subject: [PATCH] Change version checking to be rename based --- src/main/java/net/citizensnpcs/Citizens.java | 11 +++++----- src/main/java/net/citizensnpcs/util/Util.java | 20 ++++++++----------- 2 files changed, 14 insertions(+), 17 deletions(-) diff --git a/src/main/java/net/citizensnpcs/Citizens.java b/src/main/java/net/citizensnpcs/Citizens.java index d4b9c1a16..c0e3b3a0f 100644 --- a/src/main/java/net/citizensnpcs/Citizens.java +++ b/src/main/java/net/citizensnpcs/Citizens.java @@ -257,10 +257,8 @@ public class Citizens extends JavaPlugin implements CitizensPlugin { CitizensAPI.setImplementation(this); config = new Settings(getDataFolder()); // Disable if the server is not using the compatible Minecraft version - String mcVersion = Util.getMinecraftVersion(); - for (String version : COMPATIBLE_MC_VERSIONS) { - compatible |= mcVersion.startsWith(version); - } + String mcVersion = Util.getMinecraftRevision(); + compatible = COMPATIBLE_MC_REVISION.equals(mcVersion); if (Setting.CHECK_MINECRAFT_VERSION.asBoolean() && !compatible) { Messaging.severeTr(Messages.CITIZENS_INCOMPATIBLE, getDescription().getVersion(), mcVersion); getServer().getPluginManager().disablePlugin(this); @@ -456,5 +454,8 @@ public class Citizens extends JavaPlugin implements CitizensPlugin { return false; } - private static final String[] COMPATIBLE_MC_VERSIONS = { "1.8.5", "1.8.6", "1.8.7" }; + public static void main(String[] args) { + } + + private static final String COMPATIBLE_MC_REVISION = "1_8_R3"; } diff --git a/src/main/java/net/citizensnpcs/util/Util.java b/src/main/java/net/citizensnpcs/util/Util.java index b59b875ab..019b8695f 100644 --- a/src/main/java/net/citizensnpcs/util/Util.java +++ b/src/main/java/net/citizensnpcs/util/Util.java @@ -2,13 +2,10 @@ package net.citizensnpcs.util; import java.util.Random; -import net.citizensnpcs.api.event.NPCCollisionEvent; -import net.citizensnpcs.api.event.NPCPushEvent; -import net.citizensnpcs.api.npc.NPC; - import org.bukkit.Bukkit; import org.bukkit.Location; import org.bukkit.Material; +import org.bukkit.craftbukkit.v1_8_R3.CraftServer; import org.bukkit.entity.Entity; import org.bukkit.entity.EntityType; import org.bukkit.entity.LivingEntity; @@ -18,6 +15,10 @@ import org.bukkit.util.Vector; import com.google.common.base.Joiner; import com.google.common.base.Splitter; +import net.citizensnpcs.api.event.NPCCollisionEvent; +import net.citizensnpcs.api.event.NPCPushEvent; +import net.citizensnpcs.api.npc.NPC; + public class Util { // Static class for small (emphasis small) utility methods private Util() { @@ -73,14 +74,9 @@ public class Util { return new XORShiftRNG(); } - public static String getMinecraftVersion() { - String raw = Bukkit.getVersion(); - int start = raw.indexOf("MC:"); - if (start == -1) - return raw; - start += 4; - int end = raw.indexOf(')', start); - return raw.substring(start, end); + public static String getMinecraftRevision() { + String raw = CraftServer.class.getPackage().getName(); + return raw.substring(raw.lastIndexOf('.') + 2); } public static boolean isAlwaysFlyable(EntityType type) {