Bukkit - UUID 到 Player 方法?

Bukkit - UUID to Player method?

所以,我对 Bukkit 还很陌生 API,老实说,我去年参加的 Java class 并没有像它那样帮助我应该有。 我将在整个 post 中引用来自 StackExchange[URL] 的 post。 回答我问题的好用户告诉我使用 HashMap,其中每对玩家的 UUID 作为键和值。他说不要使用 Player 变量,而是使用他们的 UUID。 我的问题是,如何通过指定他们的 UUID 对玩家使用方法?我可以使用某种 UUID.toPlayer(UUID) 方法吗?

提前致谢:D

--Bukkit 论坛上没有人回复此 post,这就是我来这里的原因--

您可以遍历服务器上的所有玩家并尝试匹配他们的 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,只需切换即可。

一个更简单的方法是这样的

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);

source

您可以使用

UUID.fromString("xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx")

或从player.getUUID()

获取