Перейти к содержимому
  • 0
eu_tomat

Как отладочной платой добавить в инвентарь предмет OpenComputers с NBT?

Вопрос

С помощью отладочной платы я могу поместить в сундук с некоторыми координатами, например, переименованную палку:

debug.getWorld().insertItem( "minecraft:stick", 1, 0,'{display:{Name:"xyz"}}', x,y,z, 0 ))

В данном случае названия тегов не создают проблем.

Но названия тегов OpenComputers содержат двоеточие. Например, oc:data, oc:label. При этом двоеточие используется как разделитель имён и значений тегов. Поэтому при создании тегов OpenComputers у меня возникли затруднения.


Все мои идеи по экранированию двоеточия не привели к нужному результату. Примеры:

insertItem( "OpenComputers:eeprom", 1, 0,[[{oc:data:1}]], x,y,z, 0 )
-- тег: "oc" = "data:1"

insertItem( "OpenComputers:eeprom", 1, 0,[[{"oc:data":1}]], x,y,z, 0 )
-- ошибка: Unbalanced quotation: data":1

insertItem( "OpenComputers:eeprom", 1, 0,[[{'oc:data':1}]], x,y,z, 0 )
-- тег: "'oc" = "data':1"

Я пробовал и другие варианты, но общий смысл был одинаковым: первое двоеточие всегда интерпретировалось как разделитель имени и значения.

 

Вопрос: В какой форме следует указывать имена тегов, содержащих двоеточие?

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Рекомендуемые сообщения

Как ответил в дискорде @HeroBrine1st, в 1.12 достаточно взять имя тега в двойные кавычки. Подтверждаю.

 

В OpenComputers-MC1.12.2-1.7.5.192.jar я успешно создал в инвентаре EEPROM с нужной меткой с помощью такого кода:

insertItem( "OpenComputers:storage", 1, 0,[[{"oc:data":{"oc:label":"myBIOS"}}]], x,y,z,0 )

 

В OpenComputers-MC1.7.10-1.7.5.1290-universal.jar то же решение не позволяет создать тег с нужным именем.

 

Похоже на ошибку в моде. У кого-нибудь есть идеи, как обойти эту проблему?

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Чтение документации привело к функциям getTileNBT и setTileNBT, работающие не через строки, а таблицы.

 

Правда, возникла новая сложность: таблица, полученная через getTileNBT, не воспринималась корректно функцией setTileNBT.

@ProgramCrafter сообщил, что это известная проблема и проявляется на архитектуре Lua 5.3: Lua 5.3 Debug Card NBT-Editing Error #2448

Проблема решилась переводом программы на Lua 5.2.

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Присоединяйтесь к обсуждению

Вы можете написать сейчас и зарегистрироваться позже. Если у вас есть аккаунт, авторизуйтесь, чтобы опубликовать от имени своего аккаунта.

Гость
Ответить на вопрос...

×   Вы вставили отформатированное содержимое.   Удалить форматирование

  Разрешено использовать не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отобразить как ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставлять изображения напрямую. Загружайте или вставляйте изображения по ссылке.


×
×
  • Создать...