package net.saltymc.eaa.commands; import com.mojang.brigadier.arguments.StringArgumentType; import com.mojang.brigadier.builder.LiteralArgumentBuilder; import com.mojang.brigadier.context.CommandContext; import net.fabricmc.fabric.api.client.command.v1.FabricClientCommandSource; import net.minecraft.client.MinecraftClient; import net.minecraft.command.argument.EntityArgumentType; import net.minecraft.text.Text; import net.saltymc.eaa.util.database.DB_Player; import net.saltymc.eaa.util.database.DB_Tag; import net.saltymc.eaa.util.mojangApi.PlayerInfo; import java.text.SimpleDateFormat; import java.util.HashMap; import java.util.List; import java.util.ListIterator; import java.util.Map; import static net.fabricmc.fabric.api.client.command.v1.ClientCommandManager.argument; import static net.fabricmc.fabric.api.client.command.v1.ClientCommandManager.literal; public class CheckPlayerCommand extends EaaModCommand{ private static final Map player_tags = new HashMap<>(); public static final SimpleDateFormat dateformat = new SimpleDateFormat("dd.MM.yyyy"); @Override public int run(CommandContext context) { FabricClientCommandSource source = context.getSource(); String player = StringArgumentType.getString(context,"player"); try { String playerUUID = MinecraftClient.getInstance().getNetworkHandler().getPlayerListEntry(player).getProfile().getId().toString(); TagCommand.loadPlayer(playerUUID, true); List names = PlayerInfo.playerUUIDToNames(playerUUID); for (int i = 1; i <= names.size(); i++) source.sendFeedback(Text.of(i + ". " + names.get(i-1))); List tags = DB_Tag.getTagsFromPlayer(DB_Player.getPlayer(playerUUID)); if (tags.size() > 0) { ListIterator it = tags.listIterator(tags.size()); while (it.hasPrevious()) { DB_Tag curr = it.previous(); source.sendFeedback(Text.of( dateformat.format(curr.getTagDate()) + " | " + curr.getType().getTag() + " (" + curr.getGrade() + ")" )); } } else { source.sendFeedback(Text.of("Nothing to appeal")); } } catch (Exception e) { source.sendFeedback(Text.of(e.toString())); } return 1; } @Override public LiteralArgumentBuilder getCommandSpecification() { return literal("/check") .then( argument("player", StringArgumentType.word()) .suggests((ctx, builder) -> EntityArgumentType.player().listSuggestions(ctx, builder)) .executes(this)); } }