Java - emoji4j stati c вызов метода завершается / исчезает / умирает без ошибки - PullRequest
0 голосов
/ 15 марта 2020

Я пишу плагин, который берет сообщение с разногласий и отправляет его на сервер 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;
}
...