From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Luna Date: Tue, 13 Jun 2023 18:29:18 -0300 Subject: [PATCH] Improve validation of ResourceLocations diff --git a/src/main/java/net/minecraft/world/level/block/entity/AbstractFurnaceBlockEntity.java b/src/main/java/net/minecraft/world/level/block/entity/AbstractFurnaceBlockEntity.java index 430810b9cc554dfb3bb0972c103c8a36e8db67ef..b2832c75beab2a1fa077b0317392b6aa46134ce6 100644 --- a/src/main/java/net/minecraft/world/level/block/entity/AbstractFurnaceBlockEntity.java +++ b/src/main/java/net/minecraft/world/level/block/entity/AbstractFurnaceBlockEntity.java @@ -300,7 +300,12 @@ public abstract class AbstractFurnaceBlockEntity extends BaseContainerBlockEntit while (iterator.hasNext()) { String s = (String) iterator.next(); - this.recipesUsed.put(new ResourceLocation(s), nbttagcompound1.getInt(s)); + // Scissors start + final ResourceLocation rl = ResourceLocation.tryParse(s); + if (rl != null) { + this.recipesUsed.put(rl, nbttagcompound1.getInt(s)); + } + // Scissors end } // Paper start - cook speed API diff --git a/src/main/java/net/minecraft/world/level/block/entity/BrushableBlockEntity.java b/src/main/java/net/minecraft/world/level/block/entity/BrushableBlockEntity.java index 7a3ac883be4015d41a4c7582341a424b4bd6bbf4..6a6d34831a3c9a1a0fd47dbfd3a497c0b7923ce5 100644 --- a/src/main/java/net/minecraft/world/level/block/entity/BrushableBlockEntity.java +++ b/src/main/java/net/minecraft/world/level/block/entity/BrushableBlockEntity.java @@ -199,7 +199,7 @@ public class BrushableBlockEntity extends BlockEntity { private boolean tryLoadLootTable(CompoundTag nbt) { if (nbt.contains("LootTable", 8)) { - this.lootTable = new ResourceLocation(nbt.getString("LootTable")); + this.lootTable = ResourceLocation.tryParse(nbt.getString("LootTable")); // Scissors this.lootTableSeed = nbt.getLong("LootTableSeed"); return true; } else { diff --git a/src/main/java/org/bukkit/craftbukkit/util/CraftNamespacedKey.java b/src/main/java/org/bukkit/craftbukkit/util/CraftNamespacedKey.java index 5014192edb9616ce725fc1592832034789527b6f..64da1b0afd51720803aba0d9e86d0b1743bdb0da 100644 --- a/src/main/java/org/bukkit/craftbukkit/util/CraftNamespacedKey.java +++ b/src/main/java/org/bukkit/craftbukkit/util/CraftNamespacedKey.java @@ -21,6 +21,7 @@ public final class CraftNamespacedKey { } public static NamespacedKey fromMinecraft(ResourceLocation minecraft) { + if (minecraft == null) throw new IllegalArgumentException("Null ResourceLocation provided"); // Scissors return new NamespacedKey(minecraft.getNamespace(), minecraft.getPath()); }