Skip to content

Commit 25d4219

Browse files
committed
Fixes to social spy
1 parent 7c08b99 commit 25d4219

4 files changed

Lines changed: 81 additions & 82 deletions

File tree

src/main/java/simplexity/simplepms/listeners/PreCommandListener.java

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -5,17 +5,17 @@
55
import org.bukkit.event.Listener;
66
import org.bukkit.event.player.PlayerCommandPreprocessEvent;
77
import simplexity.simplepms.config.ConfigHandler;
8-
import simplexity.simplepms.logic.PMHandler;
8+
import simplexity.simplepms.logic.SpyHandler;
99

1010
public class PreCommandListener implements Listener {
11-
@EventHandler(priority= EventPriority.MONITOR, ignoreCancelled = true)
11+
@EventHandler(priority = EventPriority.MONITOR, ignoreCancelled = true)
1212

1313
public void onCommand(PlayerCommandPreprocessEvent event) {
1414
if (!ConfigHandler.getInstance().isCommandSpyEnabled()) return;
1515
String[] args = event.getMessage().split(" ");
1616
if (!ConfigHandler.getInstance().getCommandsToSpy().contains(args[0])) return;
1717
String command = args[0].toLowerCase();
1818
String message = event.getMessage();
19-
PMHandler.sendCommandSpy(event.getPlayer(), command, message);
19+
SpyHandler.sendCommandSpy(event.getPlayer(), command, message);
2020
}
2121
}

src/main/java/simplexity/simplepms/logic/MessageUtils.java

Lines changed: 2 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -46,6 +46,8 @@ public Component parseMessage(String localeMessage, @NotNull CommandSender initi
4646
}
4747

4848

