我对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
答案 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;))
不起作用