Merge pull request 'Add custom NPC Chats for specific players' (#93) from LobbySystem/NPCChats into main

Reviewed-on: https://steamwar.de/devlabs/SteamWar/SteamWar/pulls/93
Reviewed-by: Lixfel <lixfel@steamwar.de>
This commit is contained in:
Lixfel
2025-01-01 12:58:12 +01:00
3 changed files with 26 additions and 5 deletions
@@ -10,6 +10,13 @@ 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.
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
@@ -10,6 +10,13 @@ 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 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
@@ -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)) {
@@ -145,10 +148,14 @@ public class TeamPlayer extends BasicListener {
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());
SteamwarUser target = SteamwarUser.get(event.getRightClicked().getName());
String message;
try {
message = parseRandomMessage(event.getPlayer(), target, "NPC_CHAT_" + target.getId() + "_");
} catch (MissingResourceException e) {
message = parseRandomMessage(event.getPlayer(), target, "NPC_CHAT_");
}
event.getPlayer().sendMessage(message);
}
@EventHandler