45 lines
		
	
	
	
		
			3 KiB
			
		
	
	
	
		
			Diff
		
	
	
	
	
	
			
		
		
	
	
			45 lines
		
	
	
	
		
			3 KiB
			
		
	
	
	
		
			Diff
		
	
	
	
	
	
From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
 | 
						|
From: Nassim Jahnke <nassim@njahnke.dev>
 | 
						|
Date: Sun, 24 Oct 2021 15:49:35 +0200
 | 
						|
Subject: [PATCH] Fix Bukkit NamespacedKey shenanigans
 | 
						|
 | 
						|
 | 
						|
diff --git a/src/main/java/com/destroystokyo/paper/loottable/PaperMinecartLootableInventory.java b/src/main/java/com/destroystokyo/paper/loottable/PaperMinecartLootableInventory.java
 | 
						|
index 0000000000000000000000000000000000000000..0000000000000000000000000000000000000000 100644
 | 
						|
--- a/src/main/java/com/destroystokyo/paper/loottable/PaperMinecartLootableInventory.java
 | 
						|
+++ b/src/main/java/com/destroystokyo/paper/loottable/PaperMinecartLootableInventory.java
 | 
						|
@@ -0,0 +0,0 @@ public class PaperMinecartLootableInventory implements PaperLootableEntityInvent
 | 
						|
 
 | 
						|
     @Override
 | 
						|
     public org.bukkit.loot.LootTable getLootTable() {
 | 
						|
-        return entity.lootTable != null ? Bukkit.getLootTable(CraftNamespacedKey.fromMinecraft(entity.lootTable)) : null;
 | 
						|
+        return entity.lootTable != null && !entity.lootTable.getPath().isEmpty() ? Bukkit.getLootTable(CraftNamespacedKey.fromMinecraft(entity.lootTable)) : null;
 | 
						|
     }
 | 
						|
 
 | 
						|
     @Override
 | 
						|
diff --git a/src/main/java/com/destroystokyo/paper/loottable/PaperTileEntityLootableInventory.java b/src/main/java/com/destroystokyo/paper/loottable/PaperTileEntityLootableInventory.java
 | 
						|
index 0000000000000000000000000000000000000000..0000000000000000000000000000000000000000 100644
 | 
						|
--- a/src/main/java/com/destroystokyo/paper/loottable/PaperTileEntityLootableInventory.java
 | 
						|
+++ b/src/main/java/com/destroystokyo/paper/loottable/PaperTileEntityLootableInventory.java
 | 
						|
@@ -0,0 +0,0 @@ public class PaperTileEntityLootableInventory implements PaperLootableBlockInven
 | 
						|
 
 | 
						|
     @Override
 | 
						|
     public org.bukkit.loot.LootTable getLootTable() {
 | 
						|
-        return tileEntityLootable.lootTable != null ? Bukkit.getLootTable(CraftNamespacedKey.fromMinecraft(tileEntityLootable.lootTable)) : null;
 | 
						|
+        return tileEntityLootable.lootTable != null && !tileEntityLootable.lootTable.getPath().isEmpty() ? Bukkit.getLootTable(CraftNamespacedKey.fromMinecraft(tileEntityLootable.lootTable)) : null;
 | 
						|
     }
 | 
						|
 
 | 
						|
     @Override
 | 
						|
diff --git a/src/main/java/org/bukkit/craftbukkit/util/CraftNamespacedKey.java b/src/main/java/org/bukkit/craftbukkit/util/CraftNamespacedKey.java
 | 
						|
index 0000000000000000000000000000000000000000..0000000000000000000000000000000000000000 100644
 | 
						|
--- a/src/main/java/org/bukkit/craftbukkit/util/CraftNamespacedKey.java
 | 
						|
+++ b/src/main/java/org/bukkit/craftbukkit/util/CraftNamespacedKey.java
 | 
						|
@@ -0,0 +0,0 @@ public final class CraftNamespacedKey {
 | 
						|
             return null;
 | 
						|
         }
 | 
						|
         ResourceLocation minecraft = ResourceLocation.tryParse(string);
 | 
						|
-        return (minecraft == null) ? null : CraftNamespacedKey.fromMinecraft(minecraft);
 | 
						|
+        return (minecraft == null || minecraft.getPath().isEmpty()) ? null : CraftNamespacedKey.fromMinecraft(minecraft); // Paper - Bukkit's parser does not match Vanilla for empty paths
 | 
						|
     }
 | 
						|
 
 | 
						|
     public static NamespacedKey fromString(String string) {
 |