11package org .garsooon .custommessages ;
22
3+ import com .projectposeidon .api .PoseidonUUID ;
4+
35import org .bukkit .Bukkit ;
46import org .bukkit .ChatColor ;
57import org .bukkit .command .Command ;
1719import java .util .*;
1820import java .util .regex .Pattern ;
1921import java .util .regex .Matcher ;
22+ import java .util .UUID ;
2023
2124public class CustomMessages extends JavaPlugin {
2225 private Properties messages ;
@@ -192,7 +195,7 @@ private boolean handleSetJoin(CommandSender sender, String[] args) {
192195 if (!validateMessage (sender , message )) return true ;
193196
194197 message = applyDefaultGold (message );
195- setJoinMessage (player .getName (), message );
198+ setJoinMessage (player .getUniqueId (), message );
196199 player .sendMessage (ChatColor .GREEN + "Join message set to: " + ChatColor .WHITE + message .replace ("%player%" , player .getName ()));
197200 return true ;
198201 }
@@ -219,7 +222,7 @@ private boolean handleSetLeave(CommandSender sender, String[] args) {
219222 if (!validateMessage (sender , message )) return true ;
220223
221224 message = applyDefaultGold (message );
222- setLeaveMessage (player .getName (), message );
225+ setLeaveMessage (player .getUniqueId (), message );
223226 player .sendMessage (ChatColor .GREEN + "Leave message set to: " + ChatColor .WHITE + message .replace ("%player%" , player .getName ()));
224227 return true ;
225228 }
@@ -236,14 +239,20 @@ private boolean handleSetPlayerJoin(CommandSender sender, String[] args) {
236239 }
237240
238241 String targetPlayer = args [0 ];
242+ UUID uuid = PoseidonUUID .getPlayerGracefulUUID (targetPlayer );
243+ if (uuid == null ) {
244+ sender .sendMessage (ChatColor .RED + "Could not find player or UUID for: " + targetPlayer );
245+ return true ;
246+ }
247+
239248 String [] msgArgs = new String [args .length - 1 ];
240249 System .arraycopy (args , 1 , msgArgs , 0 , args .length - 1 );
241250 String message = String .join (" " , msgArgs );
242251
243252 if (!validateMessage (sender , message )) return true ;
244253
245254 message = applyDefaultGold (message );
246- setJoinMessage (targetPlayer , message );
255+ setJoinMessage (uuid , message );
247256 sender .sendMessage (ChatColor .GREEN + "Set " + targetPlayer + "'s join message to: " + ChatColor .WHITE + message );
248257 return true ;
249258 }
@@ -260,14 +269,20 @@ private boolean handleSetPlayerLeave(CommandSender sender, String[] args) {
260269 }
261270
262271 String targetPlayer = args [0 ];
272+ UUID uuid = PoseidonUUID .getPlayerGracefulUUID (targetPlayer );
273+ if (uuid == null ) {
274+ sender .sendMessage (ChatColor .RED + "Could not find player or UUID for: " + targetPlayer );
275+ return true ;
276+ }
277+
263278 String [] msgArgs = new String [args .length - 1 ];
264279 System .arraycopy (args , 1 , msgArgs , 0 , args .length - 1 );
265280 String message = String .join (" " , msgArgs );
266281
267282 if (!validateMessage (sender , message )) return true ;
268283
269284 message = applyDefaultGold (message );
270- setLeaveMessage (targetPlayer , message );
285+ setLeaveMessage (uuid , message );
271286 sender .sendMessage (ChatColor .GREEN + "Set " + targetPlayer + "'s leave message to: " + ChatColor .WHITE + message );
272287 return true ;
273288 }
@@ -284,8 +299,14 @@ private boolean handleViewMessages(CommandSender sender, String[] args) {
284299 }
285300
286301 String targetPlayer = args [0 ];
287- String joinMsg = getJoinMessage (targetPlayer );
288- String leaveMsg = getLeaveMessage (targetPlayer );
302+ UUID uuid = PoseidonUUID .getPlayerGracefulUUID (targetPlayer );
303+ if (uuid == null ) {
304+ sender .sendMessage (ChatColor .RED + "Could not find player or UUID for: " + targetPlayer );
305+ return true ;
306+ }
307+
308+ String joinMsg = getJoinMessage (uuid );
309+ String leaveMsg = getLeaveMessage (uuid );
289310
290311 sender .sendMessage (ChatColor .GOLD + "=== Messages for " + targetPlayer + " ===" );
291312 sender .sendMessage (ChatColor .YELLOW + "Join: " + ChatColor .WHITE +
@@ -307,34 +328,50 @@ private boolean handleResetMessages(CommandSender sender, String[] args) {
307328 }
308329
309330 String targetPlayer = args [0 ];
310- messages .remove (targetPlayer + ".join" );
311- messages .remove (targetPlayer + ".leave" );
331+ UUID uuid = PoseidonUUID .getPlayerGracefulUUID (targetPlayer );
332+ if (uuid == null ) {
333+ sender .sendMessage (ChatColor .RED + "Could not find player or UUID for: " + targetPlayer );
334+ return true ;
335+ }
336+
337+ messages .remove (uuid .toString () + ".join" );
338+ messages .remove (uuid .toString () + ".leave" );
312339 saveMessages ();
313340 sender .sendMessage (ChatColor .GREEN + "Reset messages for " + targetPlayer );
314341 return true ;
315342 }
316343
317-
318-
319- public String getJoinMessage (String playerName ) {
320- return messages .getProperty (playerName + ".join" );
344+ public String getJoinMessage (UUID uuid ) {
345+ return messages .getProperty (uuid .toString () + ".join" );
321346 }
322347
323- public String getLeaveMessage (String playerName ) {
324- return messages .getProperty (playerName + ".leave" );
348+ public String getLeaveMessage (UUID uuid ) {
349+ return messages .getProperty (uuid . toString () + ".leave" );
325350 }
326351
327- public void setJoinMessage (String playerName , String message ) {
328- messages .setProperty (playerName + ".join" , message );
352+ public void setJoinMessage (UUID uuid , String message ) {
353+ messages .setProperty (uuid . toString () + ".join" , message );
329354 saveMessages ();
330355 }
331356
332- public void setLeaveMessage (String playerName , String message ) {
333- messages .setProperty (playerName + ".leave" , message );
357+ public void setLeaveMessage (UUID uuid , String message ) {
358+ messages .setProperty (uuid . toString () + ".leave" , message );
334359 saveMessages ();
335360 }
336361
362+ @ Deprecated
363+ public String getJoinMessage (String playerName ) {
364+ UUID uuid = PoseidonUUID .getPlayerGracefulUUID (playerName );
365+ if (uuid != null ) return getJoinMessage (uuid );
366+ return null ;
367+ }
337368
369+ @ Deprecated
370+ public String getLeaveMessage (String playerName ) {
371+ UUID uuid = PoseidonUUID .getPlayerGracefulUUID (playerName );
372+ if (uuid != null ) return getLeaveMessage (uuid );
373+ return null ;
374+ }
338375
339376 private void loadMessages () {
340377 if (!messagesFile .exists ()) {
@@ -396,8 +433,7 @@ public CustomMessageListener(CustomMessages plugin) {
396433 @ Override
397434 public void onPlayerJoin (PlayerJoinEvent event ) {
398435 Player player = event .getPlayer ();
399- String customMsg = plugin .getJoinMessage (player .getName ());
400-
436+ String customMsg = plugin .getJoinMessage (player .getUniqueId ());
401437 if (customMsg != null ) {
402438 event .setJoinMessage (plugin .translateColorCodes (
403439 customMsg .replace ("%player%" , player .getName ())));
@@ -407,8 +443,7 @@ public void onPlayerJoin(PlayerJoinEvent event) {
407443 @ Override
408444 public void onPlayerQuit (PlayerQuitEvent event ) {
409445 Player player = event .getPlayer ();
410- String customMsg = plugin .getLeaveMessage (player .getName ());
411-
446+ String customMsg = plugin .getLeaveMessage (player .getUniqueId ());
412447 if (customMsg != null ) {
413448 event .setQuitMessage (plugin .translateColorCodes (
414449 customMsg .replace ("%player%" , player .getName ())));
@@ -418,8 +453,7 @@ public void onPlayerQuit(PlayerQuitEvent event) {
418453 @ Override
419454 public void onPlayerKick (PlayerKickEvent event ) {
420455 Player player = event .getPlayer ();
421- String customMsg = plugin .getLeaveMessage (player .getName ());
422-
456+ String customMsg = plugin .getLeaveMessage (player .getUniqueId ());
423457 if (customMsg != null && !event .isCancelled ()) {
424458 event .setLeaveMessage (plugin .translateColorCodes (
425459 customMsg .replace ("%player%" , player .getName ())));
0 commit comments