如何用Java(Bukkit)读/写播放器文件

时间:2014-07-24 07:54:15

标签: java templates minecraft bukkit

我对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

2 个答案:

答案 0 :(得分: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个参数来正确指定它。

答案 1 :(得分:0)

因此标签中没有空格:

if(label.equalsIgnoreCase(&#34; char gender&#34;))

不起作用