Java/Bukkit (Minecraft) - 如果文件包含玩家名,则检查存储在 ":"之后的同一行中的密码并执行某些操作

标签 java file plugins minecraft bukkit

这是我的第一个问题,希望您能帮助我。我正在用 Java 为 Bukkit 编写一个注册/登录插件。现在,当玩家加入我的服务器时,我希望他登录。我的插件必须检查播放器提供的密码是否正确。这是我到目前为止所做的代码。

问题是,我不知道如何做到这一点。有人可以解释一下如何做到这一点(也许只是用语言)?

String currln;

br = new BufferedReader(new FileReader("/plugins/LobbyLogin/passwd.crypt"));

while ((currln = br.readLine()) != null) {
     password = currln;
}

String password = null;
String[] select = password.split(":");
String username = select[0];
String readed_pwd = select[1];
String alldata = username+readed_pwd;

P.S.:用户的密码保存在我创建的名为“passwd.crypt”的文件中。这是其中的一个示例字符串。

ExampleUser:cGFzc3dvcmQ=

密码以加密方式存储。

最佳答案

我建议使用 Bukkit 提供的 YAML 内置库来存储密码并将其与用户关联。然后,您可以使用简单的 FileConfiguration#getString(String) 来获取与用户关联的密码。

我不知道 SnakeYAML 的确切实现,但我假设它存储一个行号表来引用存储在该位置的 Node 来获取对象,而不是一个 BufferedReader 来读取每一行。这意味着大文件的性能提升。

还有两件事:除非您有硬件安全问题,否则为什么要加密密码?而且,我在运行时不进行 IO,在集合中保存对插件启动时初始值的引用,它比从文件读取磁盘更快。

关于Java/Bukkit (Minecraft) - 如果文件包含玩家名,则检查存储在 ":"之后的同一行中的密码并执行某些操作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23372989/

相关文章:

java - Java 小程序可以使用硬件 API 吗?

java - 使用多个 JTextfield 搜索 JTable

plugins - 为rabbitmq 管理启用SSL。服务器启动,但无法接受请求

Firefox 插件为右键菜单构建自定义链接

c - C中的ascii文件处理

css - 最小高度导致 Facebook 评论插件出现空白

java - Android Studio 监听器导致错误

java - 如何使用 JUnit 设置全局规则

ruby - Ruby 中的通用换行符支持,包括\r (CR) 行尾

Node.js FIFO - 写入文件描述符时进程挂起