diff --git a/dependency-reduced-pom.xml b/dependency-reduced-pom.xml
old mode 100755
new mode 100644
index 91ba00e..3ae86d5
--- a/dependency-reduced-pom.xml
+++ b/dependency-reduced-pom.xml
@@ -126,7 +126,7 @@
org.bukkit
spigot-api
- 1.8.8
+ 1.9
provided
@@ -135,6 +135,12 @@
1.8.3
provided
+
+ org.bukkit
+ spigot-19
+ 1.9
+ provided
+
org.bukkit
spigot-184
@@ -385,7 +391,7 @@
SNAPSHOT
UTF-8
- 1.8.8
+ 1.9
diff --git a/pom.xml b/pom.xml
index b7f64cb..03c28b2 100644
--- a/pom.xml
+++ b/pom.xml
@@ -6,7 +6,7 @@
UTF-8
- 1.8.8
+ 1.9
SNAPSHOT
@@ -85,6 +85,14 @@
provided
+
+ org.bukkit
+ spigot-19
+ 1.9
+ jar
+ provided
+
+
org.bukkit
spigot-184
diff --git a/src/main/java/com/cnaude/purpleirc/Utilities/NetPacket_19.java b/src/main/java/com/cnaude/purpleirc/Utilities/NetPacket_19.java
new file mode 100644
index 0000000..5ab7344
--- /dev/null
+++ b/src/main/java/com/cnaude/purpleirc/Utilities/NetPacket_19.java
@@ -0,0 +1,63 @@
+/*
+ * Copyright (C) 2015 cnaude
+ *
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program. If not, see .
+ */
+package com.cnaude.purpleirc.Utilities;
+
+import com.comphenix.protocol.events.PacketContainer;
+import com.comphenix.protocol.wrappers.WrappedGameProfile;
+import com.google.common.base.Charsets;
+import com.mojang.authlib.GameProfile;
+import java.util.UUID;
+import net.minecraft.server.v1_9_R1.EntityPlayer;
+import net.minecraft.server.v1_9_R1.MinecraftServer;
+import net.minecraft.server.v1_9_R1.PacketPlayOutPlayerInfo;
+import net.minecraft.server.v1_9_R1.PlayerInteractManager;
+
+/**
+ *
+ * @author Chris Naude
+ */
+public class NetPacket_19 {
+
+ public static PacketContainer add(String displayName) {
+ UUID uuid = UUID.nameUUIDFromBytes(("OfflinePlayer:" + displayName).getBytes(Charsets.UTF_8));
+ EntityPlayer pl = new EntityPlayer(
+ MinecraftServer.getServer(),
+ MinecraftServer.getServer().getWorldServer(0),
+ (GameProfile) (new WrappedGameProfile(uuid, displayName)).getHandle(),
+ new PlayerInteractManager(MinecraftServer.getServer().getWorldServer(0))
+ );
+ PacketPlayOutPlayerInfo pi
+ = new PacketPlayOutPlayerInfo(
+ PacketPlayOutPlayerInfo.EnumPlayerInfoAction.ADD_PLAYER, pl);
+ return PacketContainer.fromPacket(pi);
+ }
+
+ public static PacketContainer rem(String displayName) {
+ UUID uuid = UUID.nameUUIDFromBytes(("OfflinePlayer:" + displayName).getBytes(Charsets.UTF_8));
+ EntityPlayer pl = new EntityPlayer(
+ MinecraftServer.getServer(),
+ MinecraftServer.getServer().getWorldServer(0),
+ (GameProfile) (new WrappedGameProfile(uuid, displayName)).getHandle(),
+ new PlayerInteractManager(MinecraftServer.getServer().getWorldServer(0))
+ );
+ PacketPlayOutPlayerInfo pi
+ = new PacketPlayOutPlayerInfo(
+ PacketPlayOutPlayerInfo.EnumPlayerInfoAction.REMOVE_PLAYER, pl);
+ return PacketContainer.fromPacket(pi);
+ }
+
+}
diff --git a/src/main/java/com/cnaude/purpleirc/Utilities/NetPackets.java b/src/main/java/com/cnaude/purpleirc/Utilities/NetPackets.java
index 5975301..689777d 100644
--- a/src/main/java/com/cnaude/purpleirc/Utilities/NetPackets.java
+++ b/src/main/java/com/cnaude/purpleirc/Utilities/NetPackets.java
@@ -129,7 +129,7 @@ public class NetPackets {
if (add) {
return NetPacket_183.add(displayName);
} else {
- plugin.logDebug("T: Removing: " + name);
+ plugin.logDebug("T183: Removing: " + name);
return NetPacket_183.rem(displayName);
}
} catch (Exception ex) {
@@ -144,12 +144,23 @@ public class NetPackets {
if (add) {
return NetPacket_184_185_186_187_188.add(displayName);
} else {
- plugin.logDebug("T: Removing: " + name);
+ plugin.logDebug("T184_188: Removing: " + name);
return NetPacket_184_185_186_187_188.rem(displayName);
}
} catch (Exception ex) {
plugin.logError("tabPacket: " + ex.getMessage());
}
+ } else if (version.contains("MC: 1.9")) {
+ try {
+ if (add) {
+ return NetPacket_19.add(displayName);
+ } else {
+ plugin.logDebug("T19: Removing: " + name);
+ return NetPacket_19.rem(displayName);
+ }
+ } catch (Exception ex) {
+ plugin.logError("tabPacket: " + ex.getMessage());
+ }
} else {
plugin.logDebug("tabPacket: deprecated ");
playerListConstructor = protocolManager.createPacketConstructor(Packets.Server.PLAYER_INFO, "", false, (int) 0);