Войти или зарегистрироваться
  • Вы находитесь в сообществе Rubukkit. Мы - администраторы серверов Minecraft, разрабатываем собственные плагины и переводим на различные языки плагины наших коллег из других стран.

Помогите Проблемы с символами

Jampire

Старожил
Пользователь
Баллы
173
Имя в Minecraft
Jampire
Изменяю формат сообщения и если сообщение на момент отправки содержит символы % \ и подобные - плагин выдаёт ошибку и формат чата спадает на стандартный.

В чем может быть проблема?

Код:
Caused by: java.util.UnknownFormatConversionException: Conversion = '4'
 
Вроде не первый день на форуме...

Мы должны угадать или догадаться о том какой плагин чата установлен, какая версия и билд сервера, что ты все-таки написал в конфиг плагина чата?
 
Переписать по документации bukkit - ?
 
Вроде не первый день на форуме...

Мы должны угадать или догадаться о том какой плагин чата установлен, какая версия и билд сервера, что ты все-таки написал в конфиг плагина чата?
Раздел - Разработка плагинов, а не использование.

сочетание %4

Переписать по документации bukkit - ?
ее и использовал. При попадании в формат чата знаков % или \ формат ломается... (event.setFormat())
 
Код:
String format = user.getOption("ServerBundle.chat.format");
format = format.replaceAll("%player%", event.getPlayer().getDisplayName());
format = format.replaceAll("&", "§");
format = format.replaceAll("%message%", Fix.fixUseTable(event.getMessage()).replaceAll("§", "&"));
event.setFormat(format); // <=== при попадании сюда % или / слетает
 
Код:
String format = user.getOption("ServerBundle.chat.format");
format = format.replaceAll("%player%", event.getPlayer().getDisplayName());
format = format.replaceAll("&", "§");
format = format.replaceAll("%message%", Fix.fixUseTable(event.getMessage()).replaceAll("§", "&"));
event.setFormat(format); // <=== при попадании сюда % или / слетает
А ошибки пишет?
 
Скинь метод fixUseTable() и опцию ServerBundle.chat.format
ServerBundle.chat.format имеет значение [&fP&r] &f%player%&r: %message%
fixUseTable() - метод, взятый напрямую из ruFix
Код:
    public static String fixUseTable(String msg) {
        for (int n = 0; n < msg.length(); n++) {
            char t = msg.charAt(n);
            int idx = Arrays.binarySearch(new String("¸ÀÁÂÃÄÅÆÇÈÉÊËÌÍÎÏÐÑÒÓÔÕÖרÙÚÛÜÝÞßàáâãäåæçèéêëìíîïðñòóôõö÷øùúûüýþÿ").toCharArray(), t);
            if (idx > -1) {
                msg = msg.replace(t, new String("ёАБВГДЕЖЗИЙКЛМНОПРСТУФХЦЧШЩЪЫЬЭЮЯабвгдежзийклмнопрстуфхцчшщъыьэюя").toCharArray()[idx]);
            }
        }
        return msg;
    }
 
@Jampire,
Java:
        String format = "[&fP&r] &f%player%&r: %message%";
        format = format.replace("%player%", "%1$s");
        format = format.replace("&", "§");
        format = format.replace("%message%", "%2$s");
        e.setFormat(format);
        e.setMessage(fixUseTable(e.getMessage()).replace("§", "&"));
Вот так работает
 
@Jampire,
Java:
        String format = "[&fP&r] &f%player%&r: %message%";
        format = format.replace("%player%", "%1$s");
        format = format.replace("&", "§");
        format = format.replace("%message%", "%2$s");
        e.setFormat(format);
        e.setMessage(fixUseTable(e.getMessage()).replace("§", "&"));
Вот так работает
Интересное решение, благодарю за помощь. Почему-то не додумался в таком порядке все делать ))
 

Поделиться этой страницей

Назад
Верх