Posted October 31, 20169 yr I have been looking for a way to prevent an item from being placed in all contains which I do not approve (as they need to be constantly ticking). However, I could not see any method which I could override, or any event to cancel, which would allow me to do this. Does Forge allow it, or is it something I will have to deal with in some other way. Alternatively, could I simply do something to the ItemStack when it is placed in any invalid inventory? Also, I have noticed that an item held by the cursor does not tick, is there something I need to do to have the item held update? Note that it may result in the ItemStack being replaced by another ItemStack or completely destroyed.
October 31, 20169 yr I have been looking for a way to prevent an item from being placed in all contains which I do not approve (as they need to be constantly ticking). However, I could not see any method which I could override, or any event to cancel, which would allow me to do this. Does Forge allow it, or is it something I will have to deal with in some other way. Alternatively, could I simply do something to the ItemStack when it is placed in any invalid inventory? Also, I have noticed that an item held by the cursor does not tick, is there something I need to do to have the item held update? Note that it may result in the ItemStack being replaced by another ItemStack or completely destroyed. Use TickEvent.WorldTickEvent loop through the TileEntities access there ItemStacks and call Item#onUpdate(...). VANILLA MINECRAFT CLASSES ARE THE BEST RESOURCES WHEN MODDING I will be posting 1.15.2 modding tutorials on this channel. If you want to be notified of it do the normal YouTube stuff like subscribing, ect. Forge and vanilla BlockState generator.
October 31, 20169 yr Use TickEvent.WorldTickEvent loop through the TileEntities access there ItemStacks and call Item#onUpdate(...).This is a terrible idea I agree this is very resource intensive, but it definitely gets the job done. It is more of a "brute force" method. VANILLA MINECRAFT CLASSES ARE THE BEST RESOURCES WHEN MODDING I will be posting 1.15.2 modding tutorials on this channel. If you want to be notified of it do the normal YouTube stuff like subscribing, ect. Forge and vanilla BlockState generator.
October 31, 20169 yr Depending on what you mean by "the itemstack needs to tick all the time" is it something like: Item auto repairs? Item Generates some sort of value overtime? I believe there is a "PlayerOpenContainerEvent" if you're ok with designing your system of where every player tick the item gets updated, but have a "last updated" value on the itemstack, you can then use this during "update calls" including when the container is opened (event) and do some math differences to make it "appear" that it was updating the whole time, even tho it just calculated from "last update" and "current time" If they need to be constantly ticking, you could add in the tooltip that it must always be on a player? Currently updating my Mod to 1.10.2 https://bitbucket.org/hugo_the_dwarf/riseoftristram2016/src?at=master
November 3, 20169 yr Take a look at using "PlayerContainerEvent.Close". You can determine what inventory your item is in and the maybe you can force the item to pop out of the chest into the world, or maybe back into player inventory.
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.