是否有命令获取本地播放器的显示名称。 因此,如果我创建聊天消息,所有玩家都会在聊天中看到自己的名字。这是可能的和如何?本地播放器Bukkit/Spigot开发
-2
A
回答
2
不,你不能得到“本地”玩家的名字,因为谁会运行代码是服务器,而不是客户端,所以你不能得到它,因为没有本地玩家。但是,您仍然可以为具有不同名称的不同人员发送自定义消息来模拟此效果。
总部设在this例如,你可以简单的通过/ tellraw命令将消息发送到您要发送的消息,例如玩家:
public static void sendMessage(String playerName, String msg) {
Bukkit.getServer().dispatchCommand(Bukkit.getConsoleSender(),
"/tellraw " + playerName + " {\"text\":\"" + msg.replaceAll("<playername>", playerName) + "\"}");
}
在这种情况下,我使用<playername>
作为一个关键字来引用播放器,所以Hello <playername>
应该返回Hello yourname
... 但是,如果没有Player对象,并且不浪费机器创建它的时间,这种解决方案会更好,您可以简单地使用tellraw。 ..但要简化回答,你可以使用Player::sendMessage
方法(引用bcsb1001):
public static void sendMessage(Player player, String msg){
player.sendMessage(msg.replaceAll("<playername>", player.getName()));
}
好的,但我怎样才能把它发送给每个人在一个组或阵列?
在这种情况下,您可以为每个玩家使用for each
循环。
这里是全代码发送hello报文的每一个玩家在线:
public static void sayHelloToEveryone() {
String msg = "Hello <playername>!";
for (Player p : Bukkit.getServer().getOnlinePlayers()) {
p.sendMessage(msg.replaceAll("<playername>", p.getName()));
}
}
因此,当您使用sayHelloToEveryone()
,它会根据自己的名义发送一条消息给大家:
如果有史蒂夫·鲁本线上,服务器会发送一个不同的消息,这两个用户:
史蒂夫的聊天:Hello Steve!
Ruben的聊天:Hello Ruben!
相关问题
- 1. 嵌入式播放器软件开发
- 2. AI汽车电脑播放器开发
- 3. Android上的视频播放器(开发)
- 4. 是否可以在j2me开发中调用本地播放器并播放视频?
- 5. 怎样的flash播放器播放本地MP4文件
- 6. 用YouTube播放器播放本地视频
- 7. Android:使用媒体播放器播放本地视频
- 8. 使用android本地播放器播放vimeo视频?
- 9. 无法使用ios本地播放器从drobox播放视频
- 10. Spark视频播放器:seek()用于本地播放
- 11. 如何在本地播放器中播放HTML 5视频?
- 12. Android本地媒体播放器未开启完成方法
- 13. 播放本地的Adobe Media服务器
- 14. GK本地播放器认证
- 15. youtube视频在Android本地播放器
- 16. 反应本机开发的Nox应用程序播放器
- 17. 播放本地视频Android
- 18. 在本地播放flv
- 19. AVPlayer不播放本地MP4
- 20. 开源SCORM播放器
- 21. Html5播放器在网络视图中打开iOS中的本地播放器中的视频10
- 22. 离开视图后无法播放AVAudio播放器与AVAudio播放器
- 23. 开放源代码媒体播放器
- 24. Spotify开放音频播放器
- 25. 从内存播放列表的开放媒体播放器
- 26. 反应本机开放本地地图
- 27. 如何在移动设备上的本地播放器中播放HTML5视频?
- 28. Qt C++如何通过android的本地播放器播放视频
- 29. 在本地视频播放器中的队列URL在队列中播放
- 30. Zurb Foundation Reveal关闭时停止播放视频(本地Wordpress播放器)
当你只需要执行'Player :: sendMessage'时,使用tellraw有什么意义?你没有使用任何需要tellraw JSON的东西。 – bcsb1001
@ bcsb1001使用tellraw的一点是,你实际上可以指定玩家的名字,而不是玩家对象,如果你打算在一个命令中指定他们,就会更容易......不过,我要添加这个从OP请求广播到答案,谢谢! – Mateus