From e0a6aa36e8b737c689d48b3e5262c9a5067083ae Mon Sep 17 00:00:00 2001 From: Doc Date: Mon, 17 Jan 2022 10:09:52 +1100 Subject: [PATCH] SPIGOT-6901: Add Support for Random in methods for LootTable --- src/main/java/org/bukkit/craftbukkit/CraftLootTable.java | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) diff --git a/src/main/java/org/bukkit/craftbukkit/CraftLootTable.java b/src/main/java/org/bukkit/craftbukkit/CraftLootTable.java index b250f644c..86868f8fd 100644 --- a/src/main/java/org/bukkit/craftbukkit/CraftLootTable.java +++ b/src/main/java/org/bukkit/craftbukkit/CraftLootTable.java @@ -41,7 +41,7 @@ public class CraftLootTable implements org.bukkit.loot.LootTable { @Override public Collection populateLoot(Random random, LootContext context) { - LootTableInfo nmsContext = convertContext(context); + LootTableInfo nmsContext = convertContext(context, random); List nmsItems = handle.getRandomItems(nmsContext); Collection bukkit = new ArrayList<>(nmsItems.size()); @@ -57,7 +57,7 @@ public class CraftLootTable implements org.bukkit.loot.LootTable { @Override public void fillInventory(Inventory inventory, Random random, LootContext context) { - LootTableInfo nmsContext = convertContext(context); + LootTableInfo nmsContext = convertContext(context, random); CraftInventory craftInventory = (CraftInventory) inventory; IInventory handle = craftInventory.getInventory(); @@ -70,11 +70,14 @@ public class CraftLootTable implements org.bukkit.loot.LootTable { return key; } - private LootTableInfo convertContext(LootContext context) { + private LootTableInfo convertContext(LootContext context, Random random) { Location loc = context.getLocation(); WorldServer handle = ((CraftWorld) loc.getWorld()).getHandle(); LootTableInfo.Builder builder = new LootTableInfo.Builder(handle); + if (random != null) { + builder = builder.withRandom(random); + } setMaybe(builder, LootContextParameters.ORIGIN, new Vec3D(loc.getX(), loc.getY(), loc.getZ())); if (getHandle() != LootTable.EMPTY) { // builder.luck(context.getLuck());