11package adhdmc .simplepms .commands ;
22
3- import adhdmc .simplepms .SimplePMs ;
4- import adhdmc .simplepms .events .PrivateMessageEvent ;
3+ import adhdmc .simplepms .handling .MessageHandling ;
54import 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 ;
95import org .bukkit .Bukkit ;
10- import org .bukkit .NamespacedKey ;
116import org .bukkit .command .Command ;
127import org .bukkit .command .CommandExecutor ;
138import org .bukkit .command .CommandSender ;
149import org .bukkit .command .TabCompleter ;
1510import org .bukkit .entity .Player ;
16- import org .bukkit .persistence .PersistentDataType ;
1711import org .jetbrains .annotations .NotNull ;
1812import org .jetbrains .annotations .Nullable ;
1913
2014import java .util .ArrayList ;
2115import java .util .Arrays ;
22- import java .util .HashSet ;
2316import java .util .List ;
2417import 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 ) {
0 commit comments