@@ -54,6 +54,8 @@ public void send() throws InvalidPlayerError {
5454 if (senderPlayer .isPresent () && !Message .hasChannel (senderPlayer .get (), recipient ))
5555 setReplyTo (sender , recipient );
5656
57+ sendSpyMessage (sender , recipient , message );
58+
5759 if (
5860 (recipientPlayer .isPresent () && Message .isIgnored (recipientPlayer .get (), sender ))
5961 &&
@@ -78,6 +80,24 @@ public static void sendMessage(final @NotNull OfflinePlayer recipient, final @No
7880 else if (recipient .isOnline ()) Objects .requireNonNull (recipient .getPlayer ()).sendMessage (message );
7981 }
8082
83+ /**
84+ * Send social spy to online players with permission
85+ */
86+ public static void sendSpyMessage (final @ NotNull OfflinePlayer sender , final @ NotNull OfflinePlayer recipient , final @ NotNull Component message ) {
87+ final @ NotNull String senderName = sender .getUniqueId ().equals (console .getUniqueId ()) ? CloudnodeMSG .getInstance ().config ().consoleName () : Optional .ofNullable (sender .getName ()).orElse ("Unknown Player" );
88+ final @ NotNull String recipientName = recipient .getUniqueId ().equals (console .getUniqueId ()) ? CloudnodeMSG .getInstance ().config ().consoleName () : Optional .ofNullable (recipient .getName ()).orElse ("Unknown Player" );
89+ for (final @ NotNull Player player : CloudnodeMSG .getInstance ().getServer ().getOnlinePlayers ()) {
90+ if (
91+ !player .hasPermission (Permission .SPY )
92+ || player .getUniqueId ().equals (sender .getUniqueId ())
93+ || player .getUniqueId ().equals (recipient .getUniqueId ())
94+ ) continue ;
95+ sendMessage (player , CloudnodeMSG .getInstance ().config ().spy (senderName , recipientName , message ));
96+ }
97+ if (!sender .getUniqueId ().equals (console .getUniqueId ()) && !recipient .getUniqueId ().equals (console .getUniqueId ()))
98+ sendMessage (console , CloudnodeMSG .getInstance ().config ().spy (senderName , recipientName , message ));
99+ }
100+
81101 private static @ Nullable UUID consoleReply ;
82102
83103 public static final @ NotNull NamespacedKey REPLY_TO = new NamespacedKey (CloudnodeMSG .getInstance (), "reply" );
0 commit comments