<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="ru">
		<id>https://wiki.mineprogramming.org/index.php?action=history&amp;feed=atom&amp;title=InnerCore%2F%D0%9C%D0%BE%D0%B4%D1%83%D0%BB%D1%8C_ModAPI</id>
		<title>InnerCore/Модуль ModAPI - История изменений</title>
		<link rel="self" type="application/atom+xml" href="https://wiki.mineprogramming.org/index.php?action=history&amp;feed=atom&amp;title=InnerCore%2F%D0%9C%D0%BE%D0%B4%D1%83%D0%BB%D1%8C_ModAPI"/>
		<link rel="alternate" type="text/html" href="https://wiki.mineprogramming.org/index.php?title=InnerCore/%D0%9C%D0%BE%D0%B4%D1%83%D0%BB%D1%8C_ModAPI&amp;action=history"/>
		<updated>2026-04-28T17:00:43Z</updated>
		<subtitle>История изменений этой страницы в вики</subtitle>
		<generator>MediaWiki 1.30.0</generator>

	<entry>
		<id>https://wiki.mineprogramming.org/index.php?title=InnerCore/%D0%9C%D0%BE%D0%B4%D1%83%D0%BB%D1%8C_ModAPI&amp;diff=340&amp;oldid=prev</id>
		<title>145.255.22.57: /* Другие методы ModAPI */</title>
		<link rel="alternate" type="text/html" href="https://wiki.mineprogramming.org/index.php?title=InnerCore/%D0%9C%D0%BE%D0%B4%D1%83%D0%BB%D1%8C_ModAPI&amp;diff=340&amp;oldid=prev"/>
				<updated>2018-02-05T15:52:48Z</updated>
		
		<summary type="html">&lt;p&gt;‎&lt;span dir=&quot;auto&quot;&gt;&lt;span class=&quot;autocomment&quot;&gt;Другие методы ModAPI&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;table class=&quot;diff diff-contentalign-left&quot; data-mw=&quot;interface&quot;&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;tr style=&quot;vertical-align: top;&quot; lang=&quot;ru&quot;&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: white; color:black; text-align: center;&quot;&gt;← Предыдущая&lt;/td&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: white; color:black; text-align: center;&quot;&gt;Версия 15:52, 5 февраля 2018&lt;/td&gt;
				&lt;/tr&gt;&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot; id=&quot;mw-diff-left-l57&quot; &gt;Строка 57:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Строка 57:&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;*ModAPI.getModByName(&amp;quot;имя мода&amp;quot;) - отдает объект мода, отвечающий за его файлы и загрузку, если мод загружен. Несовершенен, потому что порядок загрузки неизвестен. Лучше используйте ModAPI.addModCallback. &amp;#160;&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;*ModAPI.getModByName(&amp;quot;имя мода&amp;quot;) - отдает объект мода, отвечающий за его файлы и загрузку, если мод загружен. Несовершенен, потому что порядок загрузки неизвестен. Лучше используйте ModAPI.addModCallback. &amp;#160;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;*ModAPI.addModCallback(&amp;quot;имя мода&amp;quot;, function(mod){ &amp;amp;nbsp;&amp;lt;br/&amp;gt; &amp;amp;nbsp; // mod является объектом мода&amp;lt;br/&amp;gt; }) - добавляет событие, которое произойдет при загрузке мода под данным именем, которому будет передан объект мода. Аналогичен по действию ModAPI.addAPICallback, только для модов. &amp;#160;&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;*ModAPI.addModCallback(&amp;quot;имя мода&amp;quot;, function(mod){ &amp;amp;nbsp;&amp;lt;br/&amp;gt; &amp;amp;nbsp; // mod является объектом мода&amp;lt;br/&amp;gt; }) - добавляет событие, которое произойдет при загрузке мода под данным именем, которому будет передан объект мода. Аналогичен по действию ModAPI.addAPICallback, только для модов. &amp;#160;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;−&lt;/td&gt;&lt;td style=&quot;color:black; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;*ModAPI.isModLoaded(&amp;quot;имя мода&amp;quot;) - проверяет, загружен ли мод с этим именем. Актуальна &lt;del class=&quot;diffchange diffchange-inline&quot;&gt;в &lt;/del&gt;в событиях PostLoaded и ModsLoaded, которые происходят после загрузки всех модов. &amp;#160;&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;color:black; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;*ModAPI.isModLoaded(&amp;quot;имя мода&amp;quot;) - проверяет, загружен ли мод с этим именем. Актуальна в событиях PostLoaded и ModsLoaded, которые происходят после загрузки всех модов. &amp;#160;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;*ModAPI.requireGlobal(&amp;quot;имя переменной или исполняемая строка&amp;quot;) - возвращает переменную с данным именем из самого Core Engine, если передана исполняемая строка, выполняет ее в пространстве имен Core Engine и возвращает результат, при возникновении ошибки возвращает null и пишет ошибку в лог. Может быть использована для получения скрытых модулей или значений ModPE (они могут работать некорректно).&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;*ModAPI.requireGlobal(&amp;quot;имя переменной или исполняемая строка&amp;quot;) - возвращает переменную с данным именем из самого Core Engine, если передана исполняемая строка, выполняет ее в пространстве имен Core Engine и возвращает результат, при возникновении ошибки возвращает null и пишет ошибку в лог. Может быть использована для получения скрытых модулей или значений ModPE (они могут работать некорректно).&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;</summary>
		<author><name>145.255.22.57</name></author>	</entry>

	<entry>
		<id>https://wiki.mineprogramming.org/index.php?title=InnerCore/%D0%9C%D0%BE%D0%B4%D1%83%D0%BB%D1%8C_ModAPI&amp;diff=303&amp;oldid=prev</id>
		<title>Admin: Admin moved page CoreEngine/Обмен API модов to InnerCore/Модуль ModAPI</title>
		<link rel="alternate" type="text/html" href="https://wiki.mineprogramming.org/index.php?title=InnerCore/%D0%9C%D0%BE%D0%B4%D1%83%D0%BB%D1%8C_ModAPI&amp;diff=303&amp;oldid=prev"/>
				<updated>2018-02-05T15:06:28Z</updated>
		
		<summary type="html">&lt;p&gt;Admin moved page &lt;a href=&quot;/index.php/CoreEngine/%D0%9E%D0%B1%D0%BC%D0%B5%D0%BD_API_%D0%BC%D0%BE%D0%B4%D0%BE%D0%B2&quot; class=&quot;mw-redirect&quot; title=&quot;CoreEngine/Обмен API модов&quot;&gt;CoreEngine/Обмен API модов&lt;/a&gt; to &lt;a href=&quot;/index.php/InnerCore/%D0%9C%D0%BE%D0%B4%D1%83%D0%BB%D1%8C_ModAPI&quot; title=&quot;InnerCore/Модуль ModAPI&quot;&gt;InnerCore/Модуль ModAPI&lt;/a&gt;&lt;/p&gt;
