2024/11/24
修改了下+2
This commit is contained in:
parent
8e0c06f392
commit
78c92d4e42
10
README.md
10
README.md
|
|
@ -1,4 +1,4 @@
|
|||
# 版本 0.0.3.9.9.3 提前介绍c[最终版本对于0.0.4] 【注意:本解釋簡繁混寫,因爲趕時間,所以並不怎麽規範,請諒解】
|
||||
# 版本 0.0.3.9.9.7 提前介绍c[最终版本对于0.0.4] 【注意:本解釋簡繁混寫,因爲趕時間,所以並不怎麽規範,請諒解】
|
||||
## 简介
|
||||
现在开始你可以用拴绳拴住玩家,也可以拴住自己了,不如尝试拴住彼此来通关我的世界吧(
|
||||
|
||||
|
|
@ -48,6 +48,8 @@
|
|||
|
||||
* `/lp tick ...` - 用法同原版Tick,但权限降为2,只用于调试,切勿滥用,后期考虑可能写成区域性的
|
||||
|
||||
* `/lp debug ...` - Debug指令,未来可能会移除
|
||||
|
||||
|
||||
## 游戏规则
|
||||
|
||||
|
|
@ -57,4 +59,8 @@
|
|||
|
||||
* `LP.KeepLeashNotDropTime` - 此规则决定,当拴绳关系创建时一段时间里,即是距离已经达到了断裂距离,也保持其不断裂 [默认值: 240ticks ,可设置范围[80, 1200]ticks]
|
||||
|
||||
* `LP.DefaultTalkArea` - 此规则决定,聊天半径最小正值 [默认值: -1]
|
||||
* `LP.DefaultTalkArea` - 此规则决定,聊天半径最小正值 [默认值: -1]
|
||||
|
||||
* `LP.OpenTOPNeededModeWhenScreenIsNotNull` - 此规则决定,是否在在打开 屏幕{除Top的NoteGui 和 聊天GUI外} 情况下改变Top的显示模式为NEEDED [默认值: true]
|
||||
|
||||
* `LP.CanCommonPlayerChangeSelfTalkArea` - 此规则决定,是否普通玩家可以修改自己的聊天可见区域 [默认值: true]
|
||||
|
|
@ -35,7 +35,7 @@ mod_name=Leashed Player
|
|||
# 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.0.3.9.9.3
|
||||
mod_version=0.0.3.9.9.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
|
||||
|
|
|
|||
|
|
@ -1,2 +1,2 @@
|
|||
// 1.21 2024-11-24T18:33:50.0269287 Languages: en_us for mod: leashedplayer
|
||||
a71b7d357b5cd2711e5d59a1784c7c60d8548c43 assets/leashedplayer/lang/en_us.json
|
||||
// 1.21 2024-11-24T21:20:56.9104455 Languages: en_us for mod: leashedplayer
|
||||
15a68b539dc9bfec4a0c802a501ee207a84a5a7f assets/leashedplayer/lang/en_us.json
|
||||
|
|
|
|||
|
|
@ -1,2 +1,2 @@
|
|||
// 1.21 2024-11-24T18:33:50.0259301 Languages: zh_cn for mod: leashedplayer
|
||||
81b6af6b88539aaf86f0942573198ead6098478a assets/leashedplayer/lang/zh_cn.json
|
||||
// 1.21 2024-11-24T21:20:56.9094392 Languages: zh_cn for mod: leashedplayer
|
||||
5231f5c20d6bf6d646c8bb8cf28a7d3caf82073b assets/leashedplayer/lang/zh_cn.json
|
||||
|
|
|
|||
|
|
@ -1,2 +1,2 @@
|
|||
// 1.21 2024-11-24T18:33:50.0239354 Languages: zh_tw for mod: leashedplayer
|
||||
232af0a8d220b865292cabcc3b5afc0164520116 assets/leashedplayer/lang/zh_tw.json
|
||||
// 1.21 2024-11-24T21:20:56.907444 Languages: zh_tw for mod: leashedplayer
|
||||
c99a4f7dd93ced0df1f2689852879858297d3f60 assets/leashedplayer/lang/zh_tw.json
|
||||
|
|
|
|||
|
|
@ -26,6 +26,8 @@
|
|||
"entity.leashedplayer.kid_player": "Kid",
|
||||
"entity.leashedplayer.leash_rope_arrow": "Leash Rope Arrow",
|
||||
"entity.leashedplayer.spectral_leash_rope_arrow": "Spectral Leash Rope Arrow",
|
||||
"gamerule.LP.CanCommonPlayerChangeSelfTalkArea": "Should Non-OP Player can change their TalkArea",
|
||||
"gamerule.LP.CanCommonPlayerChangeSelfTalkArea.description": "Above on its Name",
|
||||
"gamerule.LP.CreateLeashFenceKnotEntityIfAbsent": "Create Leash Fence Knot Entity if absent",
|
||||
"gamerule.LP.CreateLeashFenceKnotEntityIfAbsent.description": "Create LeashKnot Entity if it's absent on fence",
|
||||
"gamerule.LP.DefaultTalkArea": "Default Area Talk",
|
||||
|
|
@ -58,7 +60,10 @@
|
|||
"item.variant.leash_rope_arrow.desc.1": "§7A variant of Leash Rope Arrow",
|
||||
"item.variant.leash_rope_arrow.desc.2": "§c1.§r The function is the same as its original one。",
|
||||
"jukebox_song.leashedplayer.what_does_the_fox_say": "What does the fox say?",
|
||||
"key.leashedplayer.apply_talkarea_preference": "Apply TalkArea Preference",
|
||||
"key.leashedplayer.category": "Leashed Player",
|
||||
"leashedplayer.chat.none_heard_you": "Nobody heard your message",
|
||||
"leashedplayer.command.chat.message.no_right": "You haven't the right to do that!",
|
||||
"leashedplayer.command.chat.message.talkarea.current_config": "%s 's §6TalkArea Current§7:§e %d §6blocks §f(§aPrefence§7:§e %d §ablocks§f)§r",
|
||||
"leashedplayer.command.chat.message.talkarea.preference.set": "%s 's §atalk area preference set to §e%d§a blocks!§r",
|
||||
"leashedplayer.command.chat.message.talkarea.preference_not_set": "%s 's talk area preference is not set!",
|
||||
|
|
|
|||
|
|
@ -26,6 +26,8 @@
|
|||
"entity.leashedplayer.kid_player": "小孩",
|
||||
"entity.leashedplayer.leash_rope_arrow": "拴绳箭",
|
||||
"entity.leashedplayer.spectral_leash_rope_arrow": "拴绳光灵箭",
|
||||
"gamerule.LP.CanCommonPlayerChangeSelfTalkArea": "非OP应该可以修改自己的聊天可见半径吗?",
|
||||
"gamerule.LP.CanCommonPlayerChangeSelfTalkArea.description": "同名",
|
||||
"gamerule.LP.CreateLeashFenceKnotEntityIfAbsent": "如果缺失则创建拴绳结",
|
||||
"gamerule.LP.CreateLeashFenceKnotEntityIfAbsent.description": "如果在栅栏处缺失拴绳结,则创建它",
|
||||
"gamerule.LP.DefaultTalkArea": "默认聊天区域可见半径",
|
||||
|
|
@ -58,7 +60,10 @@
|
|||
"item.variant.leash_rope_arrow.desc.1": "§7拴绳箭的一个变种",
|
||||
"item.variant.leash_rope_arrow.desc.2": "§c1.§r 功能同其本体;",
|
||||
"jukebox_song.leashedplayer.what_does_the_fox_say": "狐狸是怎么叫的?",
|
||||
"key.leashedplayer.apply_talkarea_preference": "应用可见区域预设",
|
||||
"key.leashedplayer.category": "可拴玩家",
|
||||
"leashedplayer.chat.none_heard_you": "沒有人接收到你的消息",
|
||||
"leashedplayer.command.chat.message.no_right": "你无权这样做!",
|
||||
"leashedplayer.command.chat.message.talkarea.current_config": "%s§6目前聊天区域可见半径设置§7:§e %d §6格 §f(§a默认值§7:§e %d §a格§f)§r",
|
||||
"leashedplayer.command.chat.message.talkarea.preference.set": "%s§a默认聊天区域可见消息半径设置为 §e%d §a格!§r",
|
||||
"leashedplayer.command.chat.message.talkarea.preference_not_set": "%s未设置默认可见消息聊天区域半径",
|
||||
|
|
|
|||
|
|
@ -26,6 +26,8 @@
|
|||
"entity.leashedplayer.kid_player": "小孩",
|
||||
"entity.leashedplayer.leash_rope_arrow": "拴繩箭",
|
||||
"entity.leashedplayer.spectral_leash_rope_arrow": "拴繩光靈箭",
|
||||
"gamerule.LP.CanCommonPlayerChangeSelfTalkArea": "非OP應該可以修改自己的聊天可見半徑嗎?",
|
||||
"gamerule.LP.CanCommonPlayerChangeSelfTalkArea.description": "同名",
|
||||
"gamerule.LP.CreateLeashFenceKnotEntityIfAbsent": "如果缺失則創建拴繩結",
|
||||
"gamerule.LP.CreateLeashFenceKnotEntityIfAbsent.description": "如果在柵欄処缺失拴繩結,則創建它",
|
||||
"gamerule.LP.DefaultTalkArea": "默認聊天區域可見半徑",
|
||||
|
|
@ -58,7 +60,10 @@
|
|||
"item.variant.leash_rope_arrow.desc.1": "§7拴繩箭矢的一個變種",
|
||||
"item.variant.leash_rope_arrow.desc.2": "§c1.§r 功能與本體一致;",
|
||||
"jukebox_song.leashedplayer.what_does_the_fox_say": "狐狸是怎麽叫的?",
|
||||
"key.leashedplayer.apply_talkarea_preference": "應用設置可見區域預設",
|
||||
"key.leashedplayer.category": "可拴玩家",
|
||||
"leashedplayer.chat.none_heard_you": "無人接收到你的訊息",
|
||||
"leashedplayer.command.chat.message.no_right": "你無權這麽做!",
|
||||
"leashedplayer.command.chat.message.talkarea.current_config": "%s§6目前可見訊息聊天半徑設置§7:§e%d §6格 §f(§a默認值§7:§e%d §a格§f)§r",
|
||||
"leashedplayer.command.chat.message.talkarea.preference.set": "%s§a默認聊天區域可見訊息半徑設置為 §e%d §a格!§r",
|
||||
"leashedplayer.command.chat.message.talkarea.preference_not_set": "%s未設置可見訊息聊天半徑",
|
||||
|
|
|
|||
|
|
@ -4,6 +4,8 @@ import com.r3944realms.leashedplayer.client.renders.entities.ChestItemLayerRende
|
|||
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.ModKeyMapping;
|
||||
import com.r3944realms.leashedplayer.content.commands.Command;
|
||||
import com.r3944realms.leashedplayer.content.entities.ModEntityRegister;
|
||||
import com.r3944realms.leashedplayer.content.gamerules.GameruleRegistry;
|
||||
import com.r3944realms.leashedplayer.content.gamerules.Server.OpenTOPNeededModeWhenScreenIsNotNull;
|
||||
|
|
@ -34,10 +36,7 @@ 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 net.neoforged.neoforge.client.event.*;
|
||||
|
||||
import java.util.Objects;
|
||||
import java.util.Stack;
|
||||
|
|
@ -85,55 +84,68 @@ public abstract class ClientEventHandler {
|
|||
}
|
||||
}
|
||||
}
|
||||
@SubscribeEvent
|
||||
public static void onKetBoardInput(InputEvent.Key event) {
|
||||
if(ModKeyMapping.KEY_APPLY_TALKAREA_PREFERENCE.isDown()) {
|
||||
assert Minecraft.getInstance().player != null;
|
||||
String prefix = (Command.SHOULD_USE_PREFIX ? Command.PREFIX : "") + " ";
|
||||
Minecraft.getInstance().player.connection.sendCommand(prefix + "talkArea usePreference");
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@EventBusSubscriber(value = Dist.CLIENT, bus = EventBusSubscriber.Bus.MOD, modid = LeashedPlayer.MOD_ID)
|
||||
public static class Mod extends ClientEventHandler {
|
||||
@SubscribeEvent
|
||||
public static void onRegisterItemProperties (FMLClientSetupEvent event){
|
||||
event.enqueueWork(() -> {
|
||||
ItemProperties.register(Items.CROSSBOW, ResourceLocation.withDefaultNamespace("leash_rope_arrow"),
|
||||
((pStack, pLevel, pEntity, pSeed) -> {
|
||||
ChargedProjectiles chargedProjectiles = pStack.get(DataComponents.CHARGED_PROJECTILES);
|
||||
return chargedProjectiles != null && (chargedProjectiles.contains(ModItemRegister.LEASH_ROPE_ARROW.get()) || chargedProjectiles.contains(ModItemRegister.SPECTRAL_LEASH_ROPE_ARROW.get())) ? 1.0F : 0.0F;
|
||||
}));
|
||||
ItemProperties.register(Items.BOW, ResourceLocation.withDefaultNamespace("leash_rope_arrow_pulling"),
|
||||
((pStack, pLevel, pEntity, pSeed) ->
|
||||
(pEntity != null && pEntity.isUsingItem() && pEntity.getUseItem() == pStack && ILeashRopeArrow.isLeashRopeArrow(pStack, pEntity)) ? 1.0F : 0.0F
|
||||
));
|
||||
});
|
||||
event.enqueueWork(() -> {
|
||||
ItemProperties.register(Items.CROSSBOW, ResourceLocation.withDefaultNamespace("leash_rope_arrow"),
|
||||
((pStack, pLevel, pEntity, pSeed) -> {
|
||||
ChargedProjectiles chargedProjectiles = pStack.get(DataComponents.CHARGED_PROJECTILES);
|
||||
return chargedProjectiles != null && (chargedProjectiles.contains(ModItemRegister.LEASH_ROPE_ARROW.get()) || chargedProjectiles.contains(ModItemRegister.SPECTRAL_LEASH_ROPE_ARROW.get())) ? 1.0F : 0.0F;
|
||||
}));
|
||||
ItemProperties.register(Items.BOW, ResourceLocation.withDefaultNamespace("leash_rope_arrow_pulling"),
|
||||
((pStack, pLevel, pEntity, pSeed) ->
|
||||
(pEntity != null && pEntity.isUsingItem() && pEntity.getUseItem() == pStack && ILeashRopeArrow.isLeashRopeArrow(pStack, pEntity)) ? 1.0F : 0.0F
|
||||
));
|
||||
});
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
@SubscribeEvent
|
||||
public static void registerKeyMapping(RegisterKeyMappingsEvent event) {
|
||||
event.register(ModKeyMapping.KEY_APPLY_TALKAREA_PREFERENCE);
|
||||
}
|
||||
|
||||
@SubscribeEvent
|
||||
public static void onRegisterRenderer (EntityRenderersEvent.RegisterRenderers event){
|
||||
event.registerEntityRenderer(ModEntityRegister.LEASH_ROPE_ARROW.get(), LeashRopeArrowRenderer::new);
|
||||
event.registerEntityRenderer(ModEntityRegister.SPECTRAL_LEASH_ROPE_ARROW.get(), SpectralLeashRopeArrowRenderer::new);
|
||||
event.registerEntityRenderer(ModEntityRegister.KID.get(), KidPlayerRenderer::create);
|
||||
}
|
||||
event.registerEntityRenderer(ModEntityRegister.LEASH_ROPE_ARROW.get(), LeashRopeArrowRenderer::new);
|
||||
event.registerEntityRenderer(ModEntityRegister.SPECTRAL_LEASH_ROPE_ARROW.get(), SpectralLeashRopeArrowRenderer::new);
|
||||
event.registerEntityRenderer(ModEntityRegister.KID.get(), KidPlayerRenderer::create);
|
||||
}
|
||||
|
||||
@SubscribeEvent
|
||||
public static void onAddLayers (EntityRenderersEvent.AddLayers event){
|
||||
|
||||
PlayerRenderer renderer = event.getSkin(PlayerSkin.Model.WIDE);
|
||||
if (renderer instanceof PlayerRenderer playerRenderer) {
|
||||
playerRenderer.addLayer(new ChestItemLayerRenderer<>(playerRenderer, event.getContext().getItemInHandRenderer()));
|
||||
}
|
||||
PlayerRenderer renderer = event.getSkin(PlayerSkin.Model.WIDE);
|
||||
if (renderer instanceof PlayerRenderer playerRenderer) {
|
||||
playerRenderer.addLayer(new ChestItemLayerRenderer<>(playerRenderer, event.getContext().getItemInHandRenderer()));
|
||||
}
|
||||
|
||||
PlayerRenderer slimRenderer = event.getSkin(PlayerSkin.Model.SLIM);
|
||||
if (slimRenderer instanceof PlayerRenderer slimPlayerRenderer) {
|
||||
slimPlayerRenderer.addLayer(new ChestItemLayerRenderer<>(slimPlayerRenderer, event.getContext().getItemInHandRenderer()));
|
||||
PlayerRenderer slimRenderer = event.getSkin(PlayerSkin.Model.SLIM);
|
||||
if (slimRenderer instanceof PlayerRenderer slimPlayerRenderer) {
|
||||
slimPlayerRenderer.addLayer(new ChestItemLayerRenderer<>(slimPlayerRenderer, event.getContext().getItemInHandRenderer()));
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@SubscribeEvent
|
||||
public static void onRegisterItemColorHandlers (RegisterColorHandlersEvent.Item event){
|
||||
event.register(
|
||||
(color, i) -> i > 0
|
||||
? -1
|
||||
: FastColor.ARGB32.opaque(color.getOrDefault(DataComponents.POTION_CONTENTS, PotionContents.EMPTY).getColor()),
|
||||
ModItemRegister.TIPPED_LEASH_ROPE_ARROW.get()
|
||||
);
|
||||
}
|
||||
event.register(
|
||||
(color, i) -> i > 0
|
||||
? -1
|
||||
: FastColor.ARGB32.opaque(color.getOrDefault(DataComponents.POTION_CONTENTS, PotionContents.EMPTY).getColor()),
|
||||
ModItemRegister.TIPPED_LEASH_ROPE_ARROW.get()
|
||||
);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -1,10 +1,7 @@
|
|||
package com.r3944realms.leashedplayer;
|
||||
|
||||
import com.mojang.brigadier.CommandDispatcher;
|
||||
import com.r3944realms.leashedplayer.content.commands.ChatCommand;
|
||||
import com.r3944realms.leashedplayer.content.commands.LeashCommand;
|
||||
import com.r3944realms.leashedplayer.content.commands.MotionCommand;
|
||||
import com.r3944realms.leashedplayer.content.commands.TickCommand;
|
||||
import com.r3944realms.leashedplayer.content.commands.*;
|
||||
import com.r3944realms.leashedplayer.content.effects.ModEffectRegister;
|
||||
import com.r3944realms.leashedplayer.content.effects.ModPotionRegister;
|
||||
import com.r3944realms.leashedplayer.content.entities.LeashRopeArrow;
|
||||
|
|
@ -64,6 +61,7 @@ public class CommonEventHandler {
|
|||
MotionCommand.register(dispatcher);
|
||||
ChatCommand.register(dispatcher);
|
||||
TickCommand.register(dispatcher);
|
||||
DebugCommand.register(dispatcher);
|
||||
}
|
||||
|
||||
@SubscribeEvent
|
||||
|
|
|
|||
|
|
@ -0,0 +1,22 @@
|
|||
package com.r3944realms.leashedplayer.content;
|
||||
|
||||
import com.mojang.blaze3d.platform.InputConstants;
|
||||
import net.minecraft.client.KeyMapping;
|
||||
import net.neoforged.neoforge.client.settings.KeyConflictContext;
|
||||
import net.neoforged.neoforge.client.settings.KeyModifier;
|
||||
import org.lwjgl.glfw.GLFW;
|
||||
|
||||
public class ModKeyMapping {
|
||||
static String KEY_ROOT_ = "key.leashedplayer.";
|
||||
public static String CATEGORY = "key.leashedplayer.category";
|
||||
public static String APPLY_TALKAREA_PREFERENCE_KEY = KEY_ROOT_ + "apply_talkarea_preference";
|
||||
public static final KeyMapping KEY_APPLY_TALKAREA_PREFERENCE =
|
||||
new KeyMapping(
|
||||
APPLY_TALKAREA_PREFERENCE_KEY,
|
||||
KeyConflictContext.IN_GAME,
|
||||
KeyModifier.NONE,
|
||||
InputConstants.Type.KEYSYM,
|
||||
GLFW.GLFW_KEY_I,
|
||||
CATEGORY
|
||||
);
|
||||
}
|
||||
|
|
@ -4,7 +4,8 @@ import com.mojang.brigadier.Command;
|
|||
import com.mojang.brigadier.CommandDispatcher;
|
||||
import com.mojang.brigadier.arguments.IntegerArgumentType;
|
||||
import com.mojang.brigadier.builder.LiteralArgumentBuilder;
|
||||
import com.r3944realms.leashedplayer.config.LeashPlayerCommonConfig;
|
||||
import com.r3944realms.leashedplayer.content.gamerules.GameruleRegistry;
|
||||
import com.r3944realms.leashedplayer.content.gamerules.Server.CanCommonPlayerChangeSelfTalkArea;
|
||||
import com.r3944realms.leashedplayer.modInterface.ServerPlayerCapacity;
|
||||
import net.minecraft.commands.CommandSourceStack;
|
||||
import net.minecraft.commands.Commands;
|
||||
|
|
@ -18,10 +19,12 @@ import java.util.Collection;
|
|||
import java.util.List;
|
||||
|
||||
import static com.r3944realms.leashedplayer.content.commands.Command.getLiterArgumentBuilderOfCSS;
|
||||
import static com.r3944realms.leashedplayer.content.commands.Command.SHOULD_USE_PREFIX;
|
||||
|
||||
|
||||
public class ChatCommand {
|
||||
private static final String LP_CHAT_MESSAGE_ = "leashedplayer.command.chat.message.";
|
||||
public static final String NO_RIGHT = LP_CHAT_MESSAGE_ + "no_right";
|
||||
public static final String SELF_TALK_AREA_SET = LP_CHAT_MESSAGE_ + "talkarea.self.set",
|
||||
SELF_TALK_AREA_PREFERENCE_SET = LP_CHAT_MESSAGE_ + "talkarea.self.preference.set",
|
||||
SELF_TALK_AREA_PREFERENCE_NOT_SET = LP_CHAT_MESSAGE_ + "talkarea.self.preference_not_set",
|
||||
|
|
@ -33,13 +36,17 @@ public class ChatCommand {
|
|||
TALK_AREA_UNLIMITED = LP_CHAT_MESSAGE_ + "talkarea.unlimited",
|
||||
TALK_AREA_CURRENT_CONFIG = LP_CHAT_MESSAGE_ + "talkarea.current_config";
|
||||
public static void register(CommandDispatcher<CommandSourceStack> dispatcher) {
|
||||
boolean shouldUsePrefix = LeashPlayerCommonConfig.EnableLeashPlayerCommandPrefix.get();
|
||||
@Nullable List<LiteralArgumentBuilder<CommandSourceStack>> nodeList = shouldUsePrefix ? null : new ArrayList<>();
|
||||
@Nullable List<LiteralArgumentBuilder<CommandSourceStack>> nodeList = SHOULD_USE_PREFIX ? null : new ArrayList<>();
|
||||
LiteralArgumentBuilder<CommandSourceStack> literalArgumentBuilder = Commands.literal(com.r3944realms.leashedplayer.content.commands.Command.PREFIX);
|
||||
LiteralArgumentBuilder<CommandSourceStack> $$leashRoot = getLiterArgumentBuilderOfCSS("talkArea", !shouldUsePrefix, nodeList);
|
||||
LiteralArgumentBuilder<CommandSourceStack> $$leashRoot = getLiterArgumentBuilderOfCSS("talkArea", !SHOULD_USE_PREFIX, nodeList);
|
||||
Command<CommandSourceStack> chat$self$talkArea_set = (context -> {
|
||||
CommandSourceStack source = context.getSource();
|
||||
ServerPlayerCapacity serverPlayer = (ServerPlayerCapacity) source.getPlayerOrException();
|
||||
ServerPlayer player = source.getPlayerOrException();
|
||||
ServerPlayerCapacity serverPlayer = (ServerPlayerCapacity) player;
|
||||
if((!player.hasPermissions(2) && !GameruleRegistry.getGameruleBoolValue(source.getLevel(), CanCommonPlayerChangeSelfTalkArea.ID))) {
|
||||
source.sendFailure(Component.translatable(NO_RIGHT));
|
||||
return 1;
|
||||
}
|
||||
int integer = IntegerArgumentType.getInteger(context, "talkAreaRadius");
|
||||
serverPlayer.setTalkArea(integer);
|
||||
source.sendSuccess(() -> Component.translatable(SELF_TALK_AREA_SET, integer),true);
|
||||
|
|
@ -47,7 +54,12 @@ public class ChatCommand {
|
|||
});
|
||||
Command<CommandSourceStack> chat$self$talkArea_preference_set = (context -> {
|
||||
CommandSourceStack source = context.getSource();
|
||||
ServerPlayerCapacity serverPlayer = (ServerPlayerCapacity) source.getPlayerOrException();
|
||||
ServerPlayer player = source.getPlayerOrException();
|
||||
ServerPlayerCapacity serverPlayer = (ServerPlayerCapacity) player;
|
||||
if((!player.hasPermissions(2) && !GameruleRegistry.getGameruleBoolValue(source.getLevel(), CanCommonPlayerChangeSelfTalkArea.ID))) {
|
||||
source.sendFailure(Component.translatable(NO_RIGHT));
|
||||
return 1;
|
||||
}
|
||||
int integer = IntegerArgumentType.getInteger(context, "talkAreaPreferenceRadius");
|
||||
serverPlayer.setTalkAreaPreference(integer);
|
||||
source.sendSuccess(() -> Component.translatable(SELF_TALK_AREA_PREFERENCE_SET, integer),true);
|
||||
|
|
@ -55,7 +67,12 @@ public class ChatCommand {
|
|||
});
|
||||
Command<CommandSourceStack> chat$self$talkArea_usePreference = (context -> {
|
||||
CommandSourceStack source = context.getSource();
|
||||
ServerPlayerCapacity serverPlayer = (ServerPlayerCapacity) source.getPlayerOrException();
|
||||
ServerPlayer player = source.getPlayerOrException();
|
||||
ServerPlayerCapacity serverPlayer = (ServerPlayerCapacity) player;
|
||||
if((!player.hasPermissions(2) && !GameruleRegistry.getGameruleBoolValue(source.getLevel(), CanCommonPlayerChangeSelfTalkArea.ID))) {
|
||||
source.sendFailure(Component.translatable(NO_RIGHT));
|
||||
return 1;
|
||||
}
|
||||
if(serverPlayer.getTalkAreaPreference() == -1) {
|
||||
source.sendFailure(Component.translatable(SELF_TALK_AREA_PREFERENCE_NOT_SET));
|
||||
return 1;
|
||||
|
|
@ -67,8 +84,11 @@ public class ChatCommand {
|
|||
});
|
||||
Command<CommandSourceStack> chat$self$talkArea_unlimited = (context -> {
|
||||
CommandSourceStack source = context.getSource();
|
||||
ServerPlayerCapacity serverPlayer = (ServerPlayerCapacity) source.getPlayerOrException();
|
||||
serverPlayer.setTalkArea(-1);
|
||||
ServerPlayer player = source.getPlayerOrException();
|
||||
if((!player.hasPermissions(2) && !GameruleRegistry.getGameruleBoolValue(source.getLevel(), CanCommonPlayerChangeSelfTalkArea.ID))) {
|
||||
source.sendFailure(Component.translatable(NO_RIGHT));
|
||||
return 1;
|
||||
}
|
||||
source.sendSuccess(() -> Component.translatable(SELF_TALK_AREA_UNLIMITED),true);
|
||||
return 0;
|
||||
});
|
||||
|
|
@ -153,7 +173,7 @@ public class ChatCommand {
|
|||
.executes(chat$talkArea_unlimited))
|
||||
.then(Commands.literal("currentConfig")
|
||||
.executes(chat$talkArea_getCurrentConfig)));
|
||||
if(shouldUsePrefix) {
|
||||
if(SHOULD_USE_PREFIX) {
|
||||
literalArgumentBuilder.then(selfTalkAreaSet);
|
||||
literalArgumentBuilder.then(TalkAreaCommon);
|
||||
dispatcher.register(literalArgumentBuilder);
|
||||
|
|
|
|||
|
|
@ -10,7 +10,7 @@ import java.util.List;
|
|||
|
||||
public class Command {
|
||||
public static final String PREFIX = LeashPlayerCommonConfig.LeashedPlayerModCommandPrefix.get();
|
||||
|
||||
public static boolean SHOULD_USE_PREFIX = LeashPlayerCommonConfig.EnableLeashPlayerCommandPrefix.get();
|
||||
static LiteralArgumentBuilder<CommandSourceStack> getLiterArgumentBuilderOfCSS(String name, boolean shouldAddToList, @Nullable List<LiteralArgumentBuilder<CommandSourceStack>> list) {
|
||||
LiteralArgumentBuilder<CommandSourceStack> literal = Commands.literal(name);
|
||||
if (shouldAddToList) {
|
||||
|
|
|
|||
|
|
@ -0,0 +1,58 @@
|
|||
package com.r3944realms.leashedplayer.content.commands;
|
||||
|
||||
import com.mojang.brigadier.CommandDispatcher;
|
||||
import com.mojang.brigadier.builder.LiteralArgumentBuilder;
|
||||
import net.minecraft.commands.CommandSourceStack;
|
||||
import net.minecraft.commands.Commands;
|
||||
import net.minecraft.commands.arguments.EntityArgument;
|
||||
import net.minecraft.network.Connection;
|
||||
import net.minecraft.network.PacketSendListener;
|
||||
import net.minecraft.network.chat.Component;
|
||||
import net.minecraft.network.chat.MutableComponent;
|
||||
import net.minecraft.network.protocol.common.ClientboundDisconnectPacket;
|
||||
import net.minecraft.server.level.ServerPlayer;
|
||||
import org.jetbrains.annotations.Nullable;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
|
||||
import static com.r3944realms.leashedplayer.content.commands.Command.getLiterArgumentBuilderOfCSS;
|
||||
import static com.r3944realms.leashedplayer.content.commands.Command.SHOULD_USE_PREFIX;
|
||||
|
||||
public class DebugCommand {
|
||||
public static void register(CommandDispatcher<CommandSourceStack> dispatcher) {
|
||||
@Nullable List<LiteralArgumentBuilder<CommandSourceStack>> nodeList = SHOULD_USE_PREFIX ? null : new ArrayList<>();
|
||||
LiteralArgumentBuilder<CommandSourceStack> literalArgumentBuilder = Commands.literal(com.r3944realms.leashedplayer.content.commands.Command.PREFIX);
|
||||
LiteralArgumentBuilder<CommandSourceStack> $$DebugRoot = getLiterArgumentBuilderOfCSS("debug", !SHOULD_USE_PREFIX, nodeList);
|
||||
com.mojang.brigadier.Command<CommandSourceStack> kickTargets = context -> {
|
||||
for(ServerPlayer entity : EntityArgument.getPlayers(context, "targets")){
|
||||
MutableComponent literal = Component.literal("You are already connected to this proxy!");
|
||||
Connection connection = entity.connection.getConnection();
|
||||
connection.send(new ClientboundDisconnectPacket(literal), PacketSendListener.thenRun(() -> connection.disconnect(literal)));
|
||||
}
|
||||
return 0;
|
||||
};
|
||||
com.mojang.brigadier.Command<CommandSourceStack> kickSelf = context -> {
|
||||
CommandSourceStack source = context.getSource();
|
||||
if (source.getEntity() instanceof ServerPlayer serverPlayer) {
|
||||
MutableComponent literal = Component.literal("You are already connected to this proxy!");
|
||||
Connection connection = serverPlayer.connection.getConnection();
|
||||
connection.send(new ClientboundDisconnectPacket(literal), PacketSendListener.thenRun(() -> connection.disconnect(literal)));
|
||||
}
|
||||
return 0;
|
||||
};
|
||||
LiteralArgumentBuilder<CommandSourceStack> debugKick = $$DebugRoot.requires(commandSourceStack -> commandSourceStack.hasPermission(2))
|
||||
.then(
|
||||
Commands.literal("kick").executes(kickSelf)
|
||||
.then(Commands.argument("targets", EntityArgument.entities())
|
||||
.executes(kickTargets)
|
||||
)
|
||||
);
|
||||
if(SHOULD_USE_PREFIX){
|
||||
literalArgumentBuilder.then(debugKick);
|
||||
dispatcher.register(literalArgumentBuilder);
|
||||
} else {
|
||||
nodeList.forEach(dispatcher::register);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
@ -29,6 +29,7 @@ import java.util.Collection;
|
|||
import java.util.List;
|
||||
|
||||
import static com.r3944realms.leashedplayer.content.commands.Command.getLiterArgumentBuilderOfCSS;
|
||||
import static com.r3944realms.leashedplayer.content.commands.Command.SHOULD_USE_PREFIX;
|
||||
|
||||
public class LeashCommand {
|
||||
public static final Integer MIN_VALUE = LeashPlayerCommonConfig.MinimumLeashLengthCanBeSet.get();
|
||||
|
|
@ -54,10 +55,9 @@ public class LeashCommand {
|
|||
;
|
||||
|
||||
public static void register(CommandDispatcher<CommandSourceStack> dispatcher) {
|
||||
boolean shouldUsePrefix = LeashPlayerCommonConfig.EnableLeashPlayerCommandPrefix.get();
|
||||
@Nullable List<LiteralArgumentBuilder<CommandSourceStack>> nodeList = shouldUsePrefix ? null : new ArrayList<>();
|
||||
@Nullable List<LiteralArgumentBuilder<CommandSourceStack>> nodeList = SHOULD_USE_PREFIX ? null : new ArrayList<>();
|
||||
LiteralArgumentBuilder<CommandSourceStack> literalArgumentBuilder = Commands.literal(com.r3944realms.leashedplayer.content.commands.Command.PREFIX);
|
||||
LiteralArgumentBuilder<CommandSourceStack> $$leashRoot = getLiterArgumentBuilderOfCSS("leash", !shouldUsePrefix, nodeList);
|
||||
LiteralArgumentBuilder<CommandSourceStack> $$leashRoot = getLiterArgumentBuilderOfCSS("leash", !SHOULD_USE_PREFIX, nodeList);
|
||||
|
||||
Command<CommandSourceStack> getSelfLeashLength = context -> {
|
||||
CommandSourceStack source = context.getSource();
|
||||
|
|
@ -393,7 +393,7 @@ public class LeashCommand {
|
|||
)
|
||||
);
|
||||
|
||||
if(shouldUsePrefix) {
|
||||
if(SHOULD_USE_PREFIX) {
|
||||
literalArgumentBuilder
|
||||
.then(RefPlayerLeashLength)
|
||||
.then(SelfLeashLength)
|
||||
|
|
|
|||
|
|
@ -4,7 +4,6 @@ import com.mojang.brigadier.Command;
|
|||
import com.mojang.brigadier.CommandDispatcher;
|
||||
import com.mojang.brigadier.arguments.DoubleArgumentType;
|
||||
import com.mojang.brigadier.builder.LiteralArgumentBuilder;
|
||||
import com.r3944realms.leashedplayer.config.LeashPlayerCommonConfig;
|
||||
import com.r3944realms.leashedplayer.network.client.UpdatePlayerMovement;
|
||||
import net.minecraft.commands.CommandSourceStack;
|
||||
import net.minecraft.commands.Commands;
|
||||
|
|
@ -20,6 +19,7 @@ import java.util.ArrayList;
|
|||
import java.util.List;
|
||||
|
||||
import static com.r3944realms.leashedplayer.content.commands.Command.getLiterArgumentBuilderOfCSS;
|
||||
import static com.r3944realms.leashedplayer.content.commands.Command.SHOULD_USE_PREFIX;
|
||||
|
||||
public class MotionCommand {
|
||||
private final static String LEASHED_PLAYER_MOTION_MESSAGE_ = "leashedplayer.command.motion.message.";
|
||||
|
|
@ -27,10 +27,9 @@ public class MotionCommand {
|
|||
MOTION_ADDER_SUCCESSFUL = LEASHED_PLAYER_MOTION_MESSAGE_ + "adder.successful",
|
||||
MOTION_MULTIPLY_SUCCESSFUL = LEASHED_PLAYER_MOTION_MESSAGE_ + "multiply.successful";
|
||||
public static void register(CommandDispatcher<CommandSourceStack> dispatcher) {
|
||||
boolean shouldUsePrefix = LeashPlayerCommonConfig.EnableLeashPlayerCommandPrefix.get();
|
||||
@Nullable List<LiteralArgumentBuilder<CommandSourceStack>> nodeList = shouldUsePrefix ? null : new ArrayList<>();
|
||||
@Nullable List<LiteralArgumentBuilder<CommandSourceStack>> nodeList = SHOULD_USE_PREFIX ? null : new ArrayList<>();
|
||||
LiteralArgumentBuilder<CommandSourceStack> literalArgumentBuilder = Commands.literal(com.r3944realms.leashedplayer.content.commands.Command.PREFIX);
|
||||
LiteralArgumentBuilder<CommandSourceStack> $$motionRoot = getLiterArgumentBuilderOfCSS("motion", !shouldUsePrefix, nodeList);
|
||||
LiteralArgumentBuilder<CommandSourceStack> $$motionRoot = getLiterArgumentBuilderOfCSS("motion", !SHOULD_USE_PREFIX, nodeList);
|
||||
com.mojang.brigadier.Command<CommandSourceStack> motionVecAdder = context -> {
|
||||
CommandSourceStack source = context.getSource();
|
||||
for(Entity entity : EntityArgument.getEntities(context, "targets")){
|
||||
|
|
@ -116,7 +115,7 @@ public class MotionCommand {
|
|||
)
|
||||
)
|
||||
);
|
||||
if(shouldUsePrefix){
|
||||
if(SHOULD_USE_PREFIX){
|
||||
literalArgumentBuilder.then(Motion);
|
||||
dispatcher.register(literalArgumentBuilder);
|
||||
} else {
|
||||
|
|
|
|||
|
|
@ -4,7 +4,6 @@ import com.mojang.brigadier.CommandDispatcher;
|
|||
import com.mojang.brigadier.arguments.FloatArgumentType;
|
||||
import com.mojang.brigadier.arguments.IntegerArgumentType;
|
||||
import com.mojang.brigadier.builder.LiteralArgumentBuilder;
|
||||
import com.r3944realms.leashedplayer.config.LeashPlayerCommonConfig;
|
||||
import net.minecraft.commands.CommandSourceStack;
|
||||
import net.minecraft.commands.Commands;
|
||||
import net.minecraft.commands.SharedSuggestionProvider;
|
||||
|
|
@ -19,15 +18,15 @@ import java.util.Arrays;
|
|||
import java.util.List;
|
||||
|
||||
import static com.r3944realms.leashedplayer.content.commands.Command.getLiterArgumentBuilderOfCSS;
|
||||
import static com.r3944realms.leashedplayer.content.commands.Command.SHOULD_USE_PREFIX;
|
||||
|
||||
public class TickCommand {
|
||||
private static final String DEFAULT_TICKRATE = String.valueOf(20);
|
||||
|
||||
public static void register(CommandDispatcher<CommandSourceStack> dispatcher) {
|
||||
boolean shouldUsePrefix = LeashPlayerCommonConfig.EnableLeashPlayerCommandPrefix.get();
|
||||
@Nullable List<LiteralArgumentBuilder<CommandSourceStack>> nodeList = shouldUsePrefix ? null : new ArrayList<>();
|
||||
@Nullable List<LiteralArgumentBuilder<CommandSourceStack>> nodeList = SHOULD_USE_PREFIX ? null : new ArrayList<>();
|
||||
LiteralArgumentBuilder<CommandSourceStack> literalArgumentBuilder = Commands.literal(com.r3944realms.leashedplayer.content.commands.Command.PREFIX);
|
||||
LiteralArgumentBuilder<CommandSourceStack> $$TickRoot = getLiterArgumentBuilderOfCSS("tick", !shouldUsePrefix, nodeList);
|
||||
LiteralArgumentBuilder<CommandSourceStack> $$TickRoot = getLiterArgumentBuilderOfCSS("tick", !SHOULD_USE_PREFIX, nodeList);
|
||||
|
||||
LiteralArgumentBuilder<CommandSourceStack> Tick = $$TickRoot.requires(p_308941_ -> p_308941_.hasPermission(2))
|
||||
.then(Commands.literal("query").executes(p_308950_ -> tickQuery(p_308950_.getSource())))
|
||||
|
|
@ -60,7 +59,7 @@ public class TickCommand {
|
|||
)
|
||||
.then(Commands.literal("unfreeze").executes(p_309184_ -> setFreeze(p_309184_.getSource(), false)))
|
||||
.then(Commands.literal("freeze").executes(p_309070_ -> setFreeze(p_309070_.getSource(), true)));
|
||||
if(shouldUsePrefix){
|
||||
if(SHOULD_USE_PREFIX){
|
||||
literalArgumentBuilder.then(Tick);
|
||||
dispatcher.register(literalArgumentBuilder);
|
||||
} else {
|
||||
|
|
|
|||
|
|
@ -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 CanCommonPlayerChangeSelfTalkArea {
|
||||
public static final boolean DEFAULT_VALUE = true;
|
||||
public static final String ID = Util.getGameruleName(CanCommonPlayerChangeSelfTalkArea.class);
|
||||
public static final String DESCRIPTION_KEY = Gamerules.getDescriptionKey(CanCommonPlayerChangeSelfTalkArea.class);
|
||||
public static final String NAME_KEY = Gamerules.getNameKey(CanCommonPlayerChangeSelfTalkArea.class);
|
||||
public static final GameRules.Category CATEGORY = GameRules.Category.PLAYER;
|
||||
|
||||
@SubscribeEvent
|
||||
public static void onCommonSetup(final FMLCommonSetupEvent event) {
|
||||
GAMERULE_REGISTRY.registerGamerule(ID, CATEGORY, DEFAULT_VALUE);
|
||||
}
|
||||
}
|
||||
|
|
@ -1,6 +1,7 @@
|
|||
package com.r3944realms.leashedplayer.datagen.LanguageAndOtherData;
|
||||
|
||||
import com.r3944realms.leashedplayer.ClientEventHandler;
|
||||
import com.r3944realms.leashedplayer.content.ModKeyMapping;
|
||||
import com.r3944realms.leashedplayer.content.commands.ChatCommand;
|
||||
import com.r3944realms.leashedplayer.content.commands.LeashCommand;
|
||||
import com.r3944realms.leashedplayer.content.commands.MotionCommand;
|
||||
|
|
@ -29,6 +30,8 @@ import static com.r3944realms.leashedplayer.content.items.ModCreativeTab.LEASHED
|
|||
|
||||
public enum ModLangKeyValue {
|
||||
ADDICTION(ClientEventHandler.ADDICTION, ModPartEnum.NAME, "You've triggered the anti-addiction mechanic, and you'll come back when you rest!", "你触发了防沉迷机制,休息会再来吧!", "你觸發了防沉迷機制,休息會再來吧!", false),
|
||||
KEY_CATEGORY(ModKeyMapping.CATEGORY, ModPartEnum.NAME, "Leashed Player", "可拴玩家", "可拴玩家", false),
|
||||
KEY_APPLY_TALKAREA(ModKeyMapping.APPLY_TALKAREA_PREFERENCE_KEY, ModPartEnum.NAME, "Apply TalkArea Preference", "应用可见区域预设", "應用設置可見區域預設", false),
|
||||
//ITEM
|
||||
ITEM_LEASH_ROPE_ARROW(ModItemRegister.LEASH_ROPE_ARROW, ModPartEnum.ITEM, "Leash Rope Arrow", "拴绳箭", "拴繩箭", true),
|
||||
ITEM_SPECTRAL_LEASH_ROPE_ARROW(ModItemRegister.SPECTRAL_LEASH_ROPE_ARROW, ModPartEnum.ITEM, "Spectral Leash Rope Arrow", "拴绳光灵箭", "拴繩光靈箭", true),
|
||||
|
|
@ -87,13 +90,15 @@ public enum ModLangKeyValue {
|
|||
MESSAGE_CHAT_TALKAREA_UNLIMITED(ChatCommand.TALK_AREA_UNLIMITED, ModPartEnum.COMMAND, "%s 's §atalk area unlimited!§r", "%s§a聊天区域半径无限制§r", "%s§a聊天區域半徑無限制§r","%s§a语矢无限§r" ,false),
|
||||
MESSAGE_CHAT_TALKAREA_PREFERENCE_NOT_SET(ChatCommand.TALK_AREA_PREFERENCE_NOT_SET, ModPartEnum.COMMAND, "%s 's talk area preference is not set!", "%s未设置默认可见消息聊天区域半径", "%s未設置可見訊息聊天半徑", "%s未置默视之",false),
|
||||
MESSAGE_CHAT_TALKAREA_CURRENT_CONFIG(ChatCommand.TALK_AREA_CURRENT_CONFIG, ModPartEnum.COMMAND, "%s 's §6TalkArea Current§7:§e %d §6blocks §f(§aPrefence§7:§e %d §ablocks§f)§r", "%s§6目前聊天区域可见半径设置§7:§e %d §6格 §f(§a默认值§7:§e %d §a格§f)§r", "%s§6目前可見訊息聊天半徑設置§7:§e%d §6格 §f(§a默認值§7:§e%d §a格§f)§r", "%s§6今聊城可知半径置§e %d§6格§f(§a默§7:§e%d格§f)§r",false),
|
||||
MESSAGE_CHAT_TALKAREA_NO_RIGHT(ChatCommand.NO_RIGHT, ModPartEnum.COMMAND, "You haven't the right to do that!", "你无权这样做!", "你無權這麽做!", false),
|
||||
|
||||
//GAME_RULE_NAME
|
||||
DEFAULT_AREA_TALK_NAME(DefaultTalkArea.NAME_KEY, ModPartEnum.NAME, "Default Area Talk", "默认聊天区域可见半径", "默認聊天區域可見半徑",false),
|
||||
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),
|
||||
TELEPORT_WITH_LEASHED_PLAYERS_NAME(TeleportWithLeashedPlayers.NAME_KEY, ModPartEnum.NAME, "Teleport leashed player with player holder", "被拴玩家随玩家持有者传送", "被拴玩家随玩家持有者傳送" ,false),
|
||||
CREATE_LEASH_FENCE_KNOT_ENTITY_IF_ABSENT_NAME(CreateLeashFenceKnotEntityIfAbsent.NAME_KEY, ModPartEnum.NAME, "Create Leash Fence Knot Entity if absent", "如果缺失则创建拴绳结", "如果缺失則創建拴繩結", false),
|
||||
KEEP_LEASH_NOT_DROP_TIME_NAME(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),
|
||||
CAN_COMMON_PLAYER_CHANGER_SELF_TALKAREA_NAME(CanCommonPlayerChangeSelfTalkArea.NAME_KEY, ModPartEnum.NAME, "Should Non-OP Player can change their TalkArea", "非OP应该可以修改自己的聊天可见半径吗?", "非OP應該可以修改自己的聊天可見半徑嗎?", false),
|
||||
// DISABLE_MOVE_CHECK(DisablePlayerMoveCheck.NAME_KEY, ModPartEnum.NAME, "Disable Player Move Check", "禁止检查玩家移动", "禁止檢查玩家移動", false),
|
||||
|
||||
//GAME_RULE_DESCRIPTION
|
||||
|
|
@ -103,6 +108,8 @@ public enum ModLangKeyValue {
|
|||
// 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),
|
||||
CAN_COMMON_PLAYER_CHANGER_SELF_TALKAREA_DESCRIPTION(CanCommonPlayerChangeSelfTalkArea.DESCRIPTION_KEY, ModPartEnum.DESCRIPTION, "Above on its Name", "同名", "同名", false),
|
||||
|
||||
//ADV_NAME
|
||||
LEASH_START(ModAdvancementKey.LEASH_START.getNameKey(), ModPartEnum.NAME, "The Power of Traction", "牵引之力", "牽引之力", false),
|
||||
LEASH_LR_ARROW(ModAdvancementKey.LEASH_ARROW.getNameKey(), ModPartEnum.NAME, "Arrow with a Tether?" , "拴绳之箭?", "拴繩之箭?", false),
|
||||
|
|
|
|||
Loading…
Reference in New Issue
Block a user