如何用Java(Bukkit)读取/写入播放器文件[关闭]

问题描述 投票:-2回答:2

我对Java编码很新,我正在尝试创建一个创建角色模板的插件。用户将键入命令/ char名称。我希望它然后检查命令发送者的文件是否存在,如果存在,它将在其.dat文件中的“Name:”字段下写入。如果该文件不存在,那么它将创建一个文件并在该字段中写入。我唯一的问题是创建,写入和读取文件。有一次,我设法让它创建用户文件并写下他们设置的名称,但我写不了更多,因为它会在文件中写出像“Name:Gender”这样的愚蠢内容。我也不知道如何从文件中读取,以及它需要能够获取其设置名称以更改其头部上方的名称标签。

这是我在命令“/ char gender”上使用的代码示例:

if (label.equalsIgnoreCase("char gender")) {
        if (args.length < 2) {
            sender.sendMessage("/char gender <Male or Female>");
            return false;
        }
        if (args.equals("male")) {
            PrintWriter writer1;
            try {
                writer1 = new PrintWriter("plugins/Guildplate/PlayerData/" + sender.getName() + ".yml", "UTF-8");
                writer1.println("Gender: Male");
                writer1.close();
            } catch (FileNotFoundException | UnsupportedEncodingException e) {
                File file = new File("plugins/Guildplate/PlayerData/" + sender.getName() + ".yml");
            }
        }
        else if (args.equals("female")) {
            PrintWriter writer1;
            try {
                writer1 = new PrintWriter("plugins/Guildplate/PlayerData/" + sender.getName() + ".yml", "UTF-8");
                writer1.println("Gender: Female");
                writer1.close();
            } catch (FileNotFoundException | UnsupportedEncodingException e) {
                File file = new File("plugins/Guildplate/PlayerData/" + sender.getName() + ".yml");
            }
        }
        else {
            sender.sendMessage("/char gender <male or female>");
        }

我正在使用.yml文件来测试它是否有效,因为某些原因,它不会创建player.dat

java templates minecraft bukkit
2个回答
1
投票

您正在使用args数组错误:

if (args.equals("male"))

else if (args.equals("female"))

一个String[]永远不会是一个String所以那些将永远都失败。假设args翻译如下:

"/char gender male" -> new String[]{"/char", "gender", "male"}

你需要使用:

if (args[2].equals("male"))

else if (args[2].equals("female"))

此外,您的错误检查应该是:

if (args.length <= 2)

因为您需要3个参数来正确指定它。


0
投票

因此标签中没有空格:

if(label.equalsIgnoreCase(“char gender”))

不起作用

© www.soinside.com 2019 - 2024. All rights reserved.