&lt;table class=&quot;diff diff-contentalign-left&quot; data-mw=&quot;interface&quot;&gt;
				&lt;tr style=&quot;vertical-align: top;&quot; lang=&quot;ru&quot;&gt;
				&lt;td colspan=&quot;1&quot; style=&quot;background-color: white; color:black; text-align: center;&quot;&gt;← Предыдущая&lt;/td&gt;
				&lt;td colspan=&quot;1&quot; style=&quot;background-color: white; color:black; text-align: center;&quot;&gt;Версия 15:06, 5 февраля 2018&lt;/td&gt;
				&lt;/tr&gt;&lt;tr&gt;&lt;td colspan=&quot;2&quot; style=&quot;text-align: center;&quot; lang=&quot;ru&quot;&gt;&lt;div class=&quot;mw-diff-empty&quot;&gt;(нет различий)&lt;/div&gt;
&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;</summary>
		<author><name>Admin</name></author>	</entry>

	<entry>
		<id>https://wiki.mineprogramming.org/index.php?title=InnerCore/%D0%9C%D0%BE%D0%B4%D1%83%D0%BB%D1%8C_ModAPI&amp;diff=160&amp;oldid=prev</id>
		<title>93.124.107.25: Created page with &quot; Core Engine имеет модуль для обмена объектами API между различными модами - ModAPI, обмен API осуществляет...&quot;</title>
		<link rel="alternate" type="text/html" href="https://wiki.mineprogramming.org/index.php?title=InnerCore/%D0%9C%D0%BE%D0%B4%D1%83%D0%BB%D1%8C_ModAPI&amp;diff=160&amp;oldid=prev"/>
				<updated>2017-07-07T20:57:22Z</updated>
		
		<summary type="html">&lt;p&gt;Created page with &amp;quot; Core Engine имеет модуль для обмена объектами API между различными модами - ModAPI, обмен API осуществляет...&amp;quot;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;Новая страница&lt;/b&gt;&lt;/p&gt;&lt;div&gt;&lt;br /&gt;
