From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Taiyou06 Date: Sat, 22 Mar 2025 00:07:38 +0100 Subject: [PATCH] Optimize addOrUpdateTransientModifier diff --git a/net/minecraft/world/entity/ai/attributes/AttributeInstance.java b/net/minecraft/world/entity/ai/attributes/AttributeInstance.java index 9f09d78a7dac12c7f1b06029d32ad93fae0c2aec..2af5cd6f2b9541cb28075fda014350235a4f72c7 100644 --- a/net/minecraft/world/entity/ai/attributes/AttributeInstance.java +++ b/net/minecraft/world/entity/ai/attributes/AttributeInstance.java @@ -109,8 +109,13 @@ public class AttributeInstance { } public void addOrUpdateTransientModifier(AttributeModifier modifier) { - AttributeModifier attributeModifier = this.modifierById.put(modifier.id(), modifier); - if (modifier != attributeModifier) { + // Leaf start - Optimize addOrUpdateTransientModifier + // First check if we already have the same modifier instance to avoid unnecessary put operations + AttributeModifier existingModifier = this.modifierById.get(modifier.id()); + // Only perform updates if the modifier is new or different + if (existingModifier != modifier) { + this.modifierById.put(modifier.id(), modifier); + // Leaf end - Optimize addOrUpdateTransientModifier this.getModifiers(modifier.operation()).put(modifier.id(), modifier); this.setDirty(); }