Skip to content

Commit fb8e09a

Browse files
committed
work n stuff
1 parent 15c9ab8 commit fb8e09a

File tree

5 files changed

+100
-104
lines changed

5 files changed

+100
-104
lines changed

src/main/java/adhdmc/simplepms/commands/PrivateMessage.java

Lines changed: 5 additions & 71 deletions
Original file line numberDiff line numberDiff line change
@@ -1,25 +1,18 @@
11
package adhdmc.simplepms.commands;
22

3-
import adhdmc.simplepms.SimplePMs;
4-
import adhdmc.simplepms.events.PrivateMessageEvent;
3+
import adhdmc.simplepms.handling.MessageHandling;
54
import adhdmc.simplepms.utils.*;
6-
import net.kyori.adventure.text.Component;
7-
import net.kyori.adventure.text.minimessage.MiniMessage;
8-
import net.kyori.adventure.text.minimessage.tag.resolver.Placeholder;
95
import org.bukkit.Bukkit;
10-
import org.bukkit.NamespacedKey;
116
import org.bukkit.command.Command;
127
import org.bukkit.command.CommandExecutor;
138
import org.bukkit.command.CommandSender;
149
import org.bukkit.command.TabCompleter;
1510
import org.bukkit.entity.Player;
16-
import org.bukkit.persistence.PersistentDataType;
1711
import org.jetbrains.annotations.NotNull;
1812
import org.jetbrains.annotations.Nullable;
1913

2014
import java.util.ArrayList;
2115
import java.util.Arrays;
22-
import java.util.HashSet;
2316
import java.util.List;
2417
import java.util.stream.Collectors;
2518

@@ -30,10 +23,6 @@ public static PrivateMessage getInstance() {
3023
return instance;
3124
}
3225

