55import com .google .gson .JsonObject ;
66import net .minestom .datagen .DataGenerator ;
77import net .minestom .utils .ResourceUtils ;
8+ import org .jetbrains .annotations .NotNull ;
89
910import java .util .Scanner ;
1011
11- public class DamageTypeGenerator extends DataGenerator {
12+ public class GenericResourceGenerator extends DataGenerator {
1213
13- private static final String DAMAGE_TYPE_DIR = "data/minecraft/damage_type/" ;
1414 private static final Gson gson = new Gson ();
1515
16+ private final String name ;
17+
18+ public GenericResourceGenerator (@ NotNull String name ) {
19+ this .name = "data/minecraft/" + name + "/" ;
20+ }
21+
1622 @ Override
1723 public JsonElement generate () throws Exception {
18- var damageTypesJson = new JsonObject ();
24+ var result = new JsonObject ();
1925
20- // get all files from the biomes directory
21- var files = ResourceUtils .getResourceListing (
22- net .minecraft .server .MinecraftServer .class , DAMAGE_TYPE_DIR );
26+ // get all files from the damage types directory
27+ var files = ResourceUtils .getResourceListing (net .minecraft .server .MinecraftServer .class , name );
2328
2429 for (String fileName : files ) {
2530 var file = net .minecraft .server .MinecraftServer .class
2631 .getClassLoader ()
27- .getResourceAsStream (DAMAGE_TYPE_DIR + fileName );
32+ .getResourceAsStream (name + fileName );
2833 var scanner = new Scanner (file );
2934 var content = new StringBuilder ();
3035 while (scanner .hasNextLine ()) {
@@ -34,12 +39,12 @@ public JsonElement generate() throws Exception {
3439
3540 // only collect valid files
3641 if (content .length () > 0 && fileName .endsWith (".json" )) {
37- var biomeKey = "minecraft:" + fileName .substring (0 , fileName .length () - 5 );
42+ var key = "minecraft:" + fileName .substring (0 , fileName .length () - 5 );
3843 var jsonObject = gson .fromJson (content .toString (), JsonObject .class );
39- damageTypesJson .add (biomeKey , jsonObject );
44+ result .add (key , jsonObject );
4045 }
4146 }
4247
43- return damageTypesJson ;
48+ return result ;
4449 }
4550}
0 commit comments