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