feat: 新增/botlist假人名单管理,/botall按名单过滤
名单持久化到config/slsa-bot-list.json。名单非空时/botall只操作名单内假人,为空时操作所有。支持add/remove/clear/show/addall。
This commit is contained in:
1 parent
541ffe5ed2
commit
ccbf442413
4 files changed
+209
-3
No files matched your search
@@ -112,18 +112,21 @@ public class BotAllCommand {
|
||||
return c -> batchAp(c, action);
|
||||
}
|
||||
|
||||
/** 收集所有本模组生成的假人。 */
|
||||
/** 收集所有本模组生成的假人(受名单限制:名单非空时只取名单内的)。 */
|
||||
private static List<ServerPlayer> collectBots(CommandSourceStack source) {
|
||||
MinecraftServer server = source.getServer();
|
||||
List<ServerPlayer> bots = new ArrayList<>();
|
||||
boolean filterByList = !com.github.zly2006.carpetslsaddition.util.BotListManager.isEmpty();
|
||||
for (ServerPlayer player : server.getPlayerList().getPlayers()) {
|
||||
if (player instanceof EntityPlayerMPFake && ((SLSBotAccessor) player).carpet_SLS_Addition$isBot()) {
|
||||
if (filterByList && !com.github.zly2006.carpetslsaddition.util.BotListManager.contains(player.getScoreboardName())) {
|
||||
continue;
|
||||
}
|
||||
bots.add(player);
|
||||
}
|
||||
}
|
||||
return bots;
|
||||
}
|
||||
|
||||
private static int sitAll(CommandContext<CommandSourceStack> context) {
|
||||
if (!SLSCarpetSettings.canUseSitCommand) {
|
||||
context.getSource().sendSuccess(() -> net.minecraft.network.chat.Component.literal(
|
||||
|
||||
Reference in new issue
Block a user