11package dev .latvian .mods .kubejs .create ;
22
3+ import com .simibubi .create .AllDataComponents ;
34import com .simibubi .create .Create ;
45import com .simibubi .create .content .processing .recipe .ProcessingOutput ;
56import dev .latvian .mods .kubejs .create .events .BoilerHeaterHandlerEvent ;
1718import dev .latvian .mods .kubejs .recipe .schema .RecipeSchemaRegistry ;
1819import dev .latvian .mods .kubejs .registry .BuilderTypeRegistry ;
1920import dev .latvian .mods .kubejs .script .BindingRegistry ;
21+ import dev .latvian .mods .kubejs .script .DataComponentTypeInfoRegistry ;
2022import dev .latvian .mods .kubejs .script .ScriptType ;
2123import dev .latvian .mods .kubejs .script .TypeWrapperRegistry ;
24+ import dev .latvian .mods .rhino .type .TypeInfo ;
25+ import net .minecraft .core .component .DataComponentType ;
2226import net .minecraft .core .registries .Registries ;
2327
28+ import java .lang .reflect .Modifier ;
29+ import java .lang .reflect .ParameterizedType ;
30+
2431public class KubeJSCreatePlugin implements KubeJSPlugin {
2532 @ Override
2633 public void afterInit () {
@@ -77,4 +84,23 @@ public void registerRecipeComponents(RecipeComponentTypeRegistry registry) {
7784 registry .register (CreateRecipeComponents .SIZED_FLUID_INGREDIENT );
7885 registry .register (CreateRecipeComponents .HEAT_CONDITION );
7986 }
87+
88+ @ Override
89+ public void registerDataComponentTypeDescriptions (DataComponentTypeInfoRegistry registry ) {
90+ try {
91+ for (var field : AllDataComponents .class .getDeclaredFields ()) {
92+ if (field .getType () == DataComponentType .class
93+ && Modifier .isPublic (field .getModifiers ())
94+ && Modifier .isStatic (field .getModifiers ())
95+ && field .getGenericType () instanceof ParameterizedType t
96+ ) {
97+ var key = (DataComponentType ) field .get (null );
98+ var typeInfo = TypeInfo .of (t .getActualTypeArguments ()[0 ]);
99+ registry .register (key , typeInfo );
100+ }
101+ }
102+ } catch (Exception ex ) {
103+ ex .printStackTrace ();
104+ }
105+ }
80106}
0 commit comments