我在我的服務器上運行了一堆 alt/bot 帳戶,我正在嘗試創建一個命令來獲取所有(在線)玩家的 IP 地址,如果它與我的匹配,則將它們添加到玩家串列中以列印給執行的人命令。這是我到目前為止所擁有的。
public boolean onCommand(CommandSender sender, Command cmd, String label, String[] args) {
if (label.equalsIgnoreCase("bots")) {
if (!sender.hasPermission("lbp.bots")) {
sender.sendMessage(ChatColor.RED "You cannot run this command.");
return true;
}
if (args.length == 0) {
//Player p = (Player) sender;
List < Player > onlineBots = new ArrayList < Player > ();
for (Player players: Bukkit.getOnlinePlayers()) {
if (players.getAddress().getAddress().getHostAddress() == "redacted ip address") {
onlineBots.add(players);
}
}
sender.sendMessage(ChatColor.AQUA "Luke's Bot List: " ChatColor.BOLD "" onlineBots);
return true;
}
}
return false;
}
我已將我的 IP 地址插入“編輯的 ip 地址”,加入了我的 portforwarded 本地服務器,所以我沒有加入主機 IP(仔細檢查我的 IP 是否正確注冊到 Essentials /whois)并且該命令回傳一個空串列。控制臺中沒有錯誤。[1]:https ://i.stack.imgur.com/ykTAX.png 有什么想法嗎?
uj5u.com熱心網友回復:
您只需要檢查您和其他人之間的播放器 IP。地址/主機地址之間的值變化很大,特別是在 spigot/bungee 之間。
所以,我建議你使用這樣的代碼:
if (args.length == 0) {
List<Player> onlineBots = new ArrayList<>();
for (Player players : Bukkit.getOnlinePlayers()) {
if (players.getAddress().getAddress().getHostAddress().equals(sender.getAddress().getAddress().getHostAddress())) {
onlineBots.add(players);
}
}
sender.sendMessage(ChatColor.AQUA "Luke's Bot List: " ChatColor.BOLD "" onlineBots);
return true;
}
uj5u.com熱心網友回復:
使用此代碼讓它作業:
public boolean onCommand(CommandSender sender, Command cmd, String label, String[] args) {
if (label.equalsIgnoreCase("bots")) {
if (!sender.hasPermission("lbp.bots")) {
sender.sendMessage(ChatColor.RED "You cannot run this command.");
return true;
}
if (args.length == 0) {
List < String > onlineBots = new ArrayList < > ();
for (Player players: Bukkit.getOnlinePlayers()) {
if (players.getAddress().getAddress().getHostAddress().equals("insert IP here")) {
onlineBots.add(players.getName());
}
}
sender.sendMessage(ChatColor.LIGHT_PURPLE "" ChatColor.BOLD "Luke's Bot List: " ChatColor.RESET "" ChatColor.AQUA "" onlineBots.toString());
return true;
}
}
return false;
}
由于 ,該串列以 CraftPlayer 格式回傳玩家List<Player>,因此我將串列型別更改為List<String>并使用onlineBots.add(players.getName());,這似乎已經解決了問題。
轉載請註明出處,本文鏈接:https://www.uj5u.com/qiye/369644.html
上一篇:如何從時間中提取小時部分
下一篇:二叉搜索樹中的插入方法
