Jump to content

Weirdness when opening item via keybind b4 it has been initialised via r-click


p455w0rd

Recommended Posts

Well, here's the scenario:

I have my Wireless Crafting Terminal mod which is an item that has slots for various things.

One of those things is a filterable magnet upgrade, which upon right-click opens a GUI.

I also have a keybind performing the same action (opening the GUI), but of course done via packets.

 

The issue is initial saving of NBT data.

 

If I right-click using the item, it "initializes" it. and then I can put items in the filter slots and so forth.

At this point everything is great. The keybind functions, NBT data is saved and all is well.

 

However, if I create the magnet item and place it in it's appropriate slot in my Wireless Crafting Terminal without first right-clicking and then try to access the magnet GUI, it does open the magnet GUI, but none of the NBT data is saved when I add items to the filter list or change the mode from whitelisting to blacklisting.

 

This issue is referenced on my GitHub repo @ https://github.com/p455w0rd/WirelessCraftingTerminal/issues/7

 

Any ideas?

 

Note: 1.7.10

 

Also, if you just want to install the mod to reproduce what I'm talking about, get it @ http://minecraft.curseforge.com/projects/wireless-crafting-terminal

Link to comment
Share on other sites

Okay, so I've tried setting an empty NBT tag as soon as the item is created thinking that maybe that was the problem. It's certainly not. I even tried automatically adding a stack on creation using a new Instantiation of InventoryMagnetFilter (specifically I tried InventoryMagnetFilter#setInventorySlotContents) to no avail. This wouldn't make sense though since using the "Whitelisting/Blacklisting" button has nothing to do with the inventory and it has no effect either. It just seems that until it is initialized via right-click, it somehow references a wrong instantiation of the ItemStack. I was thinking client/server sync might be the problem, but since it works after the initial right-click I think that is ruled out. It's like it references a new instance of the itemstack until the item is initialized via right click. After that it references correctly. The item is retrieved via RandomUtils#getMagnet. I should also note that if the keybind is used and the item is held/in InventoryPlayer, it also works fine. RandomUtils#getMagnet first tries to get the held item if it's the magnet and this works. also if there is no magnet in the WCT, but there is one in player's inventory, it works fine as RandomUtils#getMagnet does this check as a final check for returning the magnet ItemStack before giving up and returning null. It only fails to initialize when first inserted into the custom inventory (InventoryMagnet instantiated in ContainerWirelessCraftingTerminal) and the keybind is then used without first having right-clicked with item in-hand.

Link to comment
Share on other sites

It may help if you posted some of the code related to the issue.  If you haven't already i would recommend implementing an item NBT helper. It will make working with NBT much easier and may or may not help you solve your problem.

Here is mine (You can copy it if you like) https://github.com/brandon3055/BrandonsCore/blob/master/src/main/java/com/brandon3055/brandonscore/common/utills/ItemNBTHelper.java

I am the author of Draconic Evolution

Link to comment
Share on other sites

I would post code, but I don't even know where to begin. I've been as concise I as can be. I reference the repo and in post #2 made direct references to specific classes/methods. Also, as far as implementing an NBT helper class: I just don't see a real point. It does the same thing Forge already has implemented without adding any functionality. Not bashing in any way. I just don't see a reason to do this. There is probably something I'm missing in that aspect since I trust your judgement, I just don't see it atm.

Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.

Guest
Unfortunately, your content contains terms that we do not allow. Please edit your content to remove the highlighted words below.
Reply to this topic...

×   Pasted as rich text.   Restore formatting

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Announcements



  • Recently Browsing

    • No registered users viewing this page.
  • Posts

    • Another Update: Updating the Forge MDL version worked. My conjecture to this weird bug or issue of sorts is that the plugin was downloading mappings and MDK from the latest forge minecraft version instead of the set forge minecraft version. This could be the only possible case of explanation, because clearing gradle cache does not work for me. I have tried this for over hours and just upgrading the MDK worked for me. Build and compile gradlew commands also works now, which further proves my guess. This is probably a bug on the plugin's side somehow, but it just doesn't make sense since at start trying the 40.2.18 MDL works fine and then deleting the cache breaks it.
    • Update: It seems like the forge version I was using was broken entirely, somehow... I am now using the Forge MDL 1.18.2-40.2.21 (previous used 40.2.18) version and now everything is working sort-of fine.... adding extra dependencies seems to break it again. It is so weird... Did anyone have similar issues with this before? I'm also using the Minecraft Development plugin for IntelliJ IDEA
    • Hello! I'm currently having issues while building a jar file for my Minecraft 1.18.2 Forge mod. I've attached a link to imgur below that holds two screenshots of the errors. I'm using Jetbrains IntelliJ IDEA 2024.1 and Gradle 8.4. This is my repo: Mod Repo When I was modding, I needed to build the mod in order to test the mod, which didn't work, as the first screenshot gives. It throws errors for each classes in the forge registry class (or whatever the hell that mess is) and is just generally confusing. Now I have deleted everything in my project folder and re-pulled the repo from github, which now gives the errors in the second image where all forge classes are not imported somehow. When I try to build it now, it just repeats the same errors in the first image. https://imgur.com/a/DYwSKqJ Please I need help desparately
    • [main/WARN] [net.minecraft.server.Main/]: Failed to load datapacks, can't proceed with server load. You can either fix your datapacks or reset to vanilla with --safeMode 8400java.util.concurrent.ExecutionException: com.google.gson.JsonParseException: Error loading registry data: No key name in MapLike[{"elements":[{"element":{"element_type":"minecraft:legacy_single_pool_element","location":"duneons:towns/village_creeperforest/town_center_01","processors":{"processors":[]},"projection":"rigid"},"weight":1}],"fallback":"minecraft:empty","forge:registry_name":"duneons:towns/village_creeperforest/town_centers"}] 8401at java.util.concurrent.CompletableFuture.reportGet(CompletableFuture.java:396) ~[?:?] 8402at java.util.concurrent.CompletableFuture.get(CompletableFuture.java:2073) ~[?:?] 8403at net.minecraft.server.Main.main(Main.java:182) ~[server-1.19.2-20220805.130853-srg.jar%23243!/:?] 8404at jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method) ~[?:?] 8405at jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:77) ~[?:?] 8406at jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) ~[?:?] 8407at java.lang.reflect.Method.invoke(Method.java:568) ~[?:?] 8408at net.minecraftforge.fml.loading.targets.CommonServerLaunchHandler.lambda$launchService$0(CommonServerLaunchHandler.java:29) ~[fmlloader-1.19.2-43.3.13.jar%2367!/:?] 8409at cpw.mods.modlauncher.LaunchServiceHandlerDecorator.launch(LaunchServiceHandlerDecorator.java:30) [modlauncher-10.0.8.jar%2354!/:?] 8410at cpw.mods.modlauncher.LaunchServiceHandler.launch(LaunchServiceHandler.java:53) [modlauncher-10.0.8.jar%2354!/:?] 8411at cpw.mods.modlauncher.LaunchServiceHandler.launch(LaunchServiceHandler.java:71) [modlauncher-10.0.8.jar%2354!/:?] 8412at cpw.mods.modlauncher.Launcher.run(Launcher.java:106) [modlauncher-10.0.8.jar%2354!/:?] 8413at cpw.mods.modlauncher.Launcher.main(Launcher.java:77) [modlauncher-10.0.8.jar%2354!/:?] 8414at cpw.mods.modlauncher.BootstrapLaunchConsumer.accept(BootstrapLaunchConsumer.java:26) [modlauncher-10.0.8.jar%2354!/:?] 8415at cpw.mods.modlauncher.BootstrapLaunchConsumer.accept(BootstrapLaunchConsumer.java:23) [modlauncher-10.0.8.jar%2354!/:?] 8416at cpw.mods.bootstraplauncher.BootstrapLauncher.main(BootstrapLauncher.java:141) [bootstraplauncher-1.1.2.jar:?] 8417Caused by: com.google.gson.JsonParseException: Error loading registry data: No key name in MapLike[{"elements":[{"element":{"element_type":"minecraft:legacy_single_pool_element","location":"duneons:towns/village_creeperforest/town_center_01","processors":{"processors":[]},"projection":"rigid"},"weight":1}],"fallback":"minecraft:empty","forge:registry_name":"duneons:towns/village_creeperforest/town_centers"}] 8418at net.minecraft.core.RegistryAccess.m_206152_(RegistryAccess.java:211) ~[server-1.19.2-20220805.130853-srg.jar%23243!/:?] 8419at java.util.Optional.ifPresent(Optional.java:178) ~[?:?] 8420at net.minecraft.core.RegistryAccess.m_206159_(RegistryAccess.java:210) ~[server-1.19.2-20220805.130853-srg.jar%23243!/:?] 8421at net.minecraft.core.RegistryAccess.m_206171_(RegistryAccess.java:203) ~[server-1.19.2-20220805.130853-srg.jar%23243!/:?] 8422at net.minecraft.resources.RegistryOps.m_206817_(RegistryOps.java:32) ~[server-1.19.2-20220805.130853-srg.jar%23243!/:?] 8423at net.minecraft.resources.RegistryOps.m_206813_(RegistryOps.java:25) ~[server-1.19.2-20220805.130853-srg.jar%23243!/:?] 8424at net.minecraft.server.Main.lambda$main$2(Main.java:160) ~[server-1.19.2-20220805.130853-srg.jar%23243!/:?] 8425at net.minecraft.server.WorldLoader.m_214362_(WorldLoader.java:24) ~[server-1.19.2-20220805.130853-srg.jar%23243!/:?] 8426at net.minecraft.server.WorldStem.m_214415_(WorldStem.java:18) ~[server-1.19.2-20220805.130853-srg.jar%23243!/:?] 8427at net.minecraft.server.Main.lambda$main$3(Main.java:158) ~[server-1.19.2-20220805.130853-srg.jar%23243!/:?] 8428at net.minecraft.Util.m_214652_(Util.java:775) ~[server-1.19.2-20220805.130853-srg.jar%23243!/:?] 8429at net.minecraft.Util.m_214679_(Util.java:770) ~[server-1.19.2-20220805.130853-srg.jar%23243!/:?] 8430at net.minecraft.server.Main.main(Main.java:157) ~[server-1.19.2-20220805.130853-srg.jar%23243!/:?] 8431... 13 more 8432  
    • Try using 1.20.6-50.0.5, it just fixed an issue related to enchanting: https://github.com/MinecraftForge/MinecraftForge/commit/0e829630da67c91d2b5a91ea4b65eb033f868e76
  • Topics

×
×
  • Create New...

Important Information

By using this site, you agree to our Terms of Use.