Soft-delete copy _trash/2026-05-07T19-39-23-130Z/src/main/java/net/viper/status/modules/chat/EmojiParser.java
This commit is contained in:
@@ -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<String, String> mappings;
|
||||||
|
private final boolean enabled;
|
||||||
|
|
||||||
|
public EmojiParser(Map<String, String> 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<String, String> 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<String, String> 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();
|
||||||
|
}
|
||||||
|
}
|
||||||
Reference in New Issue
Block a user