From 3b2712151a11c456331c400e0cadc0393ea966f8 Mon Sep 17 00:00:00 2001 From: zontreck Date: Sat, 29 Mar 2025 02:19:55 -0700 Subject: [PATCH] Begin to implement --- .../java/dev/zontreck/ase/Bootstrapper.java | 17 ++++++++++++++ .../ase/commands/CommandRegistry.java | 10 ++++++++ .../zontreck/ase/commands/HomesCommand.java | 15 ++++++++++++ .../java/dev/zontreck/ase/homes/Home.java | 6 +++++ src/main/resources/plugin.yml | 23 ++++++++++++++----- 5 files changed, 65 insertions(+), 6 deletions(-) create mode 100644 src/main/java/dev/zontreck/ase/Bootstrapper.java create mode 100644 src/main/java/dev/zontreck/ase/commands/CommandRegistry.java create mode 100644 src/main/java/dev/zontreck/ase/commands/HomesCommand.java create mode 100644 src/main/java/dev/zontreck/ase/homes/Home.java diff --git a/src/main/java/dev/zontreck/ase/Bootstrapper.java b/src/main/java/dev/zontreck/ase/Bootstrapper.java new file mode 100644 index 0000000..c2dc48e --- /dev/null +++ b/src/main/java/dev/zontreck/ase/Bootstrapper.java @@ -0,0 +1,17 @@ +package dev.zontreck.ase; + +import dev.zontreck.ase.commands.CommandRegistry; +import io.papermc.paper.plugin.bootstrap.BootstrapContext; +import io.papermc.paper.plugin.bootstrap.PluginBootstrap; +import io.papermc.paper.plugin.lifecycle.event.types.LifecycleEvents; + +public class Bootstrapper implements PluginBootstrap { + + @Override + public void bootstrap(BootstrapContext context) { + context.getLifecycleManager().registerEventHandler(LifecycleEvents.COMMANDS, commands -> { + CommandRegistry.register(commands.registrar()); + }); + } + +} diff --git a/src/main/java/dev/zontreck/ase/commands/CommandRegistry.java b/src/main/java/dev/zontreck/ase/commands/CommandRegistry.java new file mode 100644 index 0000000..37ce3f5 --- /dev/null +++ b/src/main/java/dev/zontreck/ase/commands/CommandRegistry.java @@ -0,0 +1,10 @@ +package dev.zontreck.ase.commands; + +import io.papermc.paper.command.brigadier.Commands; + +public class CommandRegistry { + public static void register(Commands cmds) { + cmds.register(Commands.literal("homes").requires(x -> x.getSender().hasPermission(HomesCommand.PERMISSION)) + .executes(ctx -> HomesCommand.execute(ctx)).build()); + } +} diff --git a/src/main/java/dev/zontreck/ase/commands/HomesCommand.java b/src/main/java/dev/zontreck/ase/commands/HomesCommand.java new file mode 100644 index 0000000..a705df1 --- /dev/null +++ b/src/main/java/dev/zontreck/ase/commands/HomesCommand.java @@ -0,0 +1,15 @@ +package dev.zontreck.ase.commands; + +import com.mojang.brigadier.Command; +import com.mojang.brigadier.context.CommandContext; + +import io.papermc.paper.command.brigadier.CommandSourceStack; + +public class HomesCommand { + public static final String PERMISSION = "ase.commands.homes"; + + public static int execute(CommandContext ctx) { + ctx.getSource().getSender().sendMessage("TEST MESSAGE"); + return Command.SINGLE_SUCCESS; + } +} diff --git a/src/main/java/dev/zontreck/ase/homes/Home.java b/src/main/java/dev/zontreck/ase/homes/Home.java new file mode 100644 index 0000000..bee7991 --- /dev/null +++ b/src/main/java/dev/zontreck/ase/homes/Home.java @@ -0,0 +1,6 @@ +package dev.zontreck.ase.homes; + +public class Home { + String homeName; + +} diff --git a/src/main/resources/plugin.yml b/src/main/resources/plugin.yml index 29c1d76..d26a295 100644 --- a/src/main/resources/plugin.yml +++ b/src/main/resources/plugin.yml @@ -5,13 +5,24 @@ api-version: "1.21.1" author: AUTHOR description: DESCRIPTION commands: - ex: - description: Base command for EXAMPLE - usage: "For a list of commands, type /ex help" - aliases: example + home: + description: Just click your heels three times. + usage: "- /home [optional:name] -" + homes: + description: Lists all homes + usage: "- /homes -" permissions: - example.test: - description: DESCRIPTION + ase.commands.*: + description: Allow all commands + default: false + children: + ase.commands.home: true + ase.commands.homes: true + ase.commands.home: + description: Allows usage of the /home command + default: true + ase.commands.homes: + description: Allows usage of the /homes command default: true example.*: description: Grants all other permissions