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

q20w26a

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

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

BuseSo

Разработчик
Пользователь
Лучше вместо %s использовать что-то на подобии %player% и %nick%. А в самой команде, при получении этой строки, можно добавить .replaceAll("%player%", ...getName()).replaceAll("%nick%", ...);

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

q20w26a

Разработчик
Пользователь
Я думал об этом, но оно медленное. Ладно, пусть пока что будет, потом что-нибудь придумаю.
 

Комнаты в чате

Верх Низ