diff --git a/ProtocolLib/pom.xml b/ProtocolLib/pom.xml
index 89b83100..65af8f85 100644
--- a/ProtocolLib/pom.xml
+++ b/ProtocolLib/pom.xml
@@ -240,13 +240,13 @@
org.spigotmc
spigot-api
- 1.8-R0.1-SNAPSHOT
+ 1.8.3-R0.1-SNAPSHOT
provided
org.spigotmc
spigot
- 1.8-R0.1-SNAPSHOT
+ 1.8.3-R0.1-SNAPSHOT
provided
diff --git a/ProtocolLib/src/main/java/com/comphenix/protocol/utility/MinecraftReflection.java b/ProtocolLib/src/main/java/com/comphenix/protocol/utility/MinecraftReflection.java
index 06158db5..30961354 100644
--- a/ProtocolLib/src/main/java/com/comphenix/protocol/utility/MinecraftReflection.java
+++ b/ProtocolLib/src/main/java/com/comphenix/protocol/utility/MinecraftReflection.java
@@ -781,28 +781,18 @@ public class MinecraftReflection {
*/
public static Class> getChatSerializerClass() {
try {
- return getMinecraftClass("ChatSerializer");
+ return getMinecraftClass("IChatBaseComponent.ChatSerializer");
} catch (RuntimeException e) {
- // Analyse the ASM
+ // ChatSerializer was moved into IChatBaseComponent in 1.8.3,
+ // but it was independent in 1.7-1.8
try {
- List methodCalls = ClassAnalyser.getDefault().getMethodCalls(
- PacketType.Play.Server.CHAT.getPacketClass(),
- MinecraftMethods.getPacketReadByteBufMethod()
- );
- Class> packetSerializer = getPacketDataSerializerClass();
-
- for (AsmMethod method : methodCalls) {
- Class> owner = method.getOwnerClass();
-
- if (isMinecraftClass(owner) && !owner.equals(packetSerializer)) {
- return setMinecraftClass("ChatSerializer", owner);
- }
- }
- } catch (Exception e1) {
- throw new IllegalStateException("Cannot find ChatSerializer class.", e);
+ return getMinecraftClass("ChatSerializer");
+ } catch (RuntimeException e1) {
+ // TODO: Figure out a good fallback
}
+
+ throw new IllegalStateException("Could not find ChatSerializer class.", e);
}
- throw new IllegalStateException("Cannot find ChatSerializer class.");
}
/**
@@ -840,7 +830,7 @@ public class MinecraftReflection {
throw new IllegalStateException("ServerPingServerData is only supported in 1.7.2.");
try {
- return getMinecraftClass("ServerPingServerData");
+ return getMinecraftClass("ServerPing.ServerData");
} catch (RuntimeException e) {
Class> serverPing = getServerPingClass();
@@ -863,7 +853,7 @@ public class MinecraftReflection {
throw new IllegalStateException("ServerPingPlayerSample is only supported in 1.7.2.");
try {
- return getMinecraftClass("ServerPingPlayerSample");
+ return getMinecraftClass("ServerPing.ServerPingPlayerSample");
} catch (RuntimeException e) {
Class> serverPing = getServerPingClass();
diff --git a/ProtocolLib/src/test/java/com/comphenix/protocol/BukkitInitialization.java b/ProtocolLib/src/test/java/com/comphenix/protocol/BukkitInitialization.java
index d8eb58d5..d2ee34f7 100644
--- a/ProtocolLib/src/test/java/com/comphenix/protocol/BukkitInitialization.java
+++ b/ProtocolLib/src/test/java/com/comphenix/protocol/BukkitInitialization.java
@@ -3,21 +3,20 @@ package com.comphenix.protocol;
import static org.mockito.Matchers.any;
import static org.mockito.Mockito.mock;
import static org.mockito.Mockito.when;
-import net.minecraft.server.v1_8_R1.Block;
-import net.minecraft.server.v1_8_R1.Item;
-import net.minecraft.server.v1_8_R1.StatisticList;
+import net.minecraft.server.v1_8_R2.Block;
+import net.minecraft.server.v1_8_R2.Item;
+import net.minecraft.server.v1_8_R2.StatisticList;
import org.bukkit.Bukkit;
import org.bukkit.Material;
import org.bukkit.Server;
-import org.bukkit.craftbukkit.v1_8_R1.inventory.CraftItemFactory;
+import org.bukkit.craftbukkit.v1_8_R2.inventory.CraftItemFactory;
import org.bukkit.inventory.ItemFactory;
import org.bukkit.inventory.meta.ItemMeta;
import com.comphenix.protocol.reflect.FieldUtils;
import com.comphenix.protocol.utility.Constants;
import com.comphenix.protocol.utility.MinecraftReflection;
-// Will have to be updated for every version though
/**
* Used to ensure that ProtocolLib and Bukkit is prepared to be tested.
@@ -39,7 +38,7 @@ public class BukkitInitialization {
initializePackage();
try {
- Block.R(); // Block.register();
+ Block.S(); // Block.register();
Item.t(); // Item.register();
StatisticList.a(); // StatisticList.register();
} catch (Throwable ex) {
diff --git a/ProtocolLib/src/test/java/com/comphenix/protocol/events/PacketContainerTest.java b/ProtocolLib/src/test/java/com/comphenix/protocol/events/PacketContainerTest.java
index c2478971..b52fd39b 100644
--- a/ProtocolLib/src/test/java/com/comphenix/protocol/events/PacketContainerTest.java
+++ b/ProtocolLib/src/test/java/com/comphenix/protocol/events/PacketContainerTest.java
@@ -21,12 +21,13 @@ import static org.junit.Assert.assertArrayEquals;
import static org.junit.Assert.assertEquals;
import static org.junit.Assert.assertNull;
+import java.util.Collection;
import java.util.List;
import java.util.UUID;
-import net.minecraft.server.v1_8_R1.AttributeModifier;
-import net.minecraft.server.v1_8_R1.AttributeSnapshot;
-import net.minecraft.server.v1_8_R1.PacketPlayOutUpdateAttributes;
+import net.minecraft.server.v1_8_R2.AttributeModifier;
+import net.minecraft.server.v1_8_R2.PacketPlayOutUpdateAttributes;
+import net.minecraft.server.v1_8_R2.PacketPlayOutUpdateAttributes.AttributeSnapshot;
import org.apache.commons.lang.SerializationUtils;
import org.apache.commons.lang.builder.ToStringBuilder;
@@ -34,7 +35,7 @@ import org.apache.commons.lang.builder.ToStringStyle;
import org.bukkit.ChatColor;
import org.bukkit.Material;
import org.bukkit.WorldType;
-import org.bukkit.craftbukkit.v1_8_R1.inventory.CraftItemFactory;
+import org.bukkit.craftbukkit.v1_8_R2.inventory.CraftItemFactory;
import org.bukkit.potion.PotionEffect;
import org.bukkit.potion.PotionEffectType;
import org.junit.BeforeClass;
@@ -366,8 +367,17 @@ public class PacketContainerTest {
// Initialize some test data
List modifiers = Lists.newArrayList(
new AttributeModifier(UUID.randomUUID(), "Unknown synced attribute modifier", 10, 0));
- AttributeSnapshot snapshot = new AttributeSnapshot(
- (PacketPlayOutUpdateAttributes) attribute.getHandle(), "generic.Maxhealth", 20.0, modifiers);
+
+ // TODO This is hopefully just a temporary solution,
+ // but situations like this might be issues elsewhere
+ class PacketAccessor extends PacketPlayOutUpdateAttributes {
+
+ public AttributeSnapshot attributeSnapshot(String string, double d, Collection coll) {
+ return new AttributeSnapshot(string, d, coll);
+ }
+ };
+
+ AttributeSnapshot snapshot = new PacketAccessor().attributeSnapshot("generic.Maxhealth", 20.0, modifiers);
attribute.getSpecificModifier(List.class).write(0, Lists.newArrayList(snapshot));
PacketContainer cloned = attribute.deepClone();
diff --git a/ProtocolLib/src/test/java/com/comphenix/protocol/utility/MinecraftReflectionTest.java b/ProtocolLib/src/test/java/com/comphenix/protocol/utility/MinecraftReflectionTest.java
index d2c79311..8bdc5b47 100644
--- a/ProtocolLib/src/test/java/com/comphenix/protocol/utility/MinecraftReflectionTest.java
+++ b/ProtocolLib/src/test/java/com/comphenix/protocol/utility/MinecraftReflectionTest.java
@@ -4,12 +4,12 @@ import static org.junit.Assert.assertEquals;
import static org.mockito.Mockito.mock;
import static org.mockito.Mockito.times;
import static org.mockito.Mockito.verify;
-import net.minecraft.server.v1_8_R1.ChatComponentText;
-import net.minecraft.server.v1_8_R1.ChatSerializer;
-import net.minecraft.server.v1_8_R1.IChatBaseComponent;
-import net.minecraft.server.v1_8_R1.ServerPing;
-import net.minecraft.server.v1_8_R1.ServerPingPlayerSample;
-import net.minecraft.server.v1_8_R1.ServerPingServerData;
+import net.minecraft.server.v1_8_R2.ChatComponentText;
+import net.minecraft.server.v1_8_R2.IChatBaseComponent;
+import net.minecraft.server.v1_8_R2.IChatBaseComponent.ChatSerializer;
+import net.minecraft.server.v1_8_R2.ServerPing;
+import net.minecraft.server.v1_8_R2.ServerPing.ServerData;
+import net.minecraft.server.v1_8_R2.ServerPing.ServerPingPlayerSample;
import org.bukkit.block.Block;
import org.bukkit.entity.Entity;
@@ -96,7 +96,7 @@ public class MinecraftReflectionTest {
@Test
public void testServerPingServerData() {
- assertEquals(ServerPingServerData.class, MinecraftReflection.getServerPingServerDataClass());
+ assertEquals(ServerData.class, MinecraftReflection.getServerPingServerDataClass());
}
// @Test
diff --git a/ProtocolLib/src/test/java/com/comphenix/protocol/utility/StreamSerializerTest.java b/ProtocolLib/src/test/java/com/comphenix/protocol/utility/StreamSerializerTest.java
index 2bad5584..d2f95a0c 100644
--- a/ProtocolLib/src/test/java/com/comphenix/protocol/utility/StreamSerializerTest.java
+++ b/ProtocolLib/src/test/java/com/comphenix/protocol/utility/StreamSerializerTest.java
@@ -8,10 +8,10 @@ import java.io.DataInputStream;
import java.io.DataOutputStream;
import java.io.IOException;
-import net.minecraft.server.v1_8_R1.IntHashMap;
+import net.minecraft.server.v1_8_R2.IntHashMap;
import org.bukkit.Material;
-import org.bukkit.craftbukkit.v1_8_R1.inventory.CraftItemFactory;
+import org.bukkit.craftbukkit.v1_8_R2.inventory.CraftItemFactory;
import org.bukkit.inventory.ItemStack;
import org.junit.BeforeClass;
import org.junit.Test;
diff --git a/ProtocolLib/src/test/java/com/comphenix/protocol/wrappers/ChunkCoordIntPairTest.java b/ProtocolLib/src/test/java/com/comphenix/protocol/wrappers/ChunkCoordIntPairTest.java
index 942370a8..7e7d175b 100644
--- a/ProtocolLib/src/test/java/com/comphenix/protocol/wrappers/ChunkCoordIntPairTest.java
+++ b/ProtocolLib/src/test/java/com/comphenix/protocol/wrappers/ChunkCoordIntPairTest.java
@@ -15,15 +15,15 @@ public class ChunkCoordIntPairTest {
@Test
public void test() {
- net.minecraft.server.v1_8_R1.ChunkCoordIntPair pair = new net.minecraft.server.v1_8_R1.ChunkCoordIntPair(1, 2);
+ net.minecraft.server.v1_8_R2.ChunkCoordIntPair pair = new net.minecraft.server.v1_8_R2.ChunkCoordIntPair(1, 2);
ChunkCoordIntPair specific = ChunkCoordIntPair.getConverter().getSpecific(pair);
assertEquals(1, specific.getChunkX());
assertEquals(2, specific.getChunkZ());
- net.minecraft.server.v1_8_R1.ChunkCoordIntPair roundtrip =
- (net.minecraft.server.v1_8_R1.ChunkCoordIntPair) ChunkCoordIntPair.getConverter().
- getGeneric(net.minecraft.server.v1_8_R1.ChunkCoordIntPair.class, specific);
+ net.minecraft.server.v1_8_R2.ChunkCoordIntPair roundtrip =
+ (net.minecraft.server.v1_8_R2.ChunkCoordIntPair) ChunkCoordIntPair.getConverter().
+ getGeneric(net.minecraft.server.v1_8_R2.ChunkCoordIntPair.class, specific);
assertEquals(1, roundtrip.x);
assertEquals(2, roundtrip.z);
diff --git a/ProtocolLib/src/test/java/com/comphenix/protocol/wrappers/EnumWrappersTest.java b/ProtocolLib/src/test/java/com/comphenix/protocol/wrappers/EnumWrappersTest.java
index 3e89d0c8..55e07a8f 100644
--- a/ProtocolLib/src/test/java/com/comphenix/protocol/wrappers/EnumWrappersTest.java
+++ b/ProtocolLib/src/test/java/com/comphenix/protocol/wrappers/EnumWrappersTest.java
@@ -1,12 +1,12 @@
package com.comphenix.protocol.wrappers;
import static org.junit.Assert.assertEquals;
-import net.minecraft.server.v1_8_R1.EnumChatVisibility;
-import net.minecraft.server.v1_8_R1.EnumClientCommand;
-import net.minecraft.server.v1_8_R1.EnumDifficulty;
-import net.minecraft.server.v1_8_R1.EnumEntityUseAction;
-import net.minecraft.server.v1_8_R1.EnumGamemode;
-import net.minecraft.server.v1_8_R1.EnumProtocol;
+import net.minecraft.server.v1_8_R2.EntityHuman.EnumChatVisibility;
+import net.minecraft.server.v1_8_R2.EnumDifficulty;
+import net.minecraft.server.v1_8_R2.EnumProtocol;
+import net.minecraft.server.v1_8_R2.PacketPlayInClientCommand.EnumClientCommand;
+import net.minecraft.server.v1_8_R2.PacketPlayInUseEntity.EnumEntityUseAction;
+import net.minecraft.server.v1_8_R2.WorldSettings.EnumGamemode;
import org.junit.BeforeClass;
import org.junit.Test;
diff --git a/ProtocolLib/src/test/java/com/comphenix/protocol/wrappers/WrappedAttributeTest.java b/ProtocolLib/src/test/java/com/comphenix/protocol/wrappers/WrappedAttributeTest.java
index ee3073eb..8fc67a4f 100644
--- a/ProtocolLib/src/test/java/com/comphenix/protocol/wrappers/WrappedAttributeTest.java
+++ b/ProtocolLib/src/test/java/com/comphenix/protocol/wrappers/WrappedAttributeTest.java
@@ -4,11 +4,12 @@ import static org.junit.Assert.assertEquals;
import static org.junit.Assert.assertNotSame;
import static org.junit.Assert.assertTrue;
+import java.util.Collection;
import java.util.List;
-import net.minecraft.server.v1_8_R1.AttributeModifier;
-import net.minecraft.server.v1_8_R1.AttributeSnapshot;
-import net.minecraft.server.v1_8_R1.PacketPlayOutUpdateAttributes;
+import net.minecraft.server.v1_8_R2.AttributeModifier;
+import net.minecraft.server.v1_8_R2.PacketPlayOutUpdateAttributes;
+import net.minecraft.server.v1_8_R2.PacketPlayOutUpdateAttributes.AttributeSnapshot;
import org.junit.Before;
import org.junit.BeforeClass;
@@ -33,13 +34,13 @@ public class WrappedAttributeTest {
@Before
public void setUp() {
// Create a couple of modifiers
- doubleModifier =
+ doubleModifier =
WrappedAttributeModifier.newBuilder().
name("Double Damage").
amount(1).
operation(Operation.ADD_PERCENTAGE).
build();
- constantModifier =
+ constantModifier =
WrappedAttributeModifier.newBuilder().
name("Damage Bonus").
amount(5).
@@ -84,9 +85,15 @@ public class WrappedAttributeTest {
for (WrappedAttributeModifier wrapper : attribute.getModifiers()) {
modifiers.add((AttributeModifier) wrapper.getHandle());
}
- return new AttributeSnapshot(
- (PacketPlayOutUpdateAttributes) attribute.getParentPacket().getHandle(),
- attribute.getAttributeKey(), attribute.getBaseValue(), modifiers);
+
+ class PacketAccessor extends PacketPlayOutUpdateAttributes {
+
+ public AttributeSnapshot attributeSnapshot(String string, double d, Collection coll) {
+ return new AttributeSnapshot(string, d, coll);
+ }
+ }
+
+ return new PacketAccessor().attributeSnapshot(attribute.getAttributeKey(), attribute.getBaseValue(), modifiers);
}
private AttributeModifier getModifierCopy(WrappedAttributeModifier modifier) {
diff --git a/ProtocolLib/src/test/java/com/comphenix/protocol/wrappers/WrappedWatchableObjectTest.java b/ProtocolLib/src/test/java/com/comphenix/protocol/wrappers/WrappedWatchableObjectTest.java
index 811c9b43..5d59a637 100644
--- a/ProtocolLib/src/test/java/com/comphenix/protocol/wrappers/WrappedWatchableObjectTest.java
+++ b/ProtocolLib/src/test/java/com/comphenix/protocol/wrappers/WrappedWatchableObjectTest.java
@@ -3,7 +3,7 @@ package com.comphenix.protocol.wrappers;
import static org.junit.Assert.assertEquals;
import org.bukkit.Material;
-import org.bukkit.craftbukkit.v1_8_R1.inventory.CraftItemFactory;
+import org.bukkit.craftbukkit.v1_8_R2.inventory.CraftItemFactory;
import org.bukkit.inventory.ItemStack;
import org.junit.BeforeClass;
import org.junit.Test;
diff --git a/ProtocolLib/src/test/java/com/comphenix/protocol/wrappers/nbt/NbtFactoryTest.java b/ProtocolLib/src/test/java/com/comphenix/protocol/wrappers/nbt/NbtFactoryTest.java
index 078f20e0..9200110a 100644
--- a/ProtocolLib/src/test/java/com/comphenix/protocol/wrappers/nbt/NbtFactoryTest.java
+++ b/ProtocolLib/src/test/java/com/comphenix/protocol/wrappers/nbt/NbtFactoryTest.java
@@ -27,7 +27,7 @@ import java.io.DataOutput;
import java.io.DataOutputStream;
import org.bukkit.Material;
-import org.bukkit.craftbukkit.v1_8_R1.inventory.CraftItemFactory;
+import org.bukkit.craftbukkit.v1_8_R2.inventory.CraftItemFactory;
import org.bukkit.inventory.ItemStack;
import org.junit.BeforeClass;
import org.junit.Test;