Jump to content

Recommended Posts

Posted

Hello. I would like to create an item with an extended reach(spear) and I'm having some trouble with it. I found a tutorial by Jabelar for 1.8, but there are some things that don't exist anymore that are used in that tutorial.

Posted

Hey, I'm just in the process of updating my mods (and tutorial information).

 

In general there are some simple tricks to use your IDE (like Eclipse) to help you find the new names and approaches to things when the versions change.

 

For example, if it says that a method doesn't exist then often by looking at the Type Hierarchy for the class that used to have the method you can see a method that has similar name that is probably the new one. Also, often the classes in the new version are written in fairly close order to the previous version so you can just open a project in the old version and compare that class with the new one and it is usually obvious what the replacement is. In cases where they have deprecated a method, they often provide a comment to explain which method you should use now.

 

You can also look at vanilla classes and see how they are now doing whatever you want to do.

 

Sometimes it is a bit more complicated, where a whole system is replaced -- like how Extended Entity Properties is replaced with Capability. In that case it is best to look up tutorials and search the forums. Most of the questions have already been answered.

 

Anyway, I can look at the extended reach tutorial over next couple days and see what is required to update. But don't wait for me, see if you can figure it out on your own -- I'll just have to do the same thing you will need to do!

Check out my tutorials here: http://jabelarminecraft.blogspot.com/

Posted

Hey, I'm just in the process of updating my mods (and tutorial information).

 

In general there are some simple tricks to use your IDE (like Eclipse) to help you find the new names and approaches to things when the versions change.

 

For example, if it says that a method doesn't exist then often by looking at the Type Hierarchy for the class that used to have the method you can see a method that has similar name that is probably the new one. Also, often the classes in the new version are written in fairly close order to the previous version so you can just open a project in the old version and compare that class with the new one and it is usually obvious what the replacement is. In cases where they have deprecated a method, they often provide a comment to explain which method you should use now.

Where in the Type Hierarchy would I see stuff with a similar name? This is what I see:

18efbd2b2e967cdbc4f53b4ea592f96f.png

 

You can also look at vanilla classes and see how they are now doing whatever you want to do.

 

Sometimes it is a bit more complicated, where a whole system is replaced -- like how Extended Entity Properties is replaced with Capability. In that case it is best to look up tutorials and search the forums. Most of the questions have already been answered.

 

Anyway, I can look at the extended reach tutorial over next couple days and see what is required to update. But don't wait for me, see if you can figure it out on your own -- I'll just have to do the same thing you will need to do!

Posted

Hey, I'm just in the process of updating my mods (and tutorial information).

 

In general there are some simple tricks to use your IDE (like Eclipse) to help you find the new names and approaches to things when the versions change.

 

For example, if it says that a method doesn't exist then often by looking at the Type Hierarchy for the class that used to have the method you can see a method that has similar name that is probably the new one. Also, often the classes in the new version are written in fairly close order to the previous version so you can just open a project in the old version and compare that class with the new one and it is usually obvious what the replacement is. In cases where they have deprecated a method, they often provide a comment to explain which method you should use now.

Where in the Type Hierarchy would I see stuff with a similar name? This is what I see:

18efbd2b2e967cdbc4f53b4ea592f96f.png

 

You can also look at vanilla classes and see how they are now doing whatever you want to do.

 

Sometimes it is a bit more complicated, where a whole system is replaced -- like how Extended Entity Properties is replaced with Capability. In that case it is best to look up tutorials and search the forums. Most of the questions have already been answered.

 

Anyway, I can look at the extended reach tutorial over next couple days and see what is required to update. But don't wait for me, see if you can figure it out on your own -- I'll just have to do the same thing you will need to do!

 

Sorry, my message got put inside the quote. I said:

 

Where in the Type Hierarchy would I see stuff with a similar name? This is what I see:

18efbd2b2e967cdbc4f53b4ea592f96f.png

Posted

Double click on a class to open it and look at the object hierarchy window.

Apparently I'm a complete and utter jerk and come to this forum just like to make fun of people, be confrontational, and make your personal life miserable.  If you think this is the case, JUST REPORT ME.  Otherwise you're just going to get reported when you reply to my posts and point it out, because odds are, I was trying to be nice.

 

Exception: If you do not understand Java, I WILL NOT HELP YOU and your thread will get locked.

 

DO NOT PM ME WITH PROBLEMS. No help will be given.

Posted

Double click on a class to open it and look at the object hierarchy window.

Where is the object hierarchy window?

In eclipse it is called the outline

Thank you.

 

How am I supposed to use the Outline/Object Hierarchy and Type Hierarchy to find a new name for things? There are two things that eclipse is telling me don't exist anymore. "MovingObjectPosition" and "getMouseOverExtended"

