diff --git a/build-number.txt b/build-number.txt index 81ef32fd..534f1039 100644 --- a/build-number.txt +++ b/build-number.txt @@ -1 +1 @@ -3645 \ No newline at end of file +3646 \ No newline at end of file diff --git a/src/main/java/me/chayapak1/chomens_bot/commands/IPFilterCommand.java b/src/main/java/me/chayapak1/chomens_bot/commands/IPFilterCommand.java index 553750d3..2ec3dd5c 100644 --- a/src/main/java/me/chayapak1/chomens_bot/commands/IPFilterCommand.java +++ b/src/main/java/me/chayapak1/chomens_bot/commands/IPFilterCommand.java @@ -5,6 +5,7 @@ import me.chayapak1.chomens_bot.command.Command; import me.chayapak1.chomens_bot.command.CommandContext; import me.chayapak1.chomens_bot.command.CommandException; import me.chayapak1.chomens_bot.command.TrustLevel; +import me.chayapak1.chomens_bot.data.player.PlayerEntry; import me.chayapak1.chomens_bot.plugins.DatabasePlugin; import me.chayapak1.chomens_bot.plugins.IPFilterPlugin; import net.kyori.adventure.text.Component; @@ -16,11 +17,14 @@ import java.util.List; import java.util.Map; public class IPFilterCommand extends Command { + private static final String FORCE_IP_FLAG = "forceip"; + public IPFilterCommand () { super( "ipfilter", new String[] { - "add [reason]", + "add [reason]", + "-forceip add ...", "remove ", "clear", "list" @@ -39,9 +43,16 @@ public class IPFilterCommand extends Command { switch (action) { case "add" -> { - final String ip = context.getString(false, true); + final List flags = context.getFlags(true, FORCE_IP_FLAG); + + final String rawIP = context.getString(false, true); final String reason = context.getString(true, false); + final PlayerEntry player = bot.players.getEntry(rawIP); + final String ip = (!flags.contains(FORCE_IP_FLAG) && player != null && player.persistingData.ip != null) + ? player.persistingData.ip + : rawIP; + if (IPFilterPlugin.localList.containsKey(ip)) { throw new CommandException( Component.translatable(