Как отредактировать данные NBT игрока Minecraft Forge ⇐ JAVA
Как отредактировать данные NBT игрока Minecraft Forge
Я новичок в Forge Modding, и у меня возникла проблема с добавлением пользовательского тега NBT к игроку в переопределенном методе Item.finishUsingItem.
Кажется, на веб-сайте Forge API нет ничего о NBT, и все, что я нашел о NBT, похоже, устарело, поэтому я зашел в тупик
GitHub здесь!
Мой текущий код в методе finishUsingItem выглядит следующим образом:
if (экземпляр pLivingEntity Player pPlayer) { CompoundTagententNBT = pPlayer.serializeNBT(); if (!entityNBT.contains("necromancy_level")) { NLevelTag levelTag = новый NLevelTag(1, 0); levelTag.levelUp(); entityNBT.put("necromancy_level", levelTag); } еще { NLevelTag levelTag = (NLevelTag)entityNBT.get("necromancy_level"); levelTag.levelUp(5); } } Мой NLevelTag имеет два целых числа:
частный уровень int; частный уровень int XP; public NLevelTag (int _level, int _levelXP) { this.level = _level; this.levelXP = _levelXP; } и метод levelUp:
публичный недействительный уровеньUp() { этот.уровеньXP++; LOGGER.debug("XP повышен до " + this.levelXP); } Примечание: levelUp имеет отдельную перегрузку, которая принимает целое число и вызывает указанный выше метод указанное количество раз.
Когда я загружаю Forge и съедаю предмет, я могу получить данные Player NBT из предмета, но у него никогда не бывает поля, которое следовало бы добавить.
Что-то я упустил при добавлении NBT к объектам?
Или можно просто этого не делать?
Заранее спасибо!
Я новичок в Forge Modding, и у меня возникла проблема с добавлением пользовательского тега NBT к игроку в переопределенном методе Item.finishUsingItem.
Кажется, на веб-сайте Forge API нет ничего о NBT, и все, что я нашел о NBT, похоже, устарело, поэтому я зашел в тупик
GitHub здесь!
Мой текущий код в методе finishUsingItem выглядит следующим образом:
if (экземпляр pLivingEntity Player pPlayer) { CompoundTagententNBT = pPlayer.serializeNBT(); if (!entityNBT.contains("necromancy_level")) { NLevelTag levelTag = новый NLevelTag(1, 0); levelTag.levelUp(); entityNBT.put("necromancy_level", levelTag); } еще { NLevelTag levelTag = (NLevelTag)entityNBT.get("necromancy_level"); levelTag.levelUp(5); } } Мой NLevelTag имеет два целых числа:
частный уровень int; частный уровень int XP; public NLevelTag (int _level, int _levelXP) { this.level = _level; this.levelXP = _levelXP; } и метод levelUp:
публичный недействительный уровеньUp() { этот.уровеньXP++; LOGGER.debug("XP повышен до " + this.levelXP); } Примечание: levelUp имеет отдельную перегрузку, которая принимает целое число и вызывает указанный выше метод указанное количество раз.
Когда я загружаю Forge и съедаю предмет, я могу получить данные Player NBT из предмета, но у него никогда не бывает поля, которое следовало бы добавить.
Что-то я упустил при добавлении NBT к объектам?
Или можно просто этого не делать?
Заранее спасибо!
-
- Похожие темы
- Ответы
- Просмотры
- Последнее сообщение
-
-
Прочитайте конкретные данные из файла .json с веб-сайта в Minecraft Forge.
Anonymous » » в форуме JAVA - 0 Ответы
- 16 Просмотры
-
Последнее сообщение Anonymous
-
-
-
Как мне правильно сохранить файл .nbt с новым объектом nbtlib.tag.File?
Anonymous » » в форуме Python - 0 Ответы
- 13 Просмотры
-
Последнее сообщение Anonymous
-
-
-
Среда выполнения Java обнаружила фатальную ошибку при запуске любого мода Forge в Forge.
Anonymous » » в форуме JAVA - 0 Ответы
- 97 Просмотры
-
Последнее сообщение Anonymous
-