Jump to content

Minecraft: An internal error occurred..


ServerHilfe

Empfohlene Beiträge

Also bei beinem Command funktioniert es nicht alles so wie es sollte :/

Wenn ich /flyspeed eingebe kommt immer der fehler: An internal error occurred while attempting to perform this command.

Aber wenn ich z.b /flyspeed 10 eingebe funktioniert alle super :/

Mein code:


 

import org.bukkit.command.Command;
import org.bukkit.command.CommandExecutor;
import org.bukkit.command.CommandSender;
import org.bukkit.entity.Player;

public class flyspeed implements CommandExecutor {

    @Override
    public boolean onCommand(CommandSender sender, Command command, String label, String[] args) {
            
        int i = Integer.parseInt(args[0]);
        
        if(command.getName().equalsIgnoreCase("flyspeed")) {
            if(sender instanceof Player) {
                Player p =(Player)sender;
                    if(args.length == 1) {
                        
                        
                        if((args[0].equalsIgnoreCase("1"))){
                        p.setFlySpeed((float) 0.1);
                        return true;
                        } else if(args[0].equalsIgnoreCase("2")) {
                            p.setFlySpeed((float) 0.2);
                            return true;
                        } else if(args[0].equalsIgnoreCase("3")) {
                            p.setFlySpeed((float) 0.3);
                            return true;
                        } else if(args[0].equalsIgnoreCase("4")) {
                            p.setFlySpeed((float) 0.4);
                            return true;
                        } else if(args[0].equalsIgnoreCase("5")) {
                            p.setFlySpeed((float) 0.5);
                            return true;
                        } else if(args[0].equalsIgnoreCase("6")) {
                            p.setFlySpeed((float) 0.6);
                            return true;
                        } else if(args[0].equalsIgnoreCase("7")) {
                            p.setFlySpeed((float) 0.7);
                            return true;
                        } else if(args[0].equalsIgnoreCase("8")) {
                            p.setFlySpeed((float) 0.8);
                            return true;
                        } else if(args[0].equalsIgnoreCase("9")) {
                            p.setFlySpeed((float) 0.9);
                            return true;
                        } else if(args[0].equalsIgnoreCase("10")) {
                            p.setFlySpeed((float) 1);
                            return true;
                        } else if(args[0].equalsIgnoreCase("0")) {
                            p.setFlySpeed((float) 0.0);
                            return true;
                        } else if(args[0].equalsIgnoreCase("reset")) {
                            p.setFlySpeed((float) 0.2);
                            return true;    
                        } else if(i<0) {
                            p.sendMessage("§8[§2§l!§8] §2Die angabe §8ist §4zu klein! §8--> §8[§40-10§8]");
                        } else if(i>10){
                            p.sendMessage("§8[§2§l!§8] §2Die angabe §8ist §4zu gross! §8--> §8[§40-10§8]");
                        } else if(i != 0-10) {
                            p.sendMessage("§8[§2§l!§8] Dies ist keine Zahl! §8--> §8[§40-10§8]");
                        }
                    
                        
                        
                        
                        
                    } else {
                        p.sendMessage("§4verwende /flyspeed [1-10]");
                    }
                    
                }
            }
    
    
            
        return false;
    }

}

 

Link zu diesem Kommentar
Auf anderen Seiten teilen

int i = Integer.parseInt(args[0]);

Kann nicht funktionieren, wenn es kein args[0] gibt. Das solltest du von daher erst machen, wenn du festgestellt hast, dass args.length == 1 ist.

Außerdem solltest du besser die NumberFormatException per try / catch abfangen, das kann sonst zu Problemen führen.

 

Liebe Grüße,
Baustein

Link zu diesem Kommentar
Auf anderen Seiten teilen

  • 2 weeks later...

Hi,

dass ist eine Fehlermeldung, welche ausgegeben wird wenn (wie der Name schon sagt) das Format einer Nummer nicht stimmt.

In dem Beispiel von Baustein wäre es, wenn die Funktion Integer.parseInt nicht ausgeführt werden kann, weil args[0] keine Zahl enthält.

Also würde dass ganze halt z.B. so aussehen:

    try {
        int i = Integer.parseInt(args[0]);
    }
    catch (NumberFormatException e) {
        int i = 2;  // Dein Standardwert, wenn kein gültiger Wert angegeben wurde, also die Exception auslöste
    }

 

-Yuki

Link zu diesem Kommentar
Auf anderen Seiten teilen

Erstelle ein Benutzerkonto oder melde dich an, um zu kommentieren

Du musst ein Benutzerkonto haben, um einen Kommentar verfassen zu können

Benutzerkonto erstellen

Neues Benutzerkonto für unsere Community erstellen. Es ist einfach!

Neues Benutzerkonto erstellen

Anmelden

Du hast bereits ein Benutzerkonto? Melde dich hier an.

Jetzt anmelden
×
×
  • Neu erstellen...
B
B