Orion_shadow 发表于 2020-6-20 15:53
我是个新手,,不过下面这个方法可以试试看
ICommand接口内有个方法叫做
我这个事1.12.2的,,
编程新手,来学习下呀
本帖最后由 洞穴夜莺 于 2020-6-25 21:44 编辑
首先由于你要发送消息给玩家,所以你的命令要改成只有玩家有权执行,对于服务器后台等杂七杂八的CommandSource直接告诉他没有权限
复制代码
然后发送消息
复制代码
复制代码
其中0.5是音量,1.0是音调,这里直接发包而不是调用playSound是因为playSound会让该玩家附近的玩家也听到声音
综上所述
复制代码
首先由于你要发送消息给玩家,所以你的命令要改成只有玩家有权执行,对于服务器后台等杂七杂八的CommandSource直接告诉他没有权限
- .requires(src -> src.getEntity() instanceof ServerPlayerEntity)
然后发送消息
- player.sendMessage(new LiteralText("Hello World"));
- player.networkHandler.sendPacket(new PlaySoundS2CPacket(SoundEvents.UI_TOAST_CHALLENGE_COMPLETE, SoundCategory.AMBIENT,
- player.getX() + 0.5, player.getY() + 1.0, player.getZ() + 0.5,0.5f, 1.0f));
其中0.5是音量,1.0是音调,这里直接发包而不是调用playSound是因为playSound会让该玩家附近的玩家也听到声音
综上所述
- CommandRegistry.INSTANCE.register(false, dispatcher -> {
- dispatcher.register(CommandManager.literal("shoo").requires(src -> src.getEntity() instanceof ServerPlayerEntity).executes( ctx -> {
- ServerPlayerEntity player = ctx.getSource().getPlayer();
- player.sendMessage(new LiteralText("Hello World"));
- player.networkHandler.sendPacket(new PlaySoundS2CPacket(SoundEvents.UI_TOAST_CHALLENGE_COMPLETE, SoundCategory.AMBIENT,
- player.getX() + 0.5, player.getY() + 1.0, player.getZ() + 0.5,0.5f, 1.0f));
- return 1;
- }));
- });