ローカルプレイヤーの表示名を取得するコマンドはありますか? チャットメッセージを作成すると、すべてのプレイヤーがチャットで自分の名前を見ました。それは可能なのか?ローカルプレイヤー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. Xbox Liveサービスのローカルプレイヤーの最大数
- 2. iPhone開発開始
- 3. GAE開発 - 開発環境セットアップ(HotSwap)
- 4. Web開発とデスクトップ開発のASP.net
- 5. Android用開発とIOS用開発
- 6. 開発のための開発完了
- 7. 開発者と非開発者の間でios開発を共有する
- 8. iOS開発者(obj C)のQt/C++開発の開始
- 9. Gmailサイドバーガジェットの開発、開始
- 10. インストール開発IOS-展開ツールエラー
- 11. Shaderの開発開始
- 12. レーシングゲームの開発を開始
- 13. モバイル開発を開始
- 14. ブラックベリー開発開始混乱
- 15. フラッシュ開発を開始
- 16. Javaクロスプラットフォームモバイル開発
- 17. Rails開発ログ
- 18. プロトコル開発ガイドライン
- 19. フレックス&フラッシュモバイルアプリケーション開発
- 20. ガジェットの開発
- 21. iPhone開発 - テーブルビュープロパティ
- 22. Python開発[タイプエラー]
- 23. ウェブカメラチャットアプリケーションの開発
- 24. ウェブ開発ワークフローアドバイス
- 25. ゲーム開発リソース
- 26. チタンアンドロイドアプリケーションの開発
- 27. 開発ソフトウェアライセンスタイプ
- 28. ASP.netモバイルアプリケーション開発
- 29. IE11開発ツールエラー
- 30. Laravel開発ブログ
'Player :: sendMessage'を実行するだけでtellrawを使う点は何ですか? tellraw JSONを必要とするものは使用していません。 – bcsb1001
@ bcsb1001 tellrawを使う点は、プレイヤーオブジェクトの代わりにプレイヤー名を指定できるので、コマンドで指定する方が楽になるということです。でも、これを追加しますOPは放送を求めているので、答えに、ありがとう! – Mateus