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