Scissors/patches/server/0014-Prevent-attributes-with-invalid-namespaces-from-bein.patch

29 lines
1.6 KiB
Diff
Raw Normal View History

2022-07-28 03:57:50 +00:00
From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
From: Video <videogamesm12@gmail.com>
Date: Wed, 30 Mar 2022 18:20:09 -0600
Subject: [PATCH] Prevent attributes with invalid namespaces from being applied
to CraftMetaItems
diff --git a/src/main/java/org/bukkit/craftbukkit/inventory/CraftMetaItem.java b/src/main/java/org/bukkit/craftbukkit/inventory/CraftMetaItem.java
2024-01-24 22:30:21 +00:00
index 94155519f6838bb971a6fc50d4dd46d8b21187bf..d9d5c72a46798c0611c99dcf0413f7e47ebd29d5 100644
2022-07-28 03:57:50 +00:00
--- a/src/main/java/org/bukkit/craftbukkit/inventory/CraftMetaItem.java
+++ b/src/main/java/org/bukkit/craftbukkit/inventory/CraftMetaItem.java
2023-12-11 00:23:09 +00:00
@@ -47,6 +47,7 @@ import net.minecraft.nbt.NbtIo;
2022-07-28 03:57:50 +00:00
import net.minecraft.nbt.StringTag;
import net.minecraft.nbt.Tag;
import net.minecraft.network.chat.Component;
+import net.minecraft.resources.ResourceLocation; // Scissors
2022-07-28 03:57:50 +00:00
import net.minecraft.world.item.BlockItem;
2023-06-09 00:58:46 +00:00
import net.minecraft.world.level.block.state.BlockState;
2023-06-13 17:45:38 +00:00
import org.apache.commons.lang3.EnumUtils;
2024-01-18 23:05:55 +00:00
@@ -488,7 +489,7 @@ class CraftMetaItem implements ItemMeta, Damageable, Repairable, BlockDataMeta {
2022-07-28 03:57:50 +00:00
AttributeModifier attribMod = CraftAttributeInstance.convert(nmsModifier);
2023-12-22 04:38:15 +00:00
String attributeName = org.bukkit.craftbukkit.attribute.CraftAttributeMap.convertIfNeeded(entry.getString(CraftMetaItem.ATTRIBUTES_IDENTIFIER.NBT)); // Paper
2022-07-28 03:57:50 +00:00
- if (attributeName == null || attributeName.isEmpty()) {
+ if (attributeName == null || attributeName.isEmpty() || attributeName.length() > 256 || !ResourceLocation.isValidResourceLocation(attributeName)) { // Scissors
continue;
}