summaryrefslogtreecommitdiffstats
path: root/nms-patches/PacketStatusListener.patch
diff options
context:
space:
mode:
Diffstat (limited to 'nms-patches/PacketStatusListener.patch')
-rw-r--r--nms-patches/PacketStatusListener.patch147
1 files changed, 72 insertions, 75 deletions
diff --git a/nms-patches/PacketStatusListener.patch b/nms-patches/PacketStatusListener.patch
index 075488ff..e660bf8b 100644
--- a/nms-patches/PacketStatusListener.patch
+++ b/nms-patches/PacketStatusListener.patch
@@ -17,102 +17,99 @@
public class PacketStatusListener implements PacketStatusInListener {
private static final IChatBaseComponent a = new ChatComponentText("Status request has been handled.");
-@@ -17,10 +28,96 @@
- public void a(PacketStatusInStart packetstatusinstart) {
- if (this.d) {
+@@ -19,8 +30,95 @@
this.networkManager.close(PacketStatusListener.a);
-- } else {
-- this.d = true;
-- this.networkManager.handle(new PacketStatusOutServerInfo(this.minecraftServer.aG()));
-+ // CraftBukkit start - fire ping event
-+ return;
-+ }
-+ this.d = true;
-+ // this.networkManager.handle(new PacketStatusOutServerInfo(this.minecraftServer.aG()));
-+ final Object[] players = minecraftServer.getPlayerList().players.toArray();
-+ class ServerListPingEvent extends org.bukkit.event.server.ServerListPingEvent {
-+ CraftIconCache icon = minecraftServer.server.getServerIcon();
+ } else {
+ this.d = true;
+- this.networkManager.sendPacket(new PacketStatusOutServerInfo(this.minecraftServer.getServerPing()));
++ // CraftBukkit start
++ // this.networkManager.sendPacket(new PacketStatusOutServerInfo(this.minecraftServer.getServerPing()));
++ final Object[] players = minecraftServer.getPlayerList().players.toArray();
++ class ServerListPingEvent extends org.bukkit.event.server.ServerListPingEvent {
+
-+ ServerListPingEvent() {
-+ super(((InetSocketAddress) networkManager.getSocketAddress()).getAddress(), minecraftServer.getMotd(), minecraftServer.getPlayerList().getMaxPlayers());
-+ }
++ CraftIconCache icon = minecraftServer.server.getServerIcon();
+
-+ @Override
-+ public void setServerIcon(org.bukkit.util.CachedServerIcon icon) {
-+ if (!(icon instanceof CraftIconCache)) {
-+ throw new IllegalArgumentException(icon + " was not created by " + org.bukkit.craftbukkit.CraftServer.class);
++ ServerListPingEvent() {
++ super(((InetSocketAddress) networkManager.getSocketAddress()).getAddress(), minecraftServer.getMotd(), minecraftServer.getPlayerList().getMaxPlayers());
++ }
++
++ @Override
++ public void setServerIcon(org.bukkit.util.CachedServerIcon icon) {
++ if (!(icon instanceof CraftIconCache)) {
++ throw new IllegalArgumentException(icon + " was not created by " + org.bukkit.craftbukkit.CraftServer.class);
++ }
++ this.icon = (CraftIconCache) icon;
+ }
-+ this.icon = (CraftIconCache) icon;
-+ }
+
-+ @Override
-+ public Iterator<Player> iterator() throws UnsupportedOperationException {
-+ return new Iterator<Player>() {
-+ int i;
-+ int ret = Integer.MIN_VALUE;
-+ EntityPlayer player;
++ @Override
++ public Iterator<Player> iterator() throws UnsupportedOperationException {
++ return new Iterator<Player>() {
++ int i;
++ int ret = Integer.MIN_VALUE;
++ EntityPlayer player;
+
-+ @Override
-+ public boolean hasNext() {
-+ if (player != null) {
-+ return true;
-+ }
-+ final Object[] currentPlayers = players;
-+ for (int length = currentPlayers.length, i = this.i; i < length; i++) {
-+ final EntityPlayer player = (EntityPlayer) currentPlayers[i];
++ @Override
++ public boolean hasNext() {
+ if (player != null) {
-+ this.i = i + 1;
-+ this.player = player;
+ return true;
+ }
++ final Object[] currentPlayers = players;
++ for (int length = currentPlayers.length, i = this.i; i < length; i++) {
++ final EntityPlayer player = (EntityPlayer) currentPlayers[i];
++ if (player != null) {
++ this.i = i + 1;
++ this.player = player;
++ return true;
++ }
++ }
++ return false;
+ }
-+ return false;
-+ }
+
-+ @Override
-+ public Player next() {
-+ if (!hasNext()) {
-+ throw new java.util.NoSuchElementException();
++ @Override
++ public Player next() {
++ if (!hasNext()) {
++ throw new java.util.NoSuchElementException();
++ }
++ final EntityPlayer player = this.player;
++ this.player = null;
++ this.ret = this.i - 1;
++ return player.getBukkitEntity();
+ }
-+ final EntityPlayer player = this.player;
-+ this.player = null;
-+ this.ret = this.i - 1;
-+ return player.getBukkitEntity();
-+ }
+
-+ @Override
-+ public void remove() {
-+ final Object[] currentPlayers = players;
-+ final int i = this.ret;
-+ if (i < 0 || currentPlayers[i] == null) {
-+ throw new IllegalStateException();
++ @Override
++ public void remove() {
++ final Object[] currentPlayers = players;
++ final int i = this.ret;
++ if (i < 0 || currentPlayers[i] == null) {
++ throw new IllegalStateException();
++ }
++ currentPlayers[i] = null;
+ }
-+ currentPlayers[i] = null;
-+ }
-+ };
++ };
++ }
+ }
-+ }
+
-+ ServerListPingEvent event = new ServerListPingEvent();
-+ this.minecraftServer.server.getPluginManager().callEvent(event);
++ ServerListPingEvent event = new ServerListPingEvent();
++ this.minecraftServer.server.getPluginManager().callEvent(event);
+
-+ java.util.List<GameProfile> profiles = new java.util.ArrayList<GameProfile>(players.length);
-+ for (Object player : players) {
-+ if (player != null) {
-+ profiles.add(((EntityPlayer) player).getProfile());
++ java.util.List<GameProfile> profiles = new java.util.ArrayList<GameProfile>(players.length);
++ for (Object player : players) {
++ if (player != null) {
++ profiles.add(((EntityPlayer) player).getProfile());
++ }
+ }
- }
+
-+ ServerPing.ServerPingPlayerSample playerSample = new ServerPing.ServerPingPlayerSample(event.getMaxPlayers(), profiles.size());
-+ playerSample.a(profiles.toArray(new GameProfile[profiles.size()]));
++ ServerPing.ServerPingPlayerSample playerSample = new ServerPing.ServerPingPlayerSample(event.getMaxPlayers(), profiles.size());
++ playerSample.a(profiles.toArray(new GameProfile[profiles.size()]));
+
-+ ServerPing ping = new ServerPing();
-+ ping.setFavicon(event.icon.value);
-+ ping.setMOTD(new ChatComponentText(event.getMotd()));
-+ ping.setPlayerSample(playerSample);
-+ ping.setServerInfo(new ServerPing.ServerData(minecraftServer.getServerModName() + " " + minecraftServer.getVersion(), 47)); // TODO: Update when protocol changes
++ ServerPing ping = new ServerPing();
++ ping.setFavicon(event.icon.value);
++ ping.setMOTD(new ChatComponentText(event.getMotd()));
++ ping.setPlayerSample(playerSample);
++ ping.setServerInfo(new ServerPing.ServerData(minecraftServer.getServerModName() + " " + minecraftServer.getVersion(), minecraftServer.getServerPing().getServerData().getProtocolVersion()));
+
-+ this.networkManager.handle(new PacketStatusOutServerInfo(ping));
++ this.networkManager.sendPacket(new PacketStatusOutServerInfo(ping));
+ }
+ // CraftBukkit end
}