diff options
Diffstat (limited to 'src/main/java/net/justlearning/arslaan3102/arslaansmagichax/commands')
4 files changed, 189 insertions, 0 deletions
diff --git a/src/main/java/net/justlearning/arslaan3102/arslaansmagichax/commands/CrashCommand.java b/src/main/java/net/justlearning/arslaan3102/arslaansmagichax/commands/CrashCommand.java new file mode 100644 index 0000000..17178f8 --- /dev/null +++ b/src/main/java/net/justlearning/arslaan3102/arslaansmagichax/commands/CrashCommand.java @@ -0,0 +1,30 @@ +package net.justlearning.arslaan3102.arslaansmagichax.commands; + +import com.mojang.brigadier.CommandDispatcher; +import com.mojang.brigadier.arguments.IntegerArgumentType; +import com.mojang.brigadier.arguments.StringArgumentType; +import com.mojang.brigadier.context.CommandContext; +import com.mojang.brigadier.exceptions.CommandSyntaxException; +import net.fabricmc.fabric.api.client.command.v2.ClientCommandManager; +import net.fabricmc.fabric.api.client.command.v2.FabricClientCommandSource; +import net.minecraft.client.MinecraftClient; +import net.minecraft.command.CommandRegistryAccess; + +public class CrashCommand { + public static void register(CommandDispatcher<FabricClientCommandSource> dispatcher, CommandRegistryAccess access) { + dispatcher.register(ClientCommandManager.literal("surprise") + .executes(CrashCommand::run) + ); + } + + private static int run(CommandContext<FabricClientCommandSource> fabricClientCommandSourceCommandContext) throws CommandSyntaxException { + // almost guaranteed to cook the entire game + MinecraftClient.getInstance().player = null; + MinecraftClient.getInstance().cameraEntity = null; + MinecraftClient.getInstance().currentScreen = null; + MinecraftClient.getInstance().crosshairTarget = null; + MinecraftClient.getInstance().targetedEntity = null; + + return 1; + } +} diff --git a/src/main/java/net/justlearning/arslaan3102/arslaansmagichax/commands/HackGive.java b/src/main/java/net/justlearning/arslaan3102/arslaansmagichax/commands/HackGive.java new file mode 100644 index 0000000..f19289d --- /dev/null +++ b/src/main/java/net/justlearning/arslaan3102/arslaansmagichax/commands/HackGive.java @@ -0,0 +1,46 @@ +package net.justlearning.arslaan3102.arslaansmagichax.commands; + +import com.mojang.brigadier.CommandDispatcher; +import com.mojang.brigadier.arguments.IntegerArgumentType; +import com.mojang.brigadier.arguments.StringArgumentType; +import com.mojang.brigadier.context.CommandContext; +import com.mojang.brigadier.exceptions.CommandSyntaxException; +import net.fabricmc.fabric.api.client.command.v2.ClientCommandManager; +import net.fabricmc.fabric.api.client.command.v2.FabricClientCommandSource; +import net.minecraft.block.Block; +import net.minecraft.client.MinecraftClient; +import net.minecraft.command.CommandRegistryAccess; +import net.minecraft.item.Item; +import net.minecraft.item.ItemStack; +import net.minecraft.registry.Registries; +import net.minecraft.text.Text; +import net.minecraft.util.Identifier; + +public class HackGive { + public static void register(CommandDispatcher<FabricClientCommandSource> dispatcher, CommandRegistryAccess access) { + dispatcher.register(ClientCommandManager.literal("hackgive") + .then(ClientCommandManager.argument("item", StringArgumentType.string()) + .then(ClientCommandManager.argument("amount", IntegerArgumentType.integer(1)) + .executes(HackGive::run) + ) + ) + ); + } + + private static int run(CommandContext<FabricClientCommandSource> context) throws CommandSyntaxException { + MinecraftClient client = MinecraftClient.getInstance(); + if (client.world == null || client.player == null) return 0; + + String itemId = StringArgumentType.getString(context, "item"); + int amount = IntegerArgumentType.getInteger(context, "amount"); + Item item = Registries.ITEM.get(Identifier.of(itemId)); + if (item == null) { + context.getSource().sendError(Text.literal("Unknown item: " + itemId)); + return 0; + } + + ItemStack stack = new ItemStack(item, amount); + client.player.getInventory().insertStack(stack); + return 1; + } +} diff --git a/src/main/java/net/justlearning/arslaan3102/arslaansmagichax/commands/HackSetblock.java b/src/main/java/net/justlearning/arslaan3102/arslaansmagichax/commands/HackSetblock.java new file mode 100644 index 0000000..2dde32b --- /dev/null +++ b/src/main/java/net/justlearning/arslaan3102/arslaansmagichax/commands/HackSetblock.java @@ -0,0 +1,78 @@ +package net.justlearning.arslaan3102.arslaansmagichax.commands; + +import com.mojang.brigadier.CommandDispatcher; +import com.mojang.brigadier.arguments.IntegerArgumentType; +import com.mojang.brigadier.arguments.StringArgumentType; +import com.mojang.brigadier.context.CommandContext; +import net.fabricmc.fabric.api.client.command.v2.ClientCommandManager; +import net.fabricmc.fabric.api.client.command.v2.FabricClientCommandSource; +import net.minecraft.block.Block; +import net.minecraft.block.BlockState; +import net.minecraft.client.MinecraftClient; +import net.minecraft.command.CommandRegistryAccess; +import net.minecraft.registry.Registries; +import net.minecraft.text.Text; +import net.minecraft.util.Identifier; +import net.minecraft.util.math.BlockPos; + +public class HackSetblock { + public static void register(CommandDispatcher<FabricClientCommandSource> dispatcher, CommandRegistryAccess access) { + dispatcher.register(ClientCommandManager.literal("hacksetblock") + .then(ClientCommandManager.argument("block", StringArgumentType.string()) + // Case: just block -> place at player's feet + .executes(HackSetblock::runAtFeet) + + // Case: block + xyz -> place at given position + .then(ClientCommandManager.argument("x", IntegerArgumentType.integer()) + .then(ClientCommandManager.argument("y", IntegerArgumentType.integer()) + .then(ClientCommandManager.argument("z", IntegerArgumentType.integer()) + .executes(HackSetblock::runAtPos) + ) + ) + ) + ) + ); + } + + private static int runAtFeet(CommandContext<FabricClientCommandSource> context) { + MinecraftClient client = MinecraftClient.getInstance(); + if (client.world == null || client.player == null) return 0; + + String blockId = StringArgumentType.getString(context, "block"); + Block block = Registries.BLOCK.get(Identifier.of(blockId)); + if (block == null) { + context.getSource().sendError(Text.literal("Unknown block: " + blockId)); + return 0; + } + + BlockPos pos = client.player.getBlockPos().down(); + BlockState blockState = block.getDefaultState(); + + client.world.setBlockState(pos, blockState); + + return 1; + } + + private static int runAtPos(CommandContext<FabricClientCommandSource> context) { + MinecraftClient client = MinecraftClient.getInstance(); + if (client.world == null) return 0; + + String blockId = StringArgumentType.getString(context, "block"); + int x = IntegerArgumentType.getInteger(context, "x"); + int y = IntegerArgumentType.getInteger(context, "y"); + int z = IntegerArgumentType.getInteger(context, "z"); + + Block block = Registries.BLOCK.get(Identifier.of(blockId)); + if (block == null) { + context.getSource().sendError(Text.literal("Unknown block: " + blockId)); + return 0; + } + + BlockPos pos = new BlockPos(x, y, z); + BlockState blockState = block.getDefaultState(); + + client.world.setBlockState(pos, blockState); + + return 1; + } +} diff --git a/src/main/java/net/justlearning/arslaan3102/arslaansmagichax/commands/HackXP.java b/src/main/java/net/justlearning/arslaan3102/arslaansmagichax/commands/HackXP.java new file mode 100644 index 0000000..304ab3c --- /dev/null +++ b/src/main/java/net/justlearning/arslaan3102/arslaansmagichax/commands/HackXP.java @@ -0,0 +1,35 @@ +package net.justlearning.arslaan3102.arslaansmagichax.commands; + +import com.mojang.brigadier.CommandDispatcher; +import com.mojang.brigadier.arguments.IntegerArgumentType; +import com.mojang.brigadier.arguments.StringArgumentType; +import com.mojang.brigadier.context.CommandContext; +import com.mojang.brigadier.exceptions.CommandSyntaxException; +import net.fabricmc.fabric.api.client.command.v2.ClientCommandManager; +import net.fabricmc.fabric.api.client.command.v2.FabricClientCommandSource; +import net.minecraft.client.MinecraftClient; +import net.minecraft.command.CommandRegistryAccess; +import net.minecraft.inventory.StackWithSlot; +import net.minecraft.item.ItemStack; +import net.minecraft.item.Items; +import net.minecraft.network.packet.s2c.play.ExperienceBarUpdateS2CPacket; +import net.minecraft.storage.WriteView; + +public class HackXP { + public static void register(CommandDispatcher<FabricClientCommandSource> dispatcher, CommandRegistryAccess access) { + dispatcher.register(ClientCommandManager.literal("hackxp") + .then(ClientCommandManager.argument("xp", IntegerArgumentType.integer()) + .executes(HackXP::run) + ) + ); + } + + private static int run(CommandContext<FabricClientCommandSource> context) throws CommandSyntaxException { + int xp = IntegerArgumentType.getInteger(context,"xp"); + + if (MinecraftClient.getInstance().player == null) return -1; + MinecraftClient.getInstance().player.experienceLevel += xp; + + return 1; + } +} |
