From ad484e5f733aa49a8e3804ae38c3bada5be38ad5 Mon Sep 17 00:00:00 2001 From: CraftBukkit/Spigot Date: Tue, 8 Mar 2022 07:25:44 +1100 Subject: [PATCH] SPIGOT-6959: Make /loot command ignore empty items for spawn By: Doc --- .../server/commands/CommandLoot.patch | 19 +++++++++++++++++++ 1 file changed, 19 insertions(+) create mode 100644 paper-server/nms-patches/net/minecraft/server/commands/CommandLoot.patch diff --git a/paper-server/nms-patches/net/minecraft/server/commands/CommandLoot.patch b/paper-server/nms-patches/net/minecraft/server/commands/CommandLoot.patch new file mode 100644 index 0000000000..5004695bcc --- /dev/null +++ b/paper-server/nms-patches/net/minecraft/server/commands/CommandLoot.patch @@ -0,0 +1,19 @@ +--- a/net/minecraft/server/commands/CommandLoot.java ++++ b/net/minecraft/server/commands/CommandLoot.java +@@ -90,7 +90,7 @@ + } + + private static > T addTargets(T t0, CommandLoot.c commandloot_c) { +- return t0.then(((LiteralArgumentBuilder) net.minecraft.commands.CommandDispatcher.literal("replace").then(net.minecraft.commands.CommandDispatcher.literal("entity").then(net.minecraft.commands.CommandDispatcher.argument("entities", ArgumentEntity.entities()).then(commandloot_c.construct(net.minecraft.commands.CommandDispatcher.argument("slot", ArgumentInventorySlot.slot()), (commandcontext, list, commandloot_a) -> { ++ return (T) t0.then(((LiteralArgumentBuilder) net.minecraft.commands.CommandDispatcher.literal("replace").then(net.minecraft.commands.CommandDispatcher.literal("entity").then(net.minecraft.commands.CommandDispatcher.argument("entities", ArgumentEntity.entities()).then(commandloot_c.construct(net.minecraft.commands.CommandDispatcher.argument("slot", ArgumentInventorySlot.slot()), (commandcontext, list, commandloot_a) -> { // CraftBukkit - decompile error + return entityReplace(ArgumentEntity.getEntities(commandcontext, "entities"), ArgumentInventorySlot.getSlot(commandcontext, "slot"), list.size(), list, commandloot_a); + }).then(commandloot_c.construct(net.minecraft.commands.CommandDispatcher.argument("count", IntegerArgumentType.integer(0)), (commandcontext, list, commandloot_a) -> { + return entityReplace(ArgumentEntity.getEntities(commandcontext, "entities"), ArgumentInventorySlot.getSlot(commandcontext, "slot"), IntegerArgumentType.getInteger(commandcontext, "count"), list, commandloot_a); +@@ -247,6 +247,7 @@ + private static int dropInWorld(CommandListenerWrapper commandlistenerwrapper, Vec3D vec3d, List list, CommandLoot.a commandloot_a) throws CommandSyntaxException { + WorldServer worldserver = commandlistenerwrapper.getLevel(); + ++ list.removeIf(ItemStack::isEmpty); // CraftBukkit - SPIGOT-6959 Remove empty items for avoid throw an error in new EntityItem + list.forEach((itemstack) -> { + EntityItem entityitem = new EntityItem(worldserver, vec3d.x, vec3d.y, vec3d.z, itemstack.copy()); +