<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="ru">
		<id>https://wiki.mineprogramming.org/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=213.176.236.77&amp;*</id>
		<title>mineprogramming wiki - Вклад участника [ru]</title>
		<link rel="self" type="application/atom+xml" href="https://wiki.mineprogramming.org/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=213.176.236.77&amp;*"/>
		<link rel="alternate" type="text/html" href="https://wiki.mineprogramming.org/index.php?title=%D0%A1%D0%BB%D1%83%D0%B6%D0%B5%D0%B1%D0%BD%D0%B0%D1%8F:%D0%92%D0%BA%D0%BB%D0%B0%D0%B4/213.176.236.77"/>
		<updated>2026-09-11T23:17:40Z</updated>
		<subtitle>Вклад участника</subtitle>
		<generator>MediaWiki 1.30.0</generator>

	<entry>
		<id>https://wiki.mineprogramming.org/index.php?title=InnerCore/%D0%94%D0%BE%D0%BF%D0%BE%D0%BB%D0%BD%D0%B8%D1%82%D0%B5%D0%BB%D1%8C%D0%BD%D1%8B%D0%B5_%D0%B4%D0%B0%D0%BD%D0%BD%D1%8B%D0%B5_%D0%BF%D1%80%D0%B5%D0%B4%D0%BC%D0%B5%D1%82%D0%B0&amp;diff=1799</id>
		<title>InnerCore/Дополнительные данные предмета</title>
		<link rel="alternate" type="text/html" href="https://wiki.mineprogramming.org/index.php?title=InnerCore/%D0%94%D0%BE%D0%BF%D0%BE%D0%BB%D0%BD%D0%B8%D1%82%D0%B5%D0%BB%D1%8C%D0%BD%D1%8B%D0%B5_%D0%B4%D0%B0%D0%BD%D0%BD%D1%8B%D0%B5_%D0%BF%D1%80%D0%B5%D0%B4%D0%BC%D0%B5%D1%82%D0%B0&amp;diff=1799"/>
				<updated>2018-11-22T15:45:49Z</updated>
		
		<summary type="html">&lt;p&gt;213.176.236.77: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;div class=&amp;quot;mw-parser-output&amp;quot;&amp;gt;&amp;lt;div class=&amp;quot;mw-parser-output&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;mw-parser-output&amp;quot;&amp;gt;&amp;lt;div class=&amp;quot;mw-parser-output&amp;quot;&amp;gt;&amp;lt;div class=&amp;quot;mw-parser-output&amp;quot;&amp;gt;&lt;br /&gt;
