From ac0db34a0b68b31d4fa177fd10ac63cfa8c943cd Mon Sep 17 00:00:00 2001 From: 3944Realms Date: Fri, 16 Jan 2026 18:15:30 +0800 Subject: [PATCH] =?UTF-8?q?=E8=AA=BF=E6=95=B4=E5=8F=83=E6=95=B8=E4=BD=8D?= =?UTF-8?q?=E7=BD=AE=20=E4=BF=AE=E5=A4=8D=E8=BF=9C=E7=A8=8B=E5=AE=A2?= =?UTF-8?q?=E6=88=B7=E7=AB=AF=E6=97=A0=E6=B3=95=E5=8A=A0=E8=BD=BDCap?= =?UTF-8?q?=E5=90=8C=E6=AD=A5=E7=AE=A1=E7=90=86=E5=99=A8=E5=92=8CCompat?= =?UTF-8?q?=E9=97=AE=E9=A2=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- gradle.properties | 2 +- .../1de3d2ee724999f84a11b20b51c37030049be277 | 4 +- .../2a65ee2815744be1ef1ffdae1c9a37f2a9cbe2ac | 4 +- .../82018c5420b46ddbb7071e62df09fdecd98133e6 | 4 +- .../c622617f6fabf890a00b9275cd5f643584a8a2c8 | 4 +- .../resources/assets/lib39/lang/en_us.json | 2 +- .../resources/assets/lib39/lang/lzh.json | 2 +- .../resources/assets/lib39/lang/zh_cn.json | 2 +- .../resources/assets/lib39/lang/zh_tw.json | 2 +- .../base/datagen/value/Lib39LangKey.java | 3 +- .../lib39/core/event/CommonEventHandler.java | 47 +++++++++++++------ .../r3944realms/lib39/util/nbt/NBTWriter.java | 10 ++-- 12 files changed, 53 insertions(+), 33 deletions(-) diff --git a/gradle.properties b/gradle.properties index ffd936e..f40d7e0 100644 --- a/gradle.properties +++ b/gradle.properties @@ -33,7 +33,7 @@ mod_name=3944Realms 's Lib Mod # The license of the mod. Review your options at https://choosealicense.com/. All Rights Reserved is the default. mod_license=MIT # The mod version. See https://semver.org/ -mod_version=0.1.5 +mod_version=0.1.7 # The group ID for the mod. It is only important when publishing as an artifact to a Maven repository. # This should match the base package used for the mod sources. # See https://maven.apache.org/guides/mini/guide-naming-conventions.html diff --git a/src/generated/resources/.cache/1de3d2ee724999f84a11b20b51c37030049be277 b/src/generated/resources/.cache/1de3d2ee724999f84a11b20b51c37030049be277 index 8766e4f..4556498 100644 --- a/src/generated/resources/.cache/1de3d2ee724999f84a11b20b51c37030049be277 +++ b/src/generated/resources/.cache/1de3d2ee724999f84a11b20b51c37030049be277 @@ -1,2 +1,2 @@ -// 1.20.1 2026-01-15T15:44:47.1536248 Languages: zh_tw -6d602ad25d759a9ba000c70138fb5e5090ac6657 assets/lib39/lang/zh_tw.json +// 1.20.1 2026-01-16T18:15:18.0777323 Languages: zh_tw +bd0f71ef9ae49f69627d3122efa3b426a89ecbdf assets/lib39/lang/zh_tw.json diff --git a/src/generated/resources/.cache/2a65ee2815744be1ef1ffdae1c9a37f2a9cbe2ac b/src/generated/resources/.cache/2a65ee2815744be1ef1ffdae1c9a37f2a9cbe2ac index 68c73f9..4182d45 100644 --- a/src/generated/resources/.cache/2a65ee2815744be1ef1ffdae1c9a37f2a9cbe2ac +++ b/src/generated/resources/.cache/2a65ee2815744be1ef1ffdae1c9a37f2a9cbe2ac @@ -1,2 +1,2 @@ -// 1.20.1 2026-01-15T15:44:47.1536248 Languages: zh_cn -1d2d816efcddaf84eced9ad85f1efeba650843e7 assets/lib39/lang/zh_cn.json +// 1.20.1 2026-01-16T18:15:18.0777323 Languages: zh_cn +5d897b4cc975c19532c77ec60fd1eb487820a69d assets/lib39/lang/zh_cn.json diff --git a/src/generated/resources/.cache/82018c5420b46ddbb7071e62df09fdecd98133e6 b/src/generated/resources/.cache/82018c5420b46ddbb7071e62df09fdecd98133e6 index 92df389..f1fe715 100644 --- a/src/generated/resources/.cache/82018c5420b46ddbb7071e62df09fdecd98133e6 +++ b/src/generated/resources/.cache/82018c5420b46ddbb7071e62df09fdecd98133e6 @@ -1,2 +1,2 @@ -// 1.20.1 2026-01-15T15:44:47.1536248 Languages: lzh -7540c6cec408f79a64dce3d60997e54cbf833035 assets/lib39/lang/lzh.json +// 1.20.1 2026-01-16T18:15:18.0777323 Languages: lzh +4116ca2d84d4244b49a9ff8190c2faf0f2e57dc4 assets/lib39/lang/lzh.json diff --git a/src/generated/resources/.cache/c622617f6fabf890a00b9275cd5f643584a8a2c8 b/src/generated/resources/.cache/c622617f6fabf890a00b9275cd5f643584a8a2c8 index 50bea0c..79f4204 100644 --- a/src/generated/resources/.cache/c622617f6fabf890a00b9275cd5f643584a8a2c8 +++ b/src/generated/resources/.cache/c622617f6fabf890a00b9275cd5f643584a8a2c8 @@ -1,2 +1,2 @@ -// 1.20.1 2026-01-15T15:44:47.1536248 Languages: en_us -1b6024d50222f8672f22c27645fc035cce0f7a1c assets/lib39/lang/en_us.json +// 1.20.1 2026-01-16T18:15:18.0777323 Languages: en_us +c2a9985bbad60c04fbd5e085bd25bfd00aa8a529 assets/lib39/lang/en_us.json diff --git a/src/generated/resources/assets/lib39/lang/en_us.json b/src/generated/resources/assets/lib39/lang/en_us.json index 5aed8e7..24b62db 100644 --- a/src/generated/resources/assets/lib39/lang/en_us.json +++ b/src/generated/resources/assets/lib39/lang/en_us.json @@ -54,7 +54,7 @@ "item.lib39.fabric": "Fabric", "item.lib39.forge": "Forge", "item.lib39.neoforge": "NeoForge", - "sound.lib39.duck_doll": "Duck Doll Sound", + "sound.lib39.subtitle.duck_toy": "Duck Doll Sound", "tooltip.lib39.content.doll.hover.1": "§eSkinOwner §7:§a %s ", "tooltip.lib39.content.doll.hover.2": "§7Rename with a player name in an anvil to change skin" } \ No newline at end of file diff --git a/src/generated/resources/assets/lib39/lang/lzh.json b/src/generated/resources/assets/lib39/lang/lzh.json index 48dcc3e..ee4342e 100644 --- a/src/generated/resources/assets/lib39/lang/lzh.json +++ b/src/generated/resources/assets/lib39/lang/lzh.json @@ -54,7 +54,7 @@ "item.lib39.fabric": "織", "item.lib39.forge": "砧", "item.lib39.neoforge": "狸", - "sound.lib39.duck_doll": "偶音", + "sound.lib39.subtitle.duck_toy": "偶音", "tooltip.lib39.content.doll.hover.1": "§e膚主§7:§a%s", "tooltip.lib39.content.doll.hover.2": "§7鐵砧之上,更名以易膚" } \ No newline at end of file diff --git a/src/generated/resources/assets/lib39/lang/zh_cn.json b/src/generated/resources/assets/lib39/lang/zh_cn.json index 6b23f11..a61d872 100644 --- a/src/generated/resources/assets/lib39/lang/zh_cn.json +++ b/src/generated/resources/assets/lib39/lang/zh_cn.json @@ -54,7 +54,7 @@ "item.lib39.fabric": "织布", "item.lib39.forge": "铁砧", "item.lib39.neoforge": "小狐狸", - "sound.lib39.duck_doll": "玩偶声音", + "sound.lib39.subtitle.duck_toy": "玩偶声音", "tooltip.lib39.content.doll.hover.1": "§e皮肤所有者§7:§a%s", "tooltip.lib39.content.doll.hover.2": "§7在铁砧上可通过重命名对应玩家名来改变皮肤" } \ No newline at end of file diff --git a/src/generated/resources/assets/lib39/lang/zh_tw.json b/src/generated/resources/assets/lib39/lang/zh_tw.json index 983fea4..ea721b9 100644 --- a/src/generated/resources/assets/lib39/lang/zh_tw.json +++ b/src/generated/resources/assets/lib39/lang/zh_tw.json @@ -54,7 +54,7 @@ "item.lib39.fabric": "織布", "item.lib39.forge": "铁砧", "item.lib39.neoforge": "狐狸", - "sound.lib39.duck_doll": "玩偶聲音", + "sound.lib39.subtitle.duck_toy": "玩偶聲音", "tooltip.lib39.content.doll.hover.1": "§e皮膚所有者§7:§a%s", "tooltip.lib39.content.doll.hover.2": "§7在鐵砧上可通過重命名對應玩家名來改變皮膚" } \ No newline at end of file diff --git a/src/main/java/top/r3944realms/lib39/base/datagen/value/Lib39LangKey.java b/src/main/java/top/r3944realms/lib39/base/datagen/value/Lib39LangKey.java index aa02b67..743dd22 100644 --- a/src/main/java/top/r3944realms/lib39/base/datagen/value/Lib39LangKey.java +++ b/src/main/java/top/r3944realms/lib39/base/datagen/value/Lib39LangKey.java @@ -5,6 +5,7 @@ import org.jetbrains.annotations.Unmodifiable; import top.r3944realms.lib39.Lib39; import top.r3944realms.lib39.content.register.Lib39Blocks; import top.r3944realms.lib39.content.register.Lib39Items; +import top.r3944realms.lib39.content.register.Lib39SoundEvents; import top.r3944realms.lib39.datagen.value.ILangKeyValueCollection; import top.r3944realms.lib39.datagen.value.LangKeyValue; import top.r3944realms.lib39.datagen.value.ModPartEnum; @@ -117,7 +118,7 @@ public enum Lib39LangKey implements ILangKeyValueCollection { ); public static final LangKeyValue DOLL_SOUND = addAndRet( LangKeyValue.ofKey( - ModPartEnum.SOUND.getFullKey(Lib39.MOD_ID, "duck_doll"), ModPartEnum.SOUND, + Lib39SoundEvents.getSubTitleTranslateKey("duck_toy"), ModPartEnum.SOUND, "Duck Doll Sound", "玩偶声音", "玩偶聲音", diff --git a/src/main/java/top/r3944realms/lib39/core/event/CommonEventHandler.java b/src/main/java/top/r3944realms/lib39/core/event/CommonEventHandler.java index 1589d77..b7457ce 100644 --- a/src/main/java/top/r3944realms/lib39/core/event/CommonEventHandler.java +++ b/src/main/java/top/r3944realms/lib39/core/event/CommonEventHandler.java @@ -2,6 +2,7 @@ package top.r3944realms.lib39.core.event; import com.mojang.authlib.GameProfile; import net.minecraft.Util; +import net.minecraft.client.multiplayer.ClientLevel; import net.minecraft.network.chat.Component; import net.minecraft.resources.ResourceKey; import net.minecraft.resources.ResourceLocation; @@ -11,6 +12,7 @@ import net.minecraft.world.item.CreativeModeTab; import net.minecraft.world.item.ItemStack; import net.minecraft.world.item.Items; import net.minecraft.world.level.Level; +import net.minecraft.world.level.LevelAccessor; import net.minecraft.world.level.block.Block; import net.minecraft.world.level.block.entity.SkullBlockEntity; import net.minecraftforge.common.MinecraftForge; @@ -88,23 +90,40 @@ public class CommonEventHandler { */ @SubscribeEvent public static void onWorldLoad(LevelEvent.Load event) { - if (event.getLevel().isClientSide() || !(event.getLevel() instanceof ServerLevel serverLevel)) return; - // 只处理主世界(避免多次初始化) - if (!serverLevel.dimension().equals(Level.OVERWORLD)) return; - synchronized (Game.class) { - if (!isSync2MInitialized) { - syncData2Manager = new SyncData2Manager(); - MinecraftForge.EVENT_BUS.post(new SyncManagerRegisterEvent(syncData2Manager)); - isSync2MInitialized = true; - sl = serverLevel; - Lib39.LOGGER.info("SyncData2Manager initialized on world load"); + LevelAccessor level = event.getLevel(); + if(level instanceof ServerLevel serverLevel) { + // 只处理主世界(避免多次初始化) + if (!serverLevel.dimension().equals(Level.OVERWORLD)) return; + synchronized (Game.class) { + if (!isSync2MInitialized) { + syncData2Manager = new SyncData2Manager(); + MinecraftForge.EVENT_BUS.post(new SyncManagerRegisterEvent(syncData2Manager)); + isSync2MInitialized = true; + sl = serverLevel; + Lib39.LOGGER.info("SyncData2Manager initialized on Sever load"); + } + if (!isCompatInitialized) { + MinecraftForge.EVENT_BUS.post(new RegisterCompatEvent(Mod.compatManager)); + Mod.compatManager.initializeAll(); + isCompatInitialized = true; + } } - if (!isCompatInitialized) { - MinecraftForge.EVENT_BUS.post(new RegisterCompatEvent(Mod.compatManager)); - Mod.compatManager.initializeAll(); - isCompatInitialized = true; + } else if (level instanceof ClientLevel clientLevel) { + synchronized (Game.class) { + if (!clientLevel.dimension().equals(Level.OVERWORLD)) return; + if (!isSync2MInitialized) { + syncData2Manager = new SyncData2Manager(); + MinecraftForge.EVENT_BUS.post(new SyncManagerRegisterEvent(syncData2Manager)); + Lib39.LOGGER.info("SyncData2Manager initialized on Client load"); + } + if (!isCompatInitialized) { + MinecraftForge.EVENT_BUS.post(new RegisterCompatEvent(Mod.compatManager)); + Mod.compatManager.initializeAll(); + isCompatInitialized = true; + } } } + } /** diff --git a/src/main/java/top/r3944realms/lib39/util/nbt/NBTWriter.java b/src/main/java/top/r3944realms/lib39/util/nbt/NBTWriter.java index eb00b5d..0b1f688 100644 --- a/src/main/java/top/r3944realms/lib39/util/nbt/NBTWriter.java +++ b/src/main/java/top/r3944realms/lib39/util/nbt/NBTWriter.java @@ -579,7 +579,7 @@ public class NBTWriter { * @return the nbt writer */ // 条件添加方法 - public NBTWriter stringIf(String key, Supplier value, boolean condition) { + public NBTWriter stringIf(String key, boolean condition, Supplier value) { if (condition && value != null) { root.putString(key, value.get()); } @@ -594,7 +594,7 @@ public class NBTWriter { * @param condition the condition * @return the nbt writer */ - public NBTWriter intValueIf(String key, Supplier value, boolean condition) { + public NBTWriter intValueIf(String key, boolean condition, Supplier value) { if (condition && value != null) { root.putInt(key, value.get()); } @@ -609,7 +609,7 @@ public class NBTWriter { * @param condition the condition * @return the nbt writer */ - public NBTWriter longValueIf(String key, Supplier value, boolean condition) { + public NBTWriter longValueIf(String key, boolean condition, Supplier value) { if (condition && value != null) { root.putLong(key, value.get()); } @@ -624,7 +624,7 @@ public class NBTWriter { * @param condition the condition * @return the nbt writer */ - public NBTWriter uuidValueIf(String key, Supplier value, boolean condition) { + public NBTWriter uuidValueIf(String key, boolean condition, Supplier value) { if (condition && value != null) { root.putUUID(key, value.get()); } @@ -639,7 +639,7 @@ public class NBTWriter { * @param condition the condition * @return the nbt writer */ - public NBTWriter booleanValueIf(String key, Supplier value, boolean condition) { + public NBTWriter booleanValueIf(String key, boolean condition, Supplier value) { if (condition && value != null) { root.putBoolean(key, value.get()); }