Skip to content

Commit 3d5d35d

Browse files
committed
Updates module to reflect new API changes
1 parent 47e244b commit 3d5d35d

9 files changed

Lines changed: 76 additions & 68 deletions

File tree

src/main/java/dev/plex/ChatFilterModule.java

Lines changed: 7 additions & 20 deletions
Original file line numberDiff line numberDiff line change
@@ -36,29 +36,16 @@ public void load()
3636
config.load();
3737
}
3838

39-
public static PlexApi getApi()
40-
{
41-
return module.api();
42-
}
43-
4439
@Override
4540
public void enable()
4641
{
47-
registerCommand(new ObliterateCommand());
48-
registerListener(new AnvilListener());
49-
registerListener(new ChatListener());
50-
registerListener(new CommandPreProcessListener());
51-
registerListener(new SignListener());
42+
registerCommand(new ObliterateCommand(this));
43+
registerListener(new AnvilListener(this));
44+
registerListener(new ChatListener(this));
45+
registerListener(new CommandPreProcessListener(this));
46+
registerListener(new SignListener(this));
5247

5348
FilterEngine.reload();
54-
55-
addDefaultMessage("castingOblivion", "<red>{0} is casting oblivion over {1}", "0 - The command sender", "1 - The target");
56-
addDefaultMessage("playerEviscerated", "<red>{1} will be completely eviscerated", "1 - The target");
57-
addDefaultMessage("playerEradicated", "<red>{1} has been eradicated from existence!", "1 - The target");
58-
addDefaultMessage("obliterateReason", "You've met with a terrible fate, haven't you?");
59-
addDefaultMessage("targetPermBanned", "<red>{0} - Permanently banning {1}", "0 - The command sender", "1 - The target");
60-
addDefaultMessage("filterTriggered", "<red>{0} - {1} filter has been triggered by {2}",
61-
"0 - The server's console (this needs to be here)", "1- The filter source that was triggered", "2 - Who triggered it");
6249
}
6350

6451
@Override
@@ -81,7 +68,7 @@ public static void punishPlayer(PlexPlayerView player, ViolationSource source)
8168
true, // active
8269
null // endDate — null = permanent
8370
);
84-
getApi().punishments().punish(player, request);
71+
module.api().punishments().punish(player, request);
8572
}
8673

8774
public static void logFilteredMessage(Component message)
@@ -100,6 +87,6 @@ public static void logFilteredMessage(Component message)
10087

10188
String plain = PlainTextComponentSerializer
10289
.plainText().serialize(message);
103-
getApi().logging().info(plain);
90+
module.api().logging().info(plain);
10491
}
10592
}

src/main/java/dev/plex/command/ObliterateCommand.java

Lines changed: 20 additions & 33 deletions
Original file line numberDiff line numberDiff line change
@@ -4,8 +4,6 @@
44
import dev.plex.api.player.PlexPlayerView;
55
import dev.plex.api.punishment.PunishmentRequest;
66
import dev.plex.api.punishment.PunishmentType;
7-
import dev.plex.command.annotation.CommandParameters;
8-
import dev.plex.command.annotation.CommandPermissions;
97
import dev.plex.command.exception.PlayerNotFoundException;
108
import dev.plex.utilities.FilterUtils;
119
import net.kyori.adventure.text.Component;
@@ -16,14 +14,21 @@
1614
import org.jetbrains.annotations.NotNull;
1715
import org.jetbrains.annotations.Nullable;
1816

19-
import java.util.Collections;
20-
import java.util.List;
21-
import java.util.stream.Collectors;
2217

