Bukkit - UUID to Player方法?

时间:2016-06-25 01:40:03

标签: minecraft bukkit

所以,我对Bukkit API还是比较陌生的,说实话,去年我参加的Java课程对我的帮助并没有多大帮助。 我将在本文中引用StackExchange [URL] Bukkit - Using static variables causing problems中的帖子。 回答我问题的好用户告诉我使用HashMap,每对玩家的UUID用于键和值。他说不使用Player变量,而是使用他们的UUID。 我的问题是,如何通过指定UUID来对玩家使用方法?我可以使用某种UUID.toPlayer(UUID)方法吗?

提前致谢:D

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

3 个答案:

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

source

您可以使用

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

或从player.getUUID()

获取