diff --git a/docs/tutorials/custom_block.md b/docs/tutorials/custom_block.md index 46784f6..e4e9aa0 100644 --- a/docs/tutorials/custom_block.md +++ b/docs/tutorials/custom_block.md @@ -183,8 +183,9 @@ When it's loaded, we'll: var custom_block = BlockRegistrationFunction(); //Get the registered block instance ModAPI.addEventListener("lib:asyncsink", async () => { //Add an asyncronous listener to AsyncSink loading. - ModAPI.addEventListener("custom:asyncsink_reloaded", ()=>{ - ModAPI.mc.renderItem.registerBlock(custom_block, ModAPI.util.str("custom_block")); + ModAPI.addEventListener("lib:asyncsink:registeritems", (renderItem)=>{ + //when asyncsink yells at us to register the custom block, register it + renderItem.registerItem(custom_block, ModAPI.util.str("custom_block")); }); AsyncSink.L10N.set("tile.custom_block.name", "My Custom Block"); //Set the name of the block diff --git a/docs/tutorials/custom_item.md b/docs/tutorials/custom_item.md index fe14988..a13b396 100644 --- a/docs/tutorials/custom_item.md +++ b/docs/tutorials/custom_item.md @@ -92,8 +92,8 @@ Now let's run the `CustomItem` function on the server and the client, and then u var custom_item = CustomItem(); ModAPI.addEventListener("lib:asyncsink", async () => { - ModAPI.addEventListener("custom:asyncsink_reloaded", ()=>{ - ModAPI.mc.renderItem.registerItem(custom_item, ModAPI.util.str("custom_item")); + ModAPI.addEventListener("lib:asyncsink:registeritems", (renderItem)=>{ + renderItem.registerItem(custom_item, ModAPI.util.str("custom_item")); }); AsyncSink.L10N.set("item.custom_item.name", "Cool Custom Item"); AsyncSink.setFile("resourcepacks/AsyncSinkLib/assets/minecraft/models/item/custom_item.json", JSON.stringify( diff --git a/examplemods/AsyncSink.js b/examplemods/AsyncSink.js index 0c1e22a..c7d6757 100644 --- a/examplemods/AsyncSink.js +++ b/examplemods/AsyncSink.js @@ -260,4 +260,13 @@ ModAPI.meta.credits("By ZXMushroom63"); }); } }); + ModAPI.events.newEvent("lib:asyncsink:registeritems"); + const regItemsName = ModAPI.util.getMethodFromPackage("net.minecraft.client.renderer.entity.RenderItem", "registerItems"); + const oldRegisterItems = ModAPI.hooks.methods[regItemsName]; + ModAPI.hooks.methods[regItemsName] = function (...args) { + debugger; + oldRegisterItems.apply(this, args); + ModAPI.events.callEvent("lib:asyncsink:registeritems", ModAPI.util.wrap(args[0])); + } + })(); \ No newline at end of file diff --git a/examplemods/Tutorial_Custom_Block.js b/examplemods/Tutorial_Custom_Block.js index 14b4164..fced749 100644 --- a/examplemods/Tutorial_Custom_Block.js +++ b/examplemods/Tutorial_Custom_Block.js @@ -91,8 +91,8 @@ var custom_block = BlockRegistrationFunction(); //Get the registered block instance ModAPI.addEventListener("lib:asyncsink", async () => { //Add an asyncronous listener to AsyncSink loading. - ModAPI.addEventListener("custom:asyncsink_reloaded", () => { - ModAPI.mc.renderItem.registerBlock(custom_block, ModAPI.util.str("custom_block")); + ModAPI.addEventListener("lib:asyncsink:registeritems", (renderItem)=>{ + renderItem.registerItem(custom_block, ModAPI.util.str("custom_block")); }); AsyncSink.L10N.set("tile.custom_block.name", "My Custom Block"); //Set the name of the block diff --git a/examplemods/Tutorial_Custom_Item.js b/examplemods/Tutorial_Custom_Item.js index 9c4106b..870d380 100644 --- a/examplemods/Tutorial_Custom_Item.js +++ b/examplemods/Tutorial_Custom_Item.js @@ -63,8 +63,8 @@ var custom_item = CustomItem(); ModAPI.addEventListener("lib:asyncsink", async () => { - ModAPI.addEventListener("custom:asyncsink_reloaded", ()=>{ - ModAPI.mc.renderItem.registerItem(custom_item, ModAPI.util.str("custom_item")); + ModAPI.addEventListener("lib:asyncsink:registeritems", (renderItem)=>{ + renderItem.registerItem(custom_item, ModAPI.util.str("custom_item")); }); AsyncSink.L10N.set("item.custom_item.name", "Cool Custom Item"); AsyncSink.setFile("resourcepacks/AsyncSinkLib/assets/minecraft/models/item/custom_item.json", JSON.stringify( diff --git a/examplemods/block_of_steve_advanced.js b/examplemods/block_of_steve_advanced.js index 4523eaa..5a5fbe3 100644 --- a/examplemods/block_of_steve_advanced.js +++ b/examplemods/block_of_steve_advanced.js @@ -42,8 +42,8 @@ function registerSteveClientSide() { ); itemClass.staticMethods.registerItemBlock0.method(block_of_steve); ModAPI.addEventListener("lib:asyncsink", async () => { - ModAPI.addEventListener("custom:asyncsink_reloaded", ()=>{ - ModAPI.mc.renderItem.registerBlock(block_of_steve, ModAPI.util.str("steve")); + ModAPI.addEventListener("lib:asyncsink:registeritems", (renderItem)=>{ + renderItem.registerItem(block_of_steve, ModAPI.util.str("steve")); }); AsyncSink.L10N.set("tile.steve.name", "Block Of Steve"); AsyncSink.setFile("resourcepacks/AsyncSinkLib/assets/minecraft/models/block/steve.json", JSON.stringify( diff --git a/examplemods/block_of_steve_simple.js b/examplemods/block_of_steve_simple.js index 4918e17..a3cf599 100644 --- a/examplemods/block_of_steve_simple.js +++ b/examplemods/block_of_steve_simple.js @@ -33,8 +33,8 @@ function registerSteveClientSide() { itemClass.staticMethods.registerItemBlock0.method(block_of_steve); ModAPI.addEventListener("lib:asyncsink", async () => { - ModAPI.addEventListener("custom:asyncsink_reloaded", ()=>{ - ModAPI.mc.renderItem.registerBlock(block_of_steve, ModAPI.util.str("steve")); + ModAPI.addEventListener("lib:asyncsink:registeritems", (renderItem)=>{ + renderItem.registerItem(block_of_steve, ModAPI.util.str("steve")); }); AsyncSink.L10N.set("tile.steve.name", "Block Of Steve"); AsyncSink.setFile("resourcepacks/AsyncSinkLib/assets/minecraft/models/block/steve.json", JSON.stringify( diff --git a/examplemods/guns.js b/examplemods/guns.js index dfba64e..5bca369 100644 --- a/examplemods/guns.js +++ b/examplemods/guns.js @@ -104,8 +104,8 @@ var pistol_item = PistolItem(); ModAPI.addEventListener("lib:asyncsink", async () => { - ModAPI.addEventListener("custom:asyncsink_reloaded", ()=>{ - ModAPI.mc.renderItem.registerItem(pistol_item, ModAPI.util.str("pistol")); + ModAPI.addEventListener("lib:asyncsink:registeritems", (renderItem)=>{ + renderItem.registerItem(pistol_item, ModAPI.util.str("pistol")); }); AsyncSink.L10N.set("item.pistol.name", "Pistol"); AsyncSink.setFile("resourcepacks/AsyncSinkLib/assets/minecraft/models/item/pistol.json", JSON.stringify( diff --git a/examplemods/guns_craftable.js b/examplemods/guns_craftable.js index 15ba6e1..9dc6286 100644 --- a/examplemods/guns_craftable.js +++ b/examplemods/guns_craftable.js @@ -151,8 +151,8 @@ var pistol_item = PistolItem(); ModAPI.addEventListener("lib:asyncsink", async () => { - ModAPI.addEventListener("custom:asyncsink_reloaded", ()=>{ - ModAPI.mc.renderItem.registerItem(pistol_item, ModAPI.util.str("pistol")); + ModAPI.addEventListener("lib:asyncsink:registeritems", (renderItem)=>{ + renderItem.registerItem(pistol_item, ModAPI.util.str("pistol")); }); AsyncSink.L10N.set("item.pistol.name", "Pistol"); AsyncSink.setFile("resourcepacks/AsyncSinkLib/assets/minecraft/models/item/pistol.json", JSON.stringify( diff --git a/examplemods/unlucky_blocks.js b/examplemods/unlucky_blocks.js index cc2f459..ba048a0 100644 --- a/examplemods/unlucky_blocks.js +++ b/examplemods/unlucky_blocks.js @@ -86,8 +86,8 @@ ModAPI.dedicatedServer.appendCode(UnluckyBlocks); var block_of_unluckiness = UnluckyBlocks(); ModAPI.addEventListener("lib:asyncsink", async () => { - ModAPI.addEventListener("custom:asyncsink_reloaded", ()=>{ - ModAPI.mc.renderItem.registerBlock(block_of_unluckiness, ModAPI.util.str("unluckiness")); + ModAPI.addEventListener("lib:asyncsink:registeritems", (renderItem)=>{ + renderItem.registerItem(block_of_unluckiness, ModAPI.util.str("unluckiness")); }); AsyncSink.L10N.set("tile.unluckiness.name", "Unlucky Block"); AsyncSink.setFile("resourcepacks/AsyncSinkLib/assets/minecraft/models/block/unluckiness.json", JSON.stringify( diff --git a/examplemods/useless_item_example_mod.js b/examplemods/useless_item_example_mod.js index 8bc7f1f..f8f5c4c 100644 --- a/examplemods/useless_item_example_mod.js +++ b/examplemods/useless_item_example_mod.js @@ -41,8 +41,8 @@ var example_item = ExampleItem(); ModAPI.addEventListener("lib:asyncsink", async () => { - ModAPI.addEventListener("custom:asyncsink_reloaded", ()=>{ - ModAPI.mc.renderItem.registerItem(example_item, ModAPI.util.str("exampleitem")); + ModAPI.addEventListener("lib:asyncsink:registeritems", (renderItem)=>{ + renderItem.registerItem(example_item, ModAPI.util.str("exampleitem")); }); AsyncSink.L10N.set("item.exampleitem.name", "Example Item"); AsyncSink.setFile("resourcepacks/AsyncSinkLib/assets/minecraft/models/item/exampleitem.json", JSON.stringify( diff --git a/injector.js b/injector.js index b204d36..7048e86 100644 --- a/injector.js +++ b/injector.js @@ -1,4 +1,4 @@ -globalThis.ModAPIVersion = "v2.5.1"; +globalThis.ModAPIVersion = "v2.6"; globalThis.doEaglerforge = true; document.querySelector("title").innerText = `EaglerForge Injector ${ModAPIVersion}`; document.querySelector("h1").innerText = `EaglerForge Injector ${ModAPIVersion}`; diff --git a/postinit.js b/postinit.js index 55a32d4..344d338 100644 --- a/postinit.js +++ b/postinit.js @@ -537,8 +537,8 @@ globalThis.modapi_postinit = "(" + (() => { ModAPI.events.listeners = { "event": [] }; ModAPI.addEventListener = function addEventListener(name, callback) { if (name.startsWith("lib:")) { - if (ModAPI.events.lib_map[name]) { - callback({}); + if (Object.keys(ModAPI.events.lib_map).includes(name)) { + callback(ModAPI.events.lib_map[name]); } else { if (!Array.isArray(ModAPI.events.listeners[name])) { ModAPI.events.listeners[name] = []; @@ -596,10 +596,10 @@ globalThis.modapi_postinit = "(" + (() => { if (ModAPI.events.types.includes(name) && name.startsWith("lib:")) { if (Array.isArray(ModAPI.events.listeners[name])) { ModAPI.events.listeners[name].forEach((func) => { - func({}); + func(data); }); } - ModAPI.events.lib_map[name] = true; + ModAPI.events.lib_map[name] = data; return; } if (