diff --git a/fabric-qi-mod/.gitattributes b/.gitattributes
similarity index 100%
rename from fabric-qi-mod/.gitattributes
rename to .gitattributes
diff --git a/fabric-qi-mod/.github/workflows/build.yml b/.github/workflows/build.yml
similarity index 100%
rename from fabric-qi-mod/.github/workflows/build.yml
rename to .github/workflows/build.yml
diff --git a/fabric-qi-mod/.gitignore b/.gitignore
similarity index 100%
rename from fabric-qi-mod/.gitignore
rename to .gitignore
diff --git a/.idea/mcMod.iml b/.idea/mcMod.iml
deleted file mode 100644
index d6ebd48..0000000
--- a/.idea/mcMod.iml
+++ /dev/null
@@ -1,9 +0,0 @@
-
-
-
-
-
-
-
-
-
\ No newline at end of file
diff --git a/.idea/misc.xml b/.idea/misc.xml
index 639900d..a185e37 100644
--- a/.idea/misc.xml
+++ b/.idea/misc.xml
@@ -1,6 +1,7 @@
-
+
+
\ No newline at end of file
diff --git a/.idea/modules.xml b/.idea/modules.xml
index b04507b..8bcda79 100644
--- a/.idea/modules.xml
+++ b/.idea/modules.xml
@@ -2,7 +2,9 @@
-
+
+
+
\ No newline at end of file
diff --git a/.idea/vcs.xml b/.idea/vcs.xml
index 6aa0017..94a25f7 100644
--- a/.idea/vcs.xml
+++ b/.idea/vcs.xml
@@ -1,6 +1,6 @@
-
+
\ No newline at end of file
diff --git a/fabric-qi-mod/LICENSE b/LICENSE
similarity index 100%
rename from fabric-qi-mod/LICENSE
rename to LICENSE
diff --git a/fabric-qi-mod/README.md b/README.md
similarity index 100%
rename from fabric-qi-mod/README.md
rename to README.md
diff --git a/fabric-qi-mod/build.gradle b/build.gradle
similarity index 100%
rename from fabric-qi-mod/build.gradle
rename to build.gradle
diff --git a/fabric-qi-mod/src/main/java/com/example/ExampleMod.java b/fabric-qi-mod/src/main/java/com/example/ExampleMod.java
deleted file mode 100644
index 215cfbb..0000000
--- a/fabric-qi-mod/src/main/java/com/example/ExampleMod.java
+++ /dev/null
@@ -1,24 +0,0 @@
-package com.example;
-
-import net.fabricmc.api.ModInitializer;
-
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
-
-public class ExampleMod implements ModInitializer {
- public static final String MOD_ID = "modid";
-
- // This logger is used to write text to the console and the log file.
- // It is considered best practice to use your mod id as the logger's name.
- // That way, it's clear which mod wrote info, warnings, and errors.
- public static final Logger LOGGER = LoggerFactory.getLogger(MOD_ID);
-
- @Override
- public void onInitialize() {
- // This code runs as soon as Minecraft is in a mod-load-ready state.
- // However, some things (like resources) may still be uninitialized.
- // Proceed with mild caution.
-
- LOGGER.info("Hello Fabric world!");
- }
-}
\ No newline at end of file
diff --git a/fabric-qi-mod/src/main/java/com/example/mixin/ExampleMixin.java b/fabric-qi-mod/src/main/java/com/example/mixin/ExampleMixin.java
deleted file mode 100644
index 3c4212c..0000000
--- a/fabric-qi-mod/src/main/java/com/example/mixin/ExampleMixin.java
+++ /dev/null
@@ -1,15 +0,0 @@
-package com.example.mixin;
-
-import net.minecraft.server.MinecraftServer;
-import org.spongepowered.asm.mixin.Mixin;
-import org.spongepowered.asm.mixin.injection.At;
-import org.spongepowered.asm.mixin.injection.Inject;
-import org.spongepowered.asm.mixin.injection.callback.CallbackInfo;
-
-@Mixin(MinecraftServer.class)
-public class ExampleMixin {
- @Inject(at = @At("HEAD"), method = "loadWorld")
- private void init(CallbackInfo info) {
- // This code is injected into the start of MinecraftServer.loadWorld()V
- }
-}
\ No newline at end of file
diff --git a/fabric-qi-mod/gradle.properties b/gradle.properties
similarity index 100%
rename from fabric-qi-mod/gradle.properties
rename to gradle.properties
diff --git a/fabric-qi-mod/gradle/wrapper/gradle-wrapper.jar b/gradle/wrapper/gradle-wrapper.jar
similarity index 100%
rename from fabric-qi-mod/gradle/wrapper/gradle-wrapper.jar
rename to gradle/wrapper/gradle-wrapper.jar
diff --git a/fabric-qi-mod/gradle/wrapper/gradle-wrapper.properties b/gradle/wrapper/gradle-wrapper.properties
similarity index 100%
rename from fabric-qi-mod/gradle/wrapper/gradle-wrapper.properties
rename to gradle/wrapper/gradle-wrapper.properties
diff --git a/fabric-qi-mod/gradlew b/gradlew
similarity index 100%
rename from fabric-qi-mod/gradlew
rename to gradlew
diff --git a/fabric-qi-mod/gradlew.bat b/gradlew.bat
similarity index 100%
rename from fabric-qi-mod/gradlew.bat
rename to gradlew.bat
diff --git a/fabric-qi-mod/settings.gradle b/settings.gradle
similarity index 100%
rename from fabric-qi-mod/settings.gradle
rename to settings.gradle
diff --git a/fabric-qi-mod/src/client/java/com/example/ExampleModClient.java b/src/client/java/com/example/ExampleModClient.java
similarity index 100%
rename from fabric-qi-mod/src/client/java/com/example/ExampleModClient.java
rename to src/client/java/com/example/ExampleModClient.java
diff --git a/fabric-qi-mod/src/client/java/com/example/mixin/client/ExampleClientMixin.java b/src/client/java/com/example/mixin/client/ExampleClientMixin.java
similarity index 100%
rename from fabric-qi-mod/src/client/java/com/example/mixin/client/ExampleClientMixin.java
rename to src/client/java/com/example/mixin/client/ExampleClientMixin.java
diff --git a/fabric-qi-mod/src/client/resources/modid.client.mixins.json b/src/client/resources/modid.client.mixins.json
similarity index 100%
rename from fabric-qi-mod/src/client/resources/modid.client.mixins.json
rename to src/client/resources/modid.client.mixins.json
diff --git a/src/main/java/Init/InitModMain.java b/src/main/java/Init/InitModMain.java
new file mode 100644
index 0000000..2cd0f66
--- /dev/null
+++ b/src/main/java/Init/InitModMain.java
@@ -0,0 +1,15 @@
+package Init;
+
+import net.fabricmc.api.ModInitializer;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+
+public class InitModMain implements ModInitializer {
+ public static final String MOD_ID = "zzdxxz_qi";
+ public static final Logger LOGGER = LoggerFactory.getLogger(MOD_ID);
+ @Override
+ public void onInitialize() {
+ LOGGER.info("Hello Fabric world!");
+ Item.LoadItems.initialize();
+ }
+}
diff --git a/src/main/java/Item/BigApple.java b/src/main/java/Item/BigApple.java
new file mode 100644
index 0000000..78f7599
--- /dev/null
+++ b/src/main/java/Item/BigApple.java
@@ -0,0 +1,9 @@
+package Item;
+
+import net.minecraft.item.Item;
+
+public class BigApple extends Item {
+ public BigApple(Settings settings) {
+ super(settings);
+ }
+}
diff --git a/src/main/java/Item/LoadItems.java b/src/main/java/Item/LoadItems.java
new file mode 100644
index 0000000..ddc8c4c
--- /dev/null
+++ b/src/main/java/Item/LoadItems.java
@@ -0,0 +1,36 @@
+package Item;
+
+
+import Init.InitModMain;
+import net.fabricmc.fabric.api.itemgroup.v1.ItemGroupEvents;
+import net.minecraft.item.Item;
+import net.minecraft.item.ItemGroups;
+import net.minecraft.registry.Registries;
+import net.minecraft.registry.Registry;
+import net.minecraft.registry.RegistryKey;
+import net.minecraft.registry.RegistryKeys;
+import net.minecraft.util.Identifier;
+
+import java.util.function.Function;
+
+public class LoadItems {
+ public static final Item QI = register("qi", Item::new, new Item.Settings());
+ public static void initialize() {
+ ItemGroupEvents.modifyEntriesEvent(ItemGroups.INGREDIENTS)
+ .register((itemGroup) -> itemGroup.add(LoadItems.QI));
+
+ }
+ public static Item register(String name, Function itemFactory, Item.Settings settings) {
+ // Create the item key.
+ RegistryKey- itemKey = RegistryKey.of(RegistryKeys.ITEM, Identifier.of(InitModMain.MOD_ID, name));
+
+ // Create the item instance.
+ Item item = itemFactory.apply(settings.registryKey(itemKey));
+
+ // Register the item.
+ Registry.register(Registries.ITEM, itemKey, item);
+
+ return item;
+ }
+
+}
diff --git a/src/main/java/com/example/ExampleMod.java b/src/main/java/com/example/ExampleMod.java
new file mode 100644
index 0000000..db87ab1
--- /dev/null
+++ b/src/main/java/com/example/ExampleMod.java
@@ -0,0 +1,44 @@
+package com.example; // 定义包名,通常遵循反域名命名规范,例如 com.yourcompany.yourmod。
+
+import net.fabricmc.api.ModInitializer; // 导入 Fabric Mod 初始化接口,所有 Fabric 主 Mod 类都必须实现它。
+
+import net.minecraft.server.MinecraftServer;
+import org.slf4j.Logger; // 导入 SLF4J (Simple Logging Facade for Java) 的 Logger 接口,用于日志输出。
+import org.slf4j.LoggerFactory; // 导入 SLF4J 的 LoggerFactory 类,用于获取 Logger 实例。
+
+public class ExampleMod implements ModInitializer {
+ // 定义主 Mod 类 ExampleMod,并实现 ModInitializer 接口。
+ // 这意味着这个类必须实现 onInitialize() 方法。
+
+ public static final String MOD_ID = "modid";
+ // 定义一个公共静态最终字符串常量 MOD_ID。
+ // 这是一个 Mod 的唯一标识符,通常与 fabric.mod.json 中的 "id" 字段对应。
+ // 最佳实践是将其定义为常量,方便在代码中引用。
+ // 这里使用了 "modid",实际项目中应替换为你的 Mod 的真实 ID,例如 "mymod"。
+
+ // This logger is used to write text to the console and the log file.
+ // 这个记录器(logger)用于将文本写入控制台和日志文件。
+ // It is considered best practice to use your mod id as the logger's name.
+ // 最佳实践是使用你的 Mod ID 作为记录器的名称。
+ // That way, it's clear which mod wrote info, warnings, and errors.
+ // 这样,就能清楚地知道是哪个 Mod 记录了信息、警告和错误。
+ public static final Logger LOGGER = LoggerFactory.getLogger(MOD_ID);
+ // 创建一个公共静态最终的 Logger 实例。
+ // LoggerFactory.getLogger(MOD_ID) 会创建一个以你的 Mod ID 命名的日志记录器。
+ // 这有助于在日志文件中区分来自不同 Mod 的消息。
+
+ @Override // 这是一个注解,表示 onInitialize 方法是重写了 ModInitializer 接口中的方法。
+ public void onInitialize() {
+ // This code runs as soon as Minecraft is in a mod-load-ready state.
+ // 这段代码在 Minecraft 处于Mod加载就绪状态时立即运行。
+ // However, some things (like resources) may still be uninitialized.
+ // 然而,有些东西(例如资源)可能尚未完全初始化。
+ // Proceed with mild caution.
+ // 请谨慎处理。
+
+ LOGGER.info("Hello Fabric world!");
+ // 使用 LOGGER 实例输出一条信息级别(INFO)的日志消息。
+ // 这条消息会在控制台和 Minecraft 的日志文件中显示,表明你的 Mod 已经成功加载并执行了初始化代码。
+
+ }
+}
diff --git a/src/main/java/com/example/mixin/ExampleMixin.java b/src/main/java/com/example/mixin/ExampleMixin.java
new file mode 100644
index 0000000..2ec61e2
--- /dev/null
+++ b/src/main/java/com/example/mixin/ExampleMixin.java
@@ -0,0 +1,54 @@
+package com.example.mixin; // 定义包名。通常 Mixin 文件会被放置在一个单独的 'mixin' 子包中,
+// 例如 'com.example.mymod.mixin',以便清晰地组织代码。
+
+import net.minecraft.server.MinecraftServer;
+// 导入 Minecraft 服务器主类。这是我们希望修改的目标类。
+
+import org.spongepowered.asm.mixin.Mixin;
+// 导入 SpongePowered Mixin 库的 Mixin 注解。
+// 这个注解用来标记一个类是一个 Mixin 类,它将针对某个目标类进行修改。
+
+import org.spongepowered.asm.mixin.injection.At;
+// 导入 Mixin 的 At 注解。
+// 这个注解用于精确地指定代码注入的位置(例如,方法的开始、结束、特定的指令之前或之后)。
+
+import org.spongepowered.asm.mixin.injection.Inject;
+// 导入 Mixin 的 Inject 注解。
+// 这个注解用于标记一个方法为注入方法,它会将你的代码注入到目标方法中。
+
+import org.spongepowered.asm.mixin.injection.callback.CallbackInfo;
+// 导入 Mixin 的 CallbackInfo 类。
+// 当你使用 @Inject 注解时,如果需要获取原方法的参数、返回值(或设置返回值)、或者控制原方法的执行流,
+// 就需要使用 CallbackInfo 对象。它提供了与原方法交互的机制。
+
+@Mixin(MinecraftServer.class)
+// @Mixin 注解声明这个 ExampleMixin 类将对 MinecraftServer.class 这个类进行修改(混入)。
+// 也就是说,ExampleMixin 中的代码会影响 MinecraftServer 类。
+public class ExampleMixin {
+ // 这是一个 Mixin 类。它本身不会被直接实例化运行,而是通过 Mixin 框架在运行时“混合”到目标类中。
+
+ @Inject(at = @At("HEAD"), method = "loadWorld")
+ // @Inject 注解用来定义一个注入点。
+ // - at = @At("HEAD"):指定注入位置。
+ // "HEAD" 表示我们想把这段代码注入到目标方法的最开始。
+ // Mixins 提供了多种注入点类型,例如 "TAIL" (方法结束前)、"RETURN" (所有 return 语句前)、
+ // 或者更复杂的 ASM 指令匹配。
+ // - method = "loadWorld":指定目标方法。
+ // 这里是指 MinecraftServer 类中的 `loadWorld` 方法。
+ // 注意,这里的方法名是原始的 Java 方法名,而不是 Mixin 本身的方法名。
+ // 如果目标方法有重载,你可能需要提供完整的参数签名(例如 "loadWorld(Ljava/lang/String;J)V")。
+ private void init(CallbackInfo info) {
+ // 这是一个注入方法。它的名称可以随意定义,但参数必须符合 Mixin 的规范。
+ // 对于 @Inject(at = @At("HEAD")) 的情况,
+ // 如果原方法没有参数,CallbackInfo info 是可选的,但通常建议加上。
+ // 如果原方法有参数,这些参数需要按顺序放在 CallbackInfo info 之前。
+ // 例如,如果 loadWorld(String levelName, long seed) 的话,这里可能是 init(String levelName, long seed, CallbackInfo info)。
+
+ // This code is injected into the start of MinecraftServer.loadWorld()V
+ // 这段代码将被注入到 MinecraftServer.loadWorld() 方法的开头。
+ // 在这里,你可以执行任何你希望在 MinecraftServer 加载世界时立即执行的代码,
+ // 例如打印调试信息、修改一些服务器状态等。
+ System.out.println("MinecraftServer.loadWorld() is being called!");
+ // 举例:在这里打印一条消息,确认注入成功。
+ }
+}
diff --git a/fabric-qi-mod/src/main/resources/assets/modid/icon.png b/src/main/resources/assets/modid/icon.png
similarity index 100%
rename from fabric-qi-mod/src/main/resources/assets/modid/icon.png
rename to src/main/resources/assets/modid/icon.png
diff --git a/src/main/resources/assets/zzdxxz_qi/items/qi.json b/src/main/resources/assets/zzdxxz_qi/items/qi.json
new file mode 100644
index 0000000..7dec313
--- /dev/null
+++ b/src/main/resources/assets/zzdxxz_qi/items/qi.json
@@ -0,0 +1,6 @@
+{
+ "model": {
+ "type": "minecraft:model",
+ "model": "zzdxxz_qi:item/qi"
+ }
+}
\ No newline at end of file
diff --git a/src/main/resources/assets/zzdxxz_qi/lang/en_us.json b/src/main/resources/assets/zzdxxz_qi/lang/en_us.json
new file mode 100644
index 0000000..862bfc6
--- /dev/null
+++ b/src/main/resources/assets/zzdxxz_qi/lang/en_us.json
@@ -0,0 +1,3 @@
+{
+ "item.zzdxxz_qi.qi": "Qi"
+}
\ No newline at end of file
diff --git a/src/main/resources/assets/zzdxxz_qi/lang/zh_cn.json b/src/main/resources/assets/zzdxxz_qi/lang/zh_cn.json
new file mode 100644
index 0000000..a8c1c1e
--- /dev/null
+++ b/src/main/resources/assets/zzdxxz_qi/lang/zh_cn.json
@@ -0,0 +1,3 @@
+{
+ "item.zzdxxz_qi.qi": "气"
+}
\ No newline at end of file
diff --git a/src/main/resources/assets/zzdxxz_qi/models/item/qi.json b/src/main/resources/assets/zzdxxz_qi/models/item/qi.json
new file mode 100644
index 0000000..62f5613
--- /dev/null
+++ b/src/main/resources/assets/zzdxxz_qi/models/item/qi.json
@@ -0,0 +1,6 @@
+{
+ "parent": "minecraft:item/generated",
+ "textures": {
+ "layer0": "zzdxxz_qi:item/qi"
+ }
+}
\ No newline at end of file
diff --git a/src/main/resources/assets/zzdxxz_qi/textures/item/qi.png b/src/main/resources/assets/zzdxxz_qi/textures/item/qi.png
new file mode 100644
index 0000000..9575ebb
Binary files /dev/null and b/src/main/resources/assets/zzdxxz_qi/textures/item/qi.png differ
diff --git a/fabric-qi-mod/src/main/resources/fabric.mod.json b/src/main/resources/fabric.mod.json
similarity index 87%
rename from fabric-qi-mod/src/main/resources/fabric.mod.json
rename to src/main/resources/fabric.mod.json
index 7e2bb41..d8d33c3 100644
--- a/fabric-qi-mod/src/main/resources/fabric.mod.json
+++ b/src/main/resources/fabric.mod.json
@@ -9,18 +9,18 @@
],
"contact": {
"homepage": "https://fabricmc.net/",
- "sources": "https://github.com/FabricMC/fabric-example-mod"
+ "sources": "http://111.228.9.32:3000/zzdxxz/mcMod"
},
"license": "CC0-1.0",
"icon": "assets/modid/icon.png",
"environment": "*",
"entrypoints": {
"main": [
- "com.example.ExampleMod"
+ "Init.InitModMain"
],
"client": [
"com.example.ExampleModClient"
- ]
+ ]
},
"mixins": [
"modid.mixins.json",
diff --git a/fabric-qi-mod/src/main/resources/modid.mixins.json b/src/main/resources/modid.mixins.json
similarity index 100%
rename from fabric-qi-mod/src/main/resources/modid.mixins.json
rename to src/main/resources/modid.mixins.json