diff --git a/paper-server/patches/sources/net/minecraft/network/protocol/game/ClientboundSetEntityDataPacket.java.patch b/paper-server/patches/sources/net/minecraft/network/protocol/game/ClientboundSetEntityDataPacket.java.patch index 1987b9dfe1eb..d98c5525116d 100644 --- a/paper-server/patches/sources/net/minecraft/network/protocol/game/ClientboundSetEntityDataPacket.java.patch +++ b/paper-server/patches/sources/net/minecraft/network/protocol/game/ClientboundSetEntityDataPacket.java.patch @@ -4,7 +4,7 @@ } private static void pack(List> dataValues, RegistryFriendlyByteBuf buffer) { -+ try (io.papermc.paper.util.ItemObfuscationSession ignored = io.papermc.paper.util.ItemObfuscationSession.start(io.papermc.paper.util.ItemObfuscationBinding.LEVEL)) { // Paper - data sanitization ++ try (io.papermc.paper.util.ItemObfuscationSession ignored = io.papermc.paper.util.ItemObfuscationSession.start(io.papermc.paper.configuration.GlobalConfiguration.get().anticheat.obfuscation.items.binding.level)) { // Paper - data sanitization for (SynchedEntityData.DataValue dataValue : dataValues) { dataValue.write(buffer); } diff --git a/paper-server/patches/sources/net/minecraft/network/protocol/game/ClientboundSetEquipmentPacket.java.patch b/paper-server/patches/sources/net/minecraft/network/protocol/game/ClientboundSetEquipmentPacket.java.patch index 3e84b9b92c37..0021ba7c530b 100644 --- a/paper-server/patches/sources/net/minecraft/network/protocol/game/ClientboundSetEquipmentPacket.java.patch +++ b/paper-server/patches/sources/net/minecraft/network/protocol/game/ClientboundSetEquipmentPacket.java.patch @@ -18,7 +18,7 @@ buffer.writeVarInt(this.entity); int size = this.slots.size(); -+ try (final io.papermc.paper.util.ItemObfuscationSession ignored = io.papermc.paper.util.ItemObfuscationSession.start(this.sanitize ? io.papermc.paper.util.ItemObfuscationBinding.LEVEL : io.papermc.paper.util.ItemObfuscationSession.ObfuscationLevel.NONE)) { // Paper - data sanitization ++ try (final io.papermc.paper.util.ItemObfuscationSession ignored = io.papermc.paper.util.ItemObfuscationSession.start(this.sanitize ? io.papermc.paper.configuration.GlobalConfiguration.get().anticheat.obfuscation.items.binding.level : io.papermc.paper.util.ItemObfuscationSession.ObfuscationLevel.NONE)) { // Paper - data sanitization for (int i = 0; i < size; i++) { Pair pair = this.slots.get(i); EquipmentSlot equipmentSlot = pair.getFirst(); diff --git a/paper-server/src/main/java/io/papermc/paper/configuration/GlobalConfiguration.java b/paper-server/src/main/java/io/papermc/paper/configuration/GlobalConfiguration.java index 2f8927d0cdbd..aabc7b315308 100644 --- a/paper-server/src/main/java/io/papermc/paper/configuration/GlobalConfiguration.java +++ b/paper-server/src/main/java/io/papermc/paper/configuration/GlobalConfiguration.java @@ -391,7 +391,7 @@ public class Items extends ConfigurationPart { @PostProcess public void bindDataSanitizer() { - this.binding = new ItemObfuscationBinding(GlobalConfiguration.this); + this.binding = new ItemObfuscationBinding(this); } } } diff --git a/paper-server/src/main/java/io/papermc/paper/util/ItemObfuscationBinding.java b/paper-server/src/main/java/io/papermc/paper/util/ItemObfuscationBinding.java index 7c16ca5eb20c..db7ac8a93b6a 100644 --- a/paper-server/src/main/java/io/papermc/paper/util/ItemObfuscationBinding.java +++ b/paper-server/src/main/java/io/papermc/paper/util/ItemObfuscationBinding.java @@ -26,8 +26,7 @@ public final class ItemObfuscationBinding { private final BoundObfuscationConfiguration base; private final Map overrides; - public ItemObfuscationBinding(final GlobalConfiguration config) { - final GlobalConfiguration.Anticheat.Obfuscation.Items items = config.anticheat.obfuscation.items; + public ItemObfuscationBinding(final GlobalConfiguration.Anticheat.Obfuscation.Items items) { this.level = items.enableItemObfuscation ? ItemObfuscationSession.ObfuscationLevel.ALL : ItemObfuscationSession.ObfuscationLevel.OVERSIZED; this.base = bind(items.allModels); final Map overrides = new HashMap<>(); @@ -79,6 +78,9 @@ private static BoundObfuscationConfiguration bind(final AssetObfuscationConfigur } public BoundObfuscationConfiguration getAssetObfuscation(final ItemStack itemStack) { + if (this.overrides.isEmpty()) { + return this.base; + } return this.overrides.getOrDefault(itemStack.get(DataComponents.ITEM_MODEL), this.base); }