diff --git a/Spigot-API-Patches/0089-Add-extended-PaperServerListPingEvent.patch b/Spigot-API-Patches/0089-Add-extended-PaperServerListPingEvent.patch new file mode 100644 index 0000000000..24c26d0372 --- /dev/null +++ b/Spigot-API-Patches/0089-Add-extended-PaperServerListPingEvent.patch @@ -0,0 +1,370 @@ +From 8614ecd3ac7244618cab3302a3c2f28105276966 Mon Sep 17 00:00:00 2001 +From: Minecrell +Date: Wed, 11 Oct 2017 15:55:38 +0200 +Subject: [PATCH] Add extended PaperServerListPingEvent + +Add a new event that extends the original ServerListPingEvent +and allows full control of the response sent to the client. + +diff --git a/src/main/java/com/destroystokyo/paper/event/server/PaperServerListPingEvent.java b/src/main/java/com/destroystokyo/paper/event/server/PaperServerListPingEvent.java +new file mode 100644 +index 00000000..dd1deafd +--- /dev/null ++++ b/src/main/java/com/destroystokyo/paper/event/server/PaperServerListPingEvent.java +@@ -0,0 +1,319 @@ ++package com.destroystokyo.paper.event.server; ++ ++import static java.util.Objects.requireNonNull; ++ ++import com.destroystokyo.paper.network.StatusClient; ++import com.destroystokyo.paper.profile.PlayerProfile; ++import org.bukkit.Bukkit; ++import org.bukkit.entity.Player; ++import org.bukkit.event.Cancellable; ++import org.bukkit.event.server.ServerListPingEvent; ++import org.bukkit.util.CachedServerIcon; ++ ++import java.util.ArrayList; ++import java.util.Iterator; ++import java.util.List; ++import java.util.NoSuchElementException; ++import java.util.UUID; ++ ++import javax.annotation.Nonnull; ++import javax.annotation.Nullable; ++ ++/** ++ * Extended version of {@link ServerListPingEvent} that allows full control ++ * of the response sent to the client. ++ */ ++public class PaperServerListPingEvent extends ServerListPingEvent implements Cancellable { ++ ++ @Nonnull private final StatusClient client; ++ ++ private int numPlayers; ++ private boolean hidePlayers; ++ @Nonnull private final List playerSample = new ArrayList<>(); ++ ++ @Nonnull private String version; ++ private int protocolVersion; ++ ++ @Nullable private CachedServerIcon favicon; ++ ++ private boolean cancelled; ++ ++ private boolean originalPlayerCount = true; ++ private Object[] players; ++ ++ public PaperServerListPingEvent(@Nonnull StatusClient client, String motd, int numPlayers, int maxPlayers, ++ @Nonnull String version, int protocolVersion, @Nullable CachedServerIcon favicon) { ++ super(client.getAddress().getAddress(), motd, numPlayers, maxPlayers); ++ this.client = client; ++ this.numPlayers = numPlayers; ++ this.version = version; ++ this.protocolVersion = protocolVersion; ++ setServerIcon(favicon); ++ } ++ ++ /** ++ * Returns the {@link StatusClient} pinging the server. ++ * ++ * @return The client ++ */ ++ @Nonnull ++ public StatusClient getClient() { ++ return this.client; ++ } ++ ++ /** ++ * {@inheritDoc} ++ * ++ *

Returns {@code -1} if players are hidden using ++ * {@link #shouldHidePlayers()}.

++ */ ++ @Override ++ public int getNumPlayers() { ++ if (this.hidePlayers) { ++ return -1; ++ } ++ ++ return this.numPlayers; ++ } ++ ++ /** ++ * Sets the number of players displayed in the server list. ++ * ++ *

Note that this won't have any effect if {@link #shouldHidePlayers()} ++ * is enabled.

++ * ++ * @param numPlayers The number of online players ++ */ ++ public void setNumPlayers(int numPlayers) { ++ if (this.numPlayers != numPlayers) { ++ this.numPlayers = numPlayers; ++ this.originalPlayerCount = false; ++ } ++ } ++ ++ /** ++ * {@inheritDoc} ++ * ++ *

Returns {@code -1} if players are hidden using ++ * {@link #shouldHidePlayers()}.

++ */ ++ @Override ++ public int getMaxPlayers() { ++ if (this.hidePlayers) { ++ return -1; ++ } ++ ++ return super.getMaxPlayers(); ++ } ++ ++ /** ++ * Returns whether all player related information is hidden in the server ++ * list. This will cause {@link #getNumPlayers()}, {@link #getMaxPlayers()} ++ * and {@link #getPlayerSample()} to be skipped in the response. ++ * ++ *

The Vanilla Minecraft client will display the player count as {@code ???} ++ * when this option is enabled.

++ * ++ * @return {@code true} if the player count is hidden ++ */ ++ public boolean shouldHidePlayers() { ++ return hidePlayers; ++ } ++ ++ /** ++ * Sets whether all player related information is hidden in the server ++ * list. This will cause {@link #getNumPlayers()}, {@link #getMaxPlayers()} ++ * and {@link #getPlayerSample()} to be skipped in the response. ++ * ++ *

The Vanilla Minecraft client will display the player count as {@code ???} ++ * when this option is enabled.

++ * ++ * @param hidePlayers {@code true} if the player count should be hidden ++ */ ++ public void setHidePlayers(boolean hidePlayers) { ++ this.hidePlayers = hidePlayers; ++ } ++ ++ /** ++ * Returns a mutable list of {@link PlayerProfile} that will be displayed ++ * as online players on the client. ++ * ++ *

The Vanilla Minecraft client will display them when hovering the ++ * player count with the mouse.

++ * ++ * @return The mutable player sample list ++ */ ++ @Nonnull ++ public List getPlayerSample() { ++ return this.playerSample; ++ } ++ ++ /** ++ * Returns the version that will be sent as server version on the client. ++ * ++ * @return The server version ++ */ ++ @Nonnull ++ public String getVersion() { ++ return version; ++ } ++ ++ /** ++ * Sets the version that will be sent as server version to the client. ++ * ++ * @param version The server version ++ */ ++ public void setVersion(@Nonnull String version) { ++ this.version = requireNonNull(version, "version"); ++ } ++ ++ /** ++ * Returns the protocol version that will be sent as the protocol version ++ * of the server to the client. ++ * ++ * @return The protocol version of the server ++ */ ++ public int getProtocolVersion() { ++ return protocolVersion; ++ } ++ ++ /** ++ * Sets the protocol version that will be sent as the protocol version ++ * of the server to the client. ++ * ++ * @param protocolVersion The protocol version of the server ++ */ ++ public void setProtocolVersion(int protocolVersion) { ++ this.protocolVersion = protocolVersion; ++ } ++ ++ /** ++ * Gets the server icon sent to the client. ++ * ++ * @return The icon to send to the client, or {@code null} for none ++ */ ++ @Nullable ++ public CachedServerIcon getServerIcon() { ++ return this.favicon; ++ } ++ ++ /** ++ * Sets the server icon sent to the client. ++ * ++ * @param icon The icon to send to the client, or {@code null} for none ++ */ ++ @Override ++ public void setServerIcon(@Nullable CachedServerIcon icon) { ++ if (icon != null && icon.isEmpty()) { ++ // Represent empty icons as null ++ icon = null; ++ } ++ ++ this.favicon = icon; ++ } ++ ++ /** ++ * {@inheritDoc} ++ * ++ *

Cancelling this event will cause the connection to be closed immediately, ++ * without sending a response to the client.

++ */ ++ @Override ++ public boolean isCancelled() { ++ return this.cancelled; ++ } ++ ++ /** ++ * {@inheritDoc} ++ * ++ *

Cancelling this event will cause the connection to be closed immediately, ++ * without sending a response to the client.

++ */ ++ @Override ++ public void setCancelled(boolean cancel) { ++ this.cancelled = cancel; ++ } ++ ++ /** ++ * {@inheritDoc} ++ * ++ *

Note: For compatibility reasons, this method will return all ++ * online players, not just the ones referenced in {@link #getPlayerSample()}. ++ * Removing a player will:

++ * ++ *
    ++ *
  • Decrement the online player count (if and only if) the player ++ * count wasn't changed by another plugin before.
  • ++ *
  • Remove all entries from {@link #getPlayerSample()} that refer to ++ * the removed player (based on their {@link UUID}).
  • ++ *
++ */ ++ @Nonnull ++ @Override ++ public Iterator iterator() { ++ if (this.players == null) { ++ this.players = getOnlinePlayers(); ++ } ++ ++ return new PlayerIterator(); ++ } ++ ++ protected Object[] getOnlinePlayers() { ++ return Bukkit.getOnlinePlayers().toArray(); ++ } ++ ++ protected Player getBukkitPlayer(Object player) { ++ return (Player) player; ++ } ++ ++ private final class PlayerIterator implements Iterator { ++ ++ private int next; ++ private int current; ++ @Nullable private Player player; ++ ++ @Override ++ public boolean hasNext() { ++ for (; this.next < players.length; this.next++) { ++ if (players[this.next] != null) { ++ return true; ++ } ++ } ++ ++ return false; ++ } ++ ++ @Override ++ public Player next() { ++ if (!hasNext()) { ++ this.player = null; ++ throw new NoSuchElementException(); ++ } ++ ++ this.current = this.next++; ++ return this.player = getBukkitPlayer(players[this.current]); ++ } ++ ++ @Override ++ public void remove() { ++ if (this.player == null) { ++ throw new IllegalStateException(); ++ } ++ ++ UUID uniqueId = this.player.getUniqueId(); ++ this.player = null; ++ ++ // Remove player from iterator ++ players[this.current] = null; ++ ++ // Remove player from sample ++ getPlayerSample().removeIf(p -> uniqueId.equals(p.getId())); ++ ++ // Decrement player count ++ if (originalPlayerCount) { ++ numPlayers--; ++ } ++ } ++ } ++ ++} +diff --git a/src/main/java/com/destroystokyo/paper/network/StatusClient.java b/src/main/java/com/destroystokyo/paper/network/StatusClient.java +new file mode 100644 +index 00000000..517d1523 +--- /dev/null ++++ b/src/main/java/com/destroystokyo/paper/network/StatusClient.java +@@ -0,0 +1,13 @@ ++package com.destroystokyo.paper.network; ++ ++import com.destroystokyo.paper.event.server.PaperServerListPingEvent; ++ ++/** ++ * Represents a client requesting the current status from the server (e.g. from ++ * the server list). ++ * ++ * @see PaperServerListPingEvent ++ */ ++public interface StatusClient extends NetworkClient { ++ ++} +diff --git a/src/main/java/org/bukkit/util/CachedServerIcon.java b/src/main/java/org/bukkit/util/CachedServerIcon.java +index 04804706..44563482 100644 +--- a/src/main/java/org/bukkit/util/CachedServerIcon.java ++++ b/src/main/java/org/bukkit/util/CachedServerIcon.java +@@ -14,4 +14,10 @@ import org.bukkit.event.server.ServerListPingEvent; + */ + public interface CachedServerIcon { + public String getData(); // Spigot ++ ++ // Paper start ++ default boolean isEmpty() { ++ return getData() == null; ++ } ++ // Paper end + } +-- +2.16.1 + diff --git a/Spigot-API-Patches/0090-Implement-deprecated-player-sample-API.patch b/Spigot-API-Patches/0090-Implement-deprecated-player-sample-API.patch new file mode 100644 index 0000000000..4e5911322b --- /dev/null +++ b/Spigot-API-Patches/0090-Implement-deprecated-player-sample-API.patch @@ -0,0 +1,78 @@ +From 9ed51547f8f2474fdda8cfd6178dcaa7b301dc0a Mon Sep 17 00:00:00 2001 +From: Minecrell +Date: Mon, 27 Nov 2017 16:21:19 +0100 +Subject: [PATCH] Implement deprecated player sample API + + +diff --git a/src/main/java/com/destroystokyo/paper/event/server/PaperServerListPingEvent.java b/src/main/java/com/destroystokyo/paper/event/server/PaperServerListPingEvent.java +index a6576f99..41899698 100644 +--- a/src/main/java/com/destroystokyo/paper/event/server/PaperServerListPingEvent.java ++++ b/src/main/java/com/destroystokyo/paper/event/server/PaperServerListPingEvent.java +@@ -4,6 +4,8 @@ import static java.util.Objects.requireNonNull; + + import com.destroystokyo.paper.network.StatusClient; + import com.destroystokyo.paper.profile.PlayerProfile; ++import com.google.common.base.Strings; ++import com.google.common.collect.ImmutableList; + import org.bukkit.Bukkit; + import org.bukkit.entity.Player; + import org.bukkit.event.Cancellable; +@@ -316,4 +318,25 @@ public class PaperServerListPingEvent extends ServerListPingEvent implements Can + } + } + ++ // TODO: Remove in 1.13 ++ ++ @Override ++ @Deprecated ++ public List getSampleText() { ++ ImmutableList.Builder sampleText = ImmutableList.builder(); ++ for (PlayerProfile profile : getPlayerSample()) { ++ sampleText.add(Strings.nullToEmpty(profile.getName())); ++ } ++ return sampleText.build(); ++ } ++ ++ @Override ++ @Deprecated ++ public void setSampleText(List sample) { ++ getPlayerSample().clear(); ++ for (String name : sample) { ++ getPlayerSample().add(Bukkit.createProfile(name)); ++ } ++ } ++ + } +diff --git a/src/main/java/org/bukkit/event/server/ServerListPingEvent.java b/src/main/java/org/bukkit/event/server/ServerListPingEvent.java +index cb8d0fcd..116d7c7a 100644 +--- a/src/main/java/org/bukkit/event/server/ServerListPingEvent.java ++++ b/src/main/java/org/bukkit/event/server/ServerListPingEvent.java +@@ -4,6 +4,7 @@ import java.net.InetAddress; + import java.util.Iterator; + import java.util.List; + ++import com.destroystokyo.paper.event.server.PaperServerListPingEvent; + import org.apache.commons.lang.Validate; + import org.bukkit.entity.Player; + import org.bukkit.event.HandlerList; +@@ -151,7 +152,7 @@ public class ServerListPingEvent extends ServerEvent implements Iterable + private java.util.List sample; + + /** +- * @deprecated Will be replaced in 1.13 ++ * @deprecated Will be removed in 1.13, use {@link PaperServerListPingEvent#getPlayerSample()} + */ + @Deprecated + public void setSampleText(java.util.List sample) { +@@ -159,7 +160,7 @@ public class ServerListPingEvent extends ServerEvent implements Iterable + } + + /** +- * @deprecated Will be replaced in 1.13 ++ * @deprecated Will be removed in 1.13, use {@link PaperServerListPingEvent#getPlayerSample()} + */ + @Deprecated + public java.util.List getSampleText() { +-- +2.16.1 + diff --git a/Spigot-Server-Patches/0003-MC-Dev-fixes.patch b/Spigot-Server-Patches/0003-MC-Dev-fixes.patch index 5fd851bd3b..e0b6e167fe 100644 --- a/Spigot-Server-Patches/0003-MC-Dev-fixes.patch +++ b/Spigot-Server-Patches/0003-MC-Dev-fixes.patch @@ -1,11 +1,11 @@ -From de28e5dbfe736bdec1a553e02b88ee1e682de92a Mon Sep 17 00:00:00 2001 +From f8cbb3244bba6213d2646df4e2fcae3cee918afb Mon Sep 17 00:00:00 2001 From: Aikar Date: Wed, 30 Mar 2016 19:36:20 -0400 Subject: [PATCH] MC Dev fixes diff --git a/src/main/java/net/minecraft/server/BaseBlockPosition.java b/src/main/java/net/minecraft/server/BaseBlockPosition.java -index d4f41274..d55e180d 100644 +index d4f412742..d55e180d7 100644 --- a/src/main/java/net/minecraft/server/BaseBlockPosition.java +++ b/src/main/java/net/minecraft/server/BaseBlockPosition.java @@ -89,7 +89,7 @@ public class BaseBlockPosition implements Comparable { @@ -18,7 +18,7 @@ index d4f41274..d55e180d 100644 } } diff --git a/src/main/java/net/minecraft/server/BiomeBase.java b/src/main/java/net/minecraft/server/BiomeBase.java -index 62a9c92f..1b759976 100644 +index 62a9c92f8..1b7599769 100644 --- a/src/main/java/net/minecraft/server/BiomeBase.java +++ b/src/main/java/net/minecraft/server/BiomeBase.java @@ -46,7 +46,7 @@ public abstract class BiomeBase { @@ -31,7 +31,7 @@ index 62a9c92f..1b759976 100644 @Nullable diff --git a/src/main/java/net/minecraft/server/CommandAbstract.java b/src/main/java/net/minecraft/server/CommandAbstract.java -index 76bf04f5..a99d0f87 100644 +index 76bf04f56..a99d0f870 100644 --- a/src/main/java/net/minecraft/server/CommandAbstract.java +++ b/src/main/java/net/minecraft/server/CommandAbstract.java @@ -231,7 +231,7 @@ public abstract class CommandAbstract implements ICommand { @@ -71,7 +71,7 @@ index 76bf04f5..a99d0f87 100644 } diff --git a/src/main/java/net/minecraft/server/EntityTypes.java b/src/main/java/net/minecraft/server/EntityTypes.java -index 77b81a57..ba461ad4 100644 +index 77b81a575..ba461ad48 100644 --- a/src/main/java/net/minecraft/server/EntityTypes.java +++ b/src/main/java/net/minecraft/server/EntityTypes.java @@ -34,7 +34,7 @@ public class EntityTypes { @@ -93,7 +93,7 @@ index 77b81a57..ba461ad4 100644 EntityTypes.g.set(i, s1); diff --git a/src/main/java/net/minecraft/server/RegistryBlockID.java b/src/main/java/net/minecraft/server/RegistryBlockID.java -index 58f47d0d..8860a012 100644 +index 58f47d0de..8860a0129 100644 --- a/src/main/java/net/minecraft/server/RegistryBlockID.java +++ b/src/main/java/net/minecraft/server/RegistryBlockID.java @@ -8,7 +8,7 @@ import java.util.Iterator; @@ -114,8 +114,114 @@ index 58f47d0d..8860a012 100644 } this.b.set(i, t0); +diff --git a/src/main/java/net/minecraft/server/ServerPing.java b/src/main/java/net/minecraft/server/ServerPing.java +index 2179664a0..981582212 100644 +--- a/src/main/java/net/minecraft/server/ServerPing.java ++++ b/src/main/java/net/minecraft/server/ServerPing.java +@@ -57,7 +57,8 @@ public class ServerPing { + + public Serializer() {} + +- public ServerPing a(JsonElement jsonelement, Type type, JsonDeserializationContext jsondeserializationcontext) throws JsonParseException { ++ // Paper - decompile fix ++ public ServerPing deserialize(JsonElement jsonelement, Type type, JsonDeserializationContext jsondeserializationcontext) throws JsonParseException { + JsonObject jsonobject = ChatDeserializer.m(jsonelement, "status"); + ServerPing serverping = new ServerPing(); + +@@ -80,7 +81,8 @@ public class ServerPing { + return serverping; + } + +- public JsonElement a(ServerPing serverping, Type type, JsonSerializationContext jsonserializationcontext) { ++ // Paper - decompile fix ++ public JsonElement serialize(ServerPing serverping, Type type, JsonSerializationContext jsonserializationcontext) { + JsonObject jsonobject = new JsonObject(); + + if (serverping.a() != null) { +@@ -101,14 +103,6 @@ public class ServerPing { + + return jsonobject; + } +- +- public JsonElement serialize(Object object, Type type, JsonSerializationContext jsonserializationcontext) { +- return this.a((ServerPing) object, type, jsonserializationcontext); +- } +- +- public Object deserialize(JsonElement jsonelement, Type type, JsonDeserializationContext jsondeserializationcontext) throws JsonParseException { +- return this.a(jsonelement, type, jsondeserializationcontext); +- } + } + + public static class ServerData { +@@ -133,27 +127,21 @@ public class ServerPing { + + public Serializer() {} + +- public ServerPing.ServerData a(JsonElement jsonelement, Type type, JsonDeserializationContext jsondeserializationcontext) throws JsonParseException { ++ // Paper - decompile fix ++ public ServerPing.ServerData deserialize(JsonElement jsonelement, Type type, JsonDeserializationContext jsondeserializationcontext) throws JsonParseException { + JsonObject jsonobject = ChatDeserializer.m(jsonelement, "version"); + + return new ServerPing.ServerData(ChatDeserializer.h(jsonobject, "name"), ChatDeserializer.n(jsonobject, "protocol")); + } + +- public JsonElement a(ServerPing.ServerData serverping_serverdata, Type type, JsonSerializationContext jsonserializationcontext) { ++ // Paper - decompile fix ++ public JsonElement serialize(ServerPing.ServerData serverping_serverdata, Type type, JsonSerializationContext jsonserializationcontext) { + JsonObject jsonobject = new JsonObject(); + + jsonobject.addProperty("name", serverping_serverdata.a()); + jsonobject.addProperty("protocol", Integer.valueOf(serverping_serverdata.getProtocolVersion())); + return jsonobject; + } +- +- public JsonElement serialize(Object object, Type type, JsonSerializationContext jsonserializationcontext) { +- return this.a((ServerPing.ServerData) object, type, jsonserializationcontext); +- } +- +- public Object deserialize(JsonElement jsonelement, Type type, JsonDeserializationContext jsondeserializationcontext) throws JsonParseException { +- return this.a(jsonelement, type, jsondeserializationcontext); +- } + } + } + +@@ -188,7 +176,8 @@ public class ServerPing { + + public Serializer() {} + +- public ServerPing.ServerPingPlayerSample a(JsonElement jsonelement, Type type, JsonDeserializationContext jsondeserializationcontext) throws JsonParseException { ++ // Paper - decompile fix ++ public ServerPing.ServerPingPlayerSample deserialize(JsonElement jsonelement, Type type, JsonDeserializationContext jsondeserializationcontext) throws JsonParseException { + JsonObject jsonobject = ChatDeserializer.m(jsonelement, "players"); + ServerPing.ServerPingPlayerSample serverping_serverpingplayersample = new ServerPing.ServerPingPlayerSample(ChatDeserializer.n(jsonobject, "max"), ChatDeserializer.n(jsonobject, "online")); + +@@ -212,7 +201,8 @@ public class ServerPing { + return serverping_serverpingplayersample; + } + +- public JsonElement a(ServerPing.ServerPingPlayerSample serverping_serverpingplayersample, Type type, JsonSerializationContext jsonserializationcontext) { ++ // Paper - decompile fix ++ public JsonElement serialize(ServerPing.ServerPingPlayerSample serverping_serverpingplayersample, Type type, JsonSerializationContext jsonserializationcontext) { + JsonObject jsonobject = new JsonObject(); + + jsonobject.addProperty("max", Integer.valueOf(serverping_serverpingplayersample.a())); +@@ -234,14 +224,6 @@ public class ServerPing { + + return jsonobject; + } +- +- public JsonElement serialize(Object object, Type type, JsonSerializationContext jsonserializationcontext) { +- return this.a((ServerPing.ServerPingPlayerSample) object, type, jsonserializationcontext); +- } +- +- public Object deserialize(JsonElement jsonelement, Type type, JsonDeserializationContext jsondeserializationcontext) throws JsonParseException { +- return this.a(jsonelement, type, jsondeserializationcontext); +- } + } + } + } diff --git a/src/test/java/org/bukkit/craftbukkit/inventory/ItemFactoryTest.java b/src/test/java/org/bukkit/craftbukkit/inventory/ItemFactoryTest.java -index f5bcbdbe..3190cadf 100644 +index f5bcbdbe1..3190cadfc 100644 --- a/src/test/java/org/bukkit/craftbukkit/inventory/ItemFactoryTest.java +++ b/src/test/java/org/bukkit/craftbukkit/inventory/ItemFactoryTest.java @@ -20,7 +20,7 @@ public class ItemFactoryTest extends AbstractTestingBase { @@ -128,5 +234,5 @@ index f5bcbdbe..3190cadf 100644 for (ZipEntry clazzEntry; (clazzEntry = nmsZipStream.getNextEntry()) != null; ) { final String entryName = clazzEntry.getName(); -- -2.14.3 +2.16.2 diff --git a/Spigot-Server-Patches/0221-Allow-Changing-of-Player-Sample-in-ServerListPingEve.patch b/Spigot-Server-Patches/0221-Allow-Changing-of-Player-Sample-in-ServerListPingEve.patch deleted file mode 100644 index d0bec2343d..0000000000 --- a/Spigot-Server-Patches/0221-Allow-Changing-of-Player-Sample-in-ServerListPingEve.patch +++ /dev/null @@ -1,68 +0,0 @@ -From 6fd4e6faec7bd63098f83384d6edec0341a85050 Mon Sep 17 00:00:00 2001 -From: willies952002 -Date: Fri, 5 May 2017 18:59:22 -0400 -Subject: [PATCH] Allow Changing of Player Sample in ServerListPingEvent - - -diff --git a/src/main/java/net/minecraft/server/PacketStatusListener.java b/src/main/java/net/minecraft/server/PacketStatusListener.java -index 313bb0007..45d6984f7 100644 ---- a/src/main/java/net/minecraft/server/PacketStatusListener.java -+++ b/src/main/java/net/minecraft/server/PacketStatusListener.java -@@ -5,6 +5,7 @@ import com.mojang.authlib.GameProfile; - import io.netty.channel.ChannelFutureListener; - import java.net.InetSocketAddress; - import java.util.Iterator; -+import java.util.UUID; - - import org.bukkit.craftbukkit.util.CraftIconCache; - import org.bukkit.entity.Player; -@@ -97,23 +98,44 @@ public class PacketStatusListener implements PacketStatusInListener { - } - } - -+ // Paper start -+ java.util.List sample = new java.util.ArrayList<>(players.length); -+ for (Object player : players) { -+ if (player != null) sample.add(((EntityPlayer) player).getName()); -+ } -+ if (!sample.isEmpty()) { -+ java.util.Collections.shuffle(sample); -+ sample = sample.subList(0, Math.min(sample.size(), org.spigotmc.SpigotConfig.playerSample)); -+ } -+ // Paper end -+ - ServerListPingEvent event = new ServerListPingEvent(); -+ event.setSampleText(sample); // Paper - this.minecraftServer.server.getPluginManager().callEvent(event); -- - java.util.List profiles = new java.util.ArrayList(players.length); -+ // Paper start -+ if (event.getSampleText() != sample) sample = event.getSampleText(); -+ sample.forEach(line -> profiles.add(new GameProfile(UUID.randomUUID(), line))); -+ /* - for (Object player : players) { - if (player != null) { - profiles.add(((EntityPlayer) player).getProfile()); - } - } -+ */ -+ // Paper end - -- ServerPing.ServerPingPlayerSample playerSample = new ServerPing.ServerPingPlayerSample(event.getMaxPlayers(), profiles.size()); -+ ServerPing.ServerPingPlayerSample playerSample = new ServerPing.ServerPingPlayerSample(event.getMaxPlayers(), minecraftServer.getPlayerList().getPlayerCount()); // Paper - // Spigot Start -+ // Paper start - Move up -+ /* - if ( !profiles.isEmpty() ) - { - java.util.Collections.shuffle( profiles ); // This sucks, its inefficient but we have no simple way of doing it differently - profiles = profiles.subList( 0, Math.min( profiles.size(), org.spigotmc.SpigotConfig.playerSample ) ); // Cap the sample to n (or less) displayed players, ie: Vanilla behaviour - } -+ */ -+ // Paper end - // Spigot End - playerSample.a(profiles.toArray(new GameProfile[profiles.size()])); - --- -2.16.1 - diff --git a/Spigot-Server-Patches/0222-Improve-the-Saddle-API-for-Horses.patch b/Spigot-Server-Patches/0221-Improve-the-Saddle-API-for-Horses.patch similarity index 97% rename from Spigot-Server-Patches/0222-Improve-the-Saddle-API-for-Horses.patch rename to Spigot-Server-Patches/0221-Improve-the-Saddle-API-for-Horses.patch index 519b05b6b6..81286f8787 100644 --- a/Spigot-Server-Patches/0222-Improve-the-Saddle-API-for-Horses.patch +++ b/Spigot-Server-Patches/0221-Improve-the-Saddle-API-for-Horses.patch @@ -1,4 +1,4 @@ -From 28c130aba2b5bb09b6f5fb05bd3fd8f433f97e4f Mon Sep 17 00:00:00 2001 +From efd42e114eb71c2be0d86ead30021912f824eeb6 Mon Sep 17 00:00:00 2001 From: Aikar Date: Sat, 10 Dec 2016 16:24:06 -0500 Subject: [PATCH] Improve the Saddle API for Horses @@ -61,5 +61,5 @@ index 000000000..99cfbaf90 + +} -- -2.16.1 +2.16.2 diff --git a/Spigot-Server-Patches/0223-Implement-ensureServerConversions-API.patch b/Spigot-Server-Patches/0222-Implement-ensureServerConversions-API.patch similarity index 93% rename from Spigot-Server-Patches/0223-Implement-ensureServerConversions-API.patch rename to Spigot-Server-Patches/0222-Implement-ensureServerConversions-API.patch index 74ae12d996..d143d966b7 100644 --- a/Spigot-Server-Patches/0223-Implement-ensureServerConversions-API.patch +++ b/Spigot-Server-Patches/0222-Implement-ensureServerConversions-API.patch @@ -1,4 +1,4 @@ -From 1c57bc166a4c5abdc981ac6b43a6763494ce0524 Mon Sep 17 00:00:00 2001 +From fe7ce33993d440e9c76081fc200f7ec485585577 Mon Sep 17 00:00:00 2001 From: Aikar Date: Wed, 4 May 2016 22:43:12 -0400 Subject: [PATCH] Implement ensureServerConversions API @@ -23,5 +23,5 @@ index 49ebad22e..eb6987338 100644 + // Paper end } -- -2.16.1 +2.16.2 diff --git a/Spigot-Server-Patches/0224-Implement-getI18NDisplayName.patch b/Spigot-Server-Patches/0223-Implement-getI18NDisplayName.patch similarity index 94% rename from Spigot-Server-Patches/0224-Implement-getI18NDisplayName.patch rename to Spigot-Server-Patches/0223-Implement-getI18NDisplayName.patch index 89176e91eb..bb03d79c9a 100644 --- a/Spigot-Server-Patches/0224-Implement-getI18NDisplayName.patch +++ b/Spigot-Server-Patches/0223-Implement-getI18NDisplayName.patch @@ -1,4 +1,4 @@ -From 1148ed97aacf2627d0595c0b42b34c28dc80123f Mon Sep 17 00:00:00 2001 +From 353af92aee149a9fa8da7be14063da43f482bbad Mon Sep 17 00:00:00 2001 From: Aikar Date: Wed, 4 May 2016 23:59:38 -0400 Subject: [PATCH] Implement getI18NDisplayName @@ -31,5 +31,5 @@ index eb6987338..c2f26577c 100644 // Paper end } -- -2.16.1 +2.16.2 diff --git a/Spigot-Server-Patches/0225-GH-806-Respect-saving-disabled-before-unloading-all-.patch b/Spigot-Server-Patches/0224-GH-806-Respect-saving-disabled-before-unloading-all-.patch similarity index 93% rename from Spigot-Server-Patches/0225-GH-806-Respect-saving-disabled-before-unloading-all-.patch rename to Spigot-Server-Patches/0224-GH-806-Respect-saving-disabled-before-unloading-all-.patch index 357b606fde..4556b07624 100644 --- a/Spigot-Server-Patches/0225-GH-806-Respect-saving-disabled-before-unloading-all-.patch +++ b/Spigot-Server-Patches/0224-GH-806-Respect-saving-disabled-before-unloading-all-.patch @@ -1,4 +1,4 @@ -From 1e77f009173654cde9c436afbb9481b4c2e558a3 Mon Sep 17 00:00:00 2001 +From 1704f540314c0ebee0050656bc2bfd1bfa5ca4f0 Mon Sep 17 00:00:00 2001 From: Aikar Date: Thu, 27 Jul 2017 00:06:43 -0400 Subject: [PATCH] GH-806: Respect saving disabled before unloading all chunks @@ -22,5 +22,5 @@ index 0b10f1684..4af557321 100644 } } // Paper timing -- -2.16.1 +2.16.2 diff --git a/Spigot-Server-Patches/0226-ProfileWhitelistVerifyEvent.patch b/Spigot-Server-Patches/0225-ProfileWhitelistVerifyEvent.patch similarity index 96% rename from Spigot-Server-Patches/0226-ProfileWhitelistVerifyEvent.patch rename to Spigot-Server-Patches/0225-ProfileWhitelistVerifyEvent.patch index b73abefebb..548a5a1282 100644 --- a/Spigot-Server-Patches/0226-ProfileWhitelistVerifyEvent.patch +++ b/Spigot-Server-Patches/0225-ProfileWhitelistVerifyEvent.patch @@ -1,11 +1,11 @@ -From 520cba43a16a37b21121f33a7dab1d515f249036 Mon Sep 17 00:00:00 2001 +From 25e3e3866a671366fe108346b2276de967bd7974 Mon Sep 17 00:00:00 2001 From: Aikar Date: Mon, 3 Jul 2017 18:11:10 -0500 Subject: [PATCH] ProfileWhitelistVerifyEvent diff --git a/src/main/java/net/minecraft/server/PlayerList.java b/src/main/java/net/minecraft/server/PlayerList.java -index 311c0b86f..06a5b6d02 100644 +index 563b0fb12..d28838627 100644 --- a/src/main/java/net/minecraft/server/PlayerList.java +++ b/src/main/java/net/minecraft/server/PlayerList.java @@ -542,9 +542,9 @@ public abstract class PlayerList { @@ -48,5 +48,5 @@ index 311c0b86f..06a5b6d02 100644 public boolean isOp(GameProfile gameprofile) { return this.operators.d(gameprofile) || this.server.R() && this.server.worlds.get(0).getWorldData().u() && this.server.Q().equalsIgnoreCase(gameprofile.getName()) || this.u; // CraftBukkit -- -2.16.1 +2.16.2 diff --git a/Spigot-Server-Patches/0227-Fix-this-stupid-bullshit.patch b/Spigot-Server-Patches/0226-Fix-this-stupid-bullshit.patch similarity index 95% rename from Spigot-Server-Patches/0227-Fix-this-stupid-bullshit.patch rename to Spigot-Server-Patches/0226-Fix-this-stupid-bullshit.patch index d8ab028b78..deb193bf36 100644 --- a/Spigot-Server-Patches/0227-Fix-this-stupid-bullshit.patch +++ b/Spigot-Server-Patches/0226-Fix-this-stupid-bullshit.patch @@ -1,4 +1,4 @@ -From 4f378a2e90a687b23096f2e62d281e77176b4298 Mon Sep 17 00:00:00 2001 +From dd3e82914551cdfbe5cc5c1ade02d05278d7e31b Mon Sep 17 00:00:00 2001 From: DemonWav Date: Sun, 6 Aug 2017 17:17:53 -0500 Subject: [PATCH] Fix this stupid bullshit @@ -29,5 +29,5 @@ index d3d848f8c..21628e196 100644 } -- -2.16.1 +2.16.2 diff --git a/Spigot-Server-Patches/0228-Ocelot-despawns-should-honor-nametags-and-leash.patch b/Spigot-Server-Patches/0227-Ocelot-despawns-should-honor-nametags-and-leash.patch similarity index 92% rename from Spigot-Server-Patches/0228-Ocelot-despawns-should-honor-nametags-and-leash.patch rename to Spigot-Server-Patches/0227-Ocelot-despawns-should-honor-nametags-and-leash.patch index 0a7f99df9c..24bc5bd9a5 100644 --- a/Spigot-Server-Patches/0228-Ocelot-despawns-should-honor-nametags-and-leash.patch +++ b/Spigot-Server-Patches/0227-Ocelot-despawns-should-honor-nametags-and-leash.patch @@ -1,4 +1,4 @@ -From 86801091a4d5d93d6598509fe1f11f9cb198d62e Mon Sep 17 00:00:00 2001 +From 403eb99cf2c74d9fee9fad03715624fa76997ea6 Mon Sep 17 00:00:00 2001 From: BillyGalbreath Date: Mon, 31 Jul 2017 01:54:40 -0500 Subject: [PATCH] Ocelot despawns should honor nametags and leash @@ -18,5 +18,5 @@ index 5a76821ea..858bbef5b 100644 protected void initAttributes() { -- -2.16.1 +2.16.2 diff --git a/Spigot-Server-Patches/0229-Reset-spawner-timer-when-spawner-event-is-cancelled.patch b/Spigot-Server-Patches/0228-Reset-spawner-timer-when-spawner-event-is-cancelled.patch similarity index 94% rename from Spigot-Server-Patches/0229-Reset-spawner-timer-when-spawner-event-is-cancelled.patch rename to Spigot-Server-Patches/0228-Reset-spawner-timer-when-spawner-event-is-cancelled.patch index beb88b0f7b..d390e870e0 100644 --- a/Spigot-Server-Patches/0229-Reset-spawner-timer-when-spawner-event-is-cancelled.patch +++ b/Spigot-Server-Patches/0228-Reset-spawner-timer-when-spawner-event-is-cancelled.patch @@ -1,4 +1,4 @@ -From f78d0fd199f662df9bf4295a04a473f0ac152b3e Mon Sep 17 00:00:00 2001 +From 2d6f54549cc44458e18bb0c430ffa3528c0cee54 Mon Sep 17 00:00:00 2001 From: BillyGalbreath Date: Mon, 31 Jul 2017 01:45:19 -0500 Subject: [PATCH] Reset spawner timer when spawner event is cancelled @@ -28,5 +28,5 @@ index 1ed0def1e..87fe4775f 100644 } -- -2.16.1 +2.16.2 diff --git a/Spigot-Server-Patches/0230-MC-94186-Fix-dragon-egg-falling-in-lazy-chunks.patch b/Spigot-Server-Patches/0229-MC-94186-Fix-dragon-egg-falling-in-lazy-chunks.patch similarity index 93% rename from Spigot-Server-Patches/0230-MC-94186-Fix-dragon-egg-falling-in-lazy-chunks.patch rename to Spigot-Server-Patches/0229-MC-94186-Fix-dragon-egg-falling-in-lazy-chunks.patch index cfad2db268..12abf28074 100644 --- a/Spigot-Server-Patches/0230-MC-94186-Fix-dragon-egg-falling-in-lazy-chunks.patch +++ b/Spigot-Server-Patches/0229-MC-94186-Fix-dragon-egg-falling-in-lazy-chunks.patch @@ -1,4 +1,4 @@ -From 5868a14449bc00fb1d1c5709425f34d6e06dc9ce Mon Sep 17 00:00:00 2001 +From 6f6d06130c0008bff90b2008873ca6809fb803fc Mon Sep 17 00:00:00 2001 From: Brokkonaut Date: Fri, 11 Aug 2017 03:29:26 +0200 Subject: [PATCH] MC-94186 Fix dragon egg falling in lazy chunks @@ -21,5 +21,5 @@ index ce186f825..291342c90 100644 } -- -2.16.1 +2.16.2 diff --git a/Spigot-Server-Patches/0231-Fix-MC-117075-TE-Unload-Lag-Spike.patch b/Spigot-Server-Patches/0230-Fix-MC-117075-TE-Unload-Lag-Spike.patch similarity index 94% rename from Spigot-Server-Patches/0231-Fix-MC-117075-TE-Unload-Lag-Spike.patch rename to Spigot-Server-Patches/0230-Fix-MC-117075-TE-Unload-Lag-Spike.patch index 46a7535542..eae243576a 100644 --- a/Spigot-Server-Patches/0231-Fix-MC-117075-TE-Unload-Lag-Spike.patch +++ b/Spigot-Server-Patches/0230-Fix-MC-117075-TE-Unload-Lag-Spike.patch @@ -1,4 +1,4 @@ -From 0c11302422d14d2cc64b9ed3a16ada9be0ba95a5 Mon Sep 17 00:00:00 2001 +From 44ca262d4f689d942d058797c586ffd4c99d4028 Mon Sep 17 00:00:00 2001 From: mezz Date: Wed, 9 Aug 2017 17:51:22 -0500 Subject: [PATCH] Fix MC-117075: TE Unload Lag Spike @@ -22,5 +22,5 @@ index b0139fff6..00513d02c 100644 this.tileEntityListUnload.clear(); } -- -2.16.1 +2.16.2 diff --git a/Spigot-Server-Patches/0232-Allow-specifying-a-custom-authentication-servers-dow.patch b/Spigot-Server-Patches/0231-Allow-specifying-a-custom-authentication-servers-dow.patch similarity index 97% rename from Spigot-Server-Patches/0232-Allow-specifying-a-custom-authentication-servers-dow.patch rename to Spigot-Server-Patches/0231-Allow-specifying-a-custom-authentication-servers-dow.patch index 3005bd303b..8fb8ee1164 100644 --- a/Spigot-Server-Patches/0232-Allow-specifying-a-custom-authentication-servers-dow.patch +++ b/Spigot-Server-Patches/0231-Allow-specifying-a-custom-authentication-servers-dow.patch @@ -1,4 +1,4 @@ -From e0ee9656360c7d8bd856a2eb60321b04d83241e7 Mon Sep 17 00:00:00 2001 +From b4539bef0e0f7e9d88337f7e738f41906d939ab1 Mon Sep 17 00:00:00 2001 From: kashike Date: Thu, 17 Aug 2017 16:08:20 -0700 Subject: [PATCH] Allow specifying a custom "authentication servers down" kick diff --git a/Spigot-Server-Patches/0233-LivingEntity-setKiller.patch b/Spigot-Server-Patches/0232-LivingEntity-setKiller.patch similarity index 94% rename from Spigot-Server-Patches/0233-LivingEntity-setKiller.patch rename to Spigot-Server-Patches/0232-LivingEntity-setKiller.patch index fee1798c7b..32d2b5b786 100644 --- a/Spigot-Server-Patches/0233-LivingEntity-setKiller.patch +++ b/Spigot-Server-Patches/0232-LivingEntity-setKiller.patch @@ -1,4 +1,4 @@ -From d05d7cc2a275ac2b40c6906f80350ceaf0e306f4 Mon Sep 17 00:00:00 2001 +From a3a43308ff532e716ed9c416bc8c437b271e90cf Mon Sep 17 00:00:00 2001 From: BillyGalbreath Date: Mon, 31 Jul 2017 01:49:48 -0500 Subject: [PATCH] LivingEntity#setKiller @@ -26,5 +26,5 @@ index d4d51688c..a7b076377 100644 return addPotionEffect(effect, false); } -- -2.16.1 +2.16.2 diff --git a/Spigot-Server-Patches/0234-Avoid-NPE-during-CraftBlockEntityState-load.patch b/Spigot-Server-Patches/0233-Avoid-NPE-during-CraftBlockEntityState-load.patch similarity index 95% rename from Spigot-Server-Patches/0234-Avoid-NPE-during-CraftBlockEntityState-load.patch rename to Spigot-Server-Patches/0233-Avoid-NPE-during-CraftBlockEntityState-load.patch index 9aba62ae74..484e2030b6 100644 --- a/Spigot-Server-Patches/0234-Avoid-NPE-during-CraftBlockEntityState-load.patch +++ b/Spigot-Server-Patches/0233-Avoid-NPE-during-CraftBlockEntityState-load.patch @@ -1,4 +1,4 @@ -From 8d120f57374eefc72809cd7bdfaa6d1909e7723b Mon Sep 17 00:00:00 2001 +From 52613fd6e28b47b552e1a2118326de8c45160d46 Mon Sep 17 00:00:00 2001 From: kashike Date: Mon, 18 Sep 2017 13:38:40 -0700 Subject: [PATCH] Avoid NPE during CraftBlockEntityState load @@ -38,5 +38,5 @@ index 266f87d7f..22dcaea72 100644 } -- -2.16.1 +2.16.2 diff --git a/Spigot-Server-Patches/0235-Anti-Xray.patch b/Spigot-Server-Patches/0234-Anti-Xray.patch similarity index 99% rename from Spigot-Server-Patches/0235-Anti-Xray.patch rename to Spigot-Server-Patches/0234-Anti-Xray.patch index 95d08f4acd..4f9eb5ed9e 100644 --- a/Spigot-Server-Patches/0235-Anti-Xray.patch +++ b/Spigot-Server-Patches/0234-Anti-Xray.patch @@ -1,4 +1,4 @@ -From 553c8b95deacada0571d9e4c8a00c696bbdfc782 Mon Sep 17 00:00:00 2001 +From 3edbb5d38723f7afa16a794c46cc6d84bb83dcf4 Mon Sep 17 00:00:00 2001 From: stonar96 Date: Thu, 21 Sep 2017 00:38:47 +0200 Subject: [PATCH] Anti-Xray @@ -1579,5 +1579,5 @@ index 9942f0c75..2da6edc63 100644 } } -- -2.16.1 +2.16.2 diff --git a/Spigot-Server-Patches/0236-Use-Log4j-IOStreams-to-redirect-System.out-err-to-lo.patch b/Spigot-Server-Patches/0235-Use-Log4j-IOStreams-to-redirect-System.out-err-to-lo.patch similarity index 96% rename from Spigot-Server-Patches/0236-Use-Log4j-IOStreams-to-redirect-System.out-err-to-lo.patch rename to Spigot-Server-Patches/0235-Use-Log4j-IOStreams-to-redirect-System.out-err-to-lo.patch index c289cdae40..77b5fbadde 100644 --- a/Spigot-Server-Patches/0236-Use-Log4j-IOStreams-to-redirect-System.out-err-to-lo.patch +++ b/Spigot-Server-Patches/0235-Use-Log4j-IOStreams-to-redirect-System.out-err-to-lo.patch @@ -1,4 +1,4 @@ -From 66c9cdfd056ed6789980d4cca7245efa0a8ad9ce Mon Sep 17 00:00:00 2001 +From d3721c2c211d6a732466fe31e0aa31fcd9f6eb73 Mon Sep 17 00:00:00 2001 From: Minecrell Date: Mon, 18 Sep 2017 12:00:03 +0200 Subject: [PATCH] Use Log4j IOStreams to redirect System.out/err to logger @@ -47,5 +47,5 @@ index b3f1aa999..854455711 100644 thread.setDaemon(true); -- -2.16.1 +2.16.2 diff --git a/Spigot-Server-Patches/0237-Handle-plugin-prefixes-using-Log4J-configuration.patch b/Spigot-Server-Patches/0236-Handle-plugin-prefixes-using-Log4J-configuration.patch similarity index 98% rename from Spigot-Server-Patches/0237-Handle-plugin-prefixes-using-Log4J-configuration.patch rename to Spigot-Server-Patches/0236-Handle-plugin-prefixes-using-Log4J-configuration.patch index b5e1377ad0..1579b9ebf0 100644 --- a/Spigot-Server-Patches/0237-Handle-plugin-prefixes-using-Log4J-configuration.patch +++ b/Spigot-Server-Patches/0236-Handle-plugin-prefixes-using-Log4J-configuration.patch @@ -1,4 +1,4 @@ -From e5dc209cabc90dbdc9824472d8888176fb1f9234 Mon Sep 17 00:00:00 2001 +From 3b9137e60577cf746bd17a92387f490e5309bc49 Mon Sep 17 00:00:00 2001 From: Minecrell Date: Thu, 21 Sep 2017 16:14:55 +0200 Subject: [PATCH] Handle plugin prefixes using Log4J configuration @@ -70,5 +70,5 @@ index 08b6bb7f9..9f8334376 100644 -- -2.16.1 +2.16.2 diff --git a/Spigot-Server-Patches/0238-Include-Log4J2-SLF4J-implementation.patch b/Spigot-Server-Patches/0237-Include-Log4J2-SLF4J-implementation.patch similarity index 91% rename from Spigot-Server-Patches/0238-Include-Log4J2-SLF4J-implementation.patch rename to Spigot-Server-Patches/0237-Include-Log4J2-SLF4J-implementation.patch index 11b0045af6..da3b268f41 100644 --- a/Spigot-Server-Patches/0238-Include-Log4J2-SLF4J-implementation.patch +++ b/Spigot-Server-Patches/0237-Include-Log4J2-SLF4J-implementation.patch @@ -1,4 +1,4 @@ -From 378ceeb7f03f20c26db6e8a6b0249ad0b6a7e713 Mon Sep 17 00:00:00 2001 +From 0de29dbddb249cb3b210935e18e4ed61e4caf1f0 Mon Sep 17 00:00:00 2001 From: Minecrell Date: Thu, 21 Sep 2017 16:33:35 +0200 Subject: [PATCH] Include Log4J2 SLF4J implementation diff --git a/Spigot-Server-Patches/0239-Disable-logger-prefix-for-various-plugins-bypassing-.patch b/Spigot-Server-Patches/0238-Disable-logger-prefix-for-various-plugins-bypassing-.patch similarity index 96% rename from Spigot-Server-Patches/0239-Disable-logger-prefix-for-various-plugins-bypassing-.patch rename to Spigot-Server-Patches/0238-Disable-logger-prefix-for-various-plugins-bypassing-.patch index c6ec1bb32f..936531e59b 100644 --- a/Spigot-Server-Patches/0239-Disable-logger-prefix-for-various-plugins-bypassing-.patch +++ b/Spigot-Server-Patches/0238-Disable-logger-prefix-for-various-plugins-bypassing-.patch @@ -1,4 +1,4 @@ -From 0685c29429ea9669da418dc14d7d0ff9817f29ad Mon Sep 17 00:00:00 2001 +From 145ff25d57dec3f3a86e7afc1344c7532607bddc Mon Sep 17 00:00:00 2001 From: Minecrell Date: Sat, 23 Sep 2017 21:07:20 +0200 Subject: [PATCH] Disable logger prefix for various plugins bypassing the @@ -35,5 +35,5 @@ index 9f8334376..6711e6dff 100644 -- -2.16.1 +2.16.2 diff --git a/Spigot-Server-Patches/0240-Add-PlayerJumpEvent.patch b/Spigot-Server-Patches/0239-Add-PlayerJumpEvent.patch similarity index 97% rename from Spigot-Server-Patches/0240-Add-PlayerJumpEvent.patch rename to Spigot-Server-Patches/0239-Add-PlayerJumpEvent.patch index 172ff8daa3..02c5b9d8c6 100644 --- a/Spigot-Server-Patches/0240-Add-PlayerJumpEvent.patch +++ b/Spigot-Server-Patches/0239-Add-PlayerJumpEvent.patch @@ -1,4 +1,4 @@ -From ec9b9999f5abe31e1c8661e419d1e9fd6b747311 Mon Sep 17 00:00:00 2001 +From c272a375273ed825e19202ba075bb8dd7dfd25c2 Mon Sep 17 00:00:00 2001 From: Zach Brown Date: Thu, 28 Sep 2017 17:21:44 -0400 Subject: [PATCH] Add PlayerJumpEvent @@ -17,7 +17,7 @@ index deb0f4a9c..579996d1e 100644 super.cu(); this.b(StatisticList.w); diff --git a/src/main/java/net/minecraft/server/PlayerConnection.java b/src/main/java/net/minecraft/server/PlayerConnection.java -index 9c8828ebd..cc58a4a93 100644 +index 3104fc0ea..aa57ff8ed 100644 --- a/src/main/java/net/minecraft/server/PlayerConnection.java +++ b/src/main/java/net/minecraft/server/PlayerConnection.java @@ -57,6 +57,7 @@ import org.bukkit.inventory.EquipmentSlot; @@ -65,5 +65,5 @@ index 9c8828ebd..cc58a4a93 100644 this.player.move(EnumMoveType.PLAYER, d7, d8, d9); -- -2.16.1 +2.16.2 diff --git a/Spigot-Server-Patches/0241-handle-PacketPlayInKeepAlive-async.patch b/Spigot-Server-Patches/0240-handle-PacketPlayInKeepAlive-async.patch similarity index 95% rename from Spigot-Server-Patches/0241-handle-PacketPlayInKeepAlive-async.patch rename to Spigot-Server-Patches/0240-handle-PacketPlayInKeepAlive-async.patch index c5236f6e9b..6b69d12a01 100644 --- a/Spigot-Server-Patches/0241-handle-PacketPlayInKeepAlive-async.patch +++ b/Spigot-Server-Patches/0240-handle-PacketPlayInKeepAlive-async.patch @@ -1,4 +1,4 @@ -From 8739276298bf59af5c9a36049733aec513ce659e Mon Sep 17 00:00:00 2001 +From 336d31b126a2d9cdc3cb53fbe1ef71af40c9da81 Mon Sep 17 00:00:00 2001 From: Shane Freeder Date: Thu, 5 Oct 2017 01:54:07 +0100 Subject: [PATCH] handle PacketPlayInKeepAlive async @@ -15,7 +15,7 @@ also adding some additional logging in order to help work out what is causing random disconnections for clients. diff --git a/src/main/java/net/minecraft/server/PlayerConnection.java b/src/main/java/net/minecraft/server/PlayerConnection.java -index cc58a4a93..a92bf8967 100644 +index aa57ff8ed..869a2b402 100644 --- a/src/main/java/net/minecraft/server/PlayerConnection.java +++ b/src/main/java/net/minecraft/server/PlayerConnection.java @@ -2230,14 +2230,20 @@ public class PlayerConnection implements PacketListenerPlayIn, ITickable { @@ -42,5 +42,5 @@ index cc58a4a93..a92bf8967 100644 } -- -2.16.1 +2.16.2 diff --git a/Spigot-Server-Patches/0242-Expose-client-protocol-version-and-virtual-host.patch b/Spigot-Server-Patches/0241-Expose-client-protocol-version-and-virtual-host.patch similarity index 98% rename from Spigot-Server-Patches/0242-Expose-client-protocol-version-and-virtual-host.patch rename to Spigot-Server-Patches/0241-Expose-client-protocol-version-and-virtual-host.patch index 4fcd90ef3d..ec37085f43 100644 --- a/Spigot-Server-Patches/0242-Expose-client-protocol-version-and-virtual-host.patch +++ b/Spigot-Server-Patches/0241-Expose-client-protocol-version-and-virtual-host.patch @@ -1,4 +1,4 @@ -From f8c2ab7e5d8fe885f51cf9f6311fcff36a125884 Mon Sep 17 00:00:00 2001 +From 3d483cab8e7200988d72276aef4f6f56ec86a615 Mon Sep 17 00:00:00 2001 From: Minecrell Date: Tue, 10 Oct 2017 18:45:20 +0200 Subject: [PATCH] Expose client protocol version and virtual host @@ -136,5 +136,5 @@ index 1269a02aa..428b208ae 100644 public double getEyeHeight(boolean ignorePose) { if (ignorePose) { -- -2.16.1 +2.16.2 diff --git a/Spigot-Server-Patches/0243-revert-serverside-behavior-of-keepalives.patch b/Spigot-Server-Patches/0242-revert-serverside-behavior-of-keepalives.patch similarity index 97% rename from Spigot-Server-Patches/0243-revert-serverside-behavior-of-keepalives.patch rename to Spigot-Server-Patches/0242-revert-serverside-behavior-of-keepalives.patch index 4a1867822f..d0dcb36787 100644 --- a/Spigot-Server-Patches/0243-revert-serverside-behavior-of-keepalives.patch +++ b/Spigot-Server-Patches/0242-revert-serverside-behavior-of-keepalives.patch @@ -1,4 +1,4 @@ -From 17fb64da01acd903a06fc671490a5f378e9b2d99 Mon Sep 17 00:00:00 2001 +From c0932b4bd2689009449872c10b1ef7e8689b5f3f Mon Sep 17 00:00:00 2001 From: Shane Freeder Date: Sun, 15 Oct 2017 00:29:07 +0100 Subject: [PATCH] revert serverside behavior of keepalives @@ -17,7 +17,7 @@ from networking or during connections flood of chunk packets on slower clients, at the cost of dead connections being kept open for longer. diff --git a/src/main/java/net/minecraft/server/PlayerConnection.java b/src/main/java/net/minecraft/server/PlayerConnection.java -index a92bf8967..d0ab87d0f 100644 +index 869a2b402..167e386c8 100644 --- a/src/main/java/net/minecraft/server/PlayerConnection.java +++ b/src/main/java/net/minecraft/server/PlayerConnection.java @@ -100,6 +100,7 @@ public class PlayerConnection implements PacketListenerPlayIn, ITickable { @@ -65,5 +65,5 @@ index a92bf8967..d0ab87d0f 100644 this.minecraftServer.methodProfiler.b(); // CraftBukkit start -- -2.16.1 +2.16.2 diff --git a/Spigot-Server-Patches/0244-Replace-HashSet-with-fastutil-s-ObjectOpenHashSet-in.patch b/Spigot-Server-Patches/0243-Replace-HashSet-with-fastutil-s-ObjectOpenHashSet-in.patch similarity index 94% rename from Spigot-Server-Patches/0244-Replace-HashSet-with-fastutil-s-ObjectOpenHashSet-in.patch rename to Spigot-Server-Patches/0243-Replace-HashSet-with-fastutil-s-ObjectOpenHashSet-in.patch index bf9c4aab44..f8bd471821 100644 --- a/Spigot-Server-Patches/0244-Replace-HashSet-with-fastutil-s-ObjectOpenHashSet-in.patch +++ b/Spigot-Server-Patches/0243-Replace-HashSet-with-fastutil-s-ObjectOpenHashSet-in.patch @@ -1,4 +1,4 @@ -From bddc88554209cb2f0a14e9539f07da19fa11ad18 Mon Sep 17 00:00:00 2001 +From de0e79d31274e5264ec0982b542429b843462c06 Mon Sep 17 00:00:00 2001 From: Brokkonaut Date: Fri, 20 Oct 2017 04:33:45 +0200 Subject: [PATCH] Replace HashSet with fastutil's ObjectOpenHashSet in @@ -26,5 +26,5 @@ index 80a5c29f3..cd864c404 100644 public HashTreeSet() { -- -2.16.1 +2.16.2 diff --git a/Spigot-Server-Patches/0245-Send-attack-SoundEffects-only-to-players-who-can-see.patch b/Spigot-Server-Patches/0244-Send-attack-SoundEffects-only-to-players-who-can-see.patch similarity index 98% rename from Spigot-Server-Patches/0245-Send-attack-SoundEffects-only-to-players-who-can-see.patch rename to Spigot-Server-Patches/0244-Send-attack-SoundEffects-only-to-players-who-can-see.patch index 56558d923e..2adb1415a0 100644 --- a/Spigot-Server-Patches/0245-Send-attack-SoundEffects-only-to-players-who-can-see.patch +++ b/Spigot-Server-Patches/0244-Send-attack-SoundEffects-only-to-players-who-can-see.patch @@ -1,4 +1,4 @@ -From d1969c3af9e747f85d2feb4a9b1ba58175c4980e Mon Sep 17 00:00:00 2001 +From dc5e0bc19d3620712cf9b32b740cac0165e20960 Mon Sep 17 00:00:00 2001 From: Brokkonaut Date: Tue, 31 Oct 2017 03:26:18 +0100 Subject: [PATCH] Send attack SoundEffects only to players who can see the @@ -89,5 +89,5 @@ index 592e5b3ba..d45cbf2f6 100644 for (int i = 0; i < this.u.size(); ++i) { ((IWorldAccess) this.u.get(i)).a(entityhuman, soundeffect, soundcategory, d0, d1, d2, f, f1); -- -2.16.1 +2.16.2 diff --git a/Spigot-Server-Patches/0246-Option-for-maximum-exp-value-when-merging-orbs.patch b/Spigot-Server-Patches/0245-Option-for-maximum-exp-value-when-merging-orbs.patch similarity index 97% rename from Spigot-Server-Patches/0246-Option-for-maximum-exp-value-when-merging-orbs.patch rename to Spigot-Server-Patches/0245-Option-for-maximum-exp-value-when-merging-orbs.patch index 5b19e6d1d3..276b8ce79e 100644 --- a/Spigot-Server-Patches/0246-Option-for-maximum-exp-value-when-merging-orbs.patch +++ b/Spigot-Server-Patches/0245-Option-for-maximum-exp-value-when-merging-orbs.patch @@ -1,4 +1,4 @@ -From f92d7abd16d122577360574d18179ae2442a556c Mon Sep 17 00:00:00 2001 +From a828e7d4f74282b4672b1d694de81afe9b12904a Mon Sep 17 00:00:00 2001 From: BillyGalbreath Date: Fri, 10 Nov 2017 23:03:12 -0500 Subject: [PATCH] Option for maximum exp value when merging orbs @@ -56,5 +56,5 @@ index d45cbf2f6..0193364d2 100644 } // Spigot end -- -2.16.1 +2.16.2 diff --git a/Spigot-Server-Patches/0247-Add-PlayerArmorChangeEvent.patch b/Spigot-Server-Patches/0246-Add-PlayerArmorChangeEvent.patch similarity index 97% rename from Spigot-Server-Patches/0247-Add-PlayerArmorChangeEvent.patch rename to Spigot-Server-Patches/0246-Add-PlayerArmorChangeEvent.patch index cf681fecb1..b14edf49cc 100644 --- a/Spigot-Server-Patches/0247-Add-PlayerArmorChangeEvent.patch +++ b/Spigot-Server-Patches/0246-Add-PlayerArmorChangeEvent.patch @@ -1,4 +1,4 @@ -From 2ae8791e2ee4b302d1878c24e8cc369d1d0e6c74 Mon Sep 17 00:00:00 2001 +From d550c213879bcea6cf496830f8218b276fb64dba Mon Sep 17 00:00:00 2001 From: pkt77 Date: Fri, 10 Nov 2017 23:46:34 -0500 Subject: [PATCH] Add PlayerArmorChangeEvent @@ -42,5 +42,5 @@ index cdf3a3ba4..be5d0bf89 100644 return this.g; } -- -2.16.1 +2.16.2 diff --git a/Spigot-Server-Patches/0248-Improve-Structures-Checking.patch b/Spigot-Server-Patches/0247-Improve-Structures-Checking.patch similarity index 99% rename from Spigot-Server-Patches/0248-Improve-Structures-Checking.patch rename to Spigot-Server-Patches/0247-Improve-Structures-Checking.patch index 3b67cacdff..090200de6f 100644 --- a/Spigot-Server-Patches/0248-Improve-Structures-Checking.patch +++ b/Spigot-Server-Patches/0247-Improve-Structures-Checking.patch @@ -1,4 +1,4 @@ -From b9120a4c1f05660508e9dd62ea9eb01f01be3c79 Mon Sep 17 00:00:00 2001 +From e7c2c2926920c0809361f62f0e454d6cc67569d0 Mon Sep 17 00:00:00 2001 From: Aikar Date: Sat, 11 Nov 2017 17:57:39 -0500 Subject: [PATCH] Improve Structures Checking @@ -195,5 +195,5 @@ index b6abc74e0..f9bb953d0 100644 } -- -2.16.1 +2.16.2 diff --git a/Spigot-Server-Patches/0249-Prevent-logins-from-being-processed-when-the-player-.patch b/Spigot-Server-Patches/0248-Prevent-logins-from-being-processed-when-the-player-.patch similarity index 93% rename from Spigot-Server-Patches/0249-Prevent-logins-from-being-processed-when-the-player-.patch rename to Spigot-Server-Patches/0248-Prevent-logins-from-being-processed-when-the-player-.patch index bffbdee3af..d6e64ca160 100644 --- a/Spigot-Server-Patches/0249-Prevent-logins-from-being-processed-when-the-player-.patch +++ b/Spigot-Server-Patches/0248-Prevent-logins-from-being-processed-when-the-player-.patch @@ -1,4 +1,4 @@ -From ad2a0a4d78e9fda00fe73c30f7a662ec98770c80 Mon Sep 17 00:00:00 2001 +From 05147fb3c8fbcf1a5044784c7d9ac9321ab8a143 Mon Sep 17 00:00:00 2001 From: killme Date: Sun, 12 Nov 2017 19:40:01 +0100 Subject: [PATCH] Prevent logins from being processed when the player has @@ -23,5 +23,5 @@ index 75df92836..eaac25dc3 100644 EntityPlayer entityplayer = this.server.getPlayerList().a(this.i.getId()); -- -2.16.1 +2.16.2 diff --git a/Spigot-Server-Patches/0250-use-CB-BlockState-implementations-for-captured-block.patch b/Spigot-Server-Patches/0249-use-CB-BlockState-implementations-for-captured-block.patch similarity index 96% rename from Spigot-Server-Patches/0250-use-CB-BlockState-implementations-for-captured-block.patch rename to Spigot-Server-Patches/0249-use-CB-BlockState-implementations-for-captured-block.patch index 6857801cab..bff8b34062 100644 --- a/Spigot-Server-Patches/0250-use-CB-BlockState-implementations-for-captured-block.patch +++ b/Spigot-Server-Patches/0249-use-CB-BlockState-implementations-for-captured-block.patch @@ -1,4 +1,4 @@ -From 9ad5c79dafdeeaaa2a297f2f85e90d31c5fd4fd5 Mon Sep 17 00:00:00 2001 +From 34a37e9c46c3c50ffbd9454c207761a17db79dc0 Mon Sep 17 00:00:00 2001 From: Shane Freeder Date: Thu, 16 Nov 2017 12:12:41 +0000 Subject: [PATCH] use CB BlockState implementations for captured blocks @@ -32,5 +32,5 @@ index 0193364d2..e4502551b 100644 } // CraftBukkit end -- -2.16.1 +2.16.2 diff --git a/Spigot-Server-Patches/0251-API-to-get-a-BlockState-without-a-snapshot.patch b/Spigot-Server-Patches/0250-API-to-get-a-BlockState-without-a-snapshot.patch similarity index 98% rename from Spigot-Server-Patches/0251-API-to-get-a-BlockState-without-a-snapshot.patch rename to Spigot-Server-Patches/0250-API-to-get-a-BlockState-without-a-snapshot.patch index dfb1e2832a..003f7b4951 100644 --- a/Spigot-Server-Patches/0251-API-to-get-a-BlockState-without-a-snapshot.patch +++ b/Spigot-Server-Patches/0250-API-to-get-a-BlockState-without-a-snapshot.patch @@ -1,4 +1,4 @@ -From 2cb703b80db3bf8c508bb4d02fc29575d1bfc3e2 Mon Sep 17 00:00:00 2001 +From f95656f371344b14c743f297f282253e5ec114fa Mon Sep 17 00:00:00 2001 From: Aikar Date: Mon, 6 Nov 2017 21:08:22 -0500 Subject: [PATCH] API to get a BlockState without a snapshot @@ -101,5 +101,5 @@ index 22dcaea72..3b5a90c39 100644 // copy tile entity data: this.snapshot = this.createSnapshot(tileEntity); -- -2.16.1 +2.16.2 diff --git a/Spigot-Server-Patches/0252-AsyncTabCompleteEvent.patch b/Spigot-Server-Patches/0251-AsyncTabCompleteEvent.patch similarity index 98% rename from Spigot-Server-Patches/0252-AsyncTabCompleteEvent.patch rename to Spigot-Server-Patches/0251-AsyncTabCompleteEvent.patch index ddd5eb6b82..5585863a92 100644 --- a/Spigot-Server-Patches/0252-AsyncTabCompleteEvent.patch +++ b/Spigot-Server-Patches/0251-AsyncTabCompleteEvent.patch @@ -1,4 +1,4 @@ -From 68df71e092d912014c7cde5c7504e016474fdb65 Mon Sep 17 00:00:00 2001 +From 64855ea7893dfa03167b3a6019050b312109cc7b Mon Sep 17 00:00:00 2001 From: Aikar Date: Sun, 26 Nov 2017 13:19:58 -0500 Subject: [PATCH] AsyncTabCompleteEvent @@ -14,7 +14,7 @@ completion, such as offline players. Also adds isCommand and getLocation to the sync TabCompleteEvent diff --git a/src/main/java/net/minecraft/server/PlayerConnection.java b/src/main/java/net/minecraft/server/PlayerConnection.java -index d0ab87d0f..ca054afcf 100644 +index 167e386c8..3fbf51e52 100644 --- a/src/main/java/net/minecraft/server/PlayerConnection.java +++ b/src/main/java/net/minecraft/server/PlayerConnection.java @@ -2276,24 +2276,51 @@ public class PlayerConnection implements PacketListenerPlayIn, ITickable { @@ -80,7 +80,7 @@ index d0ab87d0f..ca054afcf 100644 public void a(PacketPlayInSettings packetplayinsettings) { diff --git a/src/main/java/org/bukkit/craftbukkit/CraftServer.java b/src/main/java/org/bukkit/craftbukkit/CraftServer.java -index f0ae65f08..f01408d55 100644 +index aca5ea7c0..090a4d2f2 100644 --- a/src/main/java/org/bukkit/craftbukkit/CraftServer.java +++ b/src/main/java/org/bukkit/craftbukkit/CraftServer.java @@ -1643,8 +1643,8 @@ public final class CraftServer implements Server { @@ -139,5 +139,5 @@ index 1e3aae3b8..95d13c146 100644 Waitable> waitable = new Waitable>() { @Override -- -2.16.1 +2.16.2 diff --git a/Spigot-Server-Patches/0253-Avoid-NPE-in-PathfinderGoalTempt.patch b/Spigot-Server-Patches/0252-Avoid-NPE-in-PathfinderGoalTempt.patch similarity index 92% rename from Spigot-Server-Patches/0253-Avoid-NPE-in-PathfinderGoalTempt.patch rename to Spigot-Server-Patches/0252-Avoid-NPE-in-PathfinderGoalTempt.patch index ca008484e6..5b7e3da39b 100644 --- a/Spigot-Server-Patches/0253-Avoid-NPE-in-PathfinderGoalTempt.patch +++ b/Spigot-Server-Patches/0252-Avoid-NPE-in-PathfinderGoalTempt.patch @@ -1,4 +1,4 @@ -From 080f3de513fd1534aa3a9e5eb63741a854d9d2db Mon Sep 17 00:00:00 2001 +From 501d5c54604d790979c421b8e848d7768a6756e9 Mon Sep 17 00:00:00 2001 From: Aikar Date: Wed, 29 Nov 2017 22:18:54 -0500 Subject: [PATCH] Avoid NPE in PathfinderGoalTempt @@ -18,5 +18,5 @@ index 188825d19..8004f3a3f 100644 } } -- -2.16.1 +2.16.2 diff --git a/Spigot-Server-Patches/0254-Don-t-blindly-send-unlit-chunks-when-lighting-update.patch b/Spigot-Server-Patches/0253-Don-t-blindly-send-unlit-chunks-when-lighting-update.patch similarity index 96% rename from Spigot-Server-Patches/0254-Don-t-blindly-send-unlit-chunks-when-lighting-update.patch rename to Spigot-Server-Patches/0253-Don-t-blindly-send-unlit-chunks-when-lighting-update.patch index b45ef1a879..bb9529d275 100644 --- a/Spigot-Server-Patches/0254-Don-t-blindly-send-unlit-chunks-when-lighting-update.patch +++ b/Spigot-Server-Patches/0253-Don-t-blindly-send-unlit-chunks-when-lighting-update.patch @@ -1,4 +1,4 @@ -From b3b7b8219d2c9dfc059263f8f4980be57dabe687 Mon Sep 17 00:00:00 2001 +From 7a024bd2fa7106faeee289d90f6b790a73f5aee6 Mon Sep 17 00:00:00 2001 From: Shane Freeder Date: Mon, 18 Dec 2017 07:26:56 +0000 Subject: [PATCH] Don't blindly send unlit chunks when lighting updates are @@ -44,5 +44,5 @@ index d1066d82e..001fca42a 100644 } -- -2.16.1 +2.16.2 diff --git a/Spigot-Server-Patches/0255-PlayerPickupExperienceEvent.patch b/Spigot-Server-Patches/0254-PlayerPickupExperienceEvent.patch similarity index 94% rename from Spigot-Server-Patches/0255-PlayerPickupExperienceEvent.patch rename to Spigot-Server-Patches/0254-PlayerPickupExperienceEvent.patch index ae06b97806..85bc8e967d 100644 --- a/Spigot-Server-Patches/0255-PlayerPickupExperienceEvent.patch +++ b/Spigot-Server-Patches/0254-PlayerPickupExperienceEvent.patch @@ -1,4 +1,4 @@ -From e262ae75abac4df6a511aa83fdd67c13f4e27357 Mon Sep 17 00:00:00 2001 +From 0bd1877fce888d94bb2781c405f16329f51a57b7 Mon Sep 17 00:00:00 2001 From: Aikar Date: Tue, 19 Dec 2017 22:02:53 -0500 Subject: [PATCH] PlayerPickupExperienceEvent @@ -19,5 +19,5 @@ index d567ad4a5..ff5cc74ba 100644 entityhuman.receive(this, 1); ItemStack itemstack = EnchantmentManager.b(Enchantments.C, (EntityLiving) entityhuman); -- -2.16.1 +2.16.2 diff --git a/Spigot-Server-Patches/0256-ExperienceOrbMergeEvent.patch b/Spigot-Server-Patches/0255-ExperienceOrbMergeEvent.patch similarity index 95% rename from Spigot-Server-Patches/0256-ExperienceOrbMergeEvent.patch rename to Spigot-Server-Patches/0255-ExperienceOrbMergeEvent.patch index 09c6bcd362..42435211f3 100644 --- a/Spigot-Server-Patches/0256-ExperienceOrbMergeEvent.patch +++ b/Spigot-Server-Patches/0255-ExperienceOrbMergeEvent.patch @@ -1,4 +1,4 @@ -From 74b2b4a7e674cff79b0521721ef07183b708aa4f Mon Sep 17 00:00:00 2001 +From 300676cf7bbd8e89cb7ca9cf0b20ed259d144c6e Mon Sep 17 00:00:00 2001 From: Aikar Date: Tue, 19 Dec 2017 22:57:26 -0500 Subject: [PATCH] ExperienceOrbMergeEvent @@ -21,5 +21,5 @@ index e4502551b..9f5388ed9 100644 // Paper start if (!mergeUnconditionally && xp.value > maxValue) { -- -2.16.1 +2.16.2 diff --git a/Spigot-Server-Patches/0257-Ability-to-apply-mending-to-XP-API.patch b/Spigot-Server-Patches/0256-Ability-to-apply-mending-to-XP-API.patch similarity index 98% rename from Spigot-Server-Patches/0257-Ability-to-apply-mending-to-XP-API.patch rename to Spigot-Server-Patches/0256-Ability-to-apply-mending-to-XP-API.patch index 4cfeff10f8..209c04da4e 100644 --- a/Spigot-Server-Patches/0257-Ability-to-apply-mending-to-XP-API.patch +++ b/Spigot-Server-Patches/0256-Ability-to-apply-mending-to-XP-API.patch @@ -1,4 +1,4 @@ -From 1d583f46df6cfbc3888496aeb092515d183a3ffe Mon Sep 17 00:00:00 2001 +From 75ba076d78fd31338f40ec6843714bb9978a3cdf Mon Sep 17 00:00:00 2001 From: Aikar Date: Wed, 20 Dec 2017 17:36:49 -0500 Subject: [PATCH] Ability to apply mending to XP API diff --git a/Spigot-Server-Patches/0258-Configurable-Chunks-Sends-per-Tick-setting.patch b/Spigot-Server-Patches/0257-Configurable-Chunks-Sends-per-Tick-setting.patch similarity index 96% rename from Spigot-Server-Patches/0258-Configurable-Chunks-Sends-per-Tick-setting.patch rename to Spigot-Server-Patches/0257-Configurable-Chunks-Sends-per-Tick-setting.patch index cad59303f2..879c9e84a0 100644 --- a/Spigot-Server-Patches/0258-Configurable-Chunks-Sends-per-Tick-setting.patch +++ b/Spigot-Server-Patches/0257-Configurable-Chunks-Sends-per-Tick-setting.patch @@ -1,4 +1,4 @@ -From 91700cb7ce8e0dd61fd844b85c1bd6984fbe2db4 Mon Sep 17 00:00:00 2001 +From a0551028ff94e0db88c39c6f3c76137541fb0d58 Mon Sep 17 00:00:00 2001 From: Aikar Date: Mon, 1 Jan 2018 15:41:59 -0500 Subject: [PATCH] Configurable Chunks Sends per Tick setting @@ -39,5 +39,5 @@ index 4af557321..6ee9f6cfb 100644 Iterator iterator2 = this.g.iterator(); -- -2.16.1 +2.16.2 diff --git a/Spigot-Server-Patches/0259-Configurable-Max-Chunk-Gens-per-Tick.patch b/Spigot-Server-Patches/0258-Configurable-Max-Chunk-Gens-per-Tick.patch similarity index 98% rename from Spigot-Server-Patches/0259-Configurable-Max-Chunk-Gens-per-Tick.patch rename to Spigot-Server-Patches/0258-Configurable-Max-Chunk-Gens-per-Tick.patch index 97a7e4edac..3bd6cd46d7 100644 --- a/Spigot-Server-Patches/0259-Configurable-Max-Chunk-Gens-per-Tick.patch +++ b/Spigot-Server-Patches/0258-Configurable-Max-Chunk-Gens-per-Tick.patch @@ -1,4 +1,4 @@ -From f0e0f9c55243d1dd2478ed6cdc651a4fe2c2442d Mon Sep 17 00:00:00 2001 +From ad4b9433cd1e5053f6fb2519c6099fa60b44f76d Mon Sep 17 00:00:00 2001 From: Aikar Date: Mon, 1 Jan 2018 16:10:24 -0500 Subject: [PATCH] Configurable Max Chunk Gens per Tick @@ -108,5 +108,5 @@ index 193c3621c..cf1258c55 100644 + // Paper end } -- -2.16.1 +2.16.2 diff --git a/Spigot-Server-Patches/0260-Make-max-squid-spawn-height-configurable.patch b/Spigot-Server-Patches/0259-Make-max-squid-spawn-height-configurable.patch similarity index 95% rename from Spigot-Server-Patches/0260-Make-max-squid-spawn-height-configurable.patch rename to Spigot-Server-Patches/0259-Make-max-squid-spawn-height-configurable.patch index 08fcba6abb..a5218a444d 100644 --- a/Spigot-Server-Patches/0260-Make-max-squid-spawn-height-configurable.patch +++ b/Spigot-Server-Patches/0259-Make-max-squid-spawn-height-configurable.patch @@ -1,4 +1,4 @@ -From f7c13210387f0829c7f82425f45299fb13a37238 Mon Sep 17 00:00:00 2001 +From 360c4600147704b64657ce9e37ca2dee7b1454b0 Mon Sep 17 00:00:00 2001 From: Zach Brown Date: Thu, 11 Jan 2018 16:47:28 -0600 Subject: [PATCH] Make max squid spawn height configurable @@ -36,5 +36,5 @@ index 0ce16be65..58a902831 100644 public void b(float f, float f1, float f2) { -- -2.16.1 +2.16.2 diff --git a/Spigot-Server-Patches/0261-PreCreatureSpawnEvent.patch b/Spigot-Server-Patches/0260-PreCreatureSpawnEvent.patch similarity index 98% rename from Spigot-Server-Patches/0261-PreCreatureSpawnEvent.patch rename to Spigot-Server-Patches/0260-PreCreatureSpawnEvent.patch index 3818c4d5f5..b59f21adba 100644 --- a/Spigot-Server-Patches/0261-PreCreatureSpawnEvent.patch +++ b/Spigot-Server-Patches/0260-PreCreatureSpawnEvent.patch @@ -1,4 +1,4 @@ -From 7d00eaca27f88fe73d52cb565085953013d89410 Mon Sep 17 00:00:00 2001 +From 5b1782d302698f34d71ea00d4f112025a78bca1d Mon Sep 17 00:00:00 2001 From: Aikar Date: Sun, 14 Jan 2018 17:01:31 -0500 Subject: [PATCH] PreCreatureSpawnEvent @@ -87,5 +87,5 @@ index 2cd063829..e217d3340 100644 try { -- -2.16.1 +2.16.2 diff --git a/Spigot-Server-Patches/0262-PlayerNaturallySpawnCreaturesEvent.patch b/Spigot-Server-Patches/0261-PlayerNaturallySpawnCreaturesEvent.patch similarity index 95% rename from Spigot-Server-Patches/0262-PlayerNaturallySpawnCreaturesEvent.patch rename to Spigot-Server-Patches/0261-PlayerNaturallySpawnCreaturesEvent.patch index 88de11cdbd..e124c41897 100644 --- a/Spigot-Server-Patches/0262-PlayerNaturallySpawnCreaturesEvent.patch +++ b/Spigot-Server-Patches/0261-PlayerNaturallySpawnCreaturesEvent.patch @@ -1,4 +1,4 @@ -From ff7671025707830fb683200c9b85e26de979e6a7 Mon Sep 17 00:00:00 2001 +From 477d4982ea2e5826f9c389b3b4e7dea231721745 Mon Sep 17 00:00:00 2001 From: Aikar Date: Sun, 14 Jan 2018 17:36:02 -0500 Subject: [PATCH] PlayerNaturallySpawnCreaturesEvent @@ -29,5 +29,5 @@ index e217d3340..46faa062d 100644 for (int i1 = -b0; i1 <= b0; ++i1) { for (k = -b0; k <= b0; ++k) { -- -2.16.1 +2.16.2 diff --git a/Spigot-Server-Patches/0263-Add-SkullMeta.setPlayerProfile-API.patch b/Spigot-Server-Patches/0262-Add-SkullMeta.setPlayerProfile-API.patch similarity index 96% rename from Spigot-Server-Patches/0263-Add-SkullMeta.setPlayerProfile-API.patch rename to Spigot-Server-Patches/0262-Add-SkullMeta.setPlayerProfile-API.patch index b7f60f330c..0636e353df 100644 --- a/Spigot-Server-Patches/0263-Add-SkullMeta.setPlayerProfile-API.patch +++ b/Spigot-Server-Patches/0262-Add-SkullMeta.setPlayerProfile-API.patch @@ -1,4 +1,4 @@ -From 948ec83dcbd7090a8573021948ec2bc96feeb8ed Mon Sep 17 00:00:00 2001 +From dc84dd3d43671fc1197e4e976eaca94cbc1e112f Mon Sep 17 00:00:00 2001 From: Aikar Date: Fri, 19 Jan 2018 00:36:25 -0500 Subject: [PATCH] Add SkullMeta.setPlayerProfile API @@ -49,5 +49,5 @@ index e2ea49cd9..4855307b9 100644 public OfflinePlayer getOwningPlayer() { if (hasOwner()) { -- -2.16.1 +2.16.2 diff --git a/Spigot-Server-Patches/0264-Fill-Profile-Property-Events.patch b/Spigot-Server-Patches/0263-Fill-Profile-Property-Events.patch similarity index 98% rename from Spigot-Server-Patches/0264-Fill-Profile-Property-Events.patch rename to Spigot-Server-Patches/0263-Fill-Profile-Property-Events.patch index d1b246da2e..1c0484ccda 100644 --- a/Spigot-Server-Patches/0264-Fill-Profile-Property-Events.patch +++ b/Spigot-Server-Patches/0263-Fill-Profile-Property-Events.patch @@ -1,4 +1,4 @@ -From 4f8def8cb7fbe369bb6a0dc77d9bc923484e7435 Mon Sep 17 00:00:00 2001 +From b903d537f8b4858692643e6d1c90379e9fb1d554 Mon Sep 17 00:00:00 2001 From: Aikar Date: Tue, 2 Jan 2018 00:31:26 -0500 Subject: [PATCH] Fill Profile Property Events @@ -101,5 +101,5 @@ index 6159cf4c0..95d1ac442 100644 gameprofilerepository = new com.destroystokyo.paper.profile.WrappedGameProfileRepository(gameprofilerepository); // Paper UserCache usercache = new UserCache(gameprofilerepository, new File(s1, MinecraftServer.a.getName())); -- -2.16.1 +2.16.2 diff --git a/Spigot-Server-Patches/0265-PlayerAdvancementCriterionGrantEvent.patch b/Spigot-Server-Patches/0264-PlayerAdvancementCriterionGrantEvent.patch similarity index 93% rename from Spigot-Server-Patches/0265-PlayerAdvancementCriterionGrantEvent.patch rename to Spigot-Server-Patches/0264-PlayerAdvancementCriterionGrantEvent.patch index bc6b194efb..d9c83c3617 100644 --- a/Spigot-Server-Patches/0265-PlayerAdvancementCriterionGrantEvent.patch +++ b/Spigot-Server-Patches/0264-PlayerAdvancementCriterionGrantEvent.patch @@ -1,4 +1,4 @@ -From 37ac0c5c2fa91f8f922cb07489ce1cf11cfde4be Mon Sep 17 00:00:00 2001 +From e6ed90358568cc2422eab0f489fd2e1be0b2ea7c Mon Sep 17 00:00:00 2001 From: BillyGalbreath Date: Fri, 19 Jan 2018 08:15:29 -0600 Subject: [PATCH] PlayerAdvancementCriterionGrantEvent @@ -22,5 +22,5 @@ index 6896b7095..8913e2744 100644 this.i.add(advancement); flag = true; -- -2.16.1 +2.16.2 diff --git a/Spigot-Server-Patches/0266-MC-99321-Dont-check-for-blocked-double-chest-for-hop.patch b/Spigot-Server-Patches/0265-MC-99321-Dont-check-for-blocked-double-chest-for-hop.patch similarity index 93% rename from Spigot-Server-Patches/0266-MC-99321-Dont-check-for-blocked-double-chest-for-hop.patch rename to Spigot-Server-Patches/0265-MC-99321-Dont-check-for-blocked-double-chest-for-hop.patch index c3c1b38d56..146b3afa04 100644 --- a/Spigot-Server-Patches/0266-MC-99321-Dont-check-for-blocked-double-chest-for-hop.patch +++ b/Spigot-Server-Patches/0265-MC-99321-Dont-check-for-blocked-double-chest-for-hop.patch @@ -1,4 +1,4 @@ -From d4e195955eeef8c475479e8c5bb6e265395ea706 Mon Sep 17 00:00:00 2001 +From 8138a69b7faebbfd9ad210ce8b76c8282424c426 Mon Sep 17 00:00:00 2001 From: Aikar Date: Wed, 24 Jan 2018 20:06:39 -0500 Subject: [PATCH] MC-99321 - Dont check for blocked double chest for hoppers @@ -24,5 +24,5 @@ index 90267a1fb..91d3308c1 100644 } -- -2.16.1 +2.16.2 diff --git a/Spigot-Server-Patches/0267-Add-ArmorStand-Item-Meta.patch b/Spigot-Server-Patches/0266-Add-ArmorStand-Item-Meta.patch similarity index 99% rename from Spigot-Server-Patches/0267-Add-ArmorStand-Item-Meta.patch rename to Spigot-Server-Patches/0266-Add-ArmorStand-Item-Meta.patch index d5716918e6..6adcd9fcfa 100644 --- a/Spigot-Server-Patches/0267-Add-ArmorStand-Item-Meta.patch +++ b/Spigot-Server-Patches/0266-Add-ArmorStand-Item-Meta.patch @@ -1,4 +1,4 @@ -From 817f05030086ead4203fa67f74e027d4d5d90fd0 Mon Sep 17 00:00:00 2001 +From fc7571ae73456691d437cf3a6403b9d62c020b11 Mon Sep 17 00:00:00 2001 From: Zach Brown Date: Sat, 27 Jan 2018 17:04:14 -0500 Subject: [PATCH] Add ArmorStand Item Meta @@ -407,5 +407,5 @@ index 1f537d584..a29731f1d 100644 ); -- -2.16.1 +2.16.2 diff --git a/Spigot-Server-Patches/0268-Extend-Player-Interact-cancellation-to-GUIs.patch b/Spigot-Server-Patches/0267-Extend-Player-Interact-cancellation-to-GUIs.patch similarity index 96% rename from Spigot-Server-Patches/0268-Extend-Player-Interact-cancellation-to-GUIs.patch rename to Spigot-Server-Patches/0267-Extend-Player-Interact-cancellation-to-GUIs.patch index 0bc154215a..198bb4f3f0 100644 --- a/Spigot-Server-Patches/0268-Extend-Player-Interact-cancellation-to-GUIs.patch +++ b/Spigot-Server-Patches/0267-Extend-Player-Interact-cancellation-to-GUIs.patch @@ -1,4 +1,4 @@ -From eb3a4602b0b462211c8c9793d37081a6287881bd Mon Sep 17 00:00:00 2001 +From 2b7de80466e6bf6fd5ad582be810a43d5ff65546 Mon Sep 17 00:00:00 2001 From: Shane Freeder Date: Sun, 11 Feb 2018 10:43:46 +0000 Subject: [PATCH] Extend Player Interact cancellation to GUIs @@ -24,5 +24,5 @@ index 5ec7f5819..b1cdb2154 100644 ((EntityPlayer) entityhuman).getBukkitEntity().updateInventory(); // SPIGOT-2867 enuminteractionresult = (event.useItemInHand() != Event.Result.ALLOW) ? EnumInteractionResult.SUCCESS : EnumInteractionResult.PASS; -- -2.16.1 +2.16.2 diff --git a/Spigot-Server-Patches/0269-Optimize-Hoppers.patch b/Spigot-Server-Patches/0268-Optimize-Hoppers.patch similarity index 99% rename from Spigot-Server-Patches/0269-Optimize-Hoppers.patch rename to Spigot-Server-Patches/0268-Optimize-Hoppers.patch index 5a88a6a9a5..4157ec6e60 100644 --- a/Spigot-Server-Patches/0269-Optimize-Hoppers.patch +++ b/Spigot-Server-Patches/0268-Optimize-Hoppers.patch @@ -1,4 +1,4 @@ -From 6844a109b190cc39435a670157ab245ad8960fc9 Mon Sep 17 00:00:00 2001 +From a0d6eed8bdd12a63bb237367bc4bc2c9dab9e4f1 Mon Sep 17 00:00:00 2001 From: Aikar Date: Wed, 27 Apr 2016 22:09:52 -0400 Subject: [PATCH] Optimize Hoppers @@ -280,5 +280,5 @@ index e9315f2d5..5198a590a 100644 flag = true; } else if (a(itemstack1, itemstack)) { -- -2.16.1 +2.16.2 diff --git a/Spigot-Server-Patches/0270-Tameable-getOwnerUniqueId-API.patch b/Spigot-Server-Patches/0269-Tameable-getOwnerUniqueId-API.patch similarity index 95% rename from Spigot-Server-Patches/0270-Tameable-getOwnerUniqueId-API.patch rename to Spigot-Server-Patches/0269-Tameable-getOwnerUniqueId-API.patch index 6de5f2177b..a7de20e8d0 100644 --- a/Spigot-Server-Patches/0270-Tameable-getOwnerUniqueId-API.patch +++ b/Spigot-Server-Patches/0269-Tameable-getOwnerUniqueId-API.patch @@ -1,4 +1,4 @@ -From 8c67163e5c0e98e219b1bbe28eb7dfbc9685c1d2 Mon Sep 17 00:00:00 2001 +From 80184feb9923f988543045716346b8638e11ac0f Mon Sep 17 00:00:00 2001 From: Aikar Date: Sat, 24 Feb 2018 01:14:55 -0500 Subject: [PATCH] Tameable#getOwnerUniqueId API @@ -35,5 +35,5 @@ index eaaebeab8..2e959321b 100644 try { return getHandle().getOwnerUUID(); -- -2.16.1 +2.16.2 diff --git a/Spigot-Server-Patches/0271-Toggleable-player-crits-helps-mitigate-hacked-client.patch b/Spigot-Server-Patches/0270-Toggleable-player-crits-helps-mitigate-hacked-client.patch similarity index 92% rename from Spigot-Server-Patches/0271-Toggleable-player-crits-helps-mitigate-hacked-client.patch rename to Spigot-Server-Patches/0270-Toggleable-player-crits-helps-mitigate-hacked-client.patch index 285fea8a23..9c565bf10d 100644 --- a/Spigot-Server-Patches/0271-Toggleable-player-crits-helps-mitigate-hacked-client.patch +++ b/Spigot-Server-Patches/0270-Toggleable-player-crits-helps-mitigate-hacked-client.patch @@ -1,11 +1,11 @@ -From fa93fba35b7fa5ee49268eac594a77e0f873ea56 Mon Sep 17 00:00:00 2001 +From 688442287074e5f6311a3ee512c92c6d8193a0e5 Mon Sep 17 00:00:00 2001 From: MiniDigger Date: Sat, 10 Mar 2018 00:50:24 +0100 Subject: [PATCH] Toggleable player crits, helps mitigate hacked clients. diff --git a/src/main/java/com/destroystokyo/paper/PaperWorldConfig.java b/src/main/java/com/destroystokyo/paper/PaperWorldConfig.java -index 61cc1d4..038f874 100644 +index 61cc1d4e6..038f874b3 100644 --- a/src/main/java/com/destroystokyo/paper/PaperWorldConfig.java +++ b/src/main/java/com/destroystokyo/paper/PaperWorldConfig.java @@ -232,6 +232,11 @@ public class PaperWorldConfig { @@ -21,7 +21,7 @@ index 61cc1d4..038f874 100644 private void allChunksAreSlimeChunks() { allChunksAreSlimeChunks = getBoolean("all-chunks-are-slime-chunks", false); diff --git a/src/main/java/net/minecraft/server/EntityHuman.java b/src/main/java/net/minecraft/server/EntityHuman.java -index 3472370..4b82e43 100644 +index 347237055..4b82e43a8 100644 --- a/src/main/java/net/minecraft/server/EntityHuman.java +++ b/src/main/java/net/minecraft/server/EntityHuman.java @@ -978,7 +978,7 @@ public abstract class EntityHuman extends EntityLiving { @@ -34,5 +34,5 @@ index 3472370..4b82e43 100644 if (flag2) { f *= 1.5F; -- -2.7.4 +2.16.2 diff --git a/Spigot-Server-Patches/0272-Fix-NPE-when-getting-location-from-InventoryEnderChe.patch b/Spigot-Server-Patches/0271-Fix-NPE-when-getting-location-from-InventoryEnderChe.patch similarity index 95% rename from Spigot-Server-Patches/0272-Fix-NPE-when-getting-location-from-InventoryEnderChe.patch rename to Spigot-Server-Patches/0271-Fix-NPE-when-getting-location-from-InventoryEnderChe.patch index e4c6f8cdee..e8647d9c02 100644 --- a/Spigot-Server-Patches/0272-Fix-NPE-when-getting-location-from-InventoryEnderChe.patch +++ b/Spigot-Server-Patches/0271-Fix-NPE-when-getting-location-from-InventoryEnderChe.patch @@ -1,4 +1,4 @@ -From 4caec43af620f7c53787870fd105694be881b5d2 Mon Sep 17 00:00:00 2001 +From 02780e7f31207c021b84cb2757eb77c8bf29ca65 Mon Sep 17 00:00:00 2001 From: Shane Freeder Date: Sat, 10 Mar 2018 13:03:49 +0000 Subject: [PATCH] Fix NPE when getting location from InventoryEnderChest opened diff --git a/Spigot-Server-Patches/0273-Prevent-Frosted-Ice-from-loading-holding-chunks.patch b/Spigot-Server-Patches/0272-Prevent-Frosted-Ice-from-loading-holding-chunks.patch similarity index 96% rename from Spigot-Server-Patches/0273-Prevent-Frosted-Ice-from-loading-holding-chunks.patch rename to Spigot-Server-Patches/0272-Prevent-Frosted-Ice-from-loading-holding-chunks.patch index 6e1c44d819..42db27830e 100644 --- a/Spigot-Server-Patches/0273-Prevent-Frosted-Ice-from-loading-holding-chunks.patch +++ b/Spigot-Server-Patches/0272-Prevent-Frosted-Ice-from-loading-holding-chunks.patch @@ -1,4 +1,4 @@ -From cbb76ce2d26dab508d9e5b26c2eccc11a37d6275 Mon Sep 17 00:00:00 2001 +From 6dc061c0c7c25b187f45d8247ca8ce18ca4d2ab3 Mon Sep 17 00:00:00 2001 From: Aikar Date: Sat, 10 Mar 2018 16:33:15 -0500 Subject: [PATCH] Prevent Frosted Ice from loading/holding chunks diff --git a/Spigot-Server-Patches/0274-Disable-Explicit-Network-Manager-Flushing.patch b/Spigot-Server-Patches/0273-Disable-Explicit-Network-Manager-Flushing.patch similarity index 94% rename from Spigot-Server-Patches/0274-Disable-Explicit-Network-Manager-Flushing.patch rename to Spigot-Server-Patches/0273-Disable-Explicit-Network-Manager-Flushing.patch index d416918fd9..8ad1d037c6 100644 --- a/Spigot-Server-Patches/0274-Disable-Explicit-Network-Manager-Flushing.patch +++ b/Spigot-Server-Patches/0273-Disable-Explicit-Network-Manager-Flushing.patch @@ -1,4 +1,4 @@ -From b7806469aa14552fea0aece2446419b9a96c27cc Mon Sep 17 00:00:00 2001 +From 9e1c5a7852f21efbc2bc259be9eb5b3a567f3b9e Mon Sep 17 00:00:00 2001 From: Aikar Date: Sun, 11 Mar 2018 14:13:33 -0400 Subject: [PATCH] Disable Explicit Network Manager Flushing @@ -12,7 +12,7 @@ flushing on the netty event loop, so it won't do the flush on the main thread. Renable flushing by passing -Dpaper.explicit-flush=true diff --git a/src/main/java/net/minecraft/server/NetworkManager.java b/src/main/java/net/minecraft/server/NetworkManager.java -index b93a26e8f..da7c45697 100644 +index b93a26e8f..3d32e0056 100644 --- a/src/main/java/net/minecraft/server/NetworkManager.java +++ b/src/main/java/net/minecraft/server/NetworkManager.java @@ -78,6 +78,7 @@ public class NetworkManager extends SimpleChannelInboundHandler> { diff --git a/Spigot-Server-Patches/0274-Implement-extended-PaperServerListPingEvent.patch b/Spigot-Server-Patches/0274-Implement-extended-PaperServerListPingEvent.patch new file mode 100644 index 0000000000..055af2ec59 --- /dev/null +++ b/Spigot-Server-Patches/0274-Implement-extended-PaperServerListPingEvent.patch @@ -0,0 +1,255 @@ +From be13b11e1cb79084ab4d0b400ab6c013a0357fa7 Mon Sep 17 00:00:00 2001 +From: Minecrell +Date: Wed, 11 Oct 2017 15:56:26 +0200 +Subject: [PATCH] Implement extended PaperServerListPingEvent + + +diff --git a/src/main/java/com/destroystokyo/paper/network/PaperServerListPingEventImpl.java b/src/main/java/com/destroystokyo/paper/network/PaperServerListPingEventImpl.java +new file mode 100644 +index 000000000..c1a8e295b +--- /dev/null ++++ b/src/main/java/com/destroystokyo/paper/network/PaperServerListPingEventImpl.java +@@ -0,0 +1,31 @@ ++package com.destroystokyo.paper.network; ++ ++import com.destroystokyo.paper.event.server.PaperServerListPingEvent; ++import net.minecraft.server.EntityPlayer; ++import net.minecraft.server.MinecraftServer; ++import org.bukkit.entity.Player; ++import org.bukkit.util.CachedServerIcon; ++ ++import javax.annotation.Nullable; ++ ++class PaperServerListPingEventImpl extends PaperServerListPingEvent { ++ ++ private final MinecraftServer server; ++ ++ PaperServerListPingEventImpl(MinecraftServer server, StatusClient client, int protocolVersion, @Nullable CachedServerIcon icon) { ++ super(client, server.getMotd(), server.getPlayerCount(), server.getMaxPlayers(), ++ server.getServerModName() + ' ' + server.getVersion(), protocolVersion, icon); ++ this.server = server; ++ } ++ ++ @Override ++ protected final Object[] getOnlinePlayers() { ++ return this.server.getPlayerList().players.toArray(); ++ } ++ ++ @Override ++ protected final Player getBukkitPlayer(Object player) { ++ return ((EntityPlayer) player).getBukkitEntity(); ++ } ++ ++} +diff --git a/src/main/java/com/destroystokyo/paper/network/PaperStatusClient.java b/src/main/java/com/destroystokyo/paper/network/PaperStatusClient.java +new file mode 100644 +index 000000000..a2a409e63 +--- /dev/null ++++ b/src/main/java/com/destroystokyo/paper/network/PaperStatusClient.java +@@ -0,0 +1,11 @@ ++package com.destroystokyo.paper.network; ++ ++import net.minecraft.server.NetworkManager; ++ ++class PaperStatusClient extends PaperNetworkClient implements StatusClient { ++ ++ PaperStatusClient(NetworkManager networkManager) { ++ super(networkManager); ++ } ++ ++} +diff --git a/src/main/java/com/destroystokyo/paper/network/StandardPaperServerListPingEventImpl.java b/src/main/java/com/destroystokyo/paper/network/StandardPaperServerListPingEventImpl.java +new file mode 100644 +index 000000000..33dd196fb +--- /dev/null ++++ b/src/main/java/com/destroystokyo/paper/network/StandardPaperServerListPingEventImpl.java +@@ -0,0 +1,112 @@ ++package com.destroystokyo.paper.network; ++ ++import com.destroystokyo.paper.profile.CraftPlayerProfile; ++import com.destroystokyo.paper.profile.PlayerProfile; ++import com.google.common.base.MoreObjects; ++import com.google.common.base.Strings; ++import com.mojang.authlib.GameProfile; ++import net.minecraft.server.ChatComponentText; ++import net.minecraft.server.MinecraftServer; ++import net.minecraft.server.NetworkManager; ++import net.minecraft.server.PacketStatusOutServerInfo; ++import net.minecraft.server.ServerPing; ++ ++import java.util.List; ++import java.util.UUID; ++ ++import javax.annotation.Nonnull; ++ ++public final class StandardPaperServerListPingEventImpl extends PaperServerListPingEventImpl { ++ ++ private static final GameProfile[] EMPTY_PROFILES = new GameProfile[0]; ++ private static final UUID FAKE_UUID = new UUID(0, 0); ++ ++ private GameProfile[] originalSample; ++ ++ private StandardPaperServerListPingEventImpl(MinecraftServer server, NetworkManager networkManager, ServerPing ping) { ++ super(server, new PaperStatusClient(networkManager), ping.getServerData().getProtocolVersion(), server.server.getServerIcon()); ++ this.originalSample = ping.getPlayers().getSample(); ++ } ++ ++ @Nonnull ++ @Override ++ public List getPlayerSample() { ++ List sample = super.getPlayerSample(); ++ ++ if (this.originalSample != null) { ++ for (GameProfile profile : this.originalSample) { ++ sample.add(CraftPlayerProfile.asBukkitMirror(profile)); ++ } ++ this.originalSample = null; ++ } ++ ++ return sample; ++ } ++ ++ private GameProfile[] getPlayerSampleHandle() { ++ if (this.originalSample != null) { ++ return this.originalSample; ++ } ++ ++ List entries = super.getPlayerSample(); ++ if (entries.isEmpty()) { ++ return EMPTY_PROFILES; ++ } ++ ++ GameProfile[] profiles = new GameProfile[entries.size()]; ++ for (int i = 0; i < profiles.length; i++) { ++ /* ++ * Avoid null UUIDs/names since that will make the response invalid ++ * on the client. ++ * Instead, fall back to a fake/empty UUID and an empty string as name. ++ * This can be used to create custom lines in the player list that do not ++ * refer to a specific player. ++ */ ++ ++ PlayerProfile profile = entries.get(i); ++ if (profile.getId() != null && profile.getName() != null) { ++ profiles[i] = CraftPlayerProfile.asAuthlib(profile); ++ } else { ++ profiles[i] = new GameProfile(MoreObjects.firstNonNull(profile.getId(), FAKE_UUID), Strings.nullToEmpty(profile.getName())); ++ } ++ } ++ ++ return profiles; ++ } ++ ++ @SuppressWarnings("deprecation") ++ public static void processRequest(MinecraftServer server, NetworkManager networkManager) { ++ StandardPaperServerListPingEventImpl event = new StandardPaperServerListPingEventImpl(server, networkManager, server.getServerPing()); ++ server.server.getPluginManager().callEvent(event); ++ ++ // Close connection immediately if event is cancelled ++ if (event.isCancelled()) { ++ networkManager.close(null); ++ return; ++ } ++ ++ // Setup response ++ ServerPing ping = new ServerPing(); ++ ++ // Description ++ ping.setMOTD(new ChatComponentText(event.getMotd())); ++ ++ // Players ++ if (!event.shouldHidePlayers()) { ++ ping.setPlayerSample(new ServerPing.ServerPingPlayerSample(event.getMaxPlayers(), event.getNumPlayers())); ++ ping.getPlayers().setSample(event.getPlayerSampleHandle()); ++ } ++ ++ // Version ++ ping.setServerInfo(new ServerPing.ServerData(event.getVersion(), event.getProtocolVersion())); ++ ++ // Favicon ++ if (event.getServerIcon() != null) { ++ ping.setFavicon(event.getServerIcon().getData()); ++ } ++ ++ // Send response ++ networkManager.sendPacket(new PacketStatusOutServerInfo(ping)); ++ } ++ ++} +diff --git a/src/main/java/net/minecraft/server/MinecraftServer.java b/src/main/java/net/minecraft/server/MinecraftServer.java +index e8c72db96..9da09d53b 100644 +--- a/src/main/java/net/minecraft/server/MinecraftServer.java ++++ b/src/main/java/net/minecraft/server/MinecraftServer.java +@@ -768,7 +768,7 @@ public abstract class MinecraftServer implements ICommandListener, Runnable, IAs + if (i - this.Z >= 5000000000L) { + this.Z = i; + this.q.setPlayerSample(new ServerPing.ServerPingPlayerSample(this.I(), this.H())); +- GameProfile[] agameprofile = new GameProfile[Math.min(this.H(), 12)]; ++ GameProfile[] agameprofile = new GameProfile[Math.min(this.H(), org.spigotmc.SpigotConfig.playerSample)]; // Paper + int j = MathHelper.nextInt(this.r, 0, this.H() - agameprofile.length); + + for (int k = 0; k < agameprofile.length; ++k) { +@@ -1116,10 +1116,12 @@ public abstract class MinecraftServer implements ICommandListener, Runnable, IAs + return "1.12.2"; + } + ++ public int getPlayerCount() { return H(); } // Paper - OBFHELPER + public int H() { + return this.v.getPlayerCount(); + } + ++ public int getMaxPlayers() { return I(); } // Paper - OBFHELPER + public int I() { + return this.v.getMaxPlayers(); + } +diff --git a/src/main/java/net/minecraft/server/PacketStatusListener.java b/src/main/java/net/minecraft/server/PacketStatusListener.java +index 313bb0007..f3c25367d 100644 +--- a/src/main/java/net/minecraft/server/PacketStatusListener.java ++++ b/src/main/java/net/minecraft/server/PacketStatusListener.java +@@ -30,6 +30,8 @@ public class PacketStatusListener implements PacketStatusInListener { + this.networkManager.close(PacketStatusListener.a); + } else { + this.d = true; ++ // Paper start - Replace everything ++ /* + // CraftBukkit start + // this.networkManager.sendPacket(new PacketStatusOutServerInfo(this.minecraftServer.getServerPing())); + final Object[] players = minecraftServer.getPlayerList().players.toArray(); +@@ -125,6 +127,9 @@ public class PacketStatusListener implements PacketStatusInListener { + ping.setServerInfo(new ServerPing.ServerData(minecraftServer.getServerModName() + " " + minecraftServer.getVersion(), version)); + + this.networkManager.sendPacket(new PacketStatusOutServerInfo(ping)); ++ */ ++ com.destroystokyo.paper.network.StandardPaperServerListPingEventImpl.processRequest(this.minecraftServer, this.networkManager); ++ // Paper end + } + // CraftBukkit end + } +diff --git a/src/main/java/net/minecraft/server/ServerPing.java b/src/main/java/net/minecraft/server/ServerPing.java +index 981582212..ac161f505 100644 +--- a/src/main/java/net/minecraft/server/ServerPing.java ++++ b/src/main/java/net/minecraft/server/ServerPing.java +@@ -29,6 +29,7 @@ public class ServerPing { + this.a = ichatbasecomponent; + } + ++ public ServerPingPlayerSample getPlayers() { return b(); } // Paper - OBFHELPER + public ServerPing.ServerPingPlayerSample b() { + return this.b; + } +@@ -164,10 +165,12 @@ public class ServerPing { + return this.b; + } + ++ public GameProfile[] getSample() { return c(); } // Paper - OBFHELPER + public GameProfile[] c() { + return this.c; + } + ++ public void setSample(GameProfile[] sample) { a(sample); } // Paper - OBFHELPER + public void a(GameProfile[] agameprofile) { + this.c = agameprofile; + } +-- +2.16.2 + diff --git a/scripts/importmcdev.sh b/scripts/importmcdev.sh index d97288abf9..c992a4b5f6 100755 --- a/scripts/importmcdev.sh +++ b/scripts/importmcdev.sh @@ -97,6 +97,7 @@ import PlayerConnectionUtils import RegionFile import RegistryBlockID import RemoteControlListener +import ServerPing import StructureBoundingBox import StructurePiece import StructureStart