mirror of
https://github.com/plexusorg/Plex.git
synced 2025-07-04 00:46:40 +00:00
part 1
This commit is contained in:
17
src/main/java/dev/plex/cmdblocker/BaseCommand.java
Normal file
17
src/main/java/dev/plex/cmdblocker/BaseCommand.java
Normal 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;
|
||||
}
|
||||
}
|
46
src/main/java/dev/plex/cmdblocker/CommandBlockerManager.java
Normal file
46
src/main/java/dev/plex/cmdblocker/CommandBlockerManager.java
Normal 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)));
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
16
src/main/java/dev/plex/cmdblocker/MatchCommand.java
Normal file
16
src/main/java/dev/plex/cmdblocker/MatchCommand.java
Normal 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;
|
||||
}
|
||||
}
|
18
src/main/java/dev/plex/cmdblocker/RegexCommand.java
Normal file
18
src/main/java/dev/plex/cmdblocker/RegexCommand.java
Normal 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;
|
||||
}
|
||||
}
|
Reference in New Issue
Block a user