所以,我对Bukkit API还是比较陌生的,说实话,去年我参加的Java课程对我的帮助并没有多大帮助。 我将在本文中引用StackExchange [URL] Bukkit - Using static variables causing problems中的帖子。 回答我问题的好用户告诉我使用HashMap,每对玩家的UUID用于键和值。他说不使用Player变量,而是使用他们的UUID。 我的问题是,如何通过指定UUID来对玩家使用方法?我可以使用某种UUID.toPlayer(UUID)方法吗?
提前致谢:D
- 没有人在Bukkit论坛上回复此帖,这就是我在这里的原因 -
答案 0 :(得分:2)
你可以遍历服务器上的所有玩家并尝试匹配他们的UUID。
public Player getPlayerByUuid(UUID uuid) {
for(Player p : getServer().getOnlinePlayers()) {
if(p.getUniqueId().equals(uuid)
return p;
}
}
}
找到here。
这将在线播放所有玩家并匹配UUID。
您可以将它们存储在类型UUID, Player
或字符串的散列图中,以存储播放器'名。然后访问,
Player p = hashMap.get(uuid here (key) );
您可能会在加入后添加玩家并添加到散列图。
hashMap.put(UUID (key), Player (value) );
如果您想通过播放器访问UUID,只需切换它。
答案 1 :(得分:2)
一个更简单的方法就像这样
UUID myUUID = myPlayer.getUniqueID();
String configLine = myUUID.toString();
然后
Player newPlayer = Bukkit.getPlayer(myUUID);
或者
Player newPlayer = Bukkit.getPlayer(UUID.fromString(configLine));
答案 2 :(得分:0)
Player p = Bukkit.getPlayer(uuid);
您可以使用
UUID.fromString("xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx")
或从player.getUUID()