From f81569bde3c52aff67e647234120e96924ad819c Mon Sep 17 00:00:00 2001 From: 3944Realms Date: Sat, 23 Nov 2024 16:16:19 +0800 Subject: [PATCH] =?UTF-8?q?2024/11/23=20=E6=90=9E=E4=BA=86=E4=B8=80?= =?UTF-8?q?=E4=B8=AATOP=E6=A3=80=E6=B5=8B=E5=85=B3=E9=97=ADGUI?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- build.gradle | 3 +- .../211976637bfb5e111401ad2bfb58570ef2fb3dff | 4 +- .../a1129211d3ad6d65c101bb152ae8c66c8256bccb | 4 +- .../ed628fd843215c1bf29a07b9cbd1b26a6af0636d | 4 +- .../assets/leashedplayer/lang/en_us.json | 2 + .../assets/leashedplayer/lang/zh_cn.json | 2 + .../assets/leashedplayer/lang/zh_tw.json | 2 + .../leashedplayer/ClientEventHandler.java | 52 +++++++++++++------ .../leashedplayer/api/JEIPlugin.java | 27 ++++++++++ .../item/repcipe/JEIRecipeTypes.java | 13 +++++ .../TippedLeashRopeArrowRecipeMaker.java | 38 ++++++++++++++ .../OpenTOPNeededModeWhenScreenIsNotNull.java | 25 +++++++++ .../repcipe/TippedLeashRopeArrowRecipe.java | 16 ++++++ .../LanguageAndOtherData/ModLangKeyValue.java | 8 ++- 14 files changed, 172 insertions(+), 28 deletions(-) create mode 100644 src/main/java/com/r3944realms/leashedplayer/api/JEIPlugin.java create mode 100644 src/main/java/com/r3944realms/leashedplayer/apiContent/item/repcipe/JEIRecipeTypes.java create mode 100644 src/main/java/com/r3944realms/leashedplayer/apiContent/item/repcipe/TippedLeashRopeArrowRecipeMaker.java create mode 100644 src/main/java/com/r3944realms/leashedplayer/content/gamerules/Server/OpenTOPNeededModeWhenScreenIsNotNull.java diff --git a/build.gradle b/build.gradle index 69cbecd..c6168ac 100644 --- a/build.gradle +++ b/build.gradle @@ -114,8 +114,7 @@ dependencies { // compile against the JEI API but do not include it at runtime compileOnly("mezz.jei:jei-${mc_version}-neoforge-api:${jei_version}") // at runtime, use the full JEI jar for NeoForge - runtimeOnly("mezz.jei:jei-${mc_version}-neoforge:${jei_version}") -// compileOnly("mezz.jei:jei-${mc_version}-neoforge-api:${jei_version}") + // compileOnly("mezz.jei:jei-${mc_version}-neoforge-api:${jei_version}") // Example optional mod dependency with JEI // The JEI API is declared for compile time use, while the full JEI artifact is used at runtime // compileOnly "mezz.jei:jei-${mc_version}-common-api:${jei_version}" diff --git a/src/generated/resources/.cache/211976637bfb5e111401ad2bfb58570ef2fb3dff b/src/generated/resources/.cache/211976637bfb5e111401ad2bfb58570ef2fb3dff index 9644e72..9cd17d8 100644 --- a/src/generated/resources/.cache/211976637bfb5e111401ad2bfb58570ef2fb3dff +++ b/src/generated/resources/.cache/211976637bfb5e111401ad2bfb58570ef2fb3dff @@ -1,2 +1,2 @@ -// 1.21 2024-11-16T17:00:44.8646839 Languages: en_us for mod: leashedplayer -2d1cc1306605f16bca4d02aeeec79c571a6dc04b assets/leashedplayer/lang/en_us.json +// 1.21 2024-11-23T14:23:28.9623441 Languages: en_us for mod: leashedplayer +ac6deeef9e460393df3b854a8d898d1a863deb45 assets/leashedplayer/lang/en_us.json diff --git a/src/generated/resources/.cache/a1129211d3ad6d65c101bb152ae8c66c8256bccb b/src/generated/resources/.cache/a1129211d3ad6d65c101bb152ae8c66c8256bccb index 62ec897..49c7344 100644 --- a/src/generated/resources/.cache/a1129211d3ad6d65c101bb152ae8c66c8256bccb +++ b/src/generated/resources/.cache/a1129211d3ad6d65c101bb152ae8c66c8256bccb @@ -1,2 +1,2 @@ -// 1.21 2024-11-16T21:56:30.3223474 Languages: zh_cn for mod: leashedplayer -4ee98b29b6ba49637275aeeeb939f179e121b60a assets/leashedplayer/lang/zh_cn.json +// 1.21 2024-11-23T14:23:28.9623441 Languages: zh_cn for mod: leashedplayer +c019c3538ff7dc5a74283f3045cae496b67d7a33 assets/leashedplayer/lang/zh_cn.json diff --git a/src/generated/resources/.cache/ed628fd843215c1bf29a07b9cbd1b26a6af0636d b/src/generated/resources/.cache/ed628fd843215c1bf29a07b9cbd1b26a6af0636d index 449cc30..166823f 100644 --- a/src/generated/resources/.cache/ed628fd843215c1bf29a07b9cbd1b26a6af0636d +++ b/src/generated/resources/.cache/ed628fd843215c1bf29a07b9cbd1b26a6af0636d @@ -1,2 +1,2 @@ -// 1.21 2024-11-16T21:56:30.3223474 Languages: zh_tw for mod: leashedplayer -6fc9463fd8d30efe4e30a2c3584623d458c320a0 assets/leashedplayer/lang/zh_tw.json +// 1.21 2024-11-23T14:23:28.9623441 Languages: zh_tw for mod: leashedplayer +c464f0cfad108f12fddf0229aaabd0750d3b1eee assets/leashedplayer/lang/zh_tw.json diff --git a/src/generated/resources/assets/leashedplayer/lang/en_us.json b/src/generated/resources/assets/leashedplayer/lang/en_us.json index cba35c0..27be534 100644 --- a/src/generated/resources/assets/leashedplayer/lang/en_us.json +++ b/src/generated/resources/assets/leashedplayer/lang/en_us.json @@ -32,6 +32,8 @@ "gamerule.LP.DefaultTalkArea.description": "When the global setting is non-negative, it limits the chat range for all players. If a player's configured chat range is smaller than this value, this rule applies. Otherwise, the player's custom value is used.", "gamerule.LP.KeepLeashNotDropTime": "Keep leash alive Time", "gamerule.LP.KeepLeashNotDropTime.description": "The time of Keep new leash which has far distance alive (Tick)", + "gamerule.LP.OpenTOPNeededModeWhenScreenIsNotNull": "Open TOP NEEDED Mode When Screen isn't null", + "gamerule.LP.OpenTOPNeededModeWhenScreenIsNotNull.description": "The One Probe will automatic to be in the Needed Mode when Gui Screen is not NULL", "gamerule.LP.TeleportWithLeashedPlayers": "Teleport leashed player with player holder", "gamerule.LP.TeleportWithLeashedPlayers.description": "Holder will teleport with their leashed players ", "item.leash_rope_arrow.desc.1": "§7This arrow will carry the owner along with its flight:", diff --git a/src/generated/resources/assets/leashedplayer/lang/zh_cn.json b/src/generated/resources/assets/leashedplayer/lang/zh_cn.json index 9fb28cd..f6b6022 100644 --- a/src/generated/resources/assets/leashedplayer/lang/zh_cn.json +++ b/src/generated/resources/assets/leashedplayer/lang/zh_cn.json @@ -32,6 +32,8 @@ "gamerule.LP.DefaultTalkArea.description": "全局区域设置为非负数时,则限制全体玩家的聊天区域。若玩家设置的聊天区域小于该值则采用该规则,反之则采用玩家自定义值", "gamerule.LP.KeepLeashNotDropTime": "保持拴绳不掉落的时间", "gamerule.LP.KeepLeashNotDropTime.description": "当距离过远时,保持新建拴绳不掉落的时间 (刻)", + "gamerule.LP.OpenTOPNeededModeWhenScreenIsNotNull": "当屏幕不为空时自动打开探测器的Needed模式", + "gamerule.LP.OpenTOPNeededModeWhenScreenIsNotNull.description": "当屏幕不为空时自动打开探测器的Needed模式", "gamerule.LP.TeleportWithLeashedPlayers": "被拴玩家随玩家持有者传送", "gamerule.LP.TeleportWithLeashedPlayers.description": "传送时将被拴玩家与持有者一起传送", "item.leash_rope_arrow.desc.1": "§7该箭将会携带拥有者随其飞行", diff --git a/src/generated/resources/assets/leashedplayer/lang/zh_tw.json b/src/generated/resources/assets/leashedplayer/lang/zh_tw.json index 77e2441..8ee4f69 100644 --- a/src/generated/resources/assets/leashedplayer/lang/zh_tw.json +++ b/src/generated/resources/assets/leashedplayer/lang/zh_tw.json @@ -32,6 +32,8 @@ "gamerule.LP.DefaultTalkArea.description": "儅全局區域為非負時,則限制全服玩家聊天區域。若玩家自定義值小於該規則則采用,反之則用玩家自定義值", "gamerule.LP.KeepLeashNotDropTime": "保持其不掉落的時間", "gamerule.LP.KeepLeashNotDropTime.description": "儅距離過遠時,保持其不掉落的時間(刻)", + "gamerule.LP.OpenTOPNeededModeWhenScreenIsNotNull": "避免糠測器糠屏幕", + "gamerule.LP.OpenTOPNeededModeWhenScreenIsNotNull.description": "避免糠測器糠屏幕", "gamerule.LP.TeleportWithLeashedPlayers": "被拴玩家随玩家持有者傳送", "gamerule.LP.TeleportWithLeashedPlayers.description": "將被拴玩家將隨持有者一起傳送", "item.leash_rope_arrow.desc.1": "§7該箭將會攜帶擁有者隨其飛行:", diff --git a/src/main/java/com/r3944realms/leashedplayer/ClientEventHandler.java b/src/main/java/com/r3944realms/leashedplayer/ClientEventHandler.java index 520f1f2..1b20556 100644 --- a/src/main/java/com/r3944realms/leashedplayer/ClientEventHandler.java +++ b/src/main/java/com/r3944realms/leashedplayer/ClientEventHandler.java @@ -5,18 +5,22 @@ import com.r3944realms.leashedplayer.client.renders.entities.KidPlayerRenderer; import com.r3944realms.leashedplayer.client.renders.entities.LeashRopeArrowRenderer; import com.r3944realms.leashedplayer.client.renders.entities.SpectralLeashRopeArrowRenderer; import com.r3944realms.leashedplayer.content.entities.ModEntityRegister; +import com.r3944realms.leashedplayer.content.gamerules.GameruleRegistry; +import com.r3944realms.leashedplayer.content.gamerules.Server.OpenTOPNeededModeWhenScreenIsNotNull; import com.r3944realms.leashedplayer.content.items.ModItemRegister; import com.r3944realms.leashedplayer.content.items.type.ILeashRopeArrow; +import com.r3944realms.leashedplayer.utils.Logger; import mcjty.theoneprobe.config.Config; -import net.minecraft.client.renderer.entity.EntityRenderer; +import mcjty.theoneprobe.gui.GuiNote; +import net.minecraft.client.Minecraft; +import net.minecraft.client.gui.screens.Screen; +import net.minecraft.client.gui.screens.inventory.CreativeModeInventoryScreen; import net.minecraft.client.renderer.entity.player.PlayerRenderer; import net.minecraft.client.renderer.item.ItemProperties; import net.minecraft.client.resources.PlayerSkin; import net.minecraft.core.component.DataComponents; import net.minecraft.resources.ResourceLocation; import net.minecraft.util.FastColor; -import net.minecraft.world.entity.EntityType; -import net.minecraft.world.entity.decoration.ArmorStand; import net.minecraft.world.item.Items; import net.minecraft.world.item.alchemy.PotionContents; import net.minecraft.world.item.component.ChargedProjectiles; @@ -25,28 +29,46 @@ import net.neoforged.bus.api.SubscribeEvent; import net.neoforged.fml.ModList; import net.neoforged.fml.common.EventBusSubscriber; import net.neoforged.fml.event.lifecycle.FMLClientSetupEvent; +import net.neoforged.neoforge.client.event.ClientTickEvent; import net.neoforged.neoforge.client.event.EntityRenderersEvent; import net.neoforged.neoforge.client.event.RegisterColorHandlersEvent; import net.neoforged.neoforge.client.event.ScreenEvent; +import java.util.Objects; +import java.util.Stack; + public abstract class ClientEventHandler { @EventBusSubscriber(value = Dist.CLIENT, bus = EventBusSubscriber.Bus.GAME, modid = LeashedPlayer.MOD_ID) public static class Game extends ClientEventHandler { + private static int oldSelect; + private static boolean configSaved = false; private static final boolean IS_TOP_LOADED = ModList.get().isLoaded("theoneprobe"); - private static int OldSelect = 0; @SubscribeEvent - public static void onScreenOpen(ScreenEvent.Opening event) { - if (IS_TOP_LOADED) { - OldSelect = Config.needsProbe.get(); - Config.setProbeNeeded(Config.PROBE_NEEDED); - - } - } - @SubscribeEvent - public static void onScreenClose(ScreenEvent.Closing event) { - if (IS_TOP_LOADED) { - Config.setProbeNeeded(OldSelect); + public static void onClientTick(ClientTickEvent.Pre event) { + Minecraft mc = Minecraft.getInstance(); + if (mc.level == null) return; + if (GameruleRegistry.getGameruleBoolValue(mc.level, OpenTOPNeededModeWhenScreenIsNotNull.ID)){ + Screen currentScreen = mc.screen; + if (IS_TOP_LOADED) { + if (currentScreen != null) { + if (currentScreen instanceof GuiNote) { + configSaved = false; + oldSelect = Config.needsProbe.get(); + } else { + if (!configSaved) { + oldSelect = Config.needsProbe.get(); + Config.setProbeNeeded(Config.PROBE_NEEDED); + configSaved = true; + } else { + Config.setProbeNeeded(Config.PROBE_NEEDED); + } + } + } else { + Config.setProbeNeeded(oldSelect); + configSaved = false; + } + } } } } diff --git a/src/main/java/com/r3944realms/leashedplayer/api/JEIPlugin.java b/src/main/java/com/r3944realms/leashedplayer/api/JEIPlugin.java new file mode 100644 index 0000000..9b6ee0c --- /dev/null +++ b/src/main/java/com/r3944realms/leashedplayer/api/JEIPlugin.java @@ -0,0 +1,27 @@ +package com.r3944realms.leashedplayer.api; + +import com.r3944realms.leashedplayer.LeashedPlayer; + +import com.r3944realms.leashedplayer.apiContent.item.repcipe.JEIRecipeTypes; +import mezz.jei.api.IModPlugin; +import mezz.jei.api.JeiPlugin; +import mezz.jei.api.constants.VanillaTypes; +import mezz.jei.api.recipe.vanilla.IVanillaRecipeFactory; +import mezz.jei.api.registration.IRecipeRegistration; +import net.minecraft.resources.ResourceLocation; +import org.jetbrains.annotations.NotNull; + +@JeiPlugin +public class JEIPlugin implements IModPlugin { + private static final ResourceLocation UID = ResourceLocation.fromNamespaceAndPath(LeashedPlayer.MOD_ID, "jei_plugin"); + @Override + public @NotNull ResourceLocation getPluginUid() { + return UID; + } + + + @Override + public void registerRecipes(@NotNull IRecipeRegistration registration) { + + } +} diff --git a/src/main/java/com/r3944realms/leashedplayer/apiContent/item/repcipe/JEIRecipeTypes.java b/src/main/java/com/r3944realms/leashedplayer/apiContent/item/repcipe/JEIRecipeTypes.java new file mode 100644 index 0000000..9918ea7 --- /dev/null +++ b/src/main/java/com/r3944realms/leashedplayer/apiContent/item/repcipe/JEIRecipeTypes.java @@ -0,0 +1,13 @@ +package com.r3944realms.leashedplayer.apiContent.item.repcipe; + +import com.r3944realms.leashedplayer.LeashedPlayer; +import com.r3944realms.leashedplayer.content.items.repcipe.TippedLeashRopeArrowRecipe; +import mezz.jei.api.recipe.RecipeType; + +public class JEIRecipeTypes { + public static final RecipeType TIPPED_LEASH_ROPE_ARROW_A = + RecipeType.create(LeashedPlayer.MOD_ID, "tipped_leash_rope_arrow_a", TippedLeashRopeArrowRecipe.TippedLeashRopeArrowARecipe.class); + + public static final RecipeType TIPPED_LEASH_ROPE_ARROW_B = + RecipeType.create(LeashedPlayer.MOD_ID, "tipped_leash_rope_arrow_b", TippedLeashRopeArrowRecipe.TippedLeashRopeArrowBRecipe.class); +} diff --git a/src/main/java/com/r3944realms/leashedplayer/apiContent/item/repcipe/TippedLeashRopeArrowRecipeMaker.java b/src/main/java/com/r3944realms/leashedplayer/apiContent/item/repcipe/TippedLeashRopeArrowRecipeMaker.java new file mode 100644 index 0000000..c6d561e --- /dev/null +++ b/src/main/java/com/r3944realms/leashedplayer/apiContent/item/repcipe/TippedLeashRopeArrowRecipeMaker.java @@ -0,0 +1,38 @@ +package com.r3944realms.leashedplayer.apiContent.item.repcipe; + +import mezz.jei.api.constants.ModIds; +import mezz.jei.api.helpers.IJeiHelpers; + +import net.minecraft.core.HolderLookup; +import net.minecraft.core.NonNullList; +import net.minecraft.core.Registry; +import net.minecraft.core.registries.Registries; +import net.minecraft.resources.ResourceLocation; +import net.minecraft.world.item.ItemStack; +import net.minecraft.world.item.Items; +import net.minecraft.world.item.alchemy.Potion; +import net.minecraft.world.item.alchemy.PotionContents; +import net.minecraft.world.item.crafting.*; +import net.neoforged.neoforge.common.CommonHooks; + +import java.util.List; +import java.util.Optional; + +import static net.minecraft.world.item.Items.*; + +public class TippedLeashRopeArrowRecipeMaker { + public static List> createRecipes(IJeiHelpers jeiHelpers) { + + + String group = "jei.tipped.arrow"; + ItemStack arrowStack = new ItemStack(Items.ARROW); + Ingredient arrowIngredient = Ingredient.of(arrowStack); + + HolderLookup.RegistryLookup potionRegistry = CommonHooks.resolveLookup(Registries.POTION); + return null; + } + + private TippedLeashRopeArrowRecipeMaker() { + + } +} diff --git a/src/main/java/com/r3944realms/leashedplayer/content/gamerules/Server/OpenTOPNeededModeWhenScreenIsNotNull.java b/src/main/java/com/r3944realms/leashedplayer/content/gamerules/Server/OpenTOPNeededModeWhenScreenIsNotNull.java new file mode 100644 index 0000000..4397d9e --- /dev/null +++ b/src/main/java/com/r3944realms/leashedplayer/content/gamerules/Server/OpenTOPNeededModeWhenScreenIsNotNull.java @@ -0,0 +1,25 @@ +package com.r3944realms.leashedplayer.content.gamerules.Server; + +import com.r3944realms.leashedplayer.LeashedPlayer; +import com.r3944realms.leashedplayer.content.gamerules.Gamerules; +import com.r3944realms.leashedplayer.utils.Util; +import net.minecraft.world.level.GameRules; +import net.neoforged.bus.api.SubscribeEvent; +import net.neoforged.fml.common.EventBusSubscriber; +import net.neoforged.fml.event.lifecycle.FMLCommonSetupEvent; + +import static com.r3944realms.leashedplayer.content.gamerules.Gamerules.GAMERULE_REGISTRY; + +@EventBusSubscriber(modid = LeashedPlayer.MOD_ID, bus = EventBusSubscriber.Bus.MOD) +public class OpenTOPNeededModeWhenScreenIsNotNull { + public static final boolean DEFAULT_VALUE = true; + public static final String ID = Util.getGameruleName(OpenTOPNeededModeWhenScreenIsNotNull.class); + public static final String DESCRIPTION_KEY = Gamerules.getDescriptionKey(OpenTOPNeededModeWhenScreenIsNotNull.class); + public static final String NAME_KEY = Gamerules.getNameKey(OpenTOPNeededModeWhenScreenIsNotNull.class); + public static final GameRules.Category CATEGORY = GameRules.Category.MISC; + + @SubscribeEvent + public static void onCommonSetup(final FMLCommonSetupEvent event) { + GAMERULE_REGISTRY.registerGamerule(ID, CATEGORY, DEFAULT_VALUE, (i, j)->{}); + } +} diff --git a/src/main/java/com/r3944realms/leashedplayer/content/items/repcipe/TippedLeashRopeArrowRecipe.java b/src/main/java/com/r3944realms/leashedplayer/content/items/repcipe/TippedLeashRopeArrowRecipe.java index de7b008..a5da46a 100644 --- a/src/main/java/com/r3944realms/leashedplayer/content/items/repcipe/TippedLeashRopeArrowRecipe.java +++ b/src/main/java/com/r3944realms/leashedplayer/content/items/repcipe/TippedLeashRopeArrowRecipe.java @@ -11,6 +11,7 @@ import net.minecraft.world.item.crafting.CustomRecipe; import net.minecraft.world.item.crafting.RecipeSerializer; import net.minecraft.world.level.Level; import org.jetbrains.annotations.NotNull; +import org.jetbrains.annotations.Nullable; public abstract class TippedLeashRopeArrowRecipe { public static class TippedLeashRopeArrowARecipe extends CustomRecipe { @@ -66,6 +67,13 @@ public abstract class TippedLeashRopeArrowRecipe { public @NotNull RecipeSerializer getSerializer() { return ModRecipeRegister.TIPPED_LEASH_ROPE_ARROW_A_RECIPE.get(); } + @Override + public @NotNull ItemStack getResultItem(@Nullable HolderLookup.Provider pRegistries) { + return new ItemStack(ModItemRegister.TIPPED_LEASH_ROPE_ARROW.get()); + } + public @NotNull ItemStack getResultItem() { + return getResultItem(null); + } } public static class TippedLeashRopeArrowBRecipe extends CustomRecipe { @@ -115,5 +123,13 @@ public abstract class TippedLeashRopeArrowRecipe { public @NotNull RecipeSerializer getSerializer() { return ModRecipeRegister.TIPPED_LEASH_ROPE_ARROW_B_RECIPE.get(); } + + @Override + public @NotNull ItemStack getResultItem(@Nullable HolderLookup.Provider pRegistries) { + return new ItemStack(ModItemRegister.TIPPED_LEASH_ROPE_ARROW.get()); + } + public @NotNull ItemStack getResultItem() { + return getResultItem(null); + } } } diff --git a/src/main/java/com/r3944realms/leashedplayer/datagen/LanguageAndOtherData/ModLangKeyValue.java b/src/main/java/com/r3944realms/leashedplayer/datagen/LanguageAndOtherData/ModLangKeyValue.java index 96ff072..07db522 100644 --- a/src/main/java/com/r3944realms/leashedplayer/datagen/LanguageAndOtherData/ModLangKeyValue.java +++ b/src/main/java/com/r3944realms/leashedplayer/datagen/LanguageAndOtherData/ModLangKeyValue.java @@ -6,10 +6,7 @@ import com.r3944realms.leashedplayer.content.commands.MotionCommand; import com.r3944realms.leashedplayer.content.effects.ModEffectRegister; import com.r3944realms.leashedplayer.content.effects.ModPotionRegister; import com.r3944realms.leashedplayer.content.entities.ModEntityRegister; -import com.r3944realms.leashedplayer.content.gamerules.Server.CreateLeashFenceKnotEntityIfAbsent; -import com.r3944realms.leashedplayer.content.gamerules.Server.DefaultTalkArea; -import com.r3944realms.leashedplayer.content.gamerules.Server.KeepLeashNotDropTime; -import com.r3944realms.leashedplayer.content.gamerules.Server.TeleportWithLeashedPlayers; +import com.r3944realms.leashedplayer.content.gamerules.Server.*; import com.r3944realms.leashedplayer.content.items.ModCreativeTab; import com.r3944realms.leashedplayer.content.items.ModItemRegister; import com.r3944realms.leashedplayer.content.items.type.LeadBreakerItem; @@ -94,6 +91,7 @@ public enum ModLangKeyValue { TELEPORT_WITH_LEASHED_PLAYERS(TeleportWithLeashedPlayers.NAME_KEY, ModPartEnum.NAME, "Teleport leashed player with player holder", "被拴玩家随玩家持有者传送", "被拴玩家随玩家持有者傳送" ,false), CREATE_LEASH_FENCE_KNOT_ENTITY_IF_ABSENT(CreateLeashFenceKnotEntityIfAbsent.NAME_KEY, ModPartEnum.NAME, "Create Leash Fence Knot Entity if absent", "如果缺失则创建拴绳结", "如果缺失則創建拴繩結", false), KEEP_LEASH_NOT_DROP_TIME(KeepLeashNotDropTime.NAME_KEY, ModPartEnum.NAME, "Keep leash alive Time", "保持拴绳不掉落的时间", "保持其不掉落的時間", false), + OTOPNMWSINN_MAME(OpenTOPNeededModeWhenScreenIsNotNull.NAME_KEY, ModPartEnum.NAME, "Open TOP NEEDED Mode When Screen isn't null", "当屏幕不为空时自动打开探测器的Needed模式", "避免糠測器糠屏幕", false), // DISABLE_MOVE_CHECK(DisablePlayerMoveCheck.NAME_KEY, ModPartEnum.NAME, "Disable Player Move Check", "禁止检查玩家移动", "禁止檢查玩家移動", false), //GAME_RULE_DESCRIPTION @@ -101,7 +99,7 @@ public enum ModLangKeyValue { CREATE_LEASH_FENCE_KNOT_ENTITY_IF_ABSENT_DESCRIPTION(CreateLeashFenceKnotEntityIfAbsent.DESCRIPTION_KEY, ModPartEnum.DESCRIPTION, "Create LeashKnot Entity if it's absent on fence", "如果在栅栏处缺失拴绳结,则创建它", "如果在柵欄処缺失拴繩結,則創建它", false), KEEP_LEASH_NOT_DROP_TIME_DESCRIPTION(KeepLeashNotDropTime.DESCRIPTION_KEY, ModPartEnum.DESCRIPTION,"The time of Keep new leash which has far distance alive (Tick)", "当距离过远时,保持新建拴绳不掉落的时间 (刻)", "儅距離過遠時,保持其不掉落的時間(刻)", false), // DISABLE_MOVE_CHECK_DESCRIPTION(DisablePlayerMoveCheck.DESCRIPTION_KEY, ModPartEnum.DESCRIPTION, "Disable the player's movement Check And Correct it.", "禁止检查玩家移动并且纠正它","禁止檢查玩家移動並糾正他它", false), - + OTOPNMWSINN_DESCRIPTION(OpenTOPNeededModeWhenScreenIsNotNull.DESCRIPTION_KEY, ModPartEnum.DESCRIPTION, "The One Probe will automatic to be in the Needed Mode when Gui Screen is not NULL", "当屏幕不为空时自动打开探测器的Needed模式", "避免糠測器糠屏幕", false), DEFAULT_AREA_TALK_DESCRIPTION(DefaultTalkArea.DESCRIPTION_KEY, ModPartEnum.DESCRIPTION, "When the global setting is non-negative, it limits the chat range for all players. If a player's configured chat range is smaller than this value, this rule applies. Otherwise, the player's custom value is used.", "全局区域设置为非负数时,则限制全体玩家的聊天区域。若玩家设置的聊天区域小于该值则采用该规则,反之则采用玩家自定义值", "儅全局區域為非負時,則限制全服玩家聊天區域。若玩家自定義值小於該規則則采用,反之則用玩家自定義值","阖局初置非负数,则限一顾之日下,若立聊城小在直则用其常,若用玩义直上跻之地", false), //ADV_NAME LEASH_START(ModAdvancementKey.LEASH_START.getNameKey(), ModPartEnum.NAME, "The Power of Traction", "牵引之力", "牽引之力", false),