diff --git a/Plugins/Mineplex.Core.Common.Base/src/mineplex/core/common/MinecraftVersion.java b/Plugins/Mineplex.Core.Common.Base/src/mineplex/core/common/MinecraftVersion.java
index 251018c2f..273f4a35c 100644
--- a/Plugins/Mineplex.Core.Common.Base/src/mineplex/core/common/MinecraftVersion.java
+++ b/Plugins/Mineplex.Core.Common.Base/src/mineplex/core/common/MinecraftVersion.java
@@ -1,25 +1,49 @@
package mineplex.core.common;
+import com.google.common.base.Preconditions;
+
+/**
+ * Used to declare specific milestone versions
+ */
public enum MinecraftVersion
{
- ALL("Any"),
- Version1_9("1.9"),
- Version1_8("1.8"),
+ Version1_9("1.9", 48),
+ Version1_8("1.8", Integer.MIN_VALUE), //Any player will at minimum be 1.8, we can't handle anything below that
;
+
private final String _friendlyName;
+ private final int _minimum;
- MinecraftVersion(String friendlyName)
+ MinecraftVersion(String friendlyName, int minimum)
{
_friendlyName = friendlyName;
+ _minimum = minimum;
}
public String friendlyName()
{
return _friendlyName;
}
+
+ public boolean atOrAbove(MinecraftVersion other)
+ {
+ Preconditions.checkNotNull(other);
+
+ return ordinal() <= other.ordinal();
+ }
public static MinecraftVersion fromInt(int version)
{
- return version <= 47 ? Version1_8 : Version1_9;
+ MinecraftVersion v = null;
+ for (MinecraftVersion test : values())
+ {
+ if (version >= test._minimum)
+ {
+ v = test;
+ break;
+ }
+ }
+
+ return v;
}
-}
+}
\ No newline at end of file
diff --git a/Plugins/Mineplex.Core.Common/src/mineplex/core/common/util/UtilPlayer.java b/Plugins/Mineplex.Core.Common/src/mineplex/core/common/util/UtilPlayer.java
index fd35426e0..d528336c1 100644
--- a/Plugins/Mineplex.Core.Common/src/mineplex/core/common/util/UtilPlayer.java
+++ b/Plugins/Mineplex.Core.Common/src/mineplex/core/common/util/UtilPlayer.java
@@ -143,11 +143,6 @@ public class UtilPlayer
return entry.trackedPlayers.contains(ep);
}
- public static boolean is1_9(Player player)
- {
- return ((CraftPlayer) player).getHandle().playerConnection.networkManager.getVersion() > 47;
- }
-
private static class Vector3D
{
@@ -926,10 +921,9 @@ public class UtilPlayer
public static MinecraftVersion getVersion(Player player)
{
- if (is1_9(player))
- return MinecraftVersion.Version1_9;
-
- return MinecraftVersion.Version1_8;
+ int version = ((CraftPlayer) player).getHandle().playerConnection.networkManager.getVersion();
+
+ return MinecraftVersion.fromInt(version);
}
/**
diff --git a/Plugins/Mineplex.Core.Common/src/mineplex/core/common/util/UtilTextTop.java b/Plugins/Mineplex.Core.Common/src/mineplex/core/common/util/UtilTextTop.java
index a71666592..2a28485a3 100644
--- a/Plugins/Mineplex.Core.Common/src/mineplex/core/common/util/UtilTextTop.java
+++ b/Plugins/Mineplex.Core.Common/src/mineplex/core/common/util/UtilTextTop.java
@@ -14,6 +14,7 @@ import org.bukkit.event.player.PlayerJoinEvent;
import org.bukkit.scheduler.BukkitRunnable;
import mineplex.core.common.DummyEntity;
+import mineplex.core.common.MinecraftVersion;
import net.minecraft.server.v1_8_R3.DataWatcher;
import net.minecraft.server.v1_8_R3.Entity;
import net.minecraft.server.v1_8_R3.EntityLiving;
@@ -69,7 +70,7 @@ public class UtilTextTop
runnable.runTaskLater(UtilServer.getPlugin(), 20);
- if (UtilPlayer.is1_9(player))
+ if (MinecraftVersion.Version1_9.atOrAbove(UtilPlayer.getVersion(player)))
{
sendBossBar(player, healthPercent, text);
@@ -128,7 +129,7 @@ public class UtilTextTop
private static void deleteOld(Player player)
{
- if (UtilPlayer.is1_9(player))
+ if (MinecraftVersion.Version1_9.atOrAbove(UtilPlayer.getVersion(player)))
{
PacketPlayOutBossBar bossBar = new PacketPlayOutBossBar();
@@ -156,7 +157,7 @@ public class UtilTextTop
@EventHandler
public void onPlayerJoin(PlayerJoinEvent event)
{
- if (UtilPlayer.is1_9(event.getPlayer()))
+ if (MinecraftVersion.Version1_9.atOrAbove(UtilPlayer.getVersion(event.getPlayer())))
{
deleteOld(event.getPlayer());
}
diff --git a/Plugins/Mineplex.Core/pom.xml b/Plugins/Mineplex.Core/pom.xml
index a989322c7..b6c5e5918 100644
--- a/Plugins/Mineplex.Core/pom.xml
+++ b/Plugins/Mineplex.Core/pom.xml
@@ -31,11 +31,6 @@
mineplex-serverdata
${project.version}
-
- ${project.groupId}
- mineplex-questmanager
- ${project.version}
-
org.apache.commons
commons-dbcp2
diff --git a/Plugins/Mineplex.Core/src/mineplex/core/CustomTagFix.java b/Plugins/Mineplex.Core/src/mineplex/core/CustomTagFix.java
index 04e1b2cf8..b142d2adc 100644
--- a/Plugins/Mineplex.Core/src/mineplex/core/CustomTagFix.java
+++ b/Plugins/Mineplex.Core/src/mineplex/core/CustomTagFix.java
@@ -477,7 +477,7 @@ public class CustomTagFix extends MiniPlugin implements IPacketHandler
UtilPlayer.sendPacket(owner, spawnPacket);
- if (UtilPlayer.is1_9(owner))
+ if (MinecraftVersion.Version1_9.atOrAbove(UtilPlayer.getVersion(owner)))
{
UtilPlayer.sendPacket(owner, new PacketPlayOutNewAttachEntity(entityId, new int[]
{
@@ -507,7 +507,7 @@ public class CustomTagFix extends MiniPlugin implements IPacketHandler
UtilPlayer.sendPacket(owner, spawnPacket);
- if (UtilPlayer.is1_9(owner))
+ if (MinecraftVersion.Version1_9.atOrAbove(UtilPlayer.getVersion(owner)))
{
UtilPlayer.sendPacket(owner, new PacketPlayOutNewAttachEntity(entityIds[1], new int[]
{
diff --git a/Plugins/Mineplex.Core/src/mineplex/core/bonuses/BonusManager.java b/Plugins/Mineplex.Core/src/mineplex/core/bonuses/BonusManager.java
index c4f96d9df..41c505cd8 100644
--- a/Plugins/Mineplex.Core/src/mineplex/core/bonuses/BonusManager.java
+++ b/Plugins/Mineplex.Core/src/mineplex/core/bonuses/BonusManager.java
@@ -54,6 +54,7 @@ import mineplex.core.bonuses.gui.SpinGui;
import mineplex.core.bonuses.gui.buttons.PowerPlayClubButton;
import mineplex.core.bonuses.redis.VoteHandler;
import mineplex.core.bonuses.redis.VotifierCommand;
+import mineplex.core.common.MinecraftVersion;
import mineplex.core.common.Pair;
import mineplex.core.common.currency.GlobalCurrency;
import mineplex.core.common.util.C;
@@ -1034,7 +1035,7 @@ public class BonusManager extends MiniClientPlugin implements I
if (client.getHologram() == null)
{
double yAdd = 2.3;
- if(!UtilPlayer.is1_9(player))
+ if (!MinecraftVersion.Version1_9.atOrAbove(UtilPlayer.getVersion(player)))
{
yAdd = 2.45;
}
diff --git a/Plugins/Mineplex.Core/src/mineplex/core/gadget/gadgets/morph/MorphDinnerbone.java b/Plugins/Mineplex.Core/src/mineplex/core/gadget/gadgets/morph/MorphDinnerbone.java
index a70aa57c1..ca9ef4b73 100644
--- a/Plugins/Mineplex.Core/src/mineplex/core/gadget/gadgets/morph/MorphDinnerbone.java
+++ b/Plugins/Mineplex.Core/src/mineplex/core/gadget/gadgets/morph/MorphDinnerbone.java
@@ -144,9 +144,6 @@ public class MorphDinnerbone extends MorphGadget implements IPacketHandler
case Version1_8:
summonForEntity18(receiver, player);
break;
- case ALL:
- // do nothing
- break;
}
}
diff --git a/Plugins/Mineplex.Core/src/mineplex/core/gadget/gadgets/outfit/reindeer/OutfitReindeerAntlers.java b/Plugins/Mineplex.Core/src/mineplex/core/gadget/gadgets/outfit/reindeer/OutfitReindeerAntlers.java
index 3dade8e4f..08559df0e 100644
--- a/Plugins/Mineplex.Core/src/mineplex/core/gadget/gadgets/outfit/reindeer/OutfitReindeerAntlers.java
+++ b/Plugins/Mineplex.Core/src/mineplex/core/gadget/gadgets/outfit/reindeer/OutfitReindeerAntlers.java
@@ -16,6 +16,7 @@ import org.bukkit.inventory.ItemStack;
import org.bukkit.util.EulerAngle;
import org.bukkit.util.Vector;
+import mineplex.core.common.MinecraftVersion;
import mineplex.core.common.Pair;
import mineplex.core.common.util.UtilAlg;
import mineplex.core.common.util.UtilPlayer;
@@ -111,7 +112,7 @@ public class OutfitReindeerAntlers extends OutfitReindeer implements IPacketHand
{
Player player = packetInfo.getPlayer();
- if (UtilPlayer.is1_9(player))
+ if (MinecraftVersion.Version1_9.atOrAbove(UtilPlayer.getVersion(player)))
{
return;
}
diff --git a/Plugins/Mineplex.Core/src/mineplex/core/game/MineplexGameManager.java b/Plugins/Mineplex.Core/src/mineplex/core/game/MineplexGameManager.java
index 83b02403e..7f304a383 100644
--- a/Plugins/Mineplex.Core/src/mineplex/core/game/MineplexGameManager.java
+++ b/Plugins/Mineplex.Core/src/mineplex/core/game/MineplexGameManager.java
@@ -23,6 +23,7 @@ import mineplex.core.account.CoreClient;
import mineplex.core.account.CoreClientManager;
import mineplex.core.achievement.Achievement;
import mineplex.core.achievement.AchievementManager;
+import mineplex.core.common.MinecraftVersion;
import mineplex.core.common.currency.GlobalCurrency;
import mineplex.core.common.util.C;
import mineplex.core.common.util.F;
@@ -358,7 +359,7 @@ public class MineplexGameManager extends MiniClientPlugin