Почему видимого имени недостаточно
Если житель просит только бумагу с названием City voucher, любой игрок с наковальней сможет сделать подделку. Lore тоже слабая защита, потому что это всё ещё видимый текст. Для экономики житель должен проверять скрытую полезную нагрузку внутри предмета.
Используйте minecraft:custom_data как слой идентичности
В современных версиях к валютному предмету можно добавить скрытый компонент. Видимое имя всё ещё может быть Гильдейский ваучер, но настоящая проверка должна жить в структурированном объекте.
components:{
"minecraft:custom_name":'[{"text":"Гильдейский ваучер","italic":false}]',
"minecraft:custom_data":{currency:"guild_voucher",issuer:"capital_bank",tier:"silver"}
}
Почему это защищает экономику
- Переименованный ванильный предмет не получит такой же скрытый payload.
- Можно менять внешний дизайн, не меняя базовый ID.
- Разные фракции могут использовать отдельных эмитентов и уровни.
- Даже одинаково выглядящая купюра будет недействительной, если скрытые данные неверные.
Практический шаблон для жителей
Когда вы собираете стек buy для сделки, добавьте туда такой же объект custom_data. Тогда житель примет только настоящий токен, а не имитацию с копированным текстом.
buy:{
id:"minecraft:paper",
count:3,
components:{
"minecraft:custom_name":'[{"text":"Гильдейский ваучер","italic":false}]',
"minecraft:custom_data":{currency:"guild_voucher",issuer:"capital_bank",tier:"silver"}
}
}
Хорошие правила экономики для RP-серверов
- Держите одну стабильную строку для каждой валютной семьи:
guild_voucher,dock_token,ration_stamp. - Добавляйте второе поле с источником: город, банк, гильдия или глава.
- Никогда не доверяйте только lore, display name или модели.
- Числовые поля оставляйте для количества и ценности, но ID держите читаемыми.
Когда разделять валюты
Используйте отдельные ID для денег, которые не должны смешиваться. Например, храмовые пожертвования, военные платёжные квитанции и купоны чёрного рынка могут быть бумагой, но не должны иметь одинаковый payload custom_data.
Рекомендуемый workflow
- Создайте наградные и платёжные предметы с совпадающим
custom_data. - Дайте им понятное видимое имя для игроков.
- Используйте конструктор сделок жителей, чтобы привязать платёжный стек к скрытому payload.
- Перед запуском проверьте сделку с поддельной переименованной копией.