2023-06-14 08:07:38 +00:00
|
|
|
From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
|
|
|
|
From: Luna <lunahatesgogle@gmail.com>
|
2023-06-16 23:23:43 +00:00
|
|
|
Date: Tue, 13 Jun 2023 18:29:18 -0300
|
|
|
|
Subject: [PATCH] Improve validation of ResourceLocations
|
2023-06-14 08:07:38 +00:00
|
|
|
|
|
|
|
|
|
|
|
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
|
2023-06-16 23:23:43 +00:00
|
|
|
index 7a3ac883be4015d41a4c7582341a424b4bd6bbf4..6a6d34831a3c9a1a0fd47dbfd3a497c0b7923ce5 100644
|
2023-06-14 08:07:38 +00:00
|
|
|
--- 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 {
|
2023-06-16 23:23:43 +00:00
|
|
|
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());
|
|
|
|
}
|
|
|
|
|