diff --git a/src/main/java/net/touhoudiscord/HardcoreRedeploy.java b/src/main/java/net/touhoudiscord/HardcoreRedeploy.java index db13b76..0886497 100644 --- a/src/main/java/net/touhoudiscord/HardcoreRedeploy.java +++ b/src/main/java/net/touhoudiscord/HardcoreRedeploy.java @@ -31,6 +31,7 @@ import net.minecraft.world.GameMode; import net.touhoudiscord.block.BuyStation; import net.touhoudiscord.block.BuyStationEntity; import net.touhoudiscord.commands.RedeployPlayerCommand; +import net.touhoudiscord.commands.SetRevivesCommand; import net.touhoudiscord.item.BuyStationItem; import net.touhoudiscord.status.RedeployingStatusEffect; import org.slf4j.Logger; @@ -116,6 +117,7 @@ public class HardcoreRedeploy implements ModInitializer { HardcoreRedeploy.BUY_STATION).build()); Registry.register(Registries.STATUS_EFFECT, new Identifier(HardcoreRedeploy.MOD_ID, "redeploying"), REDEPLOYING); CommandRegistrationCallback.EVENT.register((dispatcher, registryAccess, environment) -> RedeployPlayerCommand.register(dispatcher)); + CommandRegistrationCallback.EVENT.register((dispatcher, registryAccess, environment) -> SetRevivesCommand.register(dispatcher)); Registry.register(Registries.SOUND_EVENT, BUY_STATION_SOUND_ID, BUY_STATION_SOUND_EVENT); } diff --git a/src/main/java/net/touhoudiscord/commands/RedeployPlayerCommand.java b/src/main/java/net/touhoudiscord/commands/RedeployPlayerCommand.java index 5cdeed9..c637d70 100644 --- a/src/main/java/net/touhoudiscord/commands/RedeployPlayerCommand.java +++ b/src/main/java/net/touhoudiscord/commands/RedeployPlayerCommand.java @@ -32,7 +32,7 @@ public class RedeployPlayerCommand { ServerPlayerEntity player = EntityArgumentType.getPlayer(context, "player"); RedeployPlayer.redeploy(player, context.getSource().getPlayer()); - context.getSource().sendFeedback(() -> Text.literal("Redeployed ").append(player.getName()), false); + context.getSource().sendFeedback(() -> Text.literal("Redeployed ").append(player.getName()), true); return 1; }))); diff --git a/src/main/java/net/touhoudiscord/commands/SetRevivesCommand.java b/src/main/java/net/touhoudiscord/commands/SetRevivesCommand.java new file mode 100644 index 0000000..1bcccda --- /dev/null +++ b/src/main/java/net/touhoudiscord/commands/SetRevivesCommand.java @@ -0,0 +1,36 @@ +package net.touhoudiscord.commands; + +import com.mojang.brigadier.CommandDispatcher; +import com.mojang.brigadier.arguments.IntegerArgumentType; +import net.minecraft.command.argument.EntityArgumentType; +import net.minecraft.server.command.ServerCommandSource; +import net.minecraft.server.network.ServerPlayerEntity; +import net.minecraft.text.Text; +import net.touhoudiscord.HardcoreRedeploy; +import net.touhoudiscord.RedeployStateSaver; + +import static net.minecraft.server.command.CommandManager.argument; +import static net.minecraft.server.command.CommandManager.literal; + +public class SetRevivesCommand { + public static void register(CommandDispatcher dispatcher) { + dispatcher.register(literal("setrevives") + .requires(source -> source.hasPermissionLevel(4)) + .then(argument("player", EntityArgumentType.player()) + .then(argument("revives", IntegerArgumentType.integer(0)) + .executes(context -> { + if (context.getSource().getPlayer() == null) return 0; + + ServerPlayerEntity player = EntityArgumentType.getPlayer(context, "player"); + + RedeployStateSaver.getPlayerState(player).timesRevived = IntegerArgumentType.getInteger(context, "revives"); + + context.getSource().getServer().getPlayerManager().getPlayerList().forEach(player1 -> { + HardcoreRedeploy.syncRevives(context.getSource().getServer(), player1, player.getUuid()); + }); + context.getSource().sendFeedback(() -> Text.literal("Set revives for ").append(player.getName()), true); + + return 1; + })))); + } +}