Skip to content

Commit 94f7f31

Browse files
committed
Another Thread safety fix following Gregor's idea but implemented more efficient without an access widener
1 parent ec0da69 commit 94f7f31

2 files changed

Lines changed: 26 additions & 1 deletion

File tree

Lines changed: 24 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,24 @@
1+
package me.voidxwalker.anchiale.mixin;
2+
3+
import net.minecraft.server.PlayerWorldManager;
4+
import net.minecraft.server.network.ServerPlayerEntity;
5+
import org.spongepowered.asm.mixin.Final;
6+
import org.spongepowered.asm.mixin.Mixin;
7+
import org.spongepowered.asm.mixin.Mutable;
8+
import org.spongepowered.asm.mixin.Shadow;
9+
import org.spongepowered.asm.mixin.injection.At;
10+
import org.spongepowered.asm.mixin.injection.Inject;
11+
import org.spongepowered.asm.mixin.injection.callback.CallbackInfo;
12+
13+
import java.util.List;
14+
import java.util.concurrent.CopyOnWriteArrayList;
15+
16+
@Mixin(targets = "net/minecraft/server/PlayerWorldManager$PlayerInstance")
17+
public class PlayerInstanceMixin {
18+
@Mutable @Shadow @Final private List<ServerPlayerEntity> field_8885;
19+
20+
@Inject(method = "<init>",at=@At("TAIL"))
21+
private void modifyField_8885(PlayerWorldManager i, int j, int playerWorldManager, CallbackInfo ci){
22+
field_8885 = new CopyOnWriteArrayList<>();
23+
}
24+
}

src/main/resources/anchiale.mixins.json

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,8 @@
55
"compatibilityLevel": "JAVA_8",
66
"mixins": [
77
"IntegratedServerMixin",
8-
"PlayerManagerMixin"
8+
"PlayerManagerMixin",
9+
"PlayerInstanceMixin"
910

1011
],
1112
"injectors": {

0 commit comments

Comments
 (0)