我有一个用 Java 编写的 RuneScape 私有(private)服务器项目,并且正在尝试编写玩家可以使用的个人“标签”。我已经设法做到了这一点,但是每次服务器重新启动时,它们的“标签”都会重置为“空”。
它们的“标签”是通过执行命令“;;settag [name]”来初始化的。然后他们的标签被设置为他们想要的任何内容。我已经通过字符串完成了此操作:
if (command[0].equals("settag")) {
newTag = getCompleteString(command, 1);
newTag = player.yellTag
player.sendMessage("Your tag is now:" +newTag);
}
我不确定解决此问题的最有效方法是什么,我正在考虑通过 .xml/.txt 文件加载和保存。顺便说一句,player.yellTag 是下一个命令 (::mytag) 搜索它的地方,它工作正常,直到服务器重新启动。
最佳答案
这完全取决于您的应用程序的上下文。如果您计划拥有少于数百名玩家,那么 xml
文件可能就可以。你应该看看JAXB ,这是在 Java 中存储对象的标准方法。您还可以使用 gson 将它们存储为 JSON 文件。这比 XML 的东西更容易使用和实现。
但是,如果您拥有超过数千名玩家,您可能需要一些更有效的方法来序列化您的标签,方法是将它们放入数据库中,从而使用像 hibernate 这样的 ORM 库。可以帮助您做到这一点。
您可能想要制作自己的东西,例如 tag
目录,其中充满了以包含玩家标签的玩家的唯一 ID 命名的文件...这更加“hackish”,但仍然相当高效。
关于Java保存字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17014759/