From e6e9756ad9766b4a1389444ac14b0d38d4a186e0 Mon Sep 17 00:00:00 2001
From: zimzaza4 <3625282098@qq.com>
Date: Thu, 20 Nov 2025 20:38:10 +0800
Subject: [PATCH] add config.json
---
pom.xml | 17 +------
...va => GeyserModelEnginePackGenerator.java} | 46 ++++++++++++++-----
...{GeneratorMain.java => PackGenerator.java} | 5 +-
.../config/Config.java | 12 +++++
.../generator/Animation.java | 4 +-
.../generator/Entity.java | 2 +-
.../generator/Geometry.java | 2 -
src/main/resources/extension.yml | 2 +-
8 files changed, 53 insertions(+), 37 deletions(-)
rename src/main/java/re/imc/geysermodelenginepackgenerator/{ExtensionMain.java => GeyserModelEnginePackGenerator.java} (68%)
rename src/main/java/re/imc/geysermodelenginepackgenerator/{GeneratorMain.java => PackGenerator.java} (99%)
create mode 100644 src/main/java/re/imc/geysermodelenginepackgenerator/config/Config.java
diff --git a/pom.xml b/pom.xml
index e274fde..577d490 100644
--- a/pom.xml
+++ b/pom.xml
@@ -56,7 +56,7 @@
org.geysermc.geyser
api
- 2.5.0-SNAPSHOT
+ 2.2.3-SNAPSHOT
provided
@@ -66,20 +66,5 @@
system
${project.basedir}/libs/geyserutils-geyser-1.0-SNAPSHOT.jar
-
- me.rochblondiaux
- blockbenchmodelreader
- 1.2
-
-
- com.github.GeyserMC.PackConverter
- bedrock-pack-schema
- 3d8150474d
-
-
- com.github.GeyserMC.PackConverter
- pack-schema-api
- 3d8150474d
-
\ No newline at end of file
diff --git a/src/main/java/re/imc/geysermodelenginepackgenerator/ExtensionMain.java b/src/main/java/re/imc/geysermodelenginepackgenerator/GeyserModelEnginePackGenerator.java
similarity index 68%
rename from src/main/java/re/imc/geysermodelenginepackgenerator/ExtensionMain.java
rename to src/main/java/re/imc/geysermodelenginepackgenerator/GeyserModelEnginePackGenerator.java
index 64f38c9..f83ebd3 100644
--- a/src/main/java/re/imc/geysermodelenginepackgenerator/ExtensionMain.java
+++ b/src/main/java/re/imc/geysermodelenginepackgenerator/GeyserModelEnginePackGenerator.java
@@ -1,35 +1,37 @@
package re.imc.geysermodelenginepackgenerator;
-import me.zimzaza4.geyserutils.geyser.GeyserUtils;
-import org.checkerframework.checker.nullness.qual.NonNull;
+import com.google.gson.Gson;
+import lombok.Getter;
import org.geysermc.event.subscribe.Subscribe;
import org.geysermc.geyser.api.command.Command;
-import org.geysermc.geyser.api.command.CommandExecutor;
import org.geysermc.geyser.api.command.CommandSource;
import org.geysermc.geyser.api.event.lifecycle.GeyserDefineCommandsEvent;
import org.geysermc.geyser.api.event.lifecycle.GeyserLoadResourcePacksEvent;
import org.geysermc.geyser.api.event.lifecycle.GeyserPreInitializeEvent;
import org.geysermc.geyser.api.extension.Extension;
import org.geysermc.geyser.api.extension.ExtensionLogger;
+import re.imc.geysermodelenginepackgenerator.config.Config;
import re.imc.geysermodelenginepackgenerator.generator.Entity;
-import re.imc.geysermodelenginepackgenerator.generator.Geometry;
import re.imc.geysermodelenginepackgenerator.util.ZipUtil;
import java.io.File;
import java.io.IOException;
-import java.nio.channels.FileChannel;
+import java.io.InputStream;
+import java.net.URI;
+import java.net.URISyntaxException;
import java.nio.file.Files;
import java.nio.file.Path;
import java.nio.file.StandardCopyOption;
-import java.util.List;
import java.util.zip.ZipOutputStream;
-public class ExtensionMain implements Extension {
+public class GeyserModelEnginePackGenerator implements Extension {
private File source;
public static ExtensionLogger logger;
Path generatedPackZip;
+ @Getter
+ Config config = new Config();
@Subscribe
public void onLoad(GeyserPreInitializeEvent event) {
@@ -57,10 +59,31 @@ public class ExtensionMain implements Extension {
}
public void loadConfig() {
-
File generatedPack = dataFolder().resolve("generated_pack").toFile();
+ File configFile = dataFolder().resolve("config.json").toFile();
- GeneratorMain.startGenerate(source, generatedPack);
+ Gson gson = new Gson();
+
+ if (!configFile.exists()) {
+ try {
+ configFile.createNewFile();
+ } catch (IOException e) {
+ e.printStackTrace();
+ }
+ try {
+ Files.writeString(configFile.toPath(), gson.toJson(config));
+ } catch (IOException e) {
+ e.printStackTrace();
+ }
+ }
+
+ try {
+ config = gson.fromJson(Files.readString(configFile.toPath()), Config.class);
+ } catch (IOException e) {
+ e.printStackTrace();
+ }
+
+ PackGenerator.startGenerate(source, generatedPack);
generatedPackZip = dataFolder().resolve("generated_pack.zip");
@@ -70,16 +93,17 @@ public class ExtensionMain implements Extension {
e.printStackTrace();
}
- for (Entity entity : GeneratorMain.entityMap.values()) {
+ for (Entity entity : PackGenerator.entityMap.values()) {
entity.register();
}
}
+
@Subscribe
public void onPackLoad(GeyserLoadResourcePacksEvent event) {
- if (Boolean.parseBoolean(System.getProperty("geyser-model-engine-auto-load-pack", "true"))) {
+ if (Boolean.parseBoolean(System.getProperty("geyser-model-engine-auto-load-pack", "true")) || config.isAutoLoadPack()) {
event.resourcePacks().add(generatedPackZip);
}
}
diff --git a/src/main/java/re/imc/geysermodelenginepackgenerator/GeneratorMain.java b/src/main/java/re/imc/geysermodelenginepackgenerator/PackGenerator.java
similarity index 99%
rename from src/main/java/re/imc/geysermodelenginepackgenerator/GeneratorMain.java
rename to src/main/java/re/imc/geysermodelenginepackgenerator/PackGenerator.java
index 5ce6077..a700ac9 100644
--- a/src/main/java/re/imc/geysermodelenginepackgenerator/GeneratorMain.java
+++ b/src/main/java/re/imc/geysermodelenginepackgenerator/PackGenerator.java
@@ -5,18 +5,15 @@ import com.google.gson.GsonBuilder;
import com.google.gson.JsonParser;
import re.imc.geysermodelenginepackgenerator.generator.*;
-import javax.imageio.ImageIO;
import java.io.*;
import java.nio.charset.StandardCharsets;
import java.nio.file.Files;
import java.nio.file.Path;
-import java.nio.file.StandardCopyOption;
import java.util.*;
import java.util.zip.ZipEntry;
import java.util.zip.ZipFile;
-import java.util.zip.ZipInputStream;
-public class GeneratorMain {
+public class PackGenerator {
public static final Map entityMap = new HashMap<>();
public static final Map animationMap = new HashMap<>();
public static final Map geometryMap = new HashMap<>();
diff --git a/src/main/java/re/imc/geysermodelenginepackgenerator/config/Config.java b/src/main/java/re/imc/geysermodelenginepackgenerator/config/Config.java
new file mode 100644
index 0000000..10f7efd
--- /dev/null
+++ b/src/main/java/re/imc/geysermodelenginepackgenerator/config/Config.java
@@ -0,0 +1,12 @@
+package re.imc.geysermodelenginepackgenerator.config;
+
+import com.google.gson.annotations.SerializedName;
+import lombok.Getter;
+import lombok.Setter;
+
+@Getter
+@Setter
+public class Config {
+ @SerializedName("auto_load_pack")
+ boolean autoLoadPack = true;
+}
diff --git a/src/main/java/re/imc/geysermodelenginepackgenerator/generator/Animation.java b/src/main/java/re/imc/geysermodelenginepackgenerator/generator/Animation.java
index d1b6946..9877b92 100644
--- a/src/main/java/re/imc/geysermodelenginepackgenerator/generator/Animation.java
+++ b/src/main/java/re/imc/geysermodelenginepackgenerator/generator/Animation.java
@@ -8,7 +8,7 @@ import lombok.AllArgsConstructor;
import lombok.Getter;
import lombok.NoArgsConstructor;
import lombok.Setter;
-import re.imc.geysermodelenginepackgenerator.GeneratorMain;
+import re.imc.geysermodelenginepackgenerator.PackGenerator;
import java.util.HashSet;
import java.util.Map;
@@ -119,7 +119,7 @@ public class Animation {
if (i == 0) {
return;
}
- GeneratorMain.entityMap
+ PackGenerator.entityMap
.get(modelId).setHasHeadAnimation(true);
object.add("bones", bones);
diff --git a/src/main/java/re/imc/geysermodelenginepackgenerator/generator/Entity.java b/src/main/java/re/imc/geysermodelenginepackgenerator/generator/Entity.java
index 34d8f3e..44c98a3 100644
--- a/src/main/java/re/imc/geysermodelenginepackgenerator/generator/Entity.java
+++ b/src/main/java/re/imc/geysermodelenginepackgenerator/generator/Entity.java
@@ -32,7 +32,7 @@ public class Entity {
"textures": {
},
"geometry": {
-
+
},
"animations": {
"look_at_target": "%look_at_target%"
diff --git a/src/main/java/re/imc/geysermodelenginepackgenerator/generator/Geometry.java b/src/main/java/re/imc/geysermodelenginepackgenerator/generator/Geometry.java
index c7fd0a0..103b5b9 100644
--- a/src/main/java/re/imc/geysermodelenginepackgenerator/generator/Geometry.java
+++ b/src/main/java/re/imc/geysermodelenginepackgenerator/generator/Geometry.java
@@ -5,8 +5,6 @@ import lombok.AllArgsConstructor;
import lombok.Getter;
import lombok.NoArgsConstructor;
import lombok.Setter;
-import org.geysermc.geyser.api.extension.ExtensionLogger;
-import re.imc.geysermodelenginepackgenerator.ExtensionMain;
import java.util.*;
diff --git a/src/main/resources/extension.yml b/src/main/resources/extension.yml
index a3de91a..2016778 100644
--- a/src/main/resources/extension.yml
+++ b/src/main/resources/extension.yml
@@ -1,6 +1,6 @@
name: GeyserModelEnginePackGenerator
id: geysermodelenginepackgenerator
-main: re.imc.geysermodelenginepackgenerator.ExtensionMain
+main: re.imc.geysermodelenginepackgenerator.GeyserModelEnginePackGenerator
api: 1.0.0
version: 1.0.0
authors: [zimzaza4]
\ No newline at end of file