From 293938e58ae565a6345df2fa55c7575fb78c9e2b Mon Sep 17 00:00:00 2001 From: DaTTV <104141141+DrFreezyYT@users.noreply.github.com> Date: Mon, 17 Feb 2025 18:08:47 +0100 Subject: [PATCH] Added clan chat feature! --- .../papermc/blazesmp/command/ClanCommand.java | 27 ++++++++++++++++--- 1 file changed, 24 insertions(+), 3 deletions(-) diff --git a/src/main/java/me/freezy/plugins/papermc/blazesmp/command/ClanCommand.java b/src/main/java/me/freezy/plugins/papermc/blazesmp/command/ClanCommand.java index a9f68a9..de3627f 100644 --- a/src/main/java/me/freezy/plugins/papermc/blazesmp/command/ClanCommand.java +++ b/src/main/java/me/freezy/plugins/papermc/blazesmp/command/ClanCommand.java @@ -76,6 +76,27 @@ public class ClanCommand extends SimpleCommand { player.sendMessage(miniMessage().deserialize("Clan created successfully!")); return true; } + case "chat" -> { + if (!clans.isInClan(playerUUID)) { + player.sendMessage(miniMessage().deserialize("You are not in a clan!")); + return true; + } + Clan clan = clans.getClanByMember(playerUUID); + if (args.length < 2) { + player.sendMessage(miniMessage().deserialize("Usage: /clan chat ")); + return true; + } + String message = String.join(" ", Arrays.copyOfRange(args, 1, args.length)); + Component chatMessage = miniMessage().deserialize( + String.format("[Clan] %s: %s", player.getName(), message)); + for (UUID mem : clan.getMembers()) { + Player member = Bukkit.getPlayer(mem); + if (member != null && member.isOnline()) { + member.sendMessage(chatMessage); + } + } + return true; + } // ========== JOIN ========== case "join" -> { @@ -797,18 +818,18 @@ public class ClanCommand extends SimpleCommand { // Erste Ebene der Subcommands if (args.length == 1) { if (clans.isLeader(playerUUID)) { - return Stream.of("info", "invite", "kick", "transfer", "promote", + return Stream.of("info", "chat", "invite", "kick", "transfer", "promote", "demote", "disband", "leave", "accept", "deny", "modify", "list") .filter(s -> s.startsWith(args[0])) .collect(Collectors.toList()); } else if (clans.isVice(playerUUID)) { - return Stream.of("info", "invite", "kick", "demote", + return Stream.of("info", "chat", "invite", "kick", "demote", "leave", "accept", "deny", "list") .filter(s -> s.startsWith(args[0])) .collect(Collectors.toList()); } else if (clans.isMember(playerUUID)) { - return Stream.of("info", "leave", "list") + return Stream.of("info", "chat", "leave", "list") .filter(s -> s.startsWith(args[0])) .collect(Collectors.toList()); } else {