Fix thread unsafe collections use in PlayerList
This commit is contained in:
+19
@@ -0,0 +1,19 @@
|
||||
From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
|
||||
From: NanaChiyo0721 <nanachiyo0721@163.com>
|
||||
Date: Wed, 12 Aug 2026 16:31:01 +0800
|
||||
Subject: [PATCH] Fix thread unsafe collections use in PlayerList
|
||||
|
||||
|
||||
diff --git a/net/minecraft/server/players/PlayerList.java b/net/minecraft/server/players/PlayerList.java
|
||||
index 259eb7574841b1b885093b534440f8a40db4e8e2..c70d3169002681c5f2131ca8e98ef7d42c6dc4fa 100644
|
||||
--- a/net/minecraft/server/players/PlayerList.java
|
||||
+++ b/net/minecraft/server/players/PlayerList.java
|
||||
@@ -132,7 +132,7 @@ public abstract class PlayerList {
|
||||
|
||||
// CraftBukkit start
|
||||
private org.bukkit.craftbukkit.CraftServer cserver;
|
||||
- private final Map<String,ServerPlayer> playersByName = new java.util.HashMap<>();
|
||||
+ private final Map<String,ServerPlayer> playersByName = new java.util.concurrent.ConcurrentHashMap<>(); // Folia - region threading - change to CHM - Note: we do NOT expect concurrency PER KEY!
|
||||
public @Nullable String collideRuleTeamName; // Paper - Configurable player collision
|
||||
|
||||
// Folia start - region threading
|
||||
+1
-1
@@ -253,7 +253,7 @@ index 95787d6d29ddb8dca78506bb2a115fa612fdaa29..8c4b60e7c7c44f20e13e917bc0bc3b75
|
||||
|
||||
@Override
|
||||
diff --git a/net/minecraft/server/players/PlayerList.java b/net/minecraft/server/players/PlayerList.java
|
||||
index 259eb7574841b1b885093b534440f8a40db4e8e2..fcfa2b7b6e8f4c00763b8c23d6eb2699aced3e75 100644
|
||||
index c70d3169002681c5f2131ca8e98ef7d42c6dc4fa..ac5f82eaa9965f7b610f7df2d0cd4cb028951d65 100644
|
||||
--- a/net/minecraft/server/players/PlayerList.java
|
||||
+++ b/net/minecraft/server/players/PlayerList.java
|
||||
@@ -237,9 +237,11 @@ public abstract class PlayerList {
|
||||
+1
-1
@@ -9,7 +9,7 @@ As part of: Leaf (https://github.com/Winds-Studio/Leaf/blob/7f3e240bbe0970683c40
|
||||
Licensed under: MIT (https://github.com/Winds-Studio/Leaf/blob/7f3e240bbe0970683c40279a7a65f0fde47503b6/licenses/MIT.txt)
|
||||
|
||||
diff --git a/net/minecraft/server/players/PlayerList.java b/net/minecraft/server/players/PlayerList.java
|
||||
index fcfa2b7b6e8f4c00763b8c23d6eb2699aced3e75..7ee90d4a8d333c253077871cede3fed63ef23539 100644
|
||||
index ac5f82eaa9965f7b610f7df2d0cd4cb028951d65..206af6865525d238ae1501ef023f5e5ade11faa5 100644
|
||||
--- a/net/minecraft/server/players/PlayerList.java
|
||||
+++ b/net/minecraft/server/players/PlayerList.java
|
||||
@@ -1294,22 +1294,26 @@ public abstract class PlayerList {
|
||||
+2
-2
@@ -86,12 +86,12 @@ index 7443744e3f256983e52a1cefcaf66082e4a46a7b..b7553611723f7120c66e1f3e51d89df2
|
||||
}
|
||||
|
||||
diff --git a/net/minecraft/server/players/PlayerList.java b/net/minecraft/server/players/PlayerList.java
|
||||
index 7ee90d4a8d333c253077871cede3fed63ef23539..dffb0a5cbbcf7a225402bd2e364941b5271a2c24 100644
|
||||
index 206af6865525d238ae1501ef023f5e5ade11faa5..11c49f4b19a2a7221c34203fe0b26d256b4fac26 100644
|
||||
--- a/net/minecraft/server/players/PlayerList.java
|
||||
+++ b/net/minecraft/server/players/PlayerList.java
|
||||
@@ -134,6 +134,7 @@ public abstract class PlayerList {
|
||||
private org.bukkit.craftbukkit.CraftServer cserver;
|
||||
private final Map<String,ServerPlayer> playersByName = new java.util.HashMap<>();
|
||||
private final Map<String,ServerPlayer> playersByName = new java.util.concurrent.ConcurrentHashMap<>(); // Folia - region threading - change to CHM - Note: we do NOT expect concurrency PER KEY!
|
||||
public @Nullable String collideRuleTeamName; // Paper - Configurable player collision
|
||||
+ public final List<String> playedPlayers = new java.util.concurrent.CopyOnWriteArrayList<>(); // Leaf - Configurable vanilla username check
|
||||
|
||||
Reference in New Issue
Block a user