mirror of
https://github.com/Winds-Studio/Leaf.git
synced 2025-12-23 08:59:23 +00:00
57 lines
2.7 KiB
Diff
57 lines
2.7 KiB
Diff
From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
|
|
From: wangxyper <wangxyper@163.com>
|
|
Date: Wed, 11 Jan 2023 20:24:40 +0800
|
|
Subject: [PATCH] Hearse: Fix some concurrent problems in LivingEntity
|
|
|
|
Original license: MIT
|
|
Original project: https://github.com/NaturalCodeClub/HearseRewrite
|
|
|
|
diff --git a/src/main/java/net/minecraft/world/entity/LivingEntity.java b/src/main/java/net/minecraft/world/entity/LivingEntity.java
|
|
index 93c32dd39693b37efaa05af0486e1bdd298661f3..cdb33a430d0d1671899ab8bb0911193a5688af23 100644
|
|
--- a/src/main/java/net/minecraft/world/entity/LivingEntity.java
|
|
+++ b/src/main/java/net/minecraft/world/entity/LivingEntity.java
|
|
@@ -17,6 +17,7 @@ import java.util.List;
|
|
import java.util.Map;
|
|
import java.util.Optional;
|
|
import java.util.UUID;
|
|
+import java.util.concurrent.CopyOnWriteArrayList;
|
|
import java.util.function.Predicate;
|
|
import javax.annotation.Nullable;
|
|
import net.minecraft.BlockUtil;
|
|
@@ -181,7 +182,7 @@ public abstract class LivingEntity extends Entity {
|
|
public static final float EXTRA_RENDER_CULLING_SIZE_WITH_BIG_HAT = 0.5F;
|
|
private final AttributeMap attributes;
|
|
public CombatTracker combatTracker = new CombatTracker(this);
|
|
- public final Map<MobEffect, MobEffectInstance> activeEffects = Maps.newHashMap();
|
|
+ public final Map<MobEffect, MobEffectInstance> activeEffects = Maps.newConcurrentMap();
|
|
private final NonNullList<ItemStack> lastHandItemStacks;
|
|
private final NonNullList<ItemStack> lastArmorItemStacks;
|
|
public boolean swinging;
|
|
@@ -257,7 +258,7 @@ public abstract class LivingEntity extends Entity {
|
|
// CraftBukkit start
|
|
public int expToDrop;
|
|
public boolean forceDrops;
|
|
- public ArrayList<org.bukkit.inventory.ItemStack> drops = new ArrayList<org.bukkit.inventory.ItemStack>();
|
|
+ public List<org.bukkit.inventory.ItemStack> drops = new CopyOnWriteArrayList<>();
|
|
public final org.bukkit.craftbukkit.attribute.CraftAttributeMap craftAttributes;
|
|
public boolean collides = true;
|
|
public Set<UUID> collidableExemptions = new HashSet<>();
|
|
@@ -875,7 +876,7 @@ public abstract class LivingEntity extends Entity {
|
|
|
|
// CraftBukkit start
|
|
private boolean isTickingEffects = false;
|
|
- private List<ProcessableEffect> effectsToProcess = Lists.newArrayList();
|
|
+ private List<ProcessableEffect> effectsToProcess = Lists.newCopyOnWriteArrayList();
|
|
|
|
private static class ProcessableEffect {
|
|
|
|
@@ -1779,7 +1780,7 @@ public abstract class LivingEntity extends Entity {
|
|
}
|
|
}); // Paper end
|
|
this.postDeathDropItems(deathEvent); // Paper
|
|
- this.drops = new ArrayList<>();
|
|
+ this.drops = new CopyOnWriteArrayList<>();
|
|
// CraftBukkit end
|
|
|
|
// this.dropInventory();// CraftBukkit - moved up
|