Arias-Essentials/src/main/java/dev/zontreck/essentials/commands/gui/HeartsCommand.java

46 lines
1.7 KiB
Java

package dev.zontreck.essentials.commands.gui;
import com.mojang.brigadier.CommandDispatcher;
import com.mojang.brigadier.arguments.BoolArgumentType;
import dev.zontreck.essentials.Messages;
import dev.zontreck.essentials.events.CommandExecutionEvent;
import dev.zontreck.essentials.networking.ModMessages;
import dev.zontreck.essentials.networking.packets.s2c.S2CUpdateHearts;
import dev.zontreck.libzontreck.util.ChatHelpers;
import net.minecraft.commands.CommandSourceStack;
import net.minecraft.commands.Commands;
import net.minecraftforge.common.MinecraftForge;
public class HeartsCommand
{
public static void register(CommandDispatcher<CommandSourceStack> dispatcher)
{
dispatcher.register(Commands.literal("hearts").executes(x->usage(x.getSource())).then(Commands.argument("compress", BoolArgumentType.bool()).executes(x->hearts(x.getSource(), BoolArgumentType.getBool(x, "compress")))));
}
private static int hearts(CommandSourceStack stack, boolean compressHearts)
{
var exec = new CommandExecutionEvent(stack.getPlayer(), "hearts");
if(MinecraftForge.EVENT_BUS.post(exec))
{
return 0;
}
// Send the state to the client, then update the config
// Send feedback to the user
ChatHelpers.broadcastTo(stack.getPlayer().getUUID(), ChatHelpers.macro(Messages.HEARTS_UPDATED), stack.getServer());
S2CUpdateHearts update = new S2CUpdateHearts(compressHearts);
ModMessages.sendToPlayer(update, stack.getPlayer());
return 0;
}
private static int usage(CommandSourceStack stack)
{
ChatHelpers.broadcastTo(stack.getPlayer().getUUID(), ChatHelpers.macro(Messages.HEARTS_USAGE), stack.getServer());
return 0;
}
}