From eb85fff326371aadf363f97303217e772f59dd27 Mon Sep 17 00:00:00 2001 From: TheWhiteDog9487 <60037547+TheWhiteDog9487@users.noreply.github.com> Date: Sun, 5 Oct 2025 14:08:52 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BD=BF=E5=8D=95=E4=B8=AA=E6=A0=B9=E5=90=8D?= =?UTF-8?q?=E7=A7=B0=E7=9A=84=E5=91=BD=E4=BB=A4=E6=A0=91=E4=B8=80=E6=AC=A1?= =?UTF-8?q?=E6=80=A7=E5=AE=8C=E6=88=90=E6=B3=A8=E5=86=8C=20=E5=B9=B6?= =?UTF-8?q?=E4=B8=94=E7=8E=B0=E5=9C=A8=E7=94=B1Minecraft=E8=87=AA=E5=B7=B1?= =?UTF-8?q?=E7=9A=84=E5=91=BD=E4=BB=A4=E8=A7=A3=E6=9E=90=E5=99=A8=E7=A1=AE?= =?UTF-8?q?=E4=BF=9D=E7=94=A8=E6=88=B7=E8=BE=93=E5=85=A5=E7=9A=84=E9=9A=8F?= =?UTF-8?q?=E6=9C=BA=E5=8D=8A=E5=BE=84>=3D0=20=E8=BF=94=E5=9B=9E=E6=A0=87?= =?UTF-8?q?=E5=87=86Command.SINGLE=5FSUCCESS?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../xyz/thewhitedog9487/CommandRegister.java | 180 +++++++----------- 1 file changed, 70 insertions(+), 110 deletions(-) diff --git a/src/main/java/xyz/thewhitedog9487/CommandRegister.java b/src/main/java/xyz/thewhitedog9487/CommandRegister.java index 91c5b8b..b747d1e 100644 --- a/src/main/java/xyz/thewhitedog9487/CommandRegister.java +++ b/src/main/java/xyz/thewhitedog9487/CommandRegister.java @@ -1,5 +1,6 @@ package xyz.thewhitedog9487; +import com.mojang.brigadier.Command; import com.mojang.brigadier.arguments.IntegerArgumentType; import net.fabricmc.fabric.api.command.v2.CommandRegistrationCallback; import net.minecraft.block.Blocks; @@ -44,147 +45,107 @@ public class CommandRegister { * @see Fabric Wiki (Old style,English) */ public static void Register(String Name){ - // /rtp CommandRegistrationCallback.EVENT .register((dispatcher, registryAccess, environment) ->{ dispatcher.register(literal(Name) + // /rtp .requires(source -> source.hasPermissionLevel(PermissionLevel)) - .executes(context -> execute_command( - context.getSource(),null,null, null)));}); - - // /rtp - CommandRegistrationCallback.EVENT - .register((dispatcher, registryAccess, environment) -> { - dispatcher.register(literal(Name) - .then(argument("Radius(半径)", IntegerArgumentType.integer()) + .executes(context -> ExecuteCommand( + context.getSource(),null,null, null)) + // /rtp + .then(argument("Radius(半径)", IntegerArgumentType.integer(0)) .requires(source -> source.hasPermissionLevel(PermissionLevel)) - .executes(context -> execute_command( + .executes(context -> ExecuteCommand( context.getSource(), IntegerArgumentType.getInteger(context, "Radius(半径)"), null, - null))));}); - - // /rtp <被传送玩家名(PlayerID)> - CommandRegistrationCallback.EVENT - .register((dispatcher, registryAccess, environment) -> { - dispatcher.register(literal(Name) + null))) + // /rtp <被传送玩家名(PlayerID)> .then(argument("被传送玩家名(PlayerID)", EntityArgumentType.entity()) .requires(source -> source.hasPermissionLevel(PermissionLevel)) - .executes(context -> execute_command( + .executes(context -> ExecuteCommand( context.getSource(), null, EntityArgumentType.getEntity(context,"被传送玩家名(PlayerID)"), - null))));}); - - // /rtp <被传送玩家名(PlayerID)> - CommandRegistrationCallback.EVENT - .register((dispatcher, registryAccess, environment) -> { - dispatcher.register(literal(Name) - .then(argument("Radius(半径)", IntegerArgumentType.integer()) + null))) + // /rtp <被传送玩家名(PlayerID)> + .then(argument("Radius(半径)", IntegerArgumentType.integer(0)) .then(argument("被传送玩家名(PlayerID)", EntityArgumentType.entity()) .requires(source -> source.hasPermissionLevel(PermissionLevel)) - .executes(context -> execute_command( + .executes(context -> ExecuteCommand( context.getSource(), IntegerArgumentType.getInteger(context, "Radius(半径)"), EntityArgumentType.getEntity(context,"被传送玩家名(PlayerID)"), - null)))));}); - - // /rtp <被传送玩家名(PlayerID)> - CommandRegistrationCallback.EVENT - .register((dispatcher, registryAccess, environment) -> { - dispatcher.register(literal(Name) + null)))) + // /rtp <被传送玩家名(PlayerID)> .then(argument("被传送玩家名(PlayerID)", EntityArgumentType.entity()) - .then(argument("Radius(半径)", IntegerArgumentType.integer()) + .then(argument("Radius(半径)", IntegerArgumentType.integer(0)) .requires(source -> source.hasPermissionLevel(PermissionLevel)) - .executes(context -> execute_command( + .executes(context -> ExecuteCommand( context.getSource(), IntegerArgumentType.getInteger(context, "Radius(半径)"), EntityArgumentType.getEntity(context,"被传送玩家名(PlayerID)"), - null)))));}); - -// // /rtp -// CommandRegistrationCallback.EVENT -// .register((dispatcher, registryAccess, environment) -> { -// dispatcher.register(literal(Name) -// .then(argument("Radius(半径)", LongArgumentType.longArg()) -// .then(argument("Origin(随机中心)",EntityArgumentType.player()) -// .requires(source -> source.hasPermissionLevel(PermissionLevel)) -// .executes(context -> execute_command_origin( -// context.getSource(), -// LongArgumentType.getLong(context, "Radius(半径)"), -// null, -// EntityArgumentType.getEntity(context,"Origin(随机中心)"))))));}); - - // /rtp - CommandRegistrationCallback.EVENT - .register((dispatcher, registryAccess, environment) -> { - dispatcher.register(literal(Name) - .then(argument("Radius(半径)", IntegerArgumentType.integer()) + null)))) +// // /rtp +// .then(argument("Radius(半径)", LongArgumentType.longArg()) +// .then(argument("Origin(随机中心)",EntityArgumentType.player()) +// .requires(source -> source.hasPermissionLevel(PermissionLevel)) +// .executes(context -> execute_command_origin( +// context.getSource(), +// LongArgumentType.getLong(context, "Radius(半径)"), +// null, +// EntityArgumentType.getEntity(context,"Origin(随机中心)"))))) + // /rtp + .then(argument("Radius(半径)", IntegerArgumentType.integer(0)) .then(argument("OriginPos(随机中心,坐标)",Vec2ArgumentType.vec2()) .requires(source -> source.hasPermissionLevel(PermissionLevel)) - .executes(context -> execute_command( + .executes(context -> ExecuteCommand( context.getSource(), IntegerArgumentType.getInteger(context, "Radius(半径)"), null, - Vec2ArgumentType.getVec2(context,"OriginPos(随机中心,坐标)"))))));}); - - // /rtp <被传送玩家名(PlayerID)> - CommandRegistrationCallback.EVENT - .register((dispatcher, registryAccess, environment) -> { - dispatcher.register(literal(Name) - .then(argument("Radius(半径)", IntegerArgumentType.integer()) + Vec2ArgumentType.getVec2(context,"OriginPos(随机中心,坐标)"))))) + // /rtp <被传送玩家名(PlayerID)> + .then(argument("Radius(半径)", IntegerArgumentType.integer(0)) .then(argument("被传送玩家名(PlayerID)", EntityArgumentType.entity()) .then(argument("OriginEntity(随机中心,实体)",EntityArgumentType.entity()) .requires(source -> source.hasPermissionLevel(PermissionLevel)) - .executes(context -> execute_command( + .executes(context -> ExecuteCommand( context.getSource(), IntegerArgumentType.getInteger(context, "Radius(半径)"), EntityArgumentType.getEntity(context,"被传送玩家名(PlayerID)"), new Vec2f( (float) EntityArgumentType.getEntity( context,"OriginEntity(随机中心,实体)").getEntityPos().x, - (float) EntityArgumentType.getEntity( context,"OriginEntity(随机中心,实体)").getEntityPos().z )))))));}); - - // /rtp <被传送玩家名(PlayerID)> - CommandRegistrationCallback.EVENT - .register((dispatcher, registryAccess, environment) -> { - dispatcher.register(literal(Name) - .then(argument("Radius(半径)", IntegerArgumentType.integer()) - .then(argument("被传送玩家名(PlayerID)", EntityArgumentType.entity()) - .then(argument("OriginPos(随机中心,坐标)",Vec2ArgumentType.vec2()) - .requires(source -> source.hasPermissionLevel(PermissionLevel)) - .executes(context -> execute_command( - context.getSource(), - IntegerArgumentType.getInteger(context, "Radius(半径)"), - EntityArgumentType.getEntity(context,"被传送玩家名(PlayerID)"), - Vec2ArgumentType.getVec2(context,"OriginPos(随机中心,坐标)")))))));}); - - // /rtp <被传送玩家名(PlayerID)> - CommandRegistrationCallback.EVENT - .register((dispatcher, registryAccess, environment) -> { - dispatcher.register(literal(Name) - .then(argument("被传送玩家名(PlayerID)", EntityArgumentType.entity()) - .then(argument("Radius(半径)", IntegerArgumentType.integer()) - .then(argument("OriginEntity(随机中心,实体)",EntityArgumentType.entity()) - .requires(source -> source.hasPermissionLevel(PermissionLevel)) - .executes(context -> execute_command( - context.getSource(), - IntegerArgumentType.getInteger(context, "Radius(半径)"), - EntityArgumentType.getEntity(context,"被传送玩家名(PlayerID)"), - new Vec2f( (float) EntityArgumentType.getEntity( context,"OriginEntity(随机中心,实体)").getEntityPos().x, - (float) EntityArgumentType.getEntity( context,"OriginEntity(随机中心,实体)").getEntityPos().z )))))));}); - - // /rtp <被传送玩家名(PlayerID)> - CommandRegistrationCallback.EVENT - .register((dispatcher, registryAccess, environment) -> { - dispatcher.register(literal(Name) - .then(argument("被传送玩家名(PlayerID)", EntityArgumentType.entity()) - .then(argument("Radius(半径)", IntegerArgumentType.integer()) - .then(argument("OriginPos(随机中心,坐标)",Vec2ArgumentType.vec2()) - .requires(source -> source.hasPermissionLevel(PermissionLevel)) - .executes(context -> execute_command( - context.getSource(), - IntegerArgumentType.getInteger(context, "Radius(半径)"), - EntityArgumentType.getEntity(context,"被传送玩家名(PlayerID)"), - Vec2ArgumentType.getVec2(context,"OriginPos(随机中心,坐标)")))))));});} + (float) EntityArgumentType.getEntity( context,"OriginEntity(随机中心,实体)").getEntityPos().z )))))) + // /rtp <被传送玩家名(PlayerID)> + .then(argument("Radius(半径)", IntegerArgumentType.integer(0)) + .then(argument("被传送玩家名(PlayerID)", EntityArgumentType.entity()) + .then(argument("OriginPos(随机中心,坐标)",Vec2ArgumentType.vec2()) + .requires(source -> source.hasPermissionLevel(PermissionLevel)) + .executes(context -> ExecuteCommand( + context.getSource(), + IntegerArgumentType.getInteger(context, "Radius(半径)"), + EntityArgumentType.getEntity(context,"被传送玩家名(PlayerID)"), + Vec2ArgumentType.getVec2(context,"OriginPos(随机中心,坐标)")))))) + // /rtp <被传送玩家名(PlayerID)> + .then(argument("被传送玩家名(PlayerID)", EntityArgumentType.entity()) + .then(argument("Radius(半径)", IntegerArgumentType.integer(0)) + .then(argument("OriginEntity(随机中心,实体)",EntityArgumentType.entity()) + .requires(source -> source.hasPermissionLevel(PermissionLevel)) + .executes(context -> ExecuteCommand( + context.getSource(), + IntegerArgumentType.getInteger(context, "Radius(半径)"), + EntityArgumentType.getEntity(context,"被传送玩家名(PlayerID)"), + new Vec2f( (float) EntityArgumentType.getEntity( context,"OriginEntity(随机中心,实体)").getEntityPos().x, + (float) EntityArgumentType.getEntity( context,"OriginEntity(随机中心,实体)").getEntityPos().z )))))) + // /rtp <被传送玩家名(PlayerID)> + .then(argument("被传送玩家名(PlayerID)", EntityArgumentType.entity()) + .then(argument("Radius(半径)", IntegerArgumentType.integer(0)) + .then(argument("OriginPos(随机中心,坐标)",Vec2ArgumentType.vec2()) + .requires(source -> source.hasPermissionLevel(PermissionLevel)) + .executes(context -> ExecuteCommand( + context.getSource(), + IntegerArgumentType.getInteger(context, "Radius(半径)"), + EntityArgumentType.getEntity(context,"被传送玩家名(PlayerID)"), + Vec2ArgumentType.getVec2(context,"OriginPos(随机中心,坐标)")))))) );});} /** * 向游戏内注册命令 @@ -220,7 +181,6 @@ public class CommandRegister { return -1;} if (Radius == null){Radius = (int) (WorldBorder - 1e4);} // ↑ 远离世界边界 - Radius = Math.abs(Radius); int Coordinate_X = 0; int Coordinate_Z = 0; try { @@ -271,7 +231,7 @@ public class CommandRegister { int finalCoordinate_Y = Coordinate_Y; int finalCoordinate_Z = Coordinate_Z; // ↑ "lambda 表达式中使用的变量应为 final 或有效 final" - final var FeedbackFallbackString = String.format("已将玩家%s传送到%d %d %d", entity.getName().getString(), Coordinate_X, finalCoordinate_Y, Coordinate_Z); - Source.sendFeedback(()->{ return Text.translatableWithFallback("info.success", FeedbackFallbackString, entity.getName(), finalCoordinate_X, finalCoordinate_Y, finalCoordinate_Z); },true); - return 16;} + final var FeedbackFallbackString = String.format("已将玩家%s传送到%d %d %d", TargetEntity.getName().getString(), Coordinate_X, Coordinate_Y, Coordinate_Z); + Source.sendFeedback(()->{ return Text.translatableWithFallback("info.success", FeedbackFallbackString, TargetEntity.getName(), finalCoordinate_X, Coordinate_Y, finalCoordinate_Z); },true); + return Command.SINGLE_SUCCESS;} } \ No newline at end of file