23-
@CommandParameters(name = "obliterate", description = "Unleash divine punishment upon someone", usage = "/<command> <player> [reason]")
24-
@CommandPermissions(permission = "plex.chatfilter.obliterate")
25-
public class ObliterateCommand extends PlexCommand
18+
public class ObliterateCommand extends SimplePlexCommand
2619
{
20+
private final ChatFilterModule module;
21+
22+
public ObliterateCommand(ChatFilterModule module)
23+
{
24+
super(command("obliterate")
25+
.description("Unleash divine punishment upon someone")
26+
.usage("/<command> <player> [reason]")
27+
.aliases("doom")
28+
.permission("plex.chatfilter.obliterate")
29+
.build());
30+
this.module = module;
31+
}
2732
@Override
2833
protected Component execute(@NotNull CommandSender commandSender, @Nullable Player player, @NotNull String[] strings)
2934
{
@@ -32,7 +37,7 @@ protected Component execute(@NotNull CommandSender commandSender, @Nullable Play
3237
return usage();
3338
}
3439

35-
PlexPlayerView plexPlayer = ChatFilterModule.getApi().players().byName(strings[0])
40+
PlexPlayerView plexPlayer = module.api().players().byName(strings[0])
3641
.orElseThrow(PlayerNotFoundException::new);
3742

3843
Player target = getNonNullPlayer(plexPlayer.name());
@@ -47,19 +52,19 @@ protected Component execute(@NotNull CommandSender commandSender, @Nullable Play
4752

4853
broadcast(messageComponent("castingOblivion", commandSender, target));
4954

50-
ChatFilterModule.getApi().scheduler().runEntityLater(target, () ->
55+
module.api().scheduler().runEntityLater(target, () ->
5156
broadcast(messageComponent("playerEviscerated", target)), 2);
5257

53-
ChatFilterModule.getApi().scheduler().runEntityLater(target, () ->
58+
module.api().scheduler().runEntityLater(target, () ->
5459
{
5560
Bukkit.dispatchCommand(Bukkit.getConsoleSender(), "lp user " + target.getName() + " clear");
5661
if (target.isOp()) target.setOp(false);
5762
if (target.isWhitelisted()) target.setWhitelisted(false);
5863
}, 2);
5964

60-
ChatFilterModule.getApi().scheduler().runEntityLater(target, () -> target.setHealth(0), 10);
65+
module.api().scheduler().runEntityLater(target, () -> target.setHealth(0), 10);
6166

62-
ChatFilterModule.getApi().scheduler().runEntityLater(target, () ->
67+
module.api().scheduler().runEntityLater(target, () ->
6368
broadcast(messageComponent("playerEradicated", target)), 30);
6469

6570
FilterUtils.crashPlayer(target);
@@ -79,29 +84,11 @@ protected Component execute(@NotNull CommandSender commandSender, @Nullable Play
7984
null
8085
);
8186

82-
ChatFilterModule.getApi().scheduler().runEntityLater(target, () ->
87+
module.api().scheduler().runEntityLater(target, () ->
8388
ChatFilterModule.getApi().punishments().punish(plexPlayer, request), 38);
84-
ChatFilterModule.getApi().scheduler().runEntityLater(target, () ->
89+
module.api().scheduler().runEntityLater(target, () ->
8590
broadcast(messageComponent("targetPermBanned", commandSender, target)), 38);
8691

8792
return null;
8893
}
89-
90-
@Override
91-
public @NotNull List<String> smartTabComplete(@NotNull CommandSender sender, @NotNull String alias, @NotNull String[] args) throws IllegalArgumentException
92-
{
93-
if (!silentCheckPermission(sender, this.getPermission()))
94-
{
95-
return Collections.emptyList();
96-
}
97-
98-
if (args.length == 1)
99-
{
100-
return ChatFilterModule.getApi().players().onlineNames().stream()
101-
.filter(name -> name.toLowerCase().startsWith(args[0].toLowerCase()))
102-
.collect(Collectors.toList());
103-
}
104-
105-
return Collections.emptyList();
106-
}
10794
}

src/main/java/dev/plex/filter/FilterEngine.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -23,7 +23,7 @@ public static void reload()
2323
String regex = "\\b" + Pattern.quote(clean) + "\\b";
2424
RULES.put(rule, Pattern.compile(regex));
2525
}
26-
ChatFilterModule.getApi().logging().info("Filter engine reloaded.");
26+
ChatFilterModule.getModule().api().logging().info("Filter engine reloaded.");
2727
}
2828

2929
public static FilterResult check(String input)

src/main/java/dev/plex/listener/AnvilListener.java

Lines changed: 10 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -17,6 +17,13 @@
1717

1818
public class AnvilListener extends PlexListener
1919
{
20+
private final ChatFilterModule module;
21+
22+
public AnvilListener(ChatFilterModule module)
23+
{
24+
this.module = module;
25+
}
26+
2027
@EventHandler
2128
@SuppressWarnings("deprecation")
2229
public void onAnvilRename(InventoryClickEvent event)
@@ -25,7 +32,7 @@ public void onAnvilRename(InventoryClickEvent event)
2532
if (event.getSlot() != 2) return;
2633
if (!(event.getWhoClicked() instanceof Player player)) return;
2734

28-
Optional<? extends PlexPlayerView> plexPlayerOpt = ChatFilterModule.getApi().players().byUuid(player.getUniqueId());
35+
Optional<? extends PlexPlayerView> plexPlayerOpt = module.api().players().byUuid(player.getUniqueId());
2936
if (plexPlayerOpt.isEmpty()) return;
3037
PlexPlayerView plexPlayer = plexPlayerOpt.get();
3138

@@ -41,13 +48,13 @@ public void onAnvilRename(InventoryClickEvent event)
4148

4249
event.setCancelled(true);
4350

44-
ChatFilterModule.getApi().scheduler().runEntity(player, () ->
51+
module.api().scheduler().runEntity(player, () ->
4552
{
4653
if (!player.isOnline()) return;
4754

4855
ChatFilterModule.punishPlayer(plexPlayer, ViolationSource.Anvil);
4956
FilterUtils.filterTriggeredAlert(plexPlayer, ViolationSource.Anvil);
50-
ChatFilterModule.logFilteredMessage(ChatFilterModule.getApi().messages().miniMessage(
57+
ChatFilterModule.logFilteredMessage(module.api().messages().miniMessage(
5158
"<red>Player " + player.getName() + " has been permanently banned for renaming their item to: " + name));
5259
FilterUtils.discordAlert(plexPlayer, ViolationSource.Anvil);
5360
FilterUtils.crashPlayer(player);

src/main/java/dev/plex/listener/ChatListener.java

Lines changed: 10 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -14,12 +14,19 @@
1414

1515
public class ChatListener extends PlexListener
1616
{
17+
private final ChatFilterModule module;
18+
19+
public ChatListener(ChatFilterModule module)
20+
{
21+
this.module = module;
22+
}
23+
1724
@EventHandler
1825
@SuppressWarnings("deprecation")
1926
private void onPlayerChatMessageThatIsASlur(AsyncPlayerChatEvent event)
2027
{
2128
Player player = event.getPlayer();
22-
Optional<? extends PlexPlayerView> plexPlayerOpt = ChatFilterModule.getApi().players().byUuid(player.getUniqueId());
29+
Optional<? extends PlexPlayerView> plexPlayerOpt = module.api().players().byUuid(player.getUniqueId());
2330
if (plexPlayerOpt.isEmpty()) return;
2431
PlexPlayerView plexPlayer = plexPlayerOpt.get();
2532

@@ -30,13 +37,13 @@ private void onPlayerChatMessageThatIsASlur(AsyncPlayerChatEvent event)
3037
event.setCancelled(true);
3138
player.sendMessage(String.format(event.getFormat(), player.getDisplayName(), rawMessage));
3239

33-
ChatFilterModule.getApi().scheduler().runEntity(player, () ->
40+
module.api().scheduler().runEntity(player, () ->
3441
{
3542
if (!player.isOnline()) return;
3643

3744
ChatFilterModule.punishPlayer(plexPlayer, ViolationSource.Chat);
3845
FilterUtils.filterTriggeredAlert(plexPlayer, ViolationSource.Chat);
39-
ChatFilterModule.logFilteredMessage(ChatFilterModule.getApi().messages().miniMessage(
46+
ChatFilterModule.logFilteredMessage(module.api().messages().miniMessage(
4047
"<red>Player " + player.getName() + " has been permanently banned for saying: " + rawMessage));
4148
FilterUtils.discordAlert(plexPlayer, ViolationSource.Chat);
4249
FilterUtils.crashPlayer(player);

src/main/java/dev/plex/listener/CommandPreProcessListener.java

Lines changed: 10 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -14,11 +14,18 @@
1414

1515
public class CommandPreProcessListener extends PlexListener
1616
{
17+
private final ChatFilterModule module;
18+
19+
public CommandPreProcessListener(ChatFilterModule module)
20+
{
21+
this.module = module;
22+
}
23+
1724
@EventHandler
1825
public void onCommand(PlayerCommandPreprocessEvent event)
1926
{
2027
Player player = event.getPlayer();
21-
Optional<? extends PlexPlayerView> plexPlayerOpt = ChatFilterModule.getApi().players().byUuid(player.getUniqueId());
28+
Optional<? extends PlexPlayerView> plexPlayerOpt = module.api().players().byUuid(player.getUniqueId());
2229
if (plexPlayerOpt.isEmpty()) return;
2330
PlexPlayerView plexPlayer = plexPlayerOpt.get();
2431

@@ -30,13 +37,13 @@ public void onCommand(PlayerCommandPreprocessEvent event)
3037

3138
event.setCancelled(true);
3239

33-
ChatFilterModule.getApi().scheduler().runEntity(player, () ->
40+
module.api().scheduler().runEntity(player, () ->
3441
{
3542
if (!player.isOnline()) return;
3643

3744
ChatFilterModule.punishPlayer(plexPlayer, ViolationSource.Command);
3845
FilterUtils.filterTriggeredAlert(plexPlayer, ViolationSource.Command);
39-
ChatFilterModule.logFilteredMessage(ChatFilterModule.getApi().messages().miniMessage(
46+
ChatFilterModule.logFilteredMessage(module.api().messages().miniMessage(
4047
"<red>Player " + player.getName() + " has been permanently banned for executing: /" + content));
4148
FilterUtils.discordAlert(plexPlayer, ViolationSource.Command);
4249
FilterUtils.crashPlayer(player);

src/main/java/dev/plex/listener/SignListener.java

Lines changed: 10 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -14,12 +14,19 @@
1414

1515
public class SignListener extends PlexListener
1616
{
17+
private final ChatFilterModule module;
18+
19+
public SignListener(ChatFilterModule module)
20+
{
21+
this.module = module;
22+
}
23+
1724
@EventHandler
1825
@SuppressWarnings("deprecation")
1926
public void onSignWrite(SignChangeEvent event)
2027
{
2128
Player player = event.getPlayer();
22-
Optional<? extends PlexPlayerView> plexPlayerOpt = ChatFilterModule.getApi().players().byUuid(player.getUniqueId());
29+
Optional<? extends PlexPlayerView> plexPlayerOpt = module.api().players().byUuid(player.getUniqueId());
2330
if (plexPlayerOpt.isEmpty()) return;
2431
PlexPlayerView plexPlayer = plexPlayerOpt.get();
2532

@@ -33,13 +40,13 @@ public void onSignWrite(SignChangeEvent event)
3340
event.setCancelled(true);
3441
final String matchedLine = line;
3542

36-
ChatFilterModule.getApi().scheduler().runEntity(player, () ->
43+
module.api().scheduler().runEntity(player, () ->
3744
{
3845
if (!player.isOnline()) return;
3946

4047
ChatFilterModule.punishPlayer(plexPlayer, ViolationSource.Sign);
4148
FilterUtils.filterTriggeredAlert(plexPlayer, ViolationSource.Sign);
42-
ChatFilterModule.logFilteredMessage(ChatFilterModule.getApi().messages().miniMessage(
49+
ChatFilterModule.logFilteredMessage(module.api().messages().miniMessage(
4350
"<red>Player " + player.getName() + " has been permanently banned for writing '" + matchedLine + "' on a sign"));
4451
FilterUtils.discordAlert(plexPlayer, ViolationSource.Sign);
4552
FilterUtils.crashPlayer(player);

src/main/java/dev/plex/utilities/FilterUtils.java

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,7 @@ public class FilterUtils
1111
{
1212
public static void filterTriggeredAlert(PlexPlayerView player, ViolationSource source)
1313
{
14-
ChatFilterModule.getApi().messages().broadcast(ChatFilterModule.getApi().messages().messageComponent("filterTriggered", Bukkit.getConsoleSender(), source, player));
14+
ChatFilterModule.getModule().api().messages().broadcast(ChatFilterModule.getModule().api().messages().messageComponent("filterTriggered", Bukkit.getConsoleSender(), source, player));
1515
}
1616

1717
public static void discordAlert(PlexPlayerView player, ViolationSource source)
@@ -45,6 +45,6 @@ public static Component kickMessage(ViolationSource source)
4545
<red>This server enforces a zero-tolerance policy for discrimination"""
4646
.replace("<source>", source.name());
4747

48-
return ChatFilterModule.getApi().messages().miniMessage(text);
48+
return ChatFilterModule.getModule().api().messages().miniMessage(text);
4949
}
5050
}
Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,6 @@
1+
castingOblivion: "<red>{0} is casting oblivion over {1}"
2+
playerEviscerated: "<red>{1} will be completely eviscerated"
3+
playerEradicated: "<red>{1} has been eradicated from existence!"
4+
obliterateReason: "You've met with a terrible fate, haven't you?"
5+
targetPermBanned: "<red>{0} - Permanently banning {1}"
6+
filterTriggered: "<red>{0} - {1} filter has been triggered by {2}"

0 commit comments

Comments
 (0)