== &amp;lt;span style=&amp;quot;font-size:18.0pt&amp;quot;&amp;gt;&amp;lt;span style=&amp;quot;line-height:107%&amp;quot;&amp;gt;Работа с дополнительными данными предметов&amp;lt;/span&amp;gt;&amp;lt;/span&amp;gt; ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;line-height:103%&amp;quot;&amp;gt;&amp;lt;span style=&amp;quot;font-size:12.0pt&amp;quot;&amp;gt;&amp;lt;span style=&amp;quot;line-height:103%&amp;quot;&amp;gt;Кроме id, кол-ва и data предмет может иметь еще и дополнительные данные, такие как зачарования, измененное имя и прочее. Далее будет описан интерфейс для работы с ними.&amp;lt;/span&amp;gt;&amp;lt;/span&amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div class=&amp;quot;mw-parser-output&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;mw-parser-output&amp;quot;&amp;gt;&lt;br /&gt;
=== &amp;lt;span style=&amp;quot;font-size:large;&amp;quot;&amp;gt;&amp;lt;span style=&amp;quot;line-height:107%&amp;quot;&amp;gt;Доступ к дополнительным&amp;amp;nbsp;данным&amp;lt;/span&amp;gt;&amp;lt;/span&amp;gt; ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;line-height:103%&amp;quot;&amp;gt;&amp;lt;span style=&amp;quot;font-size:12.0pt&amp;quot;&amp;gt;&amp;lt;span style=&amp;quot;line-height:103%&amp;quot;&amp;gt;Методы Inner Core отдают предметы в виде объектов, содержащих 3 поля - id, count и data, описывающие соответствующие параметры предметов. В дополнение к ним может существовать (только в случае, если предмет имеет доп. данные) поле extra, которое содержит в себе интерфейс для доступа к дополнительным данным предмета&amp;lt;ref&amp;gt;На момент версии 1.1.1.X некоторые методы не поддерживают этот 4 параметр, для получения полностью рабочих методов можно использовать ModAPI.requireGlobal('имя метода')&amp;lt;/ref&amp;gt;.&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;lt;/span&amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''''Важно:&amp;amp;nbsp;'''''&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;line-height:103%&amp;quot;&amp;gt;&amp;lt;span style=&amp;quot;font-size:12.0pt&amp;quot;&amp;gt;&amp;lt;span style=&amp;quot;line-height:103%&amp;quot;&amp;gt;Объект предмета, изменение основных параметров которого поведет изменение реального предмета (например, предметы, полученные из контейнера или в каллбеках брони) обладает таким же качеством при изменении доп. данных (т.е. их изменения изменят доп. данные реального предмета).&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;lt;/span&amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;line-height:103%&amp;quot;&amp;gt;&amp;lt;span style=&amp;quot;font-size:12.0pt&amp;quot;&amp;gt;&amp;lt;span style=&amp;quot;line-height:103%&amp;quot;&amp;gt;И наоборот, объект предмета, который не привязан к реальному предмету (большая часть методов работы с инвентарем, к примеру Player.getCarriedItem()) при изменении доп. данных не изменит сам предмет, потому измененные или новые доп. данные для их применения передаются после параметров id, count, data в устанавливающие методы&amp;lt;font color=&amp;quot;#000000&amp;quot; face=&amp;quot;Calibri, sans-serif&amp;quot;&amp;gt;.&amp;lt;/font&amp;gt;&amp;lt;/span&amp;gt;&amp;lt;/span&amp;gt;&amp;lt;/span&amp;gt;&amp;amp;nbsp;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== &amp;lt;span style=&amp;quot;font-size:large;&amp;quot;&amp;gt;&amp;lt;span style=&amp;quot;line-height:107%&amp;quot;&amp;gt;Класс ItemExtraData&amp;lt;/span&amp;gt;&amp;lt;/span&amp;gt; ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;line-height:103%&amp;quot;&amp;gt;&amp;lt;span style=&amp;quot;font-size:12.0pt&amp;quot;&amp;gt;&amp;lt;span style=&amp;quot;line-height:103%&amp;quot;&amp;gt;Объект доп. данных является объектом типа ItemExtraData, реализующим интерфейс для работы с ними.&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;lt;/span&amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''''Примечание:'''''&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;line-height:103%&amp;quot;&amp;gt;&amp;lt;span style=&amp;quot;font-size:12.0pt&amp;quot;&amp;gt;&amp;lt;span style=&amp;quot;line-height:103%&amp;quot;&amp;gt;Объект ItemExtraData является сохраняемым объектом, что значит, он может присутствовать в любых сохраняемых данных, автоматически преобразовываться в JSON и загружаться из него.&amp;lt;/span&amp;gt;&amp;lt;/span&amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Конструкторы&amp;amp;nbsp; ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;line-height:162%&amp;quot;&amp;gt;&amp;lt;span style=&amp;quot;font-size:12.0pt&amp;quot;&amp;gt;&amp;lt;span style=&amp;quot;line-height:162%&amp;quot;&amp;gt;''new ItemExtraData() - создает новые пустые доп. данные''&amp;lt;/span&amp;gt;&amp;lt;/span&amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;line-height:108%&amp;quot;&amp;gt;''&amp;lt;span style=&amp;quot;font-size:12.0pt&amp;quot;&amp;gt;&amp;lt;span style=&amp;quot;line-height:108%&amp;quot;&amp;gt;new ItemExtraData(extraData) - принимает другой объект доп. данных и создает его копию, если передан null, аналогичен первому конструктору&amp;lt;/span&amp;gt;&amp;lt;/span&amp;gt;''&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Работа с зачарованиями ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;line-height:108%&amp;quot;&amp;gt;''&amp;lt;span style=&amp;quot;font-size:12.0pt&amp;quot;&amp;gt;&amp;lt;span style=&amp;quot;line-height:108%&amp;quot;&amp;gt;extra.isEnchanted() - возвращает true, если предмет зачарован.&amp;lt;/span&amp;gt;&amp;lt;/span&amp;gt;''&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;line-height:108%&amp;quot;&amp;gt;''&amp;lt;span style=&amp;quot;font-size:12.0pt&amp;quot;&amp;gt;&amp;lt;span style=&amp;quot;line-height:108%&amp;quot;&amp;gt;extra.addEnchant(id, level) - добавляет зачарование типа id и уровня level предмету, если зачарование такого типа уже имеется, то изменяет его уровень.&amp;lt;/span&amp;gt;&amp;lt;/span&amp;gt;''&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;line-height:148%&amp;quot;&amp;gt;''&amp;lt;span style=&amp;quot;font-size:12.0pt&amp;quot;&amp;gt;&amp;lt;span style=&amp;quot;line-height:148%&amp;quot;&amp;gt;extra.getEnchantLevel(id) - возвращает уровень зачарования типа id или 0, если такого нет extra.removeEnchant(id) - удаляет зачарование данного типа, если оно есть extra.removeAllEnchants() - удаляет все зачарования&amp;amp;nbsp; extra.getEnchantCount() - возвращает кол-во зачарований&amp;lt;/span&amp;gt;&amp;lt;/span&amp;gt;''&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;line-height:135%&amp;quot;&amp;gt;''&amp;lt;span style=&amp;quot;font-size:12.0pt&amp;quot;&amp;gt;&amp;lt;span style=&amp;quot;line-height:135%&amp;quot;&amp;gt;extra.getEnchants() - возвращает объект, содержащий все зачарования, где ключи это типы зачарований, а значения - их уровни extra.getEnchantName(id, level) - возвращает имя зачарования по его типу и уровню&amp;lt;/span&amp;gt;&amp;lt;/span&amp;gt;''&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;line-height:108%&amp;quot;&amp;gt;''&amp;lt;span style=&amp;quot;font-size:12.0pt&amp;quot;&amp;gt;&amp;lt;span style=&amp;quot;line-height:108%&amp;quot;&amp;gt;extra.getEnchantName(id) - возвращает имя зачарования по его типу и уровню, который сохранен в доп. данных на данный момент&amp;lt;/span&amp;gt;&amp;lt;/span&amp;gt;''&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;line-height:108%&amp;quot;&amp;gt;''&amp;lt;span style=&amp;quot;font-size:12.0pt&amp;quot;&amp;gt;&amp;lt;span style=&amp;quot;line-height:108%&amp;quot;&amp;gt;extra.getAllEnchantNames() - возвращает имена всех присутствующих зачарований, разделенные символом перевода строки (так же, как они отображаются под предметом)&amp;lt;/span&amp;gt;&amp;lt;/span&amp;gt;''&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Работа с измененным именем ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;line-height:108%&amp;quot;&amp;gt;''&amp;lt;span style=&amp;quot;font-size:12.0pt&amp;quot;&amp;gt;&amp;lt;span style=&amp;quot;line-height:108%&amp;quot;&amp;gt;extra.getCustomName() - возвращает измененное имя предмета или null, если оно не изменено&amp;lt;/span&amp;gt;&amp;lt;/span&amp;gt;''&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;line-height:108%&amp;quot;&amp;gt;''&amp;lt;span style=&amp;quot;font-size:12.0pt&amp;quot;&amp;gt;&amp;lt;span style=&amp;quot;line-height:108%&amp;quot;&amp;gt;extra.setCustomName(name) - изменяет имя предмета или убирает измененное имя, если передан null&amp;lt;/span&amp;gt;&amp;lt;/span&amp;gt;''&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;line-height:103%&amp;quot;&amp;gt;&amp;lt;span style=&amp;quot;font-size:12.0pt&amp;quot;&amp;gt;&amp;lt;span style=&amp;quot;line-height:103%&amp;quot;&amp;gt;Произвольные данные нужны чтобы сохранять в конкретном предмете что-то нужное конкретному моду для выполнения функций данного предмета (к примеру, там можно хранить какие-то данные о внутреннем инвентаре, режим инструмента, данные вида пчелы и т.п.)&amp;lt;/span&amp;gt;&amp;lt;/span&amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div class=&amp;quot;mw-parser-output&amp;quot;&amp;gt;&lt;br /&gt;
=== Работа с произвольными данными ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;line-height:108%&amp;quot;&amp;gt;''&amp;lt;span style=&amp;quot;font-size:12.0pt&amp;quot;&amp;gt;&amp;lt;span style=&amp;quot;line-height:108%&amp;quot;&amp;gt;Методы сохранения сохраняют значение какого-то типа под данным именем, чтобы в последствии к нему можно было осуществить доступ:&amp;lt;/span&amp;gt;&amp;lt;/span&amp;gt;''&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
''&amp;lt;span style=&amp;quot;font-size:12.0pt&amp;quot;&amp;gt;&amp;lt;span style=&amp;quot;line-height:107%&amp;quot;&amp;gt;extra.putInt(name, value) - целое число&amp;lt;/span&amp;gt;&amp;lt;/span&amp;gt;''&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;line-height:108%&amp;quot;&amp;gt;''&amp;lt;span style=&amp;quot;font-size:12.0pt&amp;quot;&amp;gt;&amp;lt;span style=&amp;quot;line-height:108%&amp;quot;&amp;gt;extra.putLong(name, value) - большое целое число, больше 32 бит (более 2х миллиардов по модулю)&amp;lt;/span&amp;gt;&amp;lt;/span&amp;gt;''&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
''&amp;lt;span style=&amp;quot;font-size:12.0pt&amp;quot;&amp;gt;&amp;lt;span style=&amp;quot;line-height:107%&amp;quot;&amp;gt;extra.putFloat(name, value) - 64 битное дробное число&amp;lt;/span&amp;gt;&amp;lt;/span&amp;gt;''&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;line-height:162%&amp;quot;&amp;gt;''&amp;lt;span style=&amp;quot;font-size:12.0pt&amp;quot;&amp;gt;&amp;lt;span style=&amp;quot;line-height:162%&amp;quot;&amp;gt;extra.putString(name, value) - строка&amp;lt;/span&amp;gt;&amp;lt;/span&amp;gt;''&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;line-height:162%&amp;quot;&amp;gt;''&amp;lt;span style=&amp;quot;font-size:12.0pt&amp;quot;&amp;gt;&amp;lt;span style=&amp;quot;line-height:162%&amp;quot;&amp;gt;extra.putBoolean(name, value) - булева переменная (true/false)&amp;lt;/span&amp;gt;&amp;lt;/span&amp;gt;''&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;line-height:108%&amp;quot;&amp;gt;''&amp;lt;span style=&amp;quot;font-size:12.0pt&amp;quot;&amp;gt;&amp;lt;span style=&amp;quot;line-height:108%&amp;quot;&amp;gt;Методы доступа отдают значение, сохраненное под данным именем или значение по умолчанию, которое может быть передано вторым параметром (если оно не передано, то значение по умолчанию это null/false/0 в зависимости от типа)&amp;lt;/span&amp;gt;&amp;lt;/span&amp;gt;''&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;line-height:162%&amp;quot;&amp;gt;''&amp;lt;span style=&amp;quot;font-size:12.0pt&amp;quot;&amp;gt;&amp;lt;span style=&amp;quot;line-height:162%&amp;quot;&amp;gt;extra.getInt(name, fallback)&amp;amp;nbsp; extra.getLong(name, fallback)&amp;amp;nbsp; extra.getFloat(name, fallback)&amp;amp;nbsp; extra.getString(name, fallback)&amp;amp;nbsp; extra.getBoolean(name, fallback)&amp;amp;nbsp; extra.removeCustomData() - удаляет все произвольные данные&amp;lt;/span&amp;gt;&amp;lt;/span&amp;gt;''&amp;lt;/span&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Другие методы: ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;line-height:162%&amp;quot;&amp;gt;&amp;lt;span style=&amp;quot;font-size:12.0pt&amp;quot;&amp;gt;&amp;lt;span style=&amp;quot;line-height:162%&amp;quot;&amp;gt;''copy() - создает копию объекта''&amp;lt;/span&amp;gt;&amp;lt;/span&amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;line-height:108%&amp;quot;&amp;gt;''&amp;lt;span style=&amp;quot;font-size:12.0pt&amp;quot;&amp;gt;&amp;lt;span style=&amp;quot;line-height:108%&amp;quot;&amp;gt;isEmpty() - возвращает true, если не содержит никаких доп. данных (такой объект аналогичен null, т.е. доп. данных нет)&amp;lt;/span&amp;gt;&amp;lt;/span&amp;gt;''&amp;lt;/span&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt; &amp;lt;/div&amp;gt; &amp;lt;/div&amp;gt;&lt;/div&gt;</summary>
		<author><name>213.176.236.77</name></author>	</entry>

	</feed>