From f111d552004e883874b39fbb4cf7bc3937aa713f Mon Sep 17 00:00:00 2001 From: TheBreadBeard Date: Sat, 28 Dec 2024 17:36:40 +0100 Subject: [PATCH 1/3] Add custom NPC Chats for specific players --- .../src/de/steamwar/lobby/LobbySystem.properties | 2 ++ .../src/de/steamwar/lobby/LobbySystem_de.properties | 2 ++ .../src/de/steamwar/lobby/team/TeamPlayer.java | 11 ++++++++--- 3 files changed, 12 insertions(+), 3 deletions(-) diff --git a/LobbySystem/src/de/steamwar/lobby/LobbySystem.properties b/LobbySystem/src/de/steamwar/lobby/LobbySystem.properties index 2d3aa782..7469e86e 100644 --- a/LobbySystem/src/de/steamwar/lobby/LobbySystem.properties +++ b/LobbySystem/src/de/steamwar/lobby/LobbySystem.properties @@ -10,6 +10,8 @@ NPC_CHAT_2 = §eSteam§8War§f was established in 2019. NPC_CHAT_3 = §fBecome a part of our team by applying via our Discord server (https://steamwar.de/discord). NPC_CHAT_4 = §fYou can develop your own buildserver features with our Lua script system. NPC_CHAT_5 = §fThere are many secrets to discover in this lobby. +## TheBreadBeard +NPC_CHAT_3266_0 = §fI collect Alts like Infinity Stones. # Portal Command PORTAL_COMMAND_LIST_HELP = §8/§7portal §elist §8- §7Lists all portals diff --git a/LobbySystem/src/de/steamwar/lobby/LobbySystem_de.properties b/LobbySystem/src/de/steamwar/lobby/LobbySystem_de.properties index 73808174..f7422e89 100644 --- a/LobbySystem/src/de/steamwar/lobby/LobbySystem_de.properties +++ b/LobbySystem/src/de/steamwar/lobby/LobbySystem_de.properties @@ -10,6 +10,8 @@ NPC_CHAT_2 = §eSteam§8War§f gibt es seit 2019. NPC_CHAT_3 = §fBewerbe dich gerne für unser Team über unseren Discord-Server (https://steamwar.de/discord). NPC_CHAT_4 = §fDu kannst mit unserm Lua Script-System deine eigenen Bau Features programmieren. NPC_CHAT_5 = §fAuf dieser Lobby sind so einige secrets versteckt. +## TheBreadBeard +NPC_CHAT_3266_0 = §fIch sammle Alts wie Infinity Stones. # Portal Command PORTAL_COMMAND_LIST_HELP = §8/§7portal §elist §8- §7Listet alle Portale auf diff --git a/LobbySystem/src/de/steamwar/lobby/team/TeamPlayer.java b/LobbySystem/src/de/steamwar/lobby/team/TeamPlayer.java index 2829ec2f..a42d184a 100644 --- a/LobbySystem/src/de/steamwar/lobby/team/TeamPlayer.java +++ b/LobbySystem/src/de/steamwar/lobby/team/TeamPlayer.java @@ -144,11 +144,16 @@ public class TeamPlayer extends BasicListener { players.remove(event.getPlayer()); return; } - - String message = "NPC_CHAT_" + random.nextInt(6); SteamwarUser user = SteamwarUser.get(event.getRightClicked().getName()); UserPerm.Prefix prefix = user.prefix(); - LobbySystem.getMessage().send(message, event.getPlayer(), event.getRightClicked().getName(), prefix.getColorCode() + prefix.getChatPrefix()); + Object[] parameters = new Object[]{event.getRightClicked().getName(),prefix.getColorCode() + prefix.getChatPrefix()}; + String message; + try { + message = LobbySystem.getMessage().parsePrefixed("NPC_CHAT_" + user.getId() + "_" + random.nextInt(6), event.getPlayer(),parameters); + } catch (Exception e) { + message = LobbySystem.getMessage().parsePrefixed("NPC_CHAT_" + random.nextInt(6), event.getPlayer(),parameters); + } + event.getPlayer().sendMessage(message); } @EventHandler From f52cec04484c91c5c4467f3ea1d6461a5374742c Mon Sep 17 00:00:00 2001 From: TheBreadBeard Date: Sat, 28 Dec 2024 22:58:35 +0100 Subject: [PATCH 2/3] Add custom NPC Chats for TheBreadBeard --- LobbySystem/src/de/steamwar/lobby/LobbySystem.properties | 5 +++++ .../src/de/steamwar/lobby/LobbySystem_de.properties | 7 ++++++- 2 files changed, 11 insertions(+), 1 deletion(-) diff --git a/LobbySystem/src/de/steamwar/lobby/LobbySystem.properties b/LobbySystem/src/de/steamwar/lobby/LobbySystem.properties index 7469e86e..275a99a8 100644 --- a/LobbySystem/src/de/steamwar/lobby/LobbySystem.properties +++ b/LobbySystem/src/de/steamwar/lobby/LobbySystem.properties @@ -12,6 +12,11 @@ NPC_CHAT_4 = §fYou can develop your own buildserver features with our Lua scrip NPC_CHAT_5 = §fThere are many secrets to discover in this lobby. ## TheBreadBeard NPC_CHAT_3266_0 = §fI collect Alts like Infinity Stones. +NPC_CHAT_3266_1 = &fYou want my Bread? You can have it! Just look for it! I've hidden the best bakery in the world somewhere! +NPC_CHAT_3266_2 = &fHey, I am TheBreadBeard, ex- EuropSuchties Player, formerly (un)known as WarGear_Titan. +NPC_CHAT_3266_3 = &fInventor of Lactose Intolerance, the Placeholder and Infinity-Ring. All technical principles no one knows or needs. +NPC_CHAT_3266_4 = &fKnown for the Lobby-Banners, logos, spontaneous Arenas, as well as an Organizer and Moderator of many Events. +NPC_CHAT_3266_5 = &fFrom Supporter to Moderator to Builder ... Maybe the journey takes me to being a Developer next. # Portal Command PORTAL_COMMAND_LIST_HELP = §8/§7portal §elist §8- §7Lists all portals diff --git a/LobbySystem/src/de/steamwar/lobby/LobbySystem_de.properties b/LobbySystem/src/de/steamwar/lobby/LobbySystem_de.properties index f7422e89..bf382639 100644 --- a/LobbySystem/src/de/steamwar/lobby/LobbySystem_de.properties +++ b/LobbySystem/src/de/steamwar/lobby/LobbySystem_de.properties @@ -11,7 +11,12 @@ NPC_CHAT_3 = §fBewerbe dich gerne für unser Team über unseren Discord-Server NPC_CHAT_4 = §fDu kannst mit unserm Lua Script-System deine eigenen Bau Features programmieren. NPC_CHAT_5 = §fAuf dieser Lobby sind so einige secrets versteckt. ## TheBreadBeard -NPC_CHAT_3266_0 = §fIch sammle Alts wie Infinity Stones. +NPC_CHAT_3266_0 = §fIch sammel Alts wie Infinity Stones. +NPC_CHAT_3266_1 = &fIhr wollt meine Teigwaren? Die könnt ihr haben! Sucht sie doch! Irgendwo hab ich die beste Bäckerei der Welt versteckt! +NPC_CHAT_3266_2 = &fMoin, Ich bin TheBreadBeard, ehemaliger EuropSuchties Spieler, damals (un)bekannt als WarGear_Titan. +NPC_CHAT_3266_3 = &fErfinder der Laktoseintoleranz, des Platzhalters und des Infinity-Rings. Alles Prinzipien, die keiner kennt und keiner braucht. +NPC_CHAT_3266_4 = &fBekannt für die Lobbybanner, Logos, spontane Arenen, sowie als Leiter von so manchem Event. +NPC_CHAT_3266_5 = &fVon Supporter zu Moderator zu Builder ... Vielleicht führt mich die Reise als Nächstes zum Developer. # Portal Command PORTAL_COMMAND_LIST_HELP = §8/§7portal §elist §8- §7Listet alle Portale auf From d64e32eaa56317c7ad530a39f8bb21069652d201 Mon Sep 17 00:00:00 2001 From: Lixfel Date: Wed, 1 Jan 2025 12:56:49 +0100 Subject: [PATCH 3/3] Cleanup code --- .../src/de/steamwar/lobby/team/TeamPlayer.java | 16 +++++++++------- 1 file changed, 9 insertions(+), 7 deletions(-) diff --git a/LobbySystem/src/de/steamwar/lobby/team/TeamPlayer.java b/LobbySystem/src/de/steamwar/lobby/team/TeamPlayer.java index a42d184a..989fca7a 100644 --- a/LobbySystem/src/de/steamwar/lobby/team/TeamPlayer.java +++ b/LobbySystem/src/de/steamwar/lobby/team/TeamPlayer.java @@ -23,7 +23,6 @@ import de.steamwar.lobby.LobbySystem; import de.steamwar.lobby.display.NPC; import de.steamwar.lobby.listener.BasicListener; import de.steamwar.sql.SteamwarUser; -import de.steamwar.sql.UserPerm; import lombok.AllArgsConstructor; import org.bukkit.Bukkit; import org.bukkit.Location; @@ -135,6 +134,10 @@ public class TeamPlayer extends BasicListener { return false; } + private String parseRandomMessage(Player player, SteamwarUser target, String message) throws MissingResourceException { + return LobbySystem.getMessage().parsePrefixed(message + random.nextInt(6), player, target.getUserName(), target.prefix().getColorCode() + target.prefix().getChatPrefix()); + } + @EventHandler public void onPlayerInteractEntity(PlayerInteractEntityEvent event) { if (!(event.getRightClicked() instanceof Villager)) { @@ -144,14 +147,13 @@ public class TeamPlayer extends BasicListener { players.remove(event.getPlayer()); return; } - SteamwarUser user = SteamwarUser.get(event.getRightClicked().getName()); - UserPerm.Prefix prefix = user.prefix(); - Object[] parameters = new Object[]{event.getRightClicked().getName(),prefix.getColorCode() + prefix.getChatPrefix()}; + + SteamwarUser target = SteamwarUser.get(event.getRightClicked().getName()); String message; try { - message = LobbySystem.getMessage().parsePrefixed("NPC_CHAT_" + user.getId() + "_" + random.nextInt(6), event.getPlayer(),parameters); - } catch (Exception e) { - message = LobbySystem.getMessage().parsePrefixed("NPC_CHAT_" + random.nextInt(6), event.getPlayer(),parameters); + message = parseRandomMessage(event.getPlayer(), target, "NPC_CHAT_" + target.getId() + "_"); + } catch (MissingResourceException e) { + message = parseRandomMessage(event.getPlayer(), target, "NPC_CHAT_"); } event.getPlayer().sendMessage(message); }