minecraft-src/net/minecraft/server/commands/BanListCommands.java
2025-07-04 01:41:11 +03:00

48 lines
2 KiB
Java

package net.minecraft.server.commands;
import com.google.common.collect.Iterables;
import com.google.common.collect.Lists;
import com.mojang.brigadier.CommandDispatcher;
import java.util.Collection;
import net.minecraft.commands.CommandSourceStack;
import net.minecraft.commands.Commands;
import net.minecraft.network.chat.Component;
import net.minecraft.server.players.BanListEntry;
import net.minecraft.server.players.PlayerList;
public class BanListCommands {
public static void register(CommandDispatcher<CommandSourceStack> dispatcher) {
dispatcher.register(
Commands.literal("banlist")
.requires(commandSourceStack -> commandSourceStack.hasPermission(3))
.executes(commandContext -> {
PlayerList playerList = commandContext.getSource().getServer().getPlayerList();
return showList(commandContext.getSource(), Lists.newArrayList(Iterables.concat(playerList.getBans().getEntries(), playerList.getIpBans().getEntries())));
})
.then(
Commands.literal("ips")
.executes(commandContext -> showList(commandContext.getSource(), commandContext.getSource().getServer().getPlayerList().getIpBans().getEntries()))
)
.then(
Commands.literal("players")
.executes(commandContext -> showList(commandContext.getSource(), commandContext.getSource().getServer().getPlayerList().getBans().getEntries()))
)
);
}
private static int showList(CommandSourceStack source, Collection<? extends BanListEntry<?>> bannedPlayerList) {
if (bannedPlayerList.isEmpty()) {
source.sendSuccess(() -> Component.translatable("commands.banlist.none"), false);
} else {
source.sendSuccess(() -> Component.translatable("commands.banlist.list", bannedPlayerList.size()), false);
for (BanListEntry<?> banListEntry : bannedPlayerList) {
source.sendSuccess(
() -> Component.translatable("commands.banlist.entry", banListEntry.getDisplayName(), banListEntry.getSource(), banListEntry.getReason()), false
);
}
}
return bannedPlayerList.size();
}
}