所以,我对Bukkit API相当陌生,老实说,我去年参加的Java课程并没有给我带来应有的帮助。我将引用StackExchange[URL]Bukkit的一篇文章-使用静态变量导致问题贯穿全文。回答我问题的好用户告诉我使用HashMap,用每对球员的UUID作为键和值。他说不要使用Player变量,而是使用它们的uuid。我的问题是,我如何通过指定玩家的UUID来使用方法?是否有某种UUID。toplayer (UUID)方法可以使用?
Thanks in advance:D
——没有人在Bukkit论坛上回复这篇文章,这就是我在这里的原因——
你可以遍历服务器上的所有玩家,并尝试匹配他们的UUID。
public Player getPlayerByUuid(UUID uuid) {
for(Player p : getServer().getOnlinePlayers()) {
if(p.getUniqueId().equals(uuid)
return p;
}
}
}
这是在这里发现的。
这将遍历所有在线玩家并匹配UUID。
您可以将它们存储在类型为UUID, Player
或string的hashmap中以存储玩家的名字。然后通过
Player p = hashMap.get(uuid here (key) );
你可能会在玩家加入后将其添加到hashmap中。
hashMap.put(UUID (key), Player (value) );
如果你想通过播放器访问UUID,只需切换它。
一个更简单的方法是这样的
UUID myUUID = myPlayer.getUniqueID();
String configLine = myUUID.toString();
然后Player newPlayer = Bukkit.getPlayer(myUUID);
或
Player newPlayer = Bukkit.getPlayer(UUID.fromString(configLine));
Player p = Bukkit.getPlayer(uuid);
可以使用
UUID.fromString("xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx")
或者从player.getUUID()