Posted

How am I supposed to use the Outline/Object Hierarchy and Type Hierarchy to find a new name for things? There are two things that eclipse is telling me don't exist anymore. "MovingObjectPosition" and "getMouseOverExtended"

 

It helps if the new stuff is in the same class. Like if you're following a tutorial that used the BlockModelRenderer.renderModelStandard() method and saw it wasn't available any more then you could look at the methods listed in the same class (BlockModelREnderer) and you'll notice that there is a method called BlockModelRenderer.renderModelFlat() and if you look at that method you can guess that it is used in the same way.

 

However, Type Hierarchy won't help you for the two issues you have because a) geMouseOverExtended() is a method from my tutorial so has nothing to do with version, and b) MovingObjectPosition is a class not a method or field.

 

Assuming you copied all my code, you actually have the getMouseOverExtended() method already. However, Eclipse might be complaining about it because it returns a MovingObjectPosition value which it doesn't recognize so then it also won't recognize the method.

 

So actually you only need to fix the MovingObjectPosition and that should also fix the getMouseOverExtended() as well.

 

Now when a whole class gets changed, it means there was a more extensive change that probably needs more thought and can be tricky to figure out. The best way to figure it out is to compare the source code from the older version and the newer version. For example, load a project in 1.8 into Eclipse and check where MovingObjectPosition is used in the Minecraft source. Then also look at your the 1.10 source and look in the same place and see what is now there. It is usually pretty obvious.

 

Anyway, that is what I just did. And I found that MovingObjectPosition has been renamed RayTraceResult. I haven't looked further to see if the class itself has changed, and I'll do that when I get time, but this should give you a good clue on how to fix it.

 

Check out my tutorials here: http://jabelarminecraft.blogspot.com/

Posted

How am I supposed to use the Outline/Object Hierarchy and Type Hierarchy to find a new name for things? There are two things that eclipse is telling me don't exist anymore. "MovingObjectPosition" and "getMouseOverExtended"

 

It helps if the new stuff is in the same class. Like if you're following a tutorial that used the BlockModelRenderer.renderModelStandard() method and saw it wasn't available any more then you could look at the methods listed in the same class (BlockModelREnderer) and you'll notice that there is a method called BlockModelRenderer.renderModelFlat() and if you look at that method you can guess that it is used in the same way.

 

However, Type Hierarchy won't help you for the two issues you have because a) geMouseOverExtended() is a method from my tutorial so has nothing to do with version, and b) MovingObjectPosition is a class not a method or field.

 

Assuming you copied all my code, you actually have the getMouseOverExtended() method already. However, Eclipse might be complaining about it because it returns a MovingObjectPosition value which it doesn't recognize so then it also won't recognize the method.

 

So actually you only need to fix the MovingObjectPosition and that should also fix the getMouseOverExtended() as well.

 

Now when a whole class gets changed, it means there was a more extensive change that probably needs more thought and can be tricky to figure out. The best way to figure it out is to compare the source code from the older version and the newer version. For example, load a project in 1.8 into Eclipse and check where MovingObjectPosition is used in the Minecraft source. Then also look at your the 1.10 source and look in the same place and see what is now there. It is usually pretty obvious.

 

Anyway, that is what I just did. And I found that MovingObjectPosition has been renamed RayTraceResult. I haven't looked further to see if the class itself has changed, and I'll do that when I get time, but this should give you a good clue on how to fix it.

Thank you so much! I have one more question, which I don't think only has to do with the extended reach, but it might be useful to use in other things later on.

 

The ModClass.network thing. In this area

if (mov.entityHit != thePlayer )
                            {
                                SpearMod.network.sendToServer(new MessageExtendedReachAttack(
                                      mov.entityHit.getEntityId()));
                            }

 

"network" is underlined. It cannot be resolved or is not a field. But, I already have

public static SimpleNetworkWrapper network;	

 

in my main mod class.

Quick fix tells me to create a field or a constant in my main mod class, but it's already there? If I tell it to do either of those, it'll create

	public static final String network = null;

or

	public static Object network;	

 

But it should already be identified as

	public static SimpleNetworkWrapper network;

as it is in your tutorial?

Posted

Is your main mod class called

SpearMod

?

Apparently I'm a complete and utter jerk and come to this forum just like to make fun of people, be confrontational, and make your personal life miserable.  If you think this is the case, JUST REPORT ME.  Otherwise you're just going to get reported when you reply to my posts and point it out, because odds are, I was trying to be nice.

 

Exception: If you do not understand Java, I WILL NOT HELP YOU and your thread will get locked.

 

DO NOT PM ME WITH PROBLEMS. No help will be given.

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.