Core Engine имеет модуль для обмена объектами API между различными модами - ModAPI, обмен API осуществляется с помощью методов регистрации и публикации API и с помощью методов его получения.&lt;br /&gt;
&lt;br /&gt;
&amp;amp;nbsp;&lt;br /&gt;
&lt;br /&gt;
Чтобы сделать объект API доступным для других модов используется метод ModAPI.registerAPI(&amp;quot;имя API&amp;quot;, объект API) - после вызова этого метода, остальные моды смогут получить объект API по данному имени.&lt;br /&gt;
&lt;br /&gt;
&amp;amp;nbsp;&lt;br /&gt;
&lt;br /&gt;
Чтобы получить объект API нужно добавить специальное событие на имя объекта API, который требуется получить. Событие используется потому, что моды загружаются в произвольном порядке и неизвестно, зарегистрирован ли данный API на момент загрузки мода, который в нем нуждается, даже если мод, который регистрирует, присутсвует.&lt;br /&gt;
&lt;br /&gt;
Для этого используется такой метод:&lt;br /&gt;
&amp;lt;pre&amp;gt;ModAPI.addAPICallback(&amp;quot;имя API&amp;quot;, function(api){&lt;br /&gt;
&lt;br /&gt;
     // api является объектом api, зарегистрированным под данным именем&lt;br /&gt;
&lt;br /&gt;
})&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;amp;nbsp;&lt;br /&gt;
&lt;br /&gt;
Это событие произойдет 1 раз после добавления, при этом если API уже зарегистрирован, то событие произойдет сразу после добавления, иначе оно будет ожидать регистрации.&lt;br /&gt;
&lt;br /&gt;
В этом событии вы можете произвести какие-то действия, связанные с работой с данным API, например при получении ThaumAPI (api таумкрафта), добавить предметам вашего мода аспекты. Если событие не произойдет, значит таумкрафт не установлен и аспекты регистрировать не надо.&lt;br /&gt;
&lt;br /&gt;
&amp;amp;nbsp;&lt;br /&gt;
&lt;br /&gt;
&amp;amp;nbsp;&lt;br /&gt;
&lt;br /&gt;
=== Использование событий в скрипте-лаунчере ===&lt;br /&gt;
&lt;br /&gt;
Если мод не может работать без какого-то объекта API (например это дополнение к какому-то моду), то разумно будет сделать так, что мод запускается по событию регистрации данного API и сразу передать ему объект API.&lt;br /&gt;
&lt;br /&gt;
&amp;amp;nbsp;&lt;br /&gt;
&lt;br /&gt;
К примеру вот код лаунчера мода, который является дополнением к таумкрафту и которому обязателен ThaumAPI:&lt;br /&gt;
&lt;br /&gt;
&amp;amp;nbsp;&lt;br /&gt;
&amp;lt;pre&amp;gt;ModAPI.addAPICallback(&amp;quot;ThaumAPI&amp;quot;, function(api){&lt;br /&gt;
&lt;br /&gt;
     // по событию регистрации ThaumAPI запустить основной мод&lt;br /&gt;
&lt;br /&gt;
     Launch({&lt;br /&gt;
&lt;br /&gt;
          ThaumAPI: api // в качестве дополнительного значения при запуске под именем ThaumAPI передать полученный объект api&lt;br /&gt;
&lt;br /&gt;
     });&lt;br /&gt;
&lt;br /&gt;
});&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;amp;nbsp;&lt;br /&gt;
&lt;br /&gt;
&amp;amp;nbsp;&lt;br /&gt;
&lt;br /&gt;
=== Другие методы ModAPI ===&lt;br /&gt;
&lt;br /&gt;
*ModAPI.requireAPI(&amp;quot;имя API&amp;quot;) - отдает объект API по данному имени, если он зарегистрирован. Несовершенен, потому что порядок загрузки неизвестен. Лучше используйте ModAPI.addAPICallback. &lt;br /&gt;
*ModAPI.getModByName(&amp;quot;имя мода&amp;quot;) - отдает объект мода, отвечающий за его файлы и загрузку, если мод загружен. Несовершенен, потому что порядок загрузки неизвестен. Лучше используйте ModAPI.addModCallback. &lt;br /&gt;
*ModAPI.addModCallback(&amp;quot;имя мода&amp;quot;, function(mod){ &amp;amp;nbsp;&amp;lt;br/&amp;gt; &amp;amp;nbsp; // mod является объектом мода&amp;lt;br/&amp;gt; }) - добавляет событие, которое произойдет при загрузке мода под данным именем, которому будет передан объект мода. Аналогичен по действию ModAPI.addAPICallback, только для модов. &lt;br /&gt;
*ModAPI.isModLoaded(&amp;quot;имя мода&amp;quot;) - проверяет, загружен ли мод с этим именем. Актуальна в в событиях PostLoaded и ModsLoaded, которые происходят после загрузки всех модов. &lt;br /&gt;
*ModAPI.requireGlobal(&amp;quot;имя переменной или исполняемая строка&amp;quot;) - возвращает переменную с данным именем из самого Core Engine, если передана исполняемая строка, выполняет ее в пространстве имен Core Engine и возвращает результат, при возникновении ошибки возвращает null и пишет ошибку в лог. Может быть использована для получения скрытых модулей или значений ModPE (они могут работать некорректно).&lt;/div&gt;</summary>
		<author><name>93.124.107.25</name></author>	</entry>

	</feed>