Use copies for PlayerProfile in PaperServerList and SkullMeta

Don't want to risk mutating players properties in server list (unlikely, but lets be proper)

and Skull also has a setter API, so that should be used too.
This commit is contained in:
Aikar 2018-03-22 23:32:55 -04:00
parent 5336a6b6bb
commit 3c6db79e46
3 changed files with 6 additions and 6 deletions

View file

@ -5,7 +5,7 @@ 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 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 index dd1deafd..32cf9f01 100644
--- a/src/main/java/com/destroystokyo/paper/event/server/PaperServerListPingEvent.java --- a/src/main/java/com/destroystokyo/paper/event/server/PaperServerListPingEvent.java
+++ b/src/main/java/com/destroystokyo/paper/event/server/PaperServerListPingEvent.java +++ b/src/main/java/com/destroystokyo/paper/event/server/PaperServerListPingEvent.java
@@ -0,0 +0,0 @@ import static java.util.Objects.requireNonNull; @@ -0,0 +0,0 @@ import static java.util.Objects.requireNonNull;

View file

@ -7,7 +7,7 @@ This allows you to create already filled textures on Skulls to avoid texture loo
which commonly cause rate limit issues with Mojang API which commonly cause rate limit issues with Mojang API
diff --git a/src/main/java/org/bukkit/craftbukkit/inventory/CraftMetaSkull.java b/src/main/java/org/bukkit/craftbukkit/inventory/CraftMetaSkull.java diff --git a/src/main/java/org/bukkit/craftbukkit/inventory/CraftMetaSkull.java b/src/main/java/org/bukkit/craftbukkit/inventory/CraftMetaSkull.java
index e2ea49cd9..4855307b9 100644 index e2ea49cd9..dbc083351 100644
--- a/src/main/java/org/bukkit/craftbukkit/inventory/CraftMetaSkull.java --- a/src/main/java/org/bukkit/craftbukkit/inventory/CraftMetaSkull.java
+++ b/src/main/java/org/bukkit/craftbukkit/inventory/CraftMetaSkull.java +++ b/src/main/java/org/bukkit/craftbukkit/inventory/CraftMetaSkull.java
@@ -0,0 +0,0 @@ package org.bukkit.craftbukkit.inventory; @@ -0,0 +0,0 @@ package org.bukkit.craftbukkit.inventory;
@ -41,7 +41,7 @@ index e2ea49cd9..4855307b9 100644
+ @Nullable + @Nullable
+ @Override + @Override
+ public PlayerProfile getPlayerProfile() { + public PlayerProfile getPlayerProfile() {
+ return profile != null ? CraftPlayerProfile.asBukkitMirror(profile) : null; + return profile != null ? CraftPlayerProfile.asBukkitCopy(profile) : null;
+ } + }
+ // Paper end + // Paper end
+ +

View file

@ -60,7 +60,7 @@ index 000000000..a2a409e63
+} +}
diff --git a/src/main/java/com/destroystokyo/paper/network/StandardPaperServerListPingEventImpl.java b/src/main/java/com/destroystokyo/paper/network/StandardPaperServerListPingEventImpl.java 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 new file mode 100644
index 000000000..33dd196fb index 000000000..350410527
--- /dev/null --- /dev/null
+++ b/src/main/java/com/destroystokyo/paper/network/StandardPaperServerListPingEventImpl.java +++ b/src/main/java/com/destroystokyo/paper/network/StandardPaperServerListPingEventImpl.java
@@ -0,0 +0,0 @@ @@ -0,0 +0,0 @@
@ -101,7 +101,7 @@ index 000000000..33dd196fb
+ +
+ if (this.originalSample != null) { + if (this.originalSample != null) {
+ for (GameProfile profile : this.originalSample) { + for (GameProfile profile : this.originalSample) {
+ sample.add(CraftPlayerProfile.asBukkitMirror(profile)); + sample.add(CraftPlayerProfile.asBukkitCopy(profile));
+ } + }
+ this.originalSample = null; + this.originalSample = null;
+ } + }
@ -177,7 +177,7 @@ index 000000000..33dd196fb
+ +
+} +}
diff --git a/src/main/java/net/minecraft/server/MinecraftServer.java b/src/main/java/net/minecraft/server/MinecraftServer.java diff --git a/src/main/java/net/minecraft/server/MinecraftServer.java b/src/main/java/net/minecraft/server/MinecraftServer.java
index e8c72db96..9da09d53b 100644 index 579f0ba0d..99cfe1ae5 100644
--- a/src/main/java/net/minecraft/server/MinecraftServer.java --- a/src/main/java/net/minecraft/server/MinecraftServer.java
+++ b/src/main/java/net/minecraft/server/MinecraftServer.java +++ b/src/main/java/net/minecraft/server/MinecraftServer.java
@@ -0,0 +0,0 @@ public abstract class MinecraftServer implements ICommandListener, Runnable, IAs @@ -0,0 +0,0 @@ public abstract class MinecraftServer implements ICommandListener, Runnable, IAs