This commit is contained in:
ayunami2000
2022-04-08 01:16:05 -04:00
parent 294f8db528
commit 583394d22e
9 changed files with 150 additions and 2 deletions

View File

@ -0,0 +1,17 @@
package dev.plex.cmdblocker;
import dev.plex.rank.enums.Rank;
import lombok.Getter;
@Getter
public class BaseCommand
{
public final Rank rank;
public final String message;
public BaseCommand(Rank r, String m)
{
rank = r;
message = m;
}
}

View File

@ -0,0 +1,46 @@
package dev.plex.cmdblocker;
import dev.plex.Plex;
import dev.plex.rank.enums.Rank;
import java.util.ArrayList;
import java.util.List;
import java.util.regex.Pattern;
public class CommandBlockerManager
{
private List<BaseCommand> blockedCommands = new ArrayList<>();
public void syncCommands()
{
blockedCommands.clear();
List<String> raw = Plex.get().blockedCommands.getStringList("blockedCommands");
for (String cmd : raw)
{
List<String> pieces = new ArrayList<>();
int lastDelim = cmd.lastIndexOf(':');
String cmdWithoutMsg = cmd.substring(0, lastDelim);
String[] rawPieces = cmdWithoutMsg.split(":", 3);
pieces.add(rawPieces[0].toLowerCase()); // type
pieces.add(rawPieces[1].toLowerCase()); // rank
pieces.add(rawPieces[2]); // RegEx or match
pieces.add(cmd.substring(lastDelim + 1)); // Message (w/o : in it)
Rank rank = Plex.get().getRankManager().getRankFromString(pieces.get(1));
if (pieces.get(0).equals("r"))
{
blockedCommands.add(new RegexCommand(Pattern.compile(pieces.get(2)), rank, pieces.get(3)));
}
else if (pieces.get(0).equals("m"))
{
blockedCommands.add(new MatchCommand(pieces.get(2), rank, pieces.get(3)));
}
}
}
}

View File

@ -0,0 +1,16 @@
package dev.plex.cmdblocker;
import dev.plex.rank.enums.Rank;
import lombok.Getter;
@Getter
public class MatchCommand extends BaseCommand
{
public final String match;
public MatchCommand(String r1, Rank r2, String m1)
{
super(r2, m1);
match = r1;
}
}

View File

@ -0,0 +1,18 @@
package dev.plex.cmdblocker;
import dev.plex.rank.enums.Rank;
import lombok.Getter;
import java.util.regex.Pattern;
@Getter
public class RegexCommand extends BaseCommand
{
public final Pattern regex;
public RegexCommand(Pattern r1, Rank r2, String m1)
{
super(r2, m1);
regex = r1;
}
}