diff --git a/patches/server/0013-Even-more-ResourceLocation-validation-and-log-spam-f.patch b/patches/server/0013-Even-more-ResourceLocation-validation-and-log-spam-f.patch new file mode 100644 index 0000000..86bb16e --- /dev/null +++ b/patches/server/0013-Even-more-ResourceLocation-validation-and-log-spam-f.patch @@ -0,0 +1,82 @@ +From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 +From: Video +Date: Sun, 20 Mar 2022 03:04:33 -0600 +Subject: [PATCH] Even more ResourceLocation validation and log spam fixes + + +diff --git a/src/main/java/net/minecraft/world/entity/AreaEffectCloud.java b/src/main/java/net/minecraft/world/entity/AreaEffectCloud.java +index 02172fdcf587904258387d309938fb379a300524..3c60094119a2b51d5fbab6c559c43293913f6204 100644 +--- a/src/main/java/net/minecraft/world/entity/AreaEffectCloud.java ++++ b/src/main/java/net/minecraft/world/entity/AreaEffectCloud.java +@@ -420,7 +420,7 @@ public class AreaEffectCloud extends Entity { + try { + this.setParticle(ParticleArgument.readParticle(new StringReader(nbt.getString("Particle")))); + } catch (CommandSyntaxException commandsyntaxexception) { +- AreaEffectCloud.LOGGER.warn("Couldn't load custom particle {}", nbt.getString("Particle"), commandsyntaxexception); ++ // Scissors - Don't log custom particle errors + } + } + +diff --git a/src/main/java/org/bukkit/craftbukkit/block/CraftLootable.java b/src/main/java/org/bukkit/craftbukkit/block/CraftLootable.java +index e49eece9bff3a53469673d03a7bbf8f9cf8776b8..a49f32e9649155b6af4b1f236e4e8142d730e7e8 100644 +--- a/src/main/java/org/bukkit/craftbukkit/block/CraftLootable.java ++++ b/src/main/java/org/bukkit/craftbukkit/block/CraftLootable.java +@@ -30,8 +30,14 @@ public abstract class CraftLootable + return null; + } + +- ResourceLocation key = getSnapshot().lootTable; +- return Bukkit.getLootTable(CraftNamespacedKey.fromMinecraft(key)); ++ // Scissors start - Return a null loot table if the specified loot table is not valid ++ try { ++ ResourceLocation key = getSnapshot().lootTable; ++ return Bukkit.getLootTable(CraftNamespacedKey.fromMinecraft(key)); ++ } catch (Exception ex) { ++ return null; ++ } ++ // Scissors end + } + + @Override +diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftMinecartContainer.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftMinecartContainer.java +index 0dd0ce9a9b3253e87eda12354249ec2fd2a33cf2..b6920f9432ca1736afbe775186fbbcf11cf046fb 100644 +--- a/src/main/java/org/bukkit/craftbukkit/entity/CraftMinecartContainer.java ++++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftMinecartContainer.java +@@ -33,8 +33,14 @@ public abstract class CraftMinecartContainer extends CraftMinecart implements Lo + return null; // return empty loot table? + } + +- NamespacedKey key = CraftNamespacedKey.fromMinecraft(nmsTable); +- return Bukkit.getLootTable(key); ++ // Scissors start - Return a null loot table if the specified loot table is not valid ++ try { ++ NamespacedKey key = CraftNamespacedKey.fromMinecraft(nmsTable); ++ return Bukkit.getLootTable(key); ++ } catch (Exception ex) { ++ return null; ++ } ++ // Scissors end + } + + @Override +diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftMob.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftMob.java +index 5a43e420f14fa52d71d41ff3694a179e7a1a5be3..488ccdeb867dcd3aaae4bce77da8b7a11d07eddc 100644 +--- a/src/main/java/org/bukkit/craftbukkit/entity/CraftMob.java ++++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftMob.java +@@ -67,8 +67,14 @@ public abstract class CraftMob extends CraftLivingEntity implements Mob { + this.getHandle().lootTable = this.getHandle().getDefaultLootTable(); + } + +- NamespacedKey key = CraftNamespacedKey.fromMinecraft(this.getHandle().lootTable); +- return Bukkit.getLootTable(key); ++ // Scissors start - Return a null loot table if the specified loot table is not valid ++ try { ++ NamespacedKey key = CraftNamespacedKey.fromMinecraft(this.getHandle().lootTable); ++ return Bukkit.getLootTable(key); ++ } catch (Exception ex) { ++ return null; ++ } ++ // Scissors end + } + + @Override