Jump to content

Hook request to make it possible for tipped arrows to work with Infinity


Recommended Posts

Posted

Hello,

 

I've been looking through the source code and forge documentation for most of the day trying to figure out how I can accomplish this. From what I can tell a coremod is the only way to do this currently.

 

This is because the code that removes a fired arrow from the player's inventory is in the onPlayerStoppedUsing method of ItemBow.class and not included in the ArrowNock or ArrowLoose events:

 

From ItemBow.class:

if (!flag1 && !entityplayer.capabilities.isCreativeMode)
{
	itemstack.shrink(1);

	if (itemstack.isEmpty())
	{
		entityplayer.inventory.deleteStack(itemstack);
	}
}

^Flag1 checks if ammo is of the ItemArrow class specifically (TippedArrow is its own class so it fails this check). This is probably the easiest place to modify to allow tipped arrows to work with Infinity.

 

Reflection is a completely new concept to me but from what I'm reading it doesn't look like it would work for this. Please correct me if I'm wrong.

Posted

This can be done through registry replacement (i.e. creating custom Tipped Arrows and replacing the vanilla ones)

This is my Forum Signature, I am currently attempting to transform it into a small guide for fixing easier issues using spoiler blocks to keep things tidy.

 

As the most common issue I feel I should put this outside the main bulk:

The only official source for Forge is https://files.minecraftforge.net, and the only site I trust for getting mods is CurseForge.

If you use any site other than these, please take a look at the StopModReposts project and install their browser extension, I would also advise running a virus scan.

 

For players asking for assistance with Forge please expand the spoiler below and read the appropriate section(s) in its/their entirety.

  Reveal hidden contents

 

Posted

Looked up registry replacement and I'm not sure how it helps here. I could create a custom bow class, extending ItemBow, and override the onPlayerStoppedUsing method, but I'd prefer to not create custom items either way.

Posted

I would assume you're looking at the instanceof check, and as ItemTippedArrow extends ItemArrow that will pass, what stops it is ItemArrow's implementation of the isInfinite method which does directly check for ItemArrow, so if you make a custom ItemTippedArrow that overrides isInfinite it will work.

  • Thanks 1

This is my Forum Signature, I am currently attempting to transform it into a small guide for fixing easier issues using spoiler blocks to keep things tidy.

 

As the most common issue I feel I should put this outside the main bulk:

The only official source for Forge is https://files.minecraftforge.net, and the only site I trust for getting mods is CurseForge.

If you use any site other than these, please take a look at the StopModReposts project and install their browser extension, I would also advise running a virus scan.

 

For players asking for assistance with Forge please expand the spoiler below and read the appropriate section(s) in its/their entirety.

  Reveal hidden contents

 

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.