ContentTweaker

ContentTweaker

27M Downloads

TiCon Trait bracket handler always fails to find the trait

belathus opened this issue ยท 3 comments

commented

Referencing here.

In the documentation, the example given is <ticontrait:cactus>, which is the name of a material and not a trait, so I initially thought that it was supposed to grab the traits associated with the material. But, that doesn't work. I get this error: Cannot identify trait <ticontrait:cactus>. I also tried bone, and got the same error.

Alright, so I tried grabbing a trait from here: https://github.com/SlimeKnights/TinkersConstruct/blob/master/src/main/java/slimeknights/tconstruct/tools/TinkerTraits.java
Specifically, I tried splintering, splitting, slimeyGreen, and fractured, and all of them gave me the same error.

At this point, I'm fairly confident that the bracket handler is broken for looking up existing traits.

For reference, here is the whole error from crafttweaker.log

[PREINITIALIZATION][CLIENT][ERROR] Cannot identify trait <ticontrait:cactus>
[PREINITIALIZATION][CLIENT][ERROR] [contenttweaker]: Error executing {[0:contenttweaker]: tconstruct/slimey_bones.zs}: null
java.lang.NullPointerException
	at com.teamacronymcoders.contenttweaker.modules.tinkers.materials.CoTTConMaterialBuilder.addMaterialTrait(CoTTConMaterialBuilder.java:102)
	at tconstruct\Slimey_bones.__script__(tconstruct/slimey_bones.zs:18)
	at __ZenMain__.run(tconstruct\Slimey_bones)
	at crafttweaker.runtime.CrTTweaker.loadScript(CrTTweaker.java:174)
	at crafttweaker.runtime.CrTTweaker.loadScript(CrTTweaker.java:68)
	at com.teamacronymcoders.contenttweaker.ContentTweaker.afterModuleHandlerInit(ContentTweaker.java:45)
	at com.teamacronymcoders.base.BaseModFoundation.preInit(BaseModFoundation.java:112)
	at com.teamacronymcoders.contenttweaker.ContentTweaker.preInit(ContentTweaker.java:40)
	at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
	at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
	at java.lang.reflect.Method.invoke(Method.java:498)
	at net.minecraftforge.fml.common.FMLModContainer.handleModStateEvent(FMLModContainer.java:627)
	at sun.reflect.GeneratedMethodAccessor3.invoke(Unknown Source)
	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
	at java.lang.reflect.Method.invoke(Method.java:498)
	at com.google.common.eventbus.Subscriber.invokeSubscriberMethod(Subscriber.java:91)
	at com.google.common.eventbus.Subscriber$SynchronizedSubscriber.invokeSubscriberMethod(Subscriber.java:150)
	at com.google.common.eventbus.Subscriber$1.run(Subscriber.java:76)
	at com.google.common.util.concurrent.MoreExecutors$DirectExecutor.execute(MoreExecutors.java:399)
	at com.google.common.eventbus.Subscriber.dispatchEvent(Subscriber.java:71)
	at com.google.common.eventbus.Dispatcher$PerThreadQueuedDispatcher.dispatch(Dispatcher.java:116)
	at com.google.common.eventbus.EventBus.post(EventBus.java:217)
	at net.minecraftforge.fml.common.LoadController.sendEventToModContainer(LoadController.java:218)
	at net.minecraftforge.fml.common.LoadController.propogateStateMessage(LoadController.java:196)
	at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
	at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
	at java.lang.reflect.Method.invoke(Method.java:498)
	at com.google.common.eventbus.Subscriber.invokeSubscriberMethod(Subscriber.java:91)
	at com.google.common.eventbus.Subscriber$SynchronizedSubscriber.invokeSubscriberMethod(Subscriber.java:150)
	at com.google.common.eventbus.Subscriber$1.run(Subscriber.java:76)
	at com.google.common.util.concurrent.MoreExecutors$DirectExecutor.execute(MoreExecutors.java:399)
	at com.google.common.eventbus.Subscriber.dispatchEvent(Subscriber.java:71)
	at com.google.common.eventbus.Dispatcher$PerThreadQueuedDispatcher.dispatch(Dispatcher.java:116)
	at com.google.common.eventbus.EventBus.post(EventBus.java:217)
	at net.minecraftforge.fml.common.LoadController.distributeStateMessage(LoadController.java:135)
	at net.minecraftforge.fml.common.Loader.preinitializeMods(Loader.java:627)
	at net.minecraftforge.fml.client.FMLClientHandler.beginMinecraftLoading(FMLClientHandler.java:245)
	at net.minecraft.client.Minecraft.func_71384_a(Minecraft.java:466)
	at net.minecraft.client.Minecraft.func_99999_d(Minecraft.java:3926)
	at net.minecraft.client.main.Main.main(SourceFile:123)
	at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
	at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
	at java.lang.reflect.Method.invoke(Method.java:498)
	at net.minecraft.launchwrapper.Launch.launch(Launch.java:135)
	at net.minecraft.launchwrapper.Launch.main(Launch.java:28)
	at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
	at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
	at java.lang.reflect.Method.invoke(Method.java:498)
	at org.multimc.onesix.OneSixLauncher.launchWithMainClass(OneSixLauncher.java:196)
	at org.multimc.onesix.OneSixLauncher.launch(OneSixLauncher.java:231)
	at org.multimc.EntryPoint.listen(EntryPoint.java:143)
	at org.multimc.EntryPoint.main(EntryPoint.java:34)
commented

Try adding the trait in a CrT script, not a CoT, it may be very well possible that TiCon registers the traits after CoT runs

commented

I'm still having issues with this. I'm also unable to access traits either when using name like cactus or identifier spiky. Wether run at Contenttweaker or Crafttweaker loading stage.
I always get a:

[INITIALIZATION][CLIENT][ERROR] Cannot identify trait <ticontrait:cactus>
[INITIALIZATION][CLIENT][ERROR] Cannot identify trait <ticontrait:spiky>
commented

This isnt something that can be fixed as by the time both CrT and CoT run, not all traits are available.

Just use the functions added in the linked commit (simply replace the Bracket handler with the trait name like "cactus"