3
0
Mirror von https://github.com/PaperMC/Paper.git synchronisiert 2024-12-15 19:10:09 +01:00

Fix raids throwing an UnsupportedOperationException

Dieser Commit ist enthalten in:
Shane Freeder 2019-06-26 03:11:29 +01:00
Ursprung dc841f3379
Commit 2ff7722630
Es konnte kein GPG-Schlüssel zu dieser Signatur gefunden werden
GPG-Schlüssel-ID: A3F61EA5A085289C
2 geänderte Dateien mit 30 neuen und 23 gelöschten Zeilen

Datei anzeigen

@ -1,23 +0,0 @@
From c846b7f9757ee1c83c7b4aa80c3b1a1458566e67 Mon Sep 17 00:00:00 2001
From: Shane Freeder <theboyetronic@gmail.com>
Date: Wed, 26 Jun 2019 01:20:55 +0100
Subject: [PATCH] Fix CME from raids
Use the iterator to remove elements
diff --git a/src/main/java/net/minecraft/server/Raid.java b/src/main/java/net/minecraft/server/Raid.java
index 6c1bbefd71..58c33f1000 100644
--- a/src/main/java/net/minecraft/server/Raid.java
+++ b/src/main/java/net/minecraft/server/Raid.java
@@ -144,7 +144,7 @@ public class Raid {
BlockPosition blockposition = new BlockPosition(entityplayer);
if (this.k.c_(blockposition) != this) {
- set.remove(entityplayer);
+ iterator.remove(); // Paper - Use iterator
this.r.removePlayer(entityplayer);
}
}
--
2.22.0

Datei anzeigen

@ -0,0 +1,30 @@
From 96e47b61a7b56b3593c1fd8058c970ee09efb490 Mon Sep 17 00:00:00 2001
From: Shane Freeder <theboyetronic@gmail.com>
Date: Wed, 26 Jun 2019 03:04:45 +0100
Subject: [PATCH] Fix Raids CME
diff --git a/src/main/java/net/minecraft/server/Raid.java b/src/main/java/net/minecraft/server/Raid.java
index 6c1bbefd71..72f76d6c02 100644
--- a/src/main/java/net/minecraft/server/Raid.java
+++ b/src/main/java/net/minecraft/server/Raid.java
@@ -137,14 +137,14 @@ public class Raid {
private void y() {
Collection<EntityPlayer> collection = this.r.getPlayers();
Set<EntityPlayer> set = Sets.newHashSet(collection);
- Iterator iterator = collection.iterator();
+ Iterator iterator = set.iterator(); // Paper - use the set, this doesn't get modified out of scope
while (iterator.hasNext()) {
EntityPlayer entityplayer = (EntityPlayer) iterator.next();
BlockPosition blockposition = new BlockPosition(entityplayer);
if (this.k.c_(blockposition) != this) {
- set.remove(entityplayer);
+ iterator.remove(); // Paper
this.r.removePlayer(entityplayer);
}
}
--
2.22.0