5b6c59009b
Some plugins (e.g. older builds of EssentialsX) assume that ServerListPingEvent.getSampleText() returns a mutable copy of the player sample list. This was the case until it was refactored on top of the new API introduced in #980. As a result, they may run into an error when trying to modify the returned list directly. Modify getSampleText() to return a mutable copy (a plain ArrayList) to mimic the old behavior.
78 Zeilen
2.9 KiB
Diff
78 Zeilen
2.9 KiB
Diff
From d9f260928670e8d9910d4eede929f7eebd5a4028 Mon Sep 17 00:00:00 2001
|
|
From: Minecrell <minecrell@minecrell.net>
|
|
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 dd1deafd..db992df2 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,7 @@ 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 org.bukkit.Bukkit;
|
|
import org.bukkit.entity.Player;
|
|
import org.bukkit.event.Cancellable;
|
|
@@ -316,4 +317,25 @@ public class PaperServerListPingEvent extends ServerListPingEvent implements Can
|
|
}
|
|
}
|
|
|
|
+ // TODO: Remove in 1.13
|
|
+
|
|
+ @Override
|
|
+ @Deprecated
|
|
+ public List<String> getSampleText() {
|
|
+ List<String> sampleText = new ArrayList<>();
|
|
+ for (PlayerProfile profile : getPlayerSample()) {
|
|
+ sampleText.add(Strings.nullToEmpty(profile.getName()));
|
|
+ }
|
|
+ return sampleText;
|
|
+ }
|
|
+
|
|
+ @Override
|
|
+ @Deprecated
|
|
+ public void setSampleText(List<String> 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<Player>
|
|
private java.util.List<String> 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<String> sample) {
|
|
@@ -159,7 +160,7 @@ public class ServerListPingEvent extends ServerEvent implements Iterable<Player>
|
|
}
|
|
|
|
/**
|
|
- * @deprecated Will be replaced in 1.13
|
|
+ * @deprecated Will be removed in 1.13, use {@link PaperServerListPingEvent#getPlayerSample()}
|
|
*/
|
|
@Deprecated
|
|
public java.util.List<String> getSampleText() {
|
|
--
|
|
2.16.2
|
|
|