2014-07-24 56 views
-2

我對Java編碼頗爲陌生,我試圖製作一個插件來創建一個字符模板。用戶將輸入命令/字符名稱。我希望它檢查命令發送者的文件是否存在,如果存在,它將在他們的.dat文件中的「Name:」字段下寫入。如果該文件不存在,那麼它將創建一個文件並寫入該字段。我遇到的唯一問題是創建和寫入和從文件讀取。有一次,我設法讓它創建用戶文件並寫下他們設置的名稱,但我無法再寫更多的內容,因爲它會在文件中寫入類似「Name:Gender」的愚蠢信息。我也不知道如何從文件中讀取以及它需要能夠獲得他們的設置名稱來改變頭頂的名稱標籤。如何讀取/寫入Java中的播放器文件(Bukkit)

這是我使用命令「/炭性別」的代碼示例:

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

你可以發佈一個堆棧跟蹤工作嗎? ? – TheJavaCoder16

回答

1

您正在使用args陣列錯誤:

if (args.equals("male")) 

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

A 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

在它的標籤不能有空格,因此:

如果(label.equalsIgnoreCase(「字符性別」))