FabricMod 1.15.2:
例如,一个叫“AAbb”的玩家,在游戏内输入“/shoo”,输入完毕后服务器向玩家发送“HelloWorld”消息,并播放“minecraft:ui.toast.challenge_complete ambient”声音
我用System.out.println()会将消息发送至控制台,我想让其发送到玩家游戏聊天框,并且播放Minecraft原版声音:minecraft:ui.toast.challenge_complete ambient
例如,一个叫“AAbb”的玩家,在游戏内输入“/shoo”,输入完毕后服务器向玩家发送“HelloWorld”消息,并播放“minecraft:ui.toast.challenge_complete ambient”声音
我用System.out.println()会将消息发送至控制台,我想让其发送到玩家游戏聊天框,并且播放Minecraft原版声音:minecraft:ui.toast.challenge_complete ambient
因为没接触过mod
所以只能提供一点思路
先获取到输入指令的玩家 以player为例
当player输入指令后 先要给他发消息
应该是类似player.sendMessage(msg);
然后是播放声音 player.playSound(sound);
以上代码是Bukkit的代码 这里只是作为例子提供思路
具体实现以fabric的方法为准
所以只能提供一点思路
先获取到输入指令的玩家 以player为例
当player输入指令后 先要给他发消息
应该是类似player.sendMessage(msg);
然后是播放声音 player.playSound(sound);
以上代码是Bukkit的代码 这里只是作为例子提供思路
具体实现以fabric的方法为准
我是个新手,,不过下面这个方法可以试试看
ICommand接口内有个方法叫做
复制代码
可以实现这个接口的方法或者继承这个接口的实现类,CommandBase,都可以自己实现这个方法。
播放音乐可以在execute内部使用下面这个方法试试
复制代码
然后就是利用sender的这个方法,就可以吧需要发送的发送到玩家聊天窗口
复制代码
ICommand接口内有个方法叫做
- void execute(MinecraftServer server, ICommandSender sender, String[] args) throws CommandException;
可以实现这个接口的方法或者继承这个接口的实现类,CommandBase,都可以自己实现这个方法。
播放音乐可以在execute内部使用下面这个方法试试
- world.playSound(null, player.posX, player.posY, player.posZ, SoundLoader.TRANSMUTE, SoundCategory.PLAYERS, 1, 1);
然后就是利用sender的这个方法,就可以吧需要发送的发送到玩家聊天窗口
- sender.sendMessage(new TextComponentTranslation("commands.success");