11package re .imc .geysermodelenginepackgenerator ;
22
3- import me . zimzaza4 . geyserutils . geyser . GeyserUtils ;
4- import org . checkerframework . checker . nullness . qual . NonNull ;
3+ import com . google . gson . Gson ;
4+ import lombok . Getter ;
55import org .geysermc .event .subscribe .Subscribe ;
66import org .geysermc .geyser .api .command .Command ;
7- import org .geysermc .geyser .api .command .CommandExecutor ;
87import org .geysermc .geyser .api .command .CommandSource ;
98import org .geysermc .geyser .api .event .lifecycle .GeyserDefineCommandsEvent ;
109import org .geysermc .geyser .api .event .lifecycle .GeyserLoadResourcePacksEvent ;
1110import org .geysermc .geyser .api .event .lifecycle .GeyserPreInitializeEvent ;
1211import org .geysermc .geyser .api .extension .Extension ;
1312import org .geysermc .geyser .api .extension .ExtensionLogger ;
13+ import re .imc .geysermodelenginepackgenerator .config .Config ;
1414import re .imc .geysermodelenginepackgenerator .generator .Entity ;
15- import re .imc .geysermodelenginepackgenerator .generator .Geometry ;
1615import re .imc .geysermodelenginepackgenerator .util .ZipUtil ;
1716
1817import java .io .File ;
1918import java .io .IOException ;
20- import java .nio .channels .FileChannel ;
19+ import java .io .InputStream ;
20+ import java .net .URI ;
21+ import java .net .URISyntaxException ;
2122import java .nio .file .Files ;
2223import java .nio .file .Path ;
2324import java .nio .file .StandardCopyOption ;
24- import java .util .List ;
2525import java .util .zip .ZipOutputStream ;
2626
27- public class ExtensionMain implements Extension {
27+ public class GeyserModelEnginePackGenerator implements Extension {
2828
2929 private File source ;
3030
3131 public static ExtensionLogger logger ;
3232 Path generatedPackZip ;
33+ @ Getter
34+ Config config = new Config ();
3335
3436 @ Subscribe
3537 public void onLoad (GeyserPreInitializeEvent event ) {
@@ -57,10 +59,31 @@ public void onDefineCommand(GeyserDefineCommandsEvent event) {
5759 }
5860
5961 public void loadConfig () {
60-
6162 File generatedPack = dataFolder ().resolve ("generated_pack" ).toFile ();
63+ File configFile = dataFolder ().resolve ("config.json" ).toFile ();
64+
65+ Gson gson = new Gson ();
66+
67+ if (!configFile .exists ()) {
68+ try {
69+ configFile .createNewFile ();
70+ } catch (IOException e ) {
71+ e .printStackTrace ();
72+ }
73+ try {
74+ Files .writeString (configFile .toPath (), gson .toJson (config ));
75+ } catch (IOException e ) {
76+ e .printStackTrace ();
77+ }
78+ }
6279
63- GeneratorMain .startGenerate (source , generatedPack );
80+ try {
81+ config = gson .fromJson (Files .readString (configFile .toPath ()), Config .class );
82+ } catch (IOException e ) {
83+ e .printStackTrace ();
84+ }
85+
86+ PackGenerator .startGenerate (source , generatedPack );
6487
6588 generatedPackZip = dataFolder ().resolve ("generated_pack.zip" );
6689
@@ -70,16 +93,17 @@ public void loadConfig() {
7093 e .printStackTrace ();
7194 }
7295
73- for (Entity entity : GeneratorMain .entityMap .values ()) {
96+ for (Entity entity : PackGenerator .entityMap .values ()) {
7497 entity .register ();
7598 }
7699
77100 }
78101
79102
103+
80104 @ Subscribe
81105 public void onPackLoad (GeyserLoadResourcePacksEvent event ) {
82- if (Boolean .parseBoolean (System .getProperty ("geyser-model-engine-auto-load-pack" , "true" ))) {
106+ if (Boolean .parseBoolean (System .getProperty ("geyser-model-engine-auto-load-pack" , "true" )) || config . isAutoLoadPack () ) {
83107 event .resourcePacks ().add (generatedPackZip );
84108 }
85109 }
0 commit comments