2013-06-03 2 views
0

Я пытаюсь сделать mixedmodeauth (моя собственная версия), но есть проблема, на линии со связанной звездой, я получаю ошибку [Синтаксическая ошибка на токене "(", , ожидаемый], [Синтаксическая ошибка на токене ")",; ожидается], [void - недопустимый тип для переменной onPlayerJoin], является ли функция java по-прежнему работоспособной или нет?minecraft bukkit plugin public void does not work

public class MixedPlugin extends JavaPlugin implements Listener{ 
    @Override 
    public void onEnable(){ 
     getLogger().info("Mixed Mode: ON"); 
     getCommand("mm").setExecutor(new MixedCommand()); 

     @EventHandler 
     **public void onPlayerJoin(PlayerJoinEvent event) {** 
      Player player = event.getPlayer(); 
      String name = player.getName(); 
      boolean isGood = getURL("http://minecraft.net/haspaid.jsp?user=deadmau5" + name).equals("true"); 
      if (isGood) { 
       player.sendMessage("Welcome back to server!"); 
      } 
      else { 
       List<String> ex = getConfig().getStringList("allow"); 
       if (((MemorySection)ex).getStringList("allow").contains(player.getName())) { 
       player.sendMessage("Welcome back to server!"); 
       player.sendMessage("You are a few person that are using cracked minecraft and allowed to join this premium server!"); 
       } else { 
       player.kickPlayer("Failed to login: User not premium"); 
       } 
      } 
     } 
    } 
    public String getURL(String url){ 
     Logger log = Logger.getLogger("Minecraft"); 
     String inputLine = ""; 
     try{ 
      URL mcheck = new URL(url); 
      URLConnection mcheckc = mcheck.openConnection(); 
      mcheckc.setReadTimeout(1500); 
      BufferedReader in = new BufferedReader(new InputStreamReader(mcheckc.getInputStream())); 
      inputLine = in.readLine(); 
      in.close(); 
      return inputLine; 
     } catch(Exception e){ 
      log.warning("Error retrieving "+url+": "+e.getMessage()); 
     } 
     return "ERROR"; 
     } 
    @Override 
    public void onDisable(){ 
     getLogger().info("You have disable Mixed Mode"); 
    } 
} 

ответ

4

Неправильный код. Java не позволяет вложенные функции, как вы сейчас делаете (иначе не ставят onPlayerJoin внутри метода onEnable

Так положил метод onPlayerJoin после onEnable не внутри

Пример:..

@Override 
public void onEnable(){ 
    getLogger().info("Mixed Mode: ON"); 
    getCommand("mm").setExecutor(new MixedCommand()); 
} 

@EventHandler 
public void onPlayerJoin(PlayerJoinEvent event) { 
    Player player = event.getPlayer(); 
    String name = player.getName(); 
    boolean isGood = getURL("http://minecraft.net/haspaid.jsp?user=deadmau5" + name).equals("true"); 
    if (isGood) { 
     player.sendMessage("Welcome back to server!"); 
    } 
    else { 
     List<String> ex = getConfig().getStringList("allow"); 
     if (((MemorySection)ex).getStringList("allow").contains(player.getName())) { 
     player.sendMessage("Welcome back to server!"); 
     player.sendMessage("You are a few person that are using cracked minecraft and allowed to join this premium server!"); 
     } else { 
     player.kickPlayer("Failed to login: User not premium"); 
     } 
    } 
} 
+0

спасибо, но код все еще работает? – wuiyang

+0

Я не проверял другие ошибки, но да, код все равно будет работать (если он будет работать в первую очередь :)) – greedybuddha