2017-04-14 1 views
0

Ich fing an, an einem Bukkit-Plugin neulich mit dem Ziel zu arbeiten, hallo im Textfenster zurückzugeben, wenn der Benutzer '/ hallo' eintippt. Dies funktioniert jedoch nicht, da ich die Befehlszeile in Eclipse nicht importieren kann. Irgendwelche Vorschläge? Es heißt: „Befehl kann nicht auf einen Typ aufgelöst werden“Bukkit Plugin: Befehl kann nicht importiert werden

package me.Nickedyerpants; 

import org.bukkit.command.CommandSender; 
import org.bukkit.plugin.java.JavaPlugin; 

public class Plugin extends JavaPlugin{ 

@Override 
public void onEnable(){  //what happens when plugin is enabled 

    getLogger().info("First plugin starting up...."); 


} 


@Override 
public void onDisable(){ //for when plugin is disabled 


    boolean onCommand(CommandSender sender, Command cmd, String label, String[] args){ 

     if (cmd.getName().equalsIgnoreCase("hello") && sender instanceof Player){ 

      Player player = (Player) sender; 

      player.sendMessage("hello"); 

     } 

     return true; 

    } 



} 

} 
+0

Der Teil, den ich nicht einrücken kann, ist "Command cmd" – Nick

+0

Drücken Sie Strg + Shift + O in Eclipse, um automatisch zu importieren. Andernfalls können Sie es manuell importieren mit dieser Zeile 'import.org.bukkit.command.Command;'. Funktioniert immer noch nicht? Welche Bukkit Jar Version hast du? – Squiddie

+0

Vielen Dank für die Antwort, leider, es hat nicht funktioniert, ich bekomme immer noch Syntaxfehler auf die Klammern und Kommas aus irgendeinem Grund, und ich benutze die neueste bukkit jar – Nick

Antwort

2

So Ihr Code buchstäblich schlecht ist, sind Sie onCommand innerhalb onDisable Verfahren implementiert, was falsch ist, und Ihre Klasse ins't geschlossen richtig!

Ihren ganzen Code mit diesem ersetzen:

package me.Nickedyerpants; 

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

public class Plugin extends JavaPlugin { 

    @Override 
    public void onEnable() {  //what happens when plugin is enabled 

     getLogger().info("First plugin starting up...."); 


    } 


    @Override 
    public void onDisable() { //for when plugin is disabled 
    } 


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

     if (cmd.getName().equalsIgnoreCase("hello") && sender instanceof Player) { 

      Player player = (Player) sender; 

      player.sendMessage("hello"); 

     } 

     return true; 

    } 


} 

Platz Methoden innerhalb der Klasse selbst und sie nicht innerhalb eines anderen Verfahrens platzieren.

+0

Vielen Dank <3, funktioniert perfekt – Nick

Verwandte Themen