2013-11-03 77 views
0

這是我的代碼。底部的最後一個大括號有錯誤。這非常煩人,我一直在努力解決它。這是我的手鐲太多了嗎?我真的很難過。請幫忙。Bukkit插件語法錯誤:語法錯誤,插入「}」以完成ClassBody

enter code here 

package me.sapita.medic; 

import org.bukkit.Bukkit; 
import org.bukkit.ChatColor; 
import org.bukkit.command.Command; 
import org.bukkit.command.CommandSender; 
import org.bukkit.entity.Player; 
import org.bukkit.plugin.java.JavaPlugin; 

public class medicplugin1 extends JavaPlugin { 


    public void onEnable() { 
     Bukkit.getServer().getLogger().info("Medic enabled!"); 
    } 

    public void onDisable() { 
     Bukkit.getServer().getLogger().info("Medic disabled!"); 
    } 

    @SuppressWarnings("deprecation") 
    public boolean onCommand(CommandSender sender, Command cmd, String commandLabel, String[] args){ 

    if (!(sender instanceof Player)){ 
     sender.sendMessage(ChatColor.RED + "The console cannot be regenerated!"); 
     return true; 
    } 

    Player player = (Player) sender; 


    if (cmd.getName().equalsIgnoreCase("regen")){ 
     Player target = Bukkit.getServer().getPlayer(args[0]); 
     if (target == null){ 
      player.sendMessage(ChatColor.RED + "Could not find user."); 
      return true; 
     } 

     if (args.length == 0){ 
      player.setHealth(20); 
      player.setFoodLevel(20); 
      player.sendMessage(ChatColor.GREEN + "Your health & food have been regenerated!"); 
     } 
     if (target == null){ 
      player.sendMessage("Please specify a player to regenerate."); 
     } 

     sender.sendMessage(target.getName() + "has been regenerated!"); 

     target.setHealth(20); 
     target.sendMessage(sender.getName()+ "has regenerated your health & food!"); 
     return true; 

     } 

    return true; 

    if (cmd.getName().equalsIgnoreCase("resetfood")){ 

     Player target = Bukkit.getServer().getPlayer(args[0]); 
    if (target == null){ 
     player.setFoodLevel(20); 
     player.sendMessage(ChatColor.GREEN + "Your food health has been regenerated!"); 
     return true; 
    } 

    if (args.length == 0){ 
     sender.sendMessage(ChatColor.GREEN + "You have fed yourself!"); 

     player.setFoodLevel(20); 
     return true; 
    } 


    target.setFoodLevel(20); 



    target.sendMessage(sender.getName() + "has regenerated your food!"); 

    sender.sendMessage(ChatColor.GREEN + target.getName() + "has been food health has been regenerated!");{ 
     return true; 
    } 
+0

這是不使用'Java open {'樣式 - 在下一行放置大括號的原因之一 - 縮進所有內容,您會看到問題出在哪裏。 – Artur

回答

1

你缺少兩個 「}」 在文件的結尾。

  1. 公共布爾按需()
  2. 類medicplugin1

這JPW提到的第三個,實際上是開括號一個問題,因爲我想你想在年底返回true if子句。

sender.sendMessage(...); ---> { <--- 
    return true; 
} 

下次考慮使用您的IDE代碼格式化程序,因爲它們將最喜歡向您展示這樣的問題。

而且......

if (cmd.getName().equalsIgnoreCase("regen")){ ... } 

    return true; 

    if (cmd.getName().equalsIgnoreCase("resetfood")){ ... ] 

此代碼似乎是錯誤的..因爲這將在編譯時錯誤UnreachableCode解決。

0

你實際上在最後缺少三(3)個}。正確的縮進會使這個顯而易見的非常快。

缺少一個右括號中的塊:

if (cmd.getName().equalsIgnoreCase("resetfood"))

public boolean onCommand(CommandSender sender, Command cmd, String commandLabel, String[] args)

public class medicplugin1 extends JavaPlugin