Jump to content

Recommended Posts

Posted

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.

Posted

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.

Posted

Use TickEvent.WorldTickEvent loop through the TileEntities access there ItemStacks and call Item#onUpdate(...).
This is a terrible idea :D

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.

Posted

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?

Posted

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.

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



×
×
  • Create New...

Important Information

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