Я пишу плагин, который берет сообщение с разногласий и отправляет его на сервер minecraft. Клиенты Майнкрафта с трудом отдают смайлики. Поэтому я решил использовать https://github.com/kcthota/emoji4j для преобразования всех смайликов в их шорткоды (пример: ? ->: smile: .. или похожий)
Проблема:
При вызове метода stati c shortCodify
он никогда не возвращается. Как будто он убивает код там, где он есть, и никогда не продолжается. В консоли нет ошибок.
Кажется, что вызов метода убивает его прямо здесь. Шаг 1 никогда не печатается.
Он может проходить через это несколько раз (каждый раз, когда я отправляю сообщение об ошибке). Это не полностью убило процесс.
Я пытался:
Добавление отладочных отпечатков повсюду, чтобы попытаться отследить проблему.
PS: не ненавидите меня за то, что я смешал logger.info и систему println, я все это уберу позже xD
Вывод на консоль
13 : 35: 48 [ИНФО] [Базовый] менеджер Emoji существует.
13: 35: 48 [ИНФО] [Базовый] Попытка короткого кода (содержит 1738 смайликов)
13: 35: 48 [ ИНФОРМАЦИЯ] ОТЛАДКА: EventChat. java шаг 0
Да .... на этом все заканчивается!
Фрагменты кода:
Мой код / EventChat. java
Примечание: msg
- это String
Оператор if
(из которых вы видите else
) просто проверяет, что данные смайликов были загружены, потому что я запустил загрузку конфигурации в отдельном потоке. Зная, что он может добраться сюда и печатает, что данные существуют, это не проблема.
...
} else {
logger.info("Emoji manager exists.");
try {
logger.info("Attempting shortcodify (contains " + EmojiManager.data().size() + " emojis)");
System.out.println("DEBUG: EventChat.java step 0");
msg = EmojiUtils.shortCodify(msg);
logger.info("new message: " + msg);
} catch (Exception e) {
logger.info("Catching exception");
e.printStackTrace();
}
}
logger.info("Emoji processed.");
Emoji4j / EmojiUtils. java
public static String shortCodify(String text) {
System.out.println("DEBUG: EmojiUtils.java step 1");
String emojifiedText = emojify(text);
System.out.println("DEBUG: EmojiUtils.java step 2");
for (Emoji emoji : EmojiManager.data()) {
StringBuilder shortCodeBuilder = new StringBuilder();
shortCodeBuilder.append(":").append(emoji.getAliases().get(0)).append(":");
emojifiedText = emojifiedText.replace(emoji.getEmoji(), shortCodeBuilder.toString());
System.out.println("DEBUG: EmojiUtils.java step 2.loop");
}
System.out.println("DEBUG: EmojiUtils.java step 3");
return emojifiedText;
}