From a90466fcaf0d047c247df5d8313f85ad0b65f763 Mon Sep 17 00:00:00 2001 From: M_Viper Date: Thu, 7 May 2026 19:39:32 +0000 Subject: [PATCH] Soft-delete copy _trash/2026-05-07T19-39-23-130Z/src/main/java/net/viper/status/modules/chat/EmojiParser.java --- .../status/modules/chat/EmojiParser.java | 53 +++++++++++++++++++ 1 file changed, 53 insertions(+) create mode 100644 _trash/2026-05-07T19-39-23-130Z/src/main/java/net/viper/status/modules/chat/EmojiParser.java diff --git a/_trash/2026-05-07T19-39-23-130Z/src/main/java/net/viper/status/modules/chat/EmojiParser.java b/_trash/2026-05-07T19-39-23-130Z/src/main/java/net/viper/status/modules/chat/EmojiParser.java new file mode 100644 index 0000000..b705f8e --- /dev/null +++ b/_trash/2026-05-07T19-39-23-130Z/src/main/java/net/viper/status/modules/chat/EmojiParser.java @@ -0,0 +1,53 @@ +package net.viper.status.modules.chat; + +import java.util.Map; + +/** + * Ersetzt Emoji-Shortcuts (:smile:, :heart:, …) durch Unicode-Zeichen. + * + * Bedrock-Spieler (Geyser) unterstützen Unicode-Emojis ebenfalls, + * da sie als reguläre UTF-8 Zeichen in TextComponents übertragen werden. + */ +public class EmojiParser { + + private final Map mappings; + private final boolean enabled; + + public EmojiParser(Map mappings, boolean enabled) { + this.mappings = mappings; + this.enabled = enabled; + } + + /** + * Konvertiert alle bekannten Emoji-Shortcuts in der Nachricht zu Unicode. + * Nicht erkannte Shortcuts bleiben unverändert. + * + * @param message Die Originalnachricht des Spielers + * @return Nachricht mit ersetzten Emojis + */ + public String parse(String message) { + if (!enabled || message == null || message.isEmpty()) return message; + + String result = message; + for (Map.Entry entry : mappings.entrySet()) { + result = result.replace(entry.getKey(), entry.getValue()); + } + return result; + } + + /** + * Gibt eine lesbare Liste aller Emojis zurück (für /emoji list). + */ + public String buildEmojiList() { + if (mappings.isEmpty()) return "&cKeine Emojis konfiguriert."; + StringBuilder sb = new StringBuilder(); + sb.append("&eVerfügbare Emojis:\n"); + int i = 0; + for (Map.Entry entry : mappings.entrySet()) { + sb.append("&7").append(entry.getKey()).append(" &f→ ").append(entry.getValue()); + if (i < mappings.size() - 1) sb.append(" "); + i++; + } + return sb.toString(); + } +} \ No newline at end of file