2016-02-19 3 views
0

Так что я создал файл INI для моего IRC бот сделал с PircBotX и теперь IllegalArgumentException брошен в .buildConfiguration()Java - IllegalArgumentException когда .buildConfiguration() называется

Код:

public Craftxbot() throws IOException{ 
    File inicheck = new File("config.ini"); 
    if(!inicheck.exists()){ 
     System.out.println("Configuration file not found, Making one."); 
     inicheck.createNewFile(); 
     Wini ini = new Wini(new File("config.ini")); 
     ini.add("Config"); 
     System.out.print("Nickname: "); 
     ini.put("Config", "nick", input.next()); 
     System.out.print("Server Hostname: "); 
     ini.put("Config", "serverHostname", input.next()); 
     System.out.print("Server Port: "); 
     ini.put("Config", "serverPort", input.nextInt()); 
     System.out.print("Default Channel: "); 
     ini.put("Config", "defaultChannel", input.next()); 
     System.out.flush(); 
    } 
    Wini ini = new Wini(new File("config.ini")); 
    System.out.print("Nickserv Password: "); 
    System.out.flush(); 
    String nickpass = input.next(); 
    Configuration<PircBotX> alpha = new Configuration.Builder<PircBotX>() 
      .setName(ini.get("Config", "nick")) 
      .setLogin("Craftxbot-Dev") 
      .setNickservPassword(nickpass) 
      .setAutoNickChange(true) 
      .setServerHostname(ini.get("Config", "serverHostname")) 
      .setServerPort(ini.get("Config", "serverPort", int.class)) 
      .addAutoJoinChannel(ini.get("Config", "defaultChannel")) 
      .addListener(new Commands()) 
      .addListener(new EventHandler()) 
      .addListener(new PrivMsg()) 
      .buildConfiguration(); 

Стек след:

Exception in thread "main" java.lang.IllegalArgumentException: Must specify name 
at com.google.common.base.Preconditions.checkArgument(Preconditions.java:93) 
at org.pircbotx.Configuration.<init>(Configuration.java:128) 
at org.pircbotx.Configuration$Builder.buildConfiguration(Configuration.java:589) 
at tk.craftxbox.bot.Craftxbot.<init>(Craftxbot.java:61) 
at tk.craftxbox.bot.Craftxbot.main(Craftxbot.java:27) 

Перед добавлением файла ини он работал отлично и, как предполагалось

ответ

0

Вероятно, ваши вызовы ini.get возвращают null. Одной из причин этого является то, что вы никогда не записывали все свои значения ini.store(). Если вы посмотрите на пример здесь: http://ini4j.sourceforge.net/tutorial/OneMinuteTutorial.java.html, вы должны позвонить store() после записи значений.

+0

Спасибо! Не видел этого в учебнике. – craftxbox

Смежные вопросы