存储玩家特定数据

时间:2014-07-07 10:54:23

标签: java minecraft bukkit

我正在使用bukkit插件,我需要在播放器退出时保存数据。我写了一个工作正常的系统,但它基于玩家的名字,如果玩家改名,它将丢失数据。所以我的问题是:每次玩家登录时,是否有任何属性(例如:id)女巫都是一样的?

1 个答案:

答案 0 :(得分:2)

您可以使用播放器的UUID U niversally U nique ID entifier。要获得播放器的UUID,您可以使用player.getUniqueId()。您也可以使用OfflinePlayers

当玩家通过UUID退出时存储的示例方法是:

@EventHandler
public void playerQuit(PlayerQuitEvent e){
    String uuid = e.getPlayer().getUniqueId().toString(); // get the user's UUID
    long time = System.currentTimeMillis() / 1000; // get the current number of seconds
    plugin.getConfig().set(uuid, time); // set the UUID in the config to the current # of seconds
}

然后,为了得到他们上次玩的那天:

public Date getLastPlayedDate(String p){
    String uuid = Bukkit.getOfflinePlayer(p).getUniqueId().toString(); // get the uuid from the OfflinePlayer
    long time = plugin.getConfig().getLong(uuid); // get the time associated with the uuid
    Date date = new Date(time * 1000); // convert the time to the date
    return date; // return the date
}