{"description":"Welcome to the best place to find Luanti mods, games, and texture packs","expired":false,"feed_url":"https://content.luanti.ru/packages/TPH/events_api/releases_feed.json","home_page_url":"https://content.luanti.ru/","icon":"https://content.luanti.ru/favicon-128.png","items":[{"author":{"avatar":"https://content.luanti.ru/uploads/3b172679f4.png","name":"TPH","url":"https://content.luanti.ru/users/TPH/"},"content_html":"<p>2 new API functions:</p>\n<ul>\n<li><code>is_nil(val)</code> - used for checking whether or not a provided value is &quot;nil&quot; (either <code>nil</code> or a null string character <code>\\0</code>)</li>\n<li><code>convert_variable_args(...)</code> - converts a tuple into a table array that preserves the positions of <code>nil</code> as null string character <code>\\0</code></li>\n</ul>\n<p>2 new event callbacks</p>\n<ul>\n<li>\n<p><code>event.after_event</code> - ran after ALL <code>event.funcs</code> have been called by <code>event.handler(...)</code>. First parameter (<code>funcsdata</code>) is a list of <code>funcdata</code> that contain an <code>id</code> (table index in <code>data.funcs</code>), <code>func</code> (actual function), and <code>returned</code> (values returned by called function, respects positions of <code>nil</code> with null string character <code>\\0</code>). Other parameters will be the tuple provided by <code>event.handler(...). Good for being used in implementations similar to </code>core.register_on_placenode`, doing unique things depending on what a function returns</p>\n</li>\n<li>\n<p><code>event.prior_to_each_handler_func</code> - ran prior to EACH AND EVERY function in <code>events.funcs</code>. First parameter <code>funcdata</code> is a table that contains an <code>id</code> (table index in <code>data.funcs</code>) and <code>func</code> (actual function). Other parameters will be the tuple provided by <code>event.handler(...)</code>. Can be used for randomizing fields or cloning tables on a per-function basis. Expects same return tuple order of the <code>events.handler</code> function (unless you've programmed this purposefully to do something different, why?)</p>\n</li>\n</ul>\n","date_published":"2026-02-12T00:15:10Z","id":"https://content.luanti.ru/packages/TPH/events_api/releases/35000/","image":"https://content.luanti.ru/thumbnails/4/180a4511ea.png","language":"en","summary":"2 new API functions:","tags":["release"],"title":"\"Events API\" updated: 2 - new API + event callbacks","url":"https://content.luanti.ru/packages/TPH/events_api/releases/35000/"},{"author":{"avatar":"https://content.luanti.ru/uploads/3b172679f4.png","name":"TPH","url":"https://content.luanti.ru/users/TPH/"},"content_html":"<p>Creates the essential basics of the mod's functionality - <code>events_api.create</code> which returns a table with <code>funcs</code> array, <code>handler</code> function, and <code>register</code> function</p>\n<p>Disconnection function return for <code>event.register(func)</code></p>\n","date_published":"2025-09-16T01:21:34Z","id":"https://content.luanti.ru/packages/TPH/events_api/releases/32795/","image":"https://content.luanti.ru/thumbnails/4/180a4511ea.png","language":"en","summary":"Creates the essential basics of the mod's functionality - `events_api.create` which returns a table with `funcs` array, `handler` function, and `register` function","tags":["release"],"title":"\"Events API\" updated: Initialization - first release!","url":"https://content.luanti.ru/packages/TPH/events_api/releases/32795/"}],"title":"ContentDB package updates","version":"https://jsonfeed.org/version/1"}
