我想保存一个Hashmap:
public static Map<Player, Integer> seconds = new HashMap<>();
到文件。
它是跟踪给予玩家的整数,更具体地说:计时器。 这一切都有效,但是当玩家离开时,数据就会丢失,这是一个问题。
我不介意它是如何保存的,我只需要在玩家退出时保存它并在玩家加入时检索它。
附注我是插件开发的新手(我猜是 Java),我确实做了尽可能多的研究,但对这个问题没有运气。
我尝试了无数的方法,比如:
我希望将文件保存在服务器的某个位置。 当玩家离开时,当前的
Integer
值必须保存到Player
。
当玩家加入时,Player
的 Integer
将加载并从中断处恢复。
您想要的类是 YamlConfiguration。当您启动插件时,您应该创建一个 File 实例。
File timerFile = new File("plugins/YourPluginName", "timers.yml");
if(!timerFile.exists) timerFile.createNewFile();
YamlConfiguration cfg = YamlConfiguration.loadConfiguration(timerFile);
现在您有了这个 YamlConfiguration,您可以向其中写入值,并将其与播放器关联起来,只需通过 UUID 保存它即可。
cfg.set(player.getUniqueId().toString(), timerSeconds);
cfg.save(timerFile);
当玩家加入时,只需检查文件中是否存在玩家 UUID,即可将计时器设置回其保存的值。
String UUID = player.getUniqueId().toString;
if(cfg.get(UUID) != null) timerSeconds = cfg.getInt(UUID);
另外,在我让您回去工作之前,作为一名新的 Java 程序员,您应该知道 JavaDocs 是您的朋友。您可以随时查看 JavaDocs of Spigot 来查找您可能需要的内容。祝你好运,开发愉快!