From 18a2b46166e009ee986209e0687f423c1771bc7c Mon Sep 17 00:00:00 2001 From: Cloudburst Date: Sat, 15 May 2021 20:00:19 +0200 Subject: [PATCH] .give improvements --- .../rejects/commands/GiveCommand.java | 39 +++++++++++++++++-- .../cloudburst/rejects/utils/GiveUtils.java | 13 +++++++ 2 files changed, 49 insertions(+), 3 deletions(-) diff --git a/src/main/java/cloudburst/rejects/commands/GiveCommand.java b/src/main/java/cloudburst/rejects/commands/GiveCommand.java index 413acc2..ac45817 100644 --- a/src/main/java/cloudburst/rejects/commands/GiveCommand.java +++ b/src/main/java/cloudburst/rejects/commands/GiveCommand.java @@ -6,8 +6,7 @@ import com.mojang.brigadier.builder.LiteralArgumentBuilder; import net.minecraft.command.CommandSource; import net.minecraft.command.argument.ItemStackArgument; import net.minecraft.command.argument.ItemStackArgumentType; -import net.minecraft.item.ItemStack; -import net.minecraft.item.Items; +import net.minecraft.item.*; import net.minecraft.nbt.*; import net.minecraft.network.packet.c2s.play.CreativeInventoryActionC2SPacket; @@ -17,6 +16,7 @@ import minegame159.meteorclient.utils.player.ChatUtils; import minegame159.meteorclient.utils.player.SlotUtils; import net.minecraft.text.LiteralText; import net.minecraft.text.Text; +import net.minecraft.util.registry.Registry; import static cloudburst.rejects.utils.GiveUtils.createPreset; import static com.mojang.brigadier.Command.SINGLE_SUCCESS; @@ -32,10 +32,43 @@ public class GiveCommand extends Command { private final Collection PRESETS = Arrays.asList("forceop", "negs", "stacked", "spawners", "bookban", "test", "eggs"); private final Collection CONTAINERS = Arrays.asList("chest", "shulker", "trapped_chest", "barrel", - "dispenser"); + "dispenser", "egg"); @Override public void build(LiteralArgumentBuilder builder) { + builder.then(literal("egg").executes(ctx -> { + ItemStack inHand = mc.player.getMainHandStack(); + ItemStack item = new ItemStack(Items.STRIDER_SPAWN_EGG); + CompoundTag ct = new CompoundTag(); + if (inHand.getItem() instanceof BlockItem) { + ct.putInt("Time",1); + ct.putString("id", "minecraft:falling_block"); + ct.put("BlockState", new CompoundTag()); + ct.getCompound("BlockState").putString("Name", Registry.ITEM.getId(inHand.getItem()).toString()); + if (inHand.hasTag() && inHand.getTag().contains("BlockEntityTag")) { + ct.put("TileEntityData", inHand.getTag().getCompound("BlockEntityTag")); + } + CompoundTag t = new CompoundTag(); + t.put("EntityTag", ct); + item.setTag(t); + } else { + ct.putString("id", "minecraft:item"); + CompoundTag it = new CompoundTag(); + it.putString("id", Registry.ITEM.getId(inHand.getItem()).toString()); + it.putInt("Count",inHand.getCount()); + if (inHand.hasTag()) { + it.put("tag", inHand.getTag()); + } + ct.put("Item",it); + } + CompoundTag t = new CompoundTag(); + t.put("EntityTag", ct); + item.setTag(t); + item.setCustomName(inHand.getName()); + addItem(item); + return SINGLE_SUCCESS; + })); + builder.then(literal("holo").then(argument("message", StringArgumentType.greedyString()).executes(ctx -> { if (!mc.player.abilities.creativeMode) { ChatUtils.error("Not In Creative Mode!"); diff --git a/src/main/java/cloudburst/rejects/utils/GiveUtils.java b/src/main/java/cloudburst/rejects/utils/GiveUtils.java index 8cd4113..29de3e5 100644 --- a/src/main/java/cloudburst/rejects/utils/GiveUtils.java +++ b/src/main/java/cloudburst/rejects/utils/GiveUtils.java @@ -5,6 +5,7 @@ import minegame159.meteorclient.utils.player.ChatUtils; import net.minecraft.client.MinecraftClient; import net.minecraft.item.ItemStack; import net.minecraft.item.Items; +import net.minecraft.nbt.CompoundTag; import net.minecraft.nbt.StringNbtReader; import java.util.Random; @@ -28,6 +29,9 @@ public class GiveUtils { case "dispenser": item = new ItemStack(Items.DISPENSER); break; + case "egg": + item = new ItemStack(Items.CHEST); + break; default: item = new ItemStack(Items.PINK_SHULKER_BOX); break; @@ -267,6 +271,15 @@ public class GiveUtils { default: break; } + + if (container.equals("egg")) { + CompoundTag ct = new CompoundTag(); + ct.put("EntityTag", StringNbtReader.parse("{Time:1,id:\"minecraft:falling_block\",BlockState:{Name:\"minecraft:chest\"}}")); + ((CompoundTag) ct.get("EntityTag")).put("TileEntityData", item.getTag().get("BlockEntityTag")); + ct.put("display", item.getTag().get("display")); + item = new ItemStack(Items.STRIDER_SPAWN_EGG); + item.setTag(ct); + } } catch (CommandSyntaxException e) { ChatUtils.error("An NBT parsing error occured"); }