aboutsummaryrefslogtreecommitdiff
path: root/src/main
diff options
context:
space:
mode:
Diffstat (limited to 'src/main')
-rw-r--r--src/main/java/world/anhgelus/lifesteal/Commands.java18
-rw-r--r--src/main/java/world/anhgelus/lifesteal/LifeSteal.java1
2 files changed, 19 insertions, 0 deletions
diff --git a/src/main/java/world/anhgelus/lifesteal/Commands.java b/src/main/java/world/anhgelus/lifesteal/Commands.java
index 5bf10c5..6accf8d 100644
--- a/src/main/java/world/anhgelus/lifesteal/Commands.java
+++ b/src/main/java/world/anhgelus/lifesteal/Commands.java
@@ -34,4 +34,22 @@ public class Commands {
dispatcher.register(cmd);
}
+
+ public static void registerGetHearts(CommandDispatcher<ServerCommandSource> dispatcher) {
+ final var cmd = literal("gethearts")
+ .requires(s -> s.hasPermissionLevel(3))
+ .then(argument("hearts", IntegerArgumentType.integer(1))
+ .executes(context -> {
+ final var source = context.getSource();
+ final var hearts = IntegerArgumentType.getInteger(context, "hearts");
+ final var p = source.getPlayerOrThrow();
+ final var lifeStealer = LifeStealer.Manager.getLifeStealer(p);
+ p.giveOrDropStack(lifeStealer.getHeart().copyWithCount(hearts));
+ source.sendFeedback(() -> Text.of("Hearts given."), false);
+ return Command.SINGLE_SUCCESS;
+ })
+ );
+
+ dispatcher.register(cmd);
+ }
}
diff --git a/src/main/java/world/anhgelus/lifesteal/LifeSteal.java b/src/main/java/world/anhgelus/lifesteal/LifeSteal.java
index cc1b4eb..7fb5b33 100644
--- a/src/main/java/world/anhgelus/lifesteal/LifeSteal.java
+++ b/src/main/java/world/anhgelus/lifesteal/LifeSteal.java
@@ -78,6 +78,7 @@ public class LifeSteal implements ModInitializer {
CommandRegistrationCallback.EVENT.register((CommandDispatcher<ServerCommandSource> dispatcher, CommandRegistryAccess registryAccess, CommandManager.RegistrationEnvironment environment) -> {
Commands.registerWithdraw(dispatcher);
+ Commands.registerGetHearts(dispatcher);
});
ServerLifecycleEvents.SERVER_STARTED.register(server -> {