【问题标题】:Syntax errors Java Bukkit Plugin语法错误 Java Bukkit 插件
【发布时间】:2014-04-16 08:22:51
【问题描述】:

我自己尝试了一个 bukkit 插件。我从一个小愈合插件开始,但我在这里遇到了一些语法错误,如果你们能帮助我,并向我解释一下,那就太棒了!谢谢:)

我在最后一行收到此错误:

此行有多个标记 - 语法错误,插入“}”完成 MethodBody - 语法错误,插入“else Statement”完成 块语句

package P1;

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

public class ultimateHeal extends JavaPlugin {

@Override
public void onEnable() {

    System.out.println("uHeal by xGumBax activated!");
}

@Override
public void onDisable() {

    System.out.println("uHeal by xGumBax deactivated!");
}

@SuppressWarnings("deprecation")
public boolean onCommand(CommandSender sender, Command cmd, String label, String[] args) {
    if(cmd.getName().equalsIgnoreCase("heal")) {
    if(!(sender instanceof Player)) {

        System.out.println("Dieser Befehl ist nur für Spieler!");
        return true;

    }
    Player p = (Player) sender;
    if(args.length == 0) {
        if(p.hasPermission("uheal.heal.self")) {
            p.setHealth(20);
            p.setFoodLevel(40);
            p.sendMessage(ChatColor.DARK_RED + "[" + getDescription().getName() + "]" + ChatColor.GRAY + " Deine Lebensanzahl wurde aufgefüllt.");
            p.playEffect(p.getLocation(), Effect.MOBSPAWNER_FLAMES, 1);
            return true;
        }
        else {
            p.sendMessage(ChatColor.DARK_RED + "[" + getDescription().getName() + "]" + ChatColor.GRAY + " Du hast keine Rechte um diesen Befehl auszuführen!");
            return true;
        }



    }
    else if(args.length == 1) {
        if(p.hasPermission("uheal.heal.others")) {
        Player target = this.getServer().getPlayer(args[0]);
        target.setHealth(20);
        p.sendMessage(ChatColor.DARK_RED + "[" + getDescription().getName() + "]" + ChatColor.GRAY + " Spieler " + args[0] + " wurde geheilt!");
        target.playEffect(target.getLocation(), Effect.MOBSPAWNER_FLAMES, 1);
        target.playEffect(target.getLocation(), Effect.POTION_BREAK, 1);
        target.sendMessage(ChatColor.DARK_RED + "[" + getDescription().getName() + "]" + ChatColor.GRAY + " Du wurdest geheilt!");  
    } else {
        p.sendMessage(ChatColor.DARK_RED + "[" + getDescription().getName() + "]" + ChatColor.GRAY + " Du hast keine Rechte um diesen Befehl auszuführen!");
    }

    return false;
}















} 

【问题讨论】:

  • 嗨 - 欢迎来到 stackoverflow。如果您还可以显示您收到的编译错误,我们可以更轻松地提供帮助。
  • 我添加了我现在得到的错误

标签: java eclipse plugins syntax-error bukkit


【解决方案1】:

您的 onCommand 方法中的括号似乎不匹配。

代码末尾的括号结束了 if 语句之一,但没有结束方法或结束类的括号。

如果您在代码末尾添加另外两个括号,这个问题应该会消失。我鼓励您使用 IDE 或编辑器来帮助您检查括号是否正确匹配。

【讨论】:

  • 如果您使用的是 IDE,那么它们通常会内置代码格式化规则。这将自动缩进您的代码,并使查找这些类型的错误变得更加容易。
  • 在哪里可以找到 IDE?
  • Eclipse 是一个很好的起点,它是免费的、功能强大且被大量使用的。 确实需要一点时间来适应,可以从eclipse.org/downloads下载
  • 是的,我用 eclipse 编写了这个代码。没有你的帮助我找不到它,哈哈
猜你喜欢
  • 2015-03-14
  • 1970-01-01
  • 1970-01-01
  • 2014-09-04
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2014-08-16
  • 1970-01-01
相关资源
最近更新 更多