Jump to content

Recommended Posts

Posted

In 1.6.4 I could check if an Item has variants (like wool and carpet) like so:

 

Item i = ...;

if (i.getHasSubtypes())
{
    System.out.println(i.getMaxDamage());
}

 

And for wool or carpet it would print 16 however this doesn't seem to work in forge (7.10.1.1160) for 1.7.10:

 

Item i = ...;

System.out.format("%s -> %d\n", i.getUnlocalizedName(), i.getHasSubtypes() ? 1 : 0);
System.out.format("%s -> %d\n", i.getUnlocalizedName(), i.getMaxDamage());

 

gives:

 

tile.cloth -> 1
tile.cloth -> 0

 

Shouldn't that 0 be a 16? What's the correct way of checking if an Item has subtypes and getting the number of subtypes? I know that block ids is or are being phased out but blocks and stuff still have ids according to NEI,

I like trains.

Posted

You should not mind the Block IDs.

 

You can call

getSubBlocks

with the third argument being a

List

. The method call will add all subblocks as ItemStacks to the provided list.

Posted

I'm not sure how it works under the hood but instances of the Item class have a getSubItems method, not a getSubBlocks method which makes sense I guess. However the BlockWood class has a getSubBlocks method. I dunno lol.

 

I don't know what's going on here. I'm looking at the BlockWood class and it defines an array of the six log types but when I iterate through Item.itemRegistry, Acacia and Dark Oak show up later on after stained glass panes.

I like trains.

Posted

That is just the order in which they are registered. Pay no attention to that.

 

As for items instead of blocks ... do you have metadata-differentiated items?

Posted

No the mod I'm working on has no items or blocks.

 

I'm the maker on the Minecraft Resource Calculator, all the items and recipes are stored in JSON files with each mod having its own file. Adding support for a mod can be quite complicated depending on how large it is. I want to try and make it easier by taking all the items and recipes (I know I'd need extra code for some mods) in minecraft and dumping them to a MySQL database. The SQL stuff I can do, it's just doing what I want within Minecraft.

I like trains.

Posted

Ah, that sounds interesting. Good luck with that!

 

I am sure you can just make an exporter export all registered items (and subtypes of these), all oredictionary ores, all blocks, all recipes etc.

 

I am not quite sure about the specifics of your current issue is, though.

Posted

Yeah that's basically what I want to make, an exporter to export all registered items and their subtypes, etc... to a MySQL database. The only issue I had was getting the subtypes. Know that I know how to do that I should be good to go.

