9
0
mirror of https://github.com/Winds-Studio/Leaf.git synced 2025-12-23 17:09:29 +00:00
Files
Leaf/patches/server/0050-MikuServer-Some-crash-issue-fixes.patch

45 lines
2.4 KiB
Diff

From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
From: wangxyper <wangxyper@163.com>
Date: Tue, 31 Jan 2023 09:17:46 +0800
Subject: [PATCH] MikuServer: Some crash issue fixes
Original license: MIT
Original project: https://github.com/MikuMC/MikuServer
diff --git a/src/main/java/net/minecraft/server/level/ChunkMap.java b/src/main/java/net/minecraft/server/level/ChunkMap.java
index 07b2cd85956dda47ed0a026cd837c5b9498213ac..7bcf64908bbd49131524e227b4f5ac274c175a55 100644
--- a/src/main/java/net/minecraft/server/level/ChunkMap.java
+++ b/src/main/java/net/minecraft/server/level/ChunkMap.java
@@ -1500,7 +1500,7 @@ public class ChunkMap extends ChunkStorage implements ChunkHolder.PlayerProvider
final Entity entity;
private final int range;
SectionPos lastSectionPos;
- public final Set<ServerPlayerConnection> seenBy = new ReferenceOpenHashSet<>(); // Paper - optimise map impl
+ public final Set<ServerPlayerConnection> seenBy = ReferenceSets.synchronize(new ReferenceOpenHashSet<>()); // Paper - optimise map impl //MikuServer
public TrackedEntity(Entity entity, int i, int j, boolean flag) {
this.serverEntity = new ServerEntity(ChunkMap.this.level, entity, j, flag, this::broadcast, this.seenBy); // CraftBukkit
diff --git a/src/main/java/net/minecraft/world/entity/player/Inventory.java b/src/main/java/net/minecraft/world/entity/player/Inventory.java
index 004091f2026f3c58d9bce49f1b07f6441df8da8a..7999e27d5dc86ff5d3d827fa2de1307317b46c70 100644
--- a/src/main/java/net/minecraft/world/entity/player/Inventory.java
+++ b/src/main/java/net/minecraft/world/entity/player/Inventory.java
@@ -4,6 +4,9 @@ import com.google.common.collect.ImmutableList;
import java.util.Iterator;
import java.util.List;
import java.util.function.Predicate;
+
+import it.unimi.dsi.fastutil.objects.ObjectArrayList;
+import it.unimi.dsi.fastutil.objects.ObjectLists;
import net.minecraft.CrashReport;
import net.minecraft.CrashReportCategory;
import net.minecraft.ReportedException;
@@ -49,7 +52,7 @@ public class Inventory implements Container, Nameable {
private int timesChanged;
// CraftBukkit start - add fields and methods
- public List<HumanEntity> transaction = new java.util.ArrayList<HumanEntity>();
+ public List<HumanEntity> transaction = ObjectLists.synchronize(new ObjectArrayList<>());
private int maxStack = MAX_STACK;
public List<ItemStack> getContents() {