Как можно заменить форматирование строк?

q20w26a

Разработчик
Инструктор
Пользователь
Сообщения
580
Решения
27
Суть
У меня есть некоторая строка, которая хранится в моём config.yml, и которую я должен выводить игроку в чат.
Проблема
Если администратор сделает что-то неправильно или вообще захочет её изменить, он столкнется с проблемой: положение переменных захардкожено и сделать с этим ничего, увы, не выйдет.
Вам необходимо зарегистрироваться для просмотра изображений-вложений


Java:
String.format(Config.setnamemessage, args[0], args[1]);
//args[0] - новое имя, args[1] - имя игрока, которому поменяли имя.
//При использовании команды, в моём случае это выведет
// "Успешно установлено имя *имя* для Player"
Но что если администратор захочет просто убрать одно из значений? Например, чтобы ему выводилось Успешно установлено имя для Player?
А если он захочет поменять args[0] и args[1] местами, чтобы на первом месте был ник, а на втором измененное имя?
В лучшем случае он просто получит кривой вывод, а в худшем словит исключение. Есть какие-нибудь идеи?
 
Лучше вместо %s использовать что-то на подобии %player% и %nick%. А в самой команде, при получении этой строки, можно добавить .replaceAll("%player%", ...getName()).replaceAll("%nick%", ...);

Примерно вот так будет:
p.sendMessage(Config.setnamemessage.replaceAll("%player%", target.getName()).replaceAll("%nick%", args[0]))
 
Назад
Сверху Снизу