I like trains.

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



  • Recently Browsing

    • No registered users viewing this page.
  • Posts

    • Looks like some kind of bug with vampiricageing - or a conflict with unusualprehistory
    • Add crash-reports with sites like https://mclo.gs/ Add this mod: https://www.curseforge.com/minecraft/mc-mods/night-config-fixes  
    • Updating to 1.21.8 from 1.21.5 and the recipe book type now throws an error. The exception has written "This is not implemented yet, poke Forge if you actually use this". From net.minecraft.stats.RecipeBookSettings // FORGE -- called automatically on Enum creation - used for serialization     public static void register(RecipeBookType type) {         String name = type.name().toLowerCase(java.util.Locale.ROOT).replace("_","");         var codec = TypeSettings.codec("is" + name + "GuiOpen", "is" + name + "FilteringCraftable");         //TAG_FIELDS.put(type, Pair.of(openTag, filteringTag));         throw new IllegalStateException("This is not implemented yet, poke Forge if you actually use this");     }
    • I am playing a mod (1.16.5) that is heavily modded. I played it for a few hours completely fine but now that I am trying to load in again 6 hours later I crash. I  have 32 gigs of dedicated ram to this mod, and Ive gone into my world save, serverconfigs, and deleted usefulbackpacks-server.toml                 What do I do from here   This is my full crash log from Curseforge at net.minecraftforge.fml.config.ConfigFileTypeHandler.lambda$reader$1(ConfigFileTypeHandler.java:61) ~[?:?] at net.minecraftforge.fml.config.ConfigFileTypeHandler$$Lambda$14819/1243247982.apply(Unknown Source) ~[?:?] at net.minecraftforge.fml.config.ConfigTracker.openConfig(ConfigTracker.java:104) ~[?:?] at net.minecraftforge.fml.config.ConfigTracker.lambda$loadConfigs$1(ConfigTracker.java:83) ~[?:?] at net.minecraftforge.fml.config.ConfigTracker$$Lambda$14818/841663910.accept(Unknown Source) ~[?:?] at java.lang.Iterable.forEach(Iterable.java:75) ~[?:1.8.0_51] at java.util.Collections$SynchronizedCollection.forEach(Collections.java:2062) ~[?:1.8.0_51] at net.minecraftforge.fml.config.ConfigTracker.loadConfigs(ConfigTracker.java:83) ~[?:?] at net.minecraftforge.fml.server.ServerLifecycleHooks.handleServerAboutToStart(ServerLifecycleHooks.java:94) ~[?:?] at net.minecraft.server.integrated.IntegratedServer.func_71197_b(IntegratedServer.java:59) ~[?:?] at net.minecraft.server.MinecraftServer.func_240802_v_(MinecraftServer.java:621) [?:?] at net.minecraft.server.MinecraftServer.func_240783_a_(MinecraftServer.java:232) [?:?] at net.minecraft.server.MinecraftServer$$Lambda$21132/2071546526.run(Unknown Source) [?:?] at java.lang.Thread.run(Thread.java:745) [?:1.8.0_51] Caused by: com.electronwill.nightconfig.core.io.ParsingException: Not enough data available at com.electronwill.nightconfig.core.io.ParsingException.notEnoughData(ParsingException.java:22) ~[core-3.6.3.jar:?] at com.electronwill.nightconfig.core.io.ReaderInput.directReadChar(ReaderInput.java:36) ~[core-3.6.3.jar:?] at com.electronwill.nightconfig.core.io.AbstractInput.readChar(AbstractInput.java:49) ~[core-3.6.3.jar:?] at com.electronwill.nightconfig.core.io.AbstractInput.readCharsUntil(AbstractInput.java:123) ~[core-3.6.3.jar:?] at com.electronwill.nightconfig.toml.TableParser.parseKey(TableParser.java:166) ~[toml-3.6.3.jar:?] at com.electronwill.nightconfig.toml.TableParser.parseDottedKey(TableParser.java:145) ~[toml-3.6.3.jar:?] at com.electronwill.nightconfig.toml.TableParser.parseNormal(TableParser.java:55) ~[toml-3.6.3.jar:?] at com.electronwill.nightconfig.toml.TomlParser.parse(TomlParser.java:44) ~[toml-3.6.3.jar:?] at com.electronwill.nightconfig.toml.TomlParser.parse(TomlParser.java:37) ~[toml-3.6.3.jar:?] at com.electronwill.nightconfig.core.io.ConfigParser.parse(ConfigParser.java:113) ~[core-3.6.3.jar:?] at com.electronwill.nightconfig.core.io.ConfigParser.parse(ConfigParser.java:219) ~[core-3.6.3.jar:?] at com.electronwill.nightconfig.core.io.ConfigParser.parse(ConfigParser.java:202) ~[core-3.6.3.jar:?] at com.electronwill.nightconfig.core.file.WriteSyncFileConfig.load(WriteSyncFileConfig.java:73) ~[core-3.6.3.jar:?] at com.electronwill.nightconfig.core.file.AutosaveCommentedFileConfig.load(AutosaveCommentedFileConfig.java:85) ~[core-3.6.3.jar:?] at net.minecraftforge.fml.config.ConfigFileTypeHandler.lambda$reader$1(ConfigFileTypeHandler.java:57) ~[?:?] ... 13 more [23:26:44] [Server thread/FATAL]:Preparing crash report with UUID a1e4c58d-8019-4653-affd-236e2af63d55
  • Topics

  • Who's Online (See full list)

    • There are no registered users currently online
×
×
  • Create New...

Important Information

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