forked from ChomeNS/chomens-bot-java
improve filter (mabe)
This commit is contained in:
parent
2ae561b0cb
commit
b537cabbe0
2 changed files with 51 additions and 3 deletions
|
@ -37,6 +37,8 @@ public class FilterCommand implements Command {
|
|||
public List<String> alias() {
|
||||
final List<String> aliases = new ArrayList<>();
|
||||
aliases.add("filterplayer");
|
||||
aliases.add("ban");
|
||||
aliases.add("blacklist");
|
||||
|
||||
return aliases;
|
||||
}
|
||||
|
|
|
@ -3,6 +3,7 @@ package land.chipmunk.chayapak.chomens_bot.plugins;
|
|||
import land.chipmunk.chayapak.chomens_bot.Bot;
|
||||
import land.chipmunk.chayapak.chomens_bot.data.chat.MutablePlayerListEntry;
|
||||
import land.chipmunk.chayapak.chomens_bot.data.FilteredPlayer;
|
||||
import land.chipmunk.chayapak.chomens_bot.data.chat.PlayerMessage;
|
||||
import land.chipmunk.chayapak.chomens_bot.util.UUIDUtilities;
|
||||
import lombok.Getter;
|
||||
import net.kyori.adventure.text.Component;
|
||||
|
@ -23,7 +24,19 @@ public class FilterPlugin extends PlayersPlugin.Listener {
|
|||
|
||||
bot.players().addListener(this);
|
||||
|
||||
bot.executor().scheduleAtFixedRate(this::kick, 0, 5, TimeUnit.SECONDS);
|
||||
bot.chat().addListener(new ChatPlugin.Listener() {
|
||||
@Override
|
||||
public void commandSpyMessageReceived(PlayerMessage message) {
|
||||
FilterPlugin.this.commandSpyMessageReceived(message);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void playerMessageReceived(PlayerMessage message) {
|
||||
FilterPlugin.this.playerMessageReceived(message);
|
||||
}
|
||||
});
|
||||
|
||||
bot.executor().scheduleAtFixedRate(this::kick, 0, 10, TimeUnit.SECONDS);
|
||||
}
|
||||
|
||||
private FilteredPlayer getPlayer (String name) {
|
||||
|
@ -73,11 +86,37 @@ public class FilterPlugin extends PlayersPlugin.Listener {
|
|||
|
||||
if (player == null) return;
|
||||
|
||||
bot.core().run("essentials:mute " + target.profile().getIdAsString() + " 10y");
|
||||
bot.core().run("minecraft:execute run deop " + UUIDUtilities.selector(target.profile().getId()));
|
||||
deOp(target);
|
||||
mute(target);
|
||||
|
||||
bot.exploits().kick(target.profile().getId());
|
||||
}
|
||||
|
||||
public void commandSpyMessageReceived (PlayerMessage message) {
|
||||
final FilteredPlayer player = getPlayer(message.sender().profile().getName());
|
||||
|
||||
if (player == null) return;
|
||||
|
||||
deOp(message.sender());
|
||||
}
|
||||
|
||||
public void playerMessageReceived (PlayerMessage message) {
|
||||
final FilteredPlayer player = getPlayer(message.sender().profile().getName());
|
||||
|
||||
if (player == null) return;
|
||||
|
||||
deOp(message.sender());
|
||||
mute(message.sender());
|
||||
}
|
||||
|
||||
private void mute (MutablePlayerListEntry target) {
|
||||
bot.core().run("essentials:mute " + target.profile().getIdAsString() + " 10y");
|
||||
}
|
||||
|
||||
private void deOp (MutablePlayerListEntry target) {
|
||||
bot.core().run("minecraft:execute run deop " + UUIDUtilities.selector(target.profile().getId()));
|
||||
}
|
||||
|
||||
public void kick () {
|
||||
for (MutablePlayerListEntry target : bot.players().list()) {
|
||||
final FilteredPlayer player = getPlayer(target.profile().getName());
|
||||
|
@ -90,6 +129,13 @@ public class FilterPlugin extends PlayersPlugin.Listener {
|
|||
|
||||
public void add (String playerName, boolean regex, boolean ignoreCase) {
|
||||
filteredPlayers.add(new FilteredPlayer(playerName, regex, ignoreCase));
|
||||
|
||||
final MutablePlayerListEntry target = bot.players().getEntry(playerName); // fix not working for regex and ignorecase
|
||||
|
||||
if (target == null) return;
|
||||
|
||||
deOp(target);
|
||||
mute(target);
|
||||
}
|
||||
|
||||
public FilteredPlayer remove (int index) {
|
||||
|
|
Loading…
Reference in a new issue