Jump to content

Changing block ID's in .class files


Jetblast

Recommended Posts

I know class files have been talked about a lot, but I did search and didn't find a definite answer. Mods usually have a config file but my one doesn't.

I'm trying to get the backpack mod and add it to the technic pack, only problem I believe there is is a block ID conflict. How do we change the block id in a class file?

java.lang.VerifyError: (class: mod_Backpack, method: handlePacket signature: (LPacket230ModLoader;)V) Incompatible argument to function

at java.lang.Class.getDeclaredFields0(Native Method)

at java.lang.Class.privateGetDeclaredFields(Unknown Source)

at java.lang.Class.privateGetPublicFields(Unknown Source)

at java.lang.Class.getFields(Unknown Source)

at ModLoader.setupProperties(ModLoader.java:1697)

at ModLoader.addMod(ModLoader.java:274)

at ModLoader.readFromModFolder(ModLoader.java:1293)

at ModLoader.init(ModLoader.java:826)

at ModLoader.AddAllRenderers(ModLoader.java:186)

at wb.<init>(wb.java:76)

at wb.<clinit>(wb.java:9)

at net.minecraft.client.Minecraft.a(SourceFile:265)

at net.minecraft.client.Minecraft.run(SourceFile:644)

at java.lang.Thread.run(Unknown Source)

Link to comment
Share on other sites

That doesn't look like a id issue are you sure your using the correct build version of the backpack mod ?

ah bugger, my bad. So I'm assuming that any mod for minecraft V1 and above have .class files, but for v1 its the bog standard config file?

Link to comment
Share on other sites

ah bugger, my bad. So I'm assuming that any mod for minecraft V1 and above have .class files, but for v1 its the bog standard config file?

.class files are the Java equivalent of .exe. Config files are just the smart way to do IDs because you can change the values without recompiling the code. If you're using a mod that has hardcoded block ID values and no config file, it's a shit mod, hands-down, and you probably shouldn't use it.

Link to comment
Share on other sites

.class files are the Java equivalent of .exe. Config files are just the smart way to do IDs because you can change the values without recompiling the code. If you're using a mod that has hardcoded block ID values and no config file, it's a shit mod, hands-down, and you probably shouldn't use it.

Can't really say the backpack mod is shit, but still. Any ideas of other mods which are minecraft v1 compatible and only require a block id change? thanks

Link to comment
Share on other sites

You link us a 20 minute video and want to know what something specific in it is... Are we supposed to watch all 20 minutes of it and guess at what you mean?

I linked it to the 4:28 mark. it opens to that part of the video where the block is in use

Link to comment
Share on other sites

Thanks. I don't seem to be able to craft it though. Also as I understand, it was previously called a obsidian aggregator? I also dont seem to find any recipes or it in tmi

You probably found that here? Just make sure you have the right materials. Are you sure you're using an Alchemical Chest?

Link to comment
Share on other sites

You probably found that here? Just make sure you have the right materials. Are you sure you're using an Alchemical Chest?

yup all correct. I ended up spawning in a energy condenser but I think its the old version where you have to put it beside a relay for it to work. Where does the energy condenser come in all of this?

thanks

Link to comment
Share on other sites

  • 2 weeks later...

Can't really say the backpack mod is shit, but still. Any ideas of other mods which are minecraft v1 compatible and only require a block id change? thanks

Jakj doesn't mean it's shit from a utility concept approach, at least I don't think they do. What they mean is that it is coded poorly. When developing a mod for Minecraft there are several things you have to realize and assume.

1) Realization : Minecraft references blocks using IDs, and as such, every block needs to have a unique ID.

2) Assumption: Some people will want to have multiple mods installed together (The entire purpose of the technic pack)

3) Assumption: Some modder out there will use the same base IDs as you.

4) Assumption: Someone from the group in 2 will want your mod to run with the mod by the person in 3.

5) Realization : If you have hard coded your block IDs and the modder from 3 hard coded their block IDs, then the user in 4 will have to decompile, edit, then recompile the classes in order to make the mods compatible.

6) Assumption: That is more work than the average Minecraft player wants to put into installing mods.

7) Realization : If it is that much trouble to get the mods to work, people will choose one or the other.

8) Assumption: They will drop your mod. (Hope for the best, but plan for the worst)

9) Realization : They will not come back in the future to download updates to your mod. (which is pretty much the main goal of modders, to share their creations.)

Now consider if both modders (you and modder from 3) changed the code a little to use config files to set block ids. A simple text file is easier and more accessible to most people. Now the person who would have dropped your mod has a reason to come back in the future and stay updated on your mod.

Link to comment
Share on other sites

The principle is the same in this case. It may be that it uses internal storage to handle named bags, which would be the only legitimate possibility, but since you can store names in NBT, return dynamically-generated item tahs, and use those to register names with Modloader in situ, even that should not be the case.

I do not reject the possibility that block or item ids not in a config file might have a use, but for the life of me I can't think of such a case.

Link to comment
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
×
×
  • Create New...