Bukkit - UUID到播放器方法



所以,我对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()

获取

相关内容

最新更新