49+
50+
4951
private Component getCommmandSenderComponent(CommandSender sender, boolean socialSpy) {
5052
if (!(sender instanceof Player player)) {
5153
if (socialSpy) return miniMessage.deserialize(LocaleMessage.CONSOLE_NAME_SOCIAL_SPY.getMessage());
@@ -76,13 +78,6 @@ private Component parsePapiName(Player player, String message) {
7678
);
7779
}
7880

79-
public Player getPlayerFromCommandSender(CommandSender sender) {
80-
if (!(sender instanceof Player player)) {
81-
return null;
82-
}
83-
return player;
84-
}
85-
8681
public TagResolver papiTag(final Player player) {
8782
if (player == null) return TagResolver.empty();
8883
return TagResolver.resolver("papi", (argumentQueue, context) -> {

src/main/java/simplexity/simplepms/logic/PMHandler.java

Lines changed: 5 additions & 72 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,5 @@
11
package simplexity.simplepms.logic;
22

3-
import net.kyori.adventure.text.Component;
43
import org.bukkit.command.CommandSender;
54
import org.bukkit.entity.Player;
65
import simplexity.simplepms.SimplePMs;
@@ -21,9 +20,13 @@ public static void handlePrivateMessage(CommandSender initiator, CommandSender t
2120
messageContent = messageEvent.getMessageContent();
2221
handleMessageSend(initiator, target, messageContent);
2322
handleMessageReceive(initiator, target, messageContent);
24-
handleSocialSpy(initiator, target, messageContent);
2523
lastMessaged.put(initiator, target);
2624
lastMessaged.put(target, initiator);
25+
if (!(initiator instanceof Player) || !(target instanceof Player)) {
26+
SpyHandler.handleConsoleSpy(messageEvent);
27+
} else {
28+
SpyHandler.handleSocialSpy(messageEvent);
29+
}
2730
}
2831

2932
private static void handleMessageSend(CommandSender initiator, CommandSender target, String messageContent) {
@@ -51,77 +54,7 @@ private static void handleMessageReceive(CommandSender initiator, CommandSender
5154
}
5255

5356

54-
public static void sendCommandSpy(CommandSender initiator, String command, String messageContent) {
55-
if (initiator.hasPermission(Constants.BYPASS_COMMAND_SPY)) return;
56-
Component parsedMessage = MessageUtils.getInstance().parseMessage(
57-
LocaleMessage.FORMAT_COMMAND_SPY.getMessage(), initiator,
58-
command, messageContent, true);
59-
for (Player spyingPlayer : SimplePMs.getSpyingPlayers()) {
60-
if (initiator.equals(spyingPlayer)) continue;
61-
spyingPlayer.sendMessage(parsedMessage);
62-
playSpySound(spyingPlayer);
63-
}
64-
if (ConfigHandler.getInstance().doesConsoleHaveCommandSpy()) {
65-
sendConsoleMessage(parsedMessage);
66-
}
67-
}
68-
69-
private static void handleSocialSpy(CommandSender initiator, CommandSender target, String messageContent) {
70-
boolean consoleSpy = false;
71-
Player initiatorPlayer = MessageUtils.getInstance().getPlayerFromCommandSender(initiator);
72-
Player targetPlayer = MessageUtils.getInstance().getPlayerFromCommandSender(target);
73-
if (initiatorPlayer == null || targetPlayer == null) consoleSpy = true;
74-
if (!consoleSpy) {
75-
if (initiatorPlayer.hasPermission(Constants.BYPASS_SOCIAL_SPY) || targetPlayer.hasPermission(Constants.BYPASS_SOCIAL_SPY))
76-
return;
77-
sendSocialSpy(initiator, target, messageContent);
78-
} else {
79-
sendConsoleSpy(initiator, target, messageContent);
80-
}
81-
}
82-
83-
private static void sendConsoleSpy(CommandSender initiator, CommandSender target, String messageContent) {
84-
Component parsedMessage = MessageUtils.getInstance().parseMessage(
85-
LocaleMessage.FORMAT_SOCIAL_SPY.getMessage(),
86-
initiator, target, messageContent,
87-
true);
88-
for (Player spyingPlayer : SimplePMs.getSpyingPlayers()) {
89-
if (initiator.equals(spyingPlayer) || target.equals(spyingPlayer)) continue;
90-
if (!spyingPlayer.hasPermission(Constants.ADMIN_CONSOLE_SPY)) continue;
91-
spyingPlayer.sendMessage(parsedMessage);
92-
playSpySound(spyingPlayer);
93-
}
94-
if (ConfigHandler.getInstance().doesConsoleHaveSocialSpy()) {
95-
sendConsoleMessage(parsedMessage);
96-
}
97-
}
98-
99-
private static void sendSocialSpy(CommandSender initiator, CommandSender target, String messageContent) {
100-
Component parsedMessage = MessageUtils.getInstance().parseMessage(
101-
LocaleMessage.FORMAT_SOCIAL_SPY.getMessage(),
102-
initiator, target, messageContent,
103-
true);
104-
for (Player spyingPlayer : SimplePMs.getSpyingPlayers()) {
105-
if (initiator.equals(spyingPlayer) || target.equals(spyingPlayer)) continue;
106-
spyingPlayer.sendMessage(parsedMessage);
107-
playSpySound(spyingPlayer);
108-
}
109-
if (ConfigHandler.getInstance().doesConsoleHaveSocialSpy()) {
110-
sendConsoleMessage(parsedMessage);
111-
}
112-
}
113-
114-
private static void sendConsoleMessage(Component message) {
115-
SimplePMs.getPMConsoleSender().sendMessage(message);
116-
}
11757

118-
private static void playSpySound(Player spyingPlayer) {
119-
if (!ConfigHandler.getInstance().messagePlaysSoundForSpy()) return;
120-
spyingPlayer.playSound(spyingPlayer,
121-
ConfigHandler.getInstance().getSpySound(),
122-
ConfigHandler.getInstance().getSpyVolume(),
123-
ConfigHandler.getInstance().getSpyPitch());
124-
}
12558

12659
private static PrivateMessageEvent callPMEvent(CommandSender initiator, CommandSender target, String messageContent) {
12760
PrivateMessageEvent messageEvent = new PrivateMessageEvent(initiator, target, messageContent, SimplePMs.getSpyingPlayers());
Lines changed: 71 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,71 @@
1+
package simplexity.simplepms.logic;
2+
3+
import net.kyori.adventure.text.Component;
4+
import org.bukkit.command.CommandSender;
5+
import org.bukkit.entity.Player;
6+
import simplexity.simplepms.SimplePMs;
7+
import simplexity.simplepms.config.ConfigHandler;
8+
import simplexity.simplepms.config.LocaleMessage;
9+
import simplexity.simplepms.events.PrivateMessageEvent;
10+
11+
public class SpyHandler {
12+
13+
private static final CommandSender console = SimplePMs.getPMConsoleSender();
14+
15+
public static void sendCommandSpy(CommandSender initiator, String command, String messageContent) {
16+
Component parsedMessage = MessageUtils.getInstance().parseMessage(
17+
LocaleMessage.FORMAT_COMMAND_SPY.getMessage(), initiator,
18+
command, messageContent, true);
19+
if (ConfigHandler.getInstance().doesConsoleHaveCommandSpy()) {
20+
console.sendMessage(parsedMessage);
21+
}
22+
if (initiator.hasPermission(Constants.BYPASS_COMMAND_SPY)) return;
23+
for (Player spyingPlayer : SimplePMs.getSpyingPlayers()) {
24+
if (initiator.equals(spyingPlayer)) continue;
25+
if (!spyingPlayer.hasPermission(Constants.ADMIN_SOCIAL_SPY)) continue;
26+
spyingPlayer.sendMessage(parsedMessage);
27+
playSpySound(spyingPlayer);
28+
}
29+
}
30+
31+
public static void handleSocialSpy(PrivateMessageEvent messageEvent) {
32+
Player initiatorPlayer = (Player) messageEvent.getInitiator();
33+
Player targetPlayer = (Player) messageEvent.getRecipient();
34+
Component parsedMessage = MessageUtils.getInstance().parseMessage(
35+
LocaleMessage.FORMAT_SOCIAL_SPY.getMessage(),
36+
initiatorPlayer, targetPlayer, messageEvent.getMessageContent(),
37+
true);
38+
if (ConfigHandler.getInstance().doesConsoleHaveSocialSpy()) console.sendMessage(parsedMessage);
39+
if (initiatorPlayer.hasPermission(Constants.BYPASS_SOCIAL_SPY) ||
40+
targetPlayer.hasPermission(Constants.BYPASS_SOCIAL_SPY)) return;
41+
for (Player spyingPlayer : messageEvent.getSpyingPlayers()) {
42+
if (!spyingPlayer.hasPermission(Constants.ADMIN_SOCIAL_SPY)) continue;
43+
if (spyingPlayer.equals(initiatorPlayer) ||
44+
spyingPlayer.equals(targetPlayer)) continue;
45+
spyingPlayer.sendMessage(parsedMessage);
46+
playSpySound(spyingPlayer);
47+
}
48+
}
49+
50+
public static void handleConsoleSpy(PrivateMessageEvent messageEvent) {
51+
Component parsedMessage = MessageUtils.getInstance().parseMessage(
52+
LocaleMessage.FORMAT_SOCIAL_SPY.getMessage(),
53+
messageEvent.getInitiator(), messageEvent.getRecipient(), messageEvent.getMessageContent(),
54+
true);
55+
for (Player spyingPlayer : messageEvent.getSpyingPlayers()) {
56+
if (!spyingPlayer.hasPermission(Constants.ADMIN_CONSOLE_SPY)) continue;
57+
if (spyingPlayer.equals(messageEvent.getInitiator()) ||
58+
spyingPlayer.equals(messageEvent.getRecipient())) continue;
59+
spyingPlayer.sendMessage(parsedMessage);
60+
playSpySound(spyingPlayer);
61+
}
62+
}
63+
64+
private static void playSpySound(Player spyingPlayer) {
65+
if (!ConfigHandler.getInstance().messagePlaysSoundForSpy()) return;
66+
spyingPlayer.playSound(spyingPlayer,
67+
ConfigHandler.getInstance().getSpySound(),
68+
ConfigHandler.getInstance().getSpyVolume(),
69+
ConfigHandler.getInstance().getSpyPitch());
70+
}
71+
}

0 commit comments

Comments
 (0)