33-
HashSet<Player> spyingPlayers = SimplePMs.getSpyingPlayers();
34-
NamespacedKey lastMessaged = SPMKey.LAST_MESSAGED.getKey();
35-
36-
MiniMessage miniMessage = SimplePMs.getMiniMessage();
3726
@Override
3827
public boolean onCommand(@NotNull CommandSender sender, @NotNull Command command, @NotNull String label, @NotNull String[] args) {
3928
if (args.length == 0) {
@@ -48,80 +37,25 @@ public boolean onCommand(@NotNull CommandSender sender, @NotNull Command command
4837
sender.sendMessage(Resolvers.getInstance().parsePluginPrefix(Message.ERROR_NO_PERMISSION.getMessage()));
4938
return false;
5039
}
40+
String message = String.join(" ", Arrays.stream(args).skip(1).collect(Collectors.joining(" ")));
5141
if (args[0].equalsIgnoreCase(Message.PDC_CONSOLE.getMessage())) {
52-
consoleReciever(sender);
42+
MessageHandling.getInstance().consoleReceiver(sender, message);
5343
return true;
5444
}
5545
Player recipient = Bukkit.getPlayer(args[0]);
5646
if (recipient == null) {
5747
sender.sendMessage(Resolvers.getInstance().parsePluginPrefixAndString(Message.ERROR_RECIPIENT_OFFLINE.getMessage(), "receiver", args[0]));
5848
return false;
5949
}
60-
String message = String.join(" ", Arrays.stream(args).skip(1).collect(Collectors.joining(" ")));
6150
if (sender instanceof Player player){
62-
playerSender(player, recipient, message);
51+
MessageHandling.getInstance().playerSenderAndReceiver(player, recipient, message);
6352
} else {
64-
consoleSender(sender, recipient, message);
53+
MessageHandling.getInstance().consoleSender(sender, recipient, message);
6554
}
66-
// TODO: Implement message event in place of this.
6755
return true;
6856
}
6957

70-
public void playerSender(Player initiator, Player recipient, String messageContent) {
71-
// Calls private message event so other plugins can interact with this
72-
PrivateMessageEvent event = new PrivateMessageEvent(initiator, recipient, messageContent, spyingPlayers);
73-
Bukkit.getServer().getPluginManager().callEvent(event);
74-
initiator.getPersistentDataContainer().set(lastMessaged, PersistentDataType.STRING, recipient.getName());
75-
recipient.getPersistentDataContainer().set(lastMessaged, PersistentDataType.STRING, initiator.getName());
76-
if (Toggle.DISPLAYNAME.isEnabled()) {
77-
initiator.sendMessage(Resolvers.getInstance().parseMessagePlayerDisplayName(Message.SENDING_FORMAT.getMessage(), initiator, recipient, messageContent));
78-
recipient.sendMessage(Resolvers.getInstance().parseMessagePlayerDisplayName(Message.RECEIVING_FORMAT.getMessage(), initiator, recipient, messageContent));
79-
for (Player spy : spyingPlayers) {
80-
if (!spy.isOnline()) continue;
81-
if (spy.equals(initiator) || spy.equals(recipient)) continue;
82-
spy.sendMessage(Resolvers.getInstance().parseMessagePlayerDisplayName(Message.SPY_FORMAT.getMessage(), initiator, recipient, messageContent));
83-
}
84-
} else {
85-
initiator.sendMessage(Resolvers.getInstance().parseMessagePlayerUsername(Message.SENDING_FORMAT.getMessage(), initiator, recipient, messageContent));
86-
recipient.sendMessage(Resolvers.getInstance().parseMessagePlayerUsername(Message.RECEIVING_FORMAT.getMessage(), initiator, recipient, messageContent));
87-
for (Player spy : spyingPlayers) {
88-
if (!spy.isOnline()) continue;
89-
if (spy.equals(initiator) || spy.equals(recipient)) continue;
90-
spy.sendMessage(Resolvers.getInstance().parseMessagePlayerUsername(Message.SPY_FORMAT.getMessage(), initiator, recipient, messageContent));
91-
}
92-
}
93-
}
9458

95-
public void consoleSender(CommandSender initiator, Player recipient, String messageContent) {
96-
PrivateMessageEvent event = new PrivateMessageEvent(initiator, recipient, messageContent, spyingPlayers);
97-
Bukkit.getServer().getPluginManager().callEvent(event);
98-
Component initiatorComponent = miniMessage.deserialize(Message.CONSOLE_FORMAT.getMessage());
99-
recipient.getPersistentDataContainer().set(lastMessaged, PersistentDataType.STRING, Message.PDC_CONSOLE.getMessage());
100-
if (Toggle.DISPLAYNAME.isEnabled()){
101-
recipient.sendMessage(Resolvers.getInstance().parseMessageConsolePlayerDisplayName(Message.RECEIVING_FORMAT.getMessage(), initiatorComponent, recipient, messageContent));
102-
initiator.sendMessage(Resolvers.getInstance().parseMessageConsolePlayerDisplayName(Message.SENDING_FORMAT.getMessage(), initiatorComponent, recipient, messageContent));
103-
for (Player spy : spyingPlayers) {
104-
if (!spy.isOnline()) continue;
105-
if (spy.equals(initiator) || spy.equals(recipient)) continue;
106-
if (!spy.hasPermission(Perms.CONSOLE_MESSAGE_SPY.getPerm())) continue;
107-
spy.sendMessage(Resolvers.getInstance().parseMessageConsolePlayerDisplayName(Message.SPY_FORMAT.getMessage(), initiatorComponent, recipient, messageContent));
108-
}
109-
} else {
110-
recipient.sendMessage(Resolvers.getInstance().parseMessageConsolePlayerUsername(Message.RECEIVING_FORMAT.getMessage(), initiatorComponent, recipient, messageContent));
111-
initiator.sendMessage(Resolvers.getInstance().parseMessageConsolePlayerUsername(Message.SENDING_FORMAT.getMessage(), initiatorComponent, recipient, messageContent));
112-
for (Player spy : spyingPlayers) {
113-
if (!spy.isOnline()) continue;
114-
if (spy.equals(initiator) || spy.equals(recipient)) continue;
115-
if (!spy.hasPermission(Perms.CONSOLE_MESSAGE_SPY.getPerm())) continue;
116-
spy.sendMessage(Resolvers.getInstance().parseMessageConsolePlayerUsername(Message.SPY_FORMAT.getMessage(), initiatorComponent, recipient, messageContent));
117-
}
118-
}
119-
}
120-
121-
122-
public void consoleReciever(CommandSender initiator) {
123-
124-
}
12559

12660
@Override
12761
public @Nullable List<String> onTabComplete(@NotNull CommandSender sender, @NotNull Command command, @NotNull String label, @NotNull String[] args) {

src/main/java/adhdmc/simplepms/commands/ReplyCommand.java

Lines changed: 10 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -1,13 +1,11 @@
11
package adhdmc.simplepms.commands;
22

33
import adhdmc.simplepms.SimplePMs;
4+
import adhdmc.simplepms.handling.MessageHandling;
45
import adhdmc.simplepms.utils.SPMKey;
56
import adhdmc.simplepms.utils.Message;
67
import adhdmc.simplepms.utils.Resolvers;
7-
import net.kyori.adventure.audience.Audience;
8-
import net.kyori.adventure.text.Component;
98
import net.kyori.adventure.text.minimessage.MiniMessage;
10-
import net.kyori.adventure.text.minimessage.tag.resolver.Placeholder;
119
import org.bukkit.Bukkit;
1210
import org.bukkit.NamespacedKey;
1311
import org.bukkit.Server;
@@ -31,24 +29,27 @@ public class ReplyCommand implements TabExecutor {
3129
private final MiniMessage miniMessage = SimplePMs.getMiniMessage();
3230
@Override
3331
public boolean onCommand(@NotNull CommandSender sender, @NotNull Command command, @NotNull String label, @NotNull String[] args) {
34-
if (!(sender instanceof Player player)) {
32+
if (!(sender instanceof Player playerInitiator)) {
3533
sender.sendMessage(Resolvers.getInstance().parsePluginPrefix(Message.ERROR_PLAYER_COMMAND.getMessage()));
3634
return false;
3735
}
3836
String message = String.join(" ", Arrays.stream(args).skip(1).collect(Collectors.joining(" ")));
39-
PersistentDataContainer playerPDC = player.getPersistentDataContainer();
37+
PersistentDataContainer playerPDC = playerInitiator.getPersistentDataContainer();
4038
String lastMessagedPlayer = playerPDC.getOrDefault(lastMessaged, PersistentDataType.STRING, "");
4139
if (lastMessagedPlayer.equalsIgnoreCase(Message.PDC_CONSOLE.getMessage())) {
42-
40+
MessageHandling.getInstance().consoleReceiver(playerInitiator, message);
41+
return true;
4342
}
4443
Player recipient = Bukkit.getServer().getPlayer(lastMessagedPlayer);
4544
if (recipient == null) {
46-
player.sendMessage(Resolvers.getInstance().parsePluginPrefixAndString(Message.ERROR_RECIPIENT_OFFLINE.getMessage(), "receiver", lastMessagedPlayer));
45+
playerInitiator.sendMessage(Resolvers.getInstance().parsePluginPrefixAndString(Message.ERROR_RECIPIENT_OFFLINE.getMessage(), "receiver", lastMessagedPlayer));
4746
return false;
4847
}
49-
48+
if (!recipient.isOnline()) {
49+
playerInitiator.sendMessage(Resolvers.getInstance().parsePluginPrefixAndString(Message.ERROR_RECIPIENT_OFFLINE.getMessage(), "receiver", lastMessagedPlayer));
50+
}
51+
MessageHandling.getInstance().playerSenderAndReceiver(playerInitiator, recipient, message);
5052
return true;
51-
5253
}
5354

5455

Lines changed: 78 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,78 @@
1+
package adhdmc.simplepms.handling;
2+
3+
import adhdmc.simplepms.SimplePMs;
4+
import adhdmc.simplepms.events.PrivateMessageEvent;
5+
import adhdmc.simplepms.utils.Message;
6+
import adhdmc.simplepms.utils.Perms;
7+
import adhdmc.simplepms.utils.Resolvers;
8+
import adhdmc.simplepms.utils.SPMKey;
9+
import net.kyori.adventure.text.Component;
10+
import org.bukkit.Bukkit;
11+
import org.bukkit.NamespacedKey;
12+
import org.bukkit.command.CommandSender;
13+
import org.bukkit.entity.Player;
14+
import org.bukkit.persistence.PersistentDataType;
15+
16+
import java.util.HashSet;
17+
18+
public class MessageHandling {
19+
private static MessageHandling instance;
20+
private MessageHandling(){}
21+
22+
public static MessageHandling getInstance() {
23+
if (instance == null) instance = new MessageHandling();
24+
return instance;
25+
}
26+
HashSet<Player> spyingPlayers = SimplePMs.getSpyingPlayers();
27+
NamespacedKey lastMessaged = SPMKey.LAST_MESSAGED.getKey();
28+
Component consoleComponent = SimplePMs.getMiniMessage().deserialize(Message.CONSOLE_FORMAT.getMessage());
29+
30+
public void playerSenderAndReceiver(Player initiator, Player recipient, String messageContent) {
31+
// Calls private message event so other plugins can interact with this
32+
PrivateMessageEvent event = new PrivateMessageEvent(initiator, recipient, messageContent, spyingPlayers);
33+
Bukkit.getServer().getPluginManager().callEvent(event);
34+
initiator.getPersistentDataContainer().set(lastMessaged, PersistentDataType.STRING, recipient.getName());
35+
recipient.getPersistentDataContainer().set(lastMessaged, PersistentDataType.STRING, initiator.getName());
36+
initiator.sendMessage(Resolvers.getInstance().parseMessagePlayerToPlayer(Message.SENDING_FORMAT.getMessage(), initiator, recipient, messageContent));
37+
recipient.sendMessage(Resolvers.getInstance().parseMessagePlayerToPlayer(Message.RECEIVING_FORMAT.getMessage(), initiator, recipient, messageContent));
38+
for (Player spy : spyingPlayers) {
39+
if (!spy.isOnline()) continue;
40+
if (spy.equals(initiator) || spy.equals(recipient)) continue;
41+
spy.sendMessage(Resolvers.getInstance().parseMessagePlayerToPlayer(Message.SPY_FORMAT.getMessage(), initiator, recipient, messageContent));
42+
}
43+
}
44+
45+
public void consoleSender(CommandSender initiator, Player recipient, String messageContent) {
46+
// Call Event
47+
PrivateMessageEvent event = new PrivateMessageEvent(initiator, recipient, messageContent, spyingPlayers);
48+
Bukkit.getServer().getPluginManager().callEvent(event);
49+
recipient.getPersistentDataContainer().set(lastMessaged, PersistentDataType.STRING, Message.PDC_CONSOLE.getMessage());
50+
recipient.sendMessage(Resolvers.getInstance().parseMessageConsoleToPlayer(Message.RECEIVING_FORMAT.getMessage(), consoleComponent, recipient, messageContent));
51+
initiator.sendMessage(Resolvers.getInstance().parseMessageConsoleToPlayer(Message.SENDING_FORMAT.getMessage(), consoleComponent, recipient, messageContent));
52+
for (Player spy : spyingPlayers) {
53+
if (!spy.isOnline()) continue;
54+
if (spy.equals(initiator) || spy.equals(recipient)) continue;
55+
if (!spy.hasPermission(Perms.CONSOLE_MESSAGE_SPY.getPerm())) continue;
56+
spy.sendMessage(Resolvers.getInstance().parseMessageConsoleToPlayer(Message.SPY_FORMAT.getMessage(), consoleComponent, recipient, messageContent));
57+
}
58+
}
59+
60+
61+
public void consoleReceiver(CommandSender initiator, String messageContent) {
62+
if (!(initiator instanceof Player initiatingPlayer)){
63+
initiator.sendMessage(Resolvers.getInstance().parsePluginPrefix(Message.ERROR_PLAYER_COMMAND.getMessage()));
64+
return;
65+
}
66+
// Call Event
67+
PrivateMessageEvent event = new PrivateMessageEvent(initiator, Bukkit.getConsoleSender(), messageContent, spyingPlayers);
68+
Bukkit.getServer().getPluginManager().callEvent(event);
69+
initiatingPlayer.getPersistentDataContainer().set(lastMessaged, PersistentDataType.STRING, Message.PDC_CONSOLE.getMessage());
70+
initiatingPlayer.sendMessage(Resolvers.getInstance().parseMessagePlayerToConsole(Message.SENDING_FORMAT.getMessage(), initiatingPlayer, consoleComponent, messageContent));
71+
for (Player spy : spyingPlayers) {
72+
if (!spy.isOnline()) continue;
73+
if (spy.equals(initiator)) continue;
74+
if (!spy.hasPermission(Perms.CONSOLE_MESSAGE_SPY.getPerm())) continue;
75+
spy.sendMessage(Resolvers.getInstance().parseMessagePlayerToConsole(Message.SPY_FORMAT.getMessage(),initiatingPlayer, consoleComponent, messageContent));
76+
}
77+
}
78+
}

src/main/java/adhdmc/simplepms/utils/Resolvers.java

Lines changed: 7 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -11,8 +11,6 @@
1111
import org.bukkit.entity.Player;
1212
import org.jetbrains.annotations.NotNull;
1313

14-
import java.util.HashSet;
15-
1614
public class Resolvers {
1715
private static Resolvers instance;
1816
private Resolvers(){}
@@ -41,7 +39,7 @@ public static Resolvers getInstance() {
4139
});
4240
}
4341

44-
public Component parseMessagePlayerDisplayName(String message, Player initiator, Player target, String messageContent){
42+
public Component parseMessagePlayerToPlayer(String message, Player initiator, Player target, String messageContent){
4543
return miniMessage.deserialize(message,
4644
Placeholder.parsed("plugin_prefix", Message.PLUGIN_PREFIX.getMessage()),
4745
Placeholder.component("target", target.displayName()),
@@ -51,17 +49,7 @@ public Component parseMessagePlayerDisplayName(String message, Player initiator,
5149
papiTag(target));
5250
}
5351

54-
public Component parseMessagePlayerUsername(String message, Player initiator, Player target, String messageContent){
55-
return miniMessage.deserialize(message,
56-
Placeholder.parsed("plugin_prefix", Message.PLUGIN_PREFIX.getMessage()),
57-
Placeholder.parsed("target", target.getName()),
58-
Placeholder.parsed("initiator", initiator.getName()),
59-
Placeholder.unparsed("message", messageContent),
60-
papiTag(initiator),
61-
papiTag(target));
62-
}
63-
64-
public Component parseMessageConsolePlayerDisplayName(String message, Component initiator, Player target, String messageContent){
52+
public Component parseMessageConsoleToPlayer(String message, Component initiator, Player target, String messageContent){
6553
return miniMessage.deserialize(message,
6654
Placeholder.parsed("plugin_prefix", Message.PLUGIN_PREFIX.getMessage()),
6755
Placeholder.component("target", target.displayName()),
@@ -70,15 +58,16 @@ public Component parseMessageConsolePlayerDisplayName(String message, Component
7058
papiTag(target));
7159
}
7260

73-
public Component parseMessageConsolePlayerUsername(String message, Component initiator, Player target, String messageContent){
61+
public Component parseMessagePlayerToConsole(String message, Player initiator, Component target, String messageContent){
7462
return miniMessage.deserialize(message,
7563
Placeholder.parsed("plugin_prefix", Message.PLUGIN_PREFIX.getMessage()),
76-
Placeholder.parsed("target", target.getName()),
77-
Placeholder.component("initiator", initiator),
64+
Placeholder.component("target", target),
65+
Placeholder.component("initiator", initiator.displayName()),
7866
Placeholder.unparsed("message", messageContent),
79-
papiTag(target));
67+
papiTag(initiator));
8068
}
8169

70+
8271
public Component parsePluginPrefix(String message) {
8372
return miniMessage.deserialize(message,
8473
Placeholder.parsed("plugin_prefix", Message.PLUGIN_PREFIX.getMessage()));

src/main/resources/config.yml

Lines changed: 0 additions & 6 deletions
This file was deleted.

0 commit comments

Comments
 (0)