+ Antworten
Seite 1 von 2 1 2 LetzteLetzte
Ergebnis 1 bis 10 von 18
  1. #1

    Bukkit Plugin Troll Befehl

    Guten Tag,
    ich habe ein kleines Plugin Programmiert jedoch bekomme ich in
    der Konsole von meinem Server Fehler angezeigt:


    Fehler:
    2013-08-16 12:00:28 [WARNING] Unexpected exception while parsing console command "troll"
    org.bukkit.command.CommandException: Unhandled exception executing command 'troll' in plugin PowerServer v0.1
    at org.bukkit.command.PluginCommand.execute(PluginCom mand.java:46)
    at org.bukkit.command.SimpleCommandMap.dispatch(Simpl eCommandMap.java:189)
    at org.bukkit.craftbukkit.v1_6_R2.CraftServer.dispatc hCommand(CraftServer.java:523)
    at org.bukkit.craftbukkit.v1_6_R2.CraftServer.dispatc hServerCommand(CraftServer.java:512)
    at net.minecraft.server.v1_6_R2.DedicatedServer.ar(De dicatedServer.java:262)
    at net.minecraft.server.v1_6_R2.DedicatedServer.t(Ded icatedServer.java:227)
    at net.minecraft.server.v1_6_R2.MinecraftServer.s(Min ecraftServer.java:486)
    at net.minecraft.server.v1_6_R2.MinecraftServer.run(M inecraftServer.java:419)
    at net.minecraft.server.v1_6_R2.ThreadServerApplicati on.run(SourceFile:582)
    Caused by: java.lang.ArrayIndexOutOfBoundsException: 0
    at me.MrFlip.Commands.CommandTroll.execute(CommandTro ll.java
    at me.MrFlip.PowerServer.PowerServer_MAIN.onCommand(P owerServer_MAIN.java:57)
    at org.bukkit.command.PluginCommand.execute(PluginCom mand.java:44)
    ... 8 more


    MainKlasse:
    Code:
    /*
     *  ###############
     *  # HAUPTKLASSE # 
     *  ###############                         
     */
    package me.MrFlip.PowerServer;
    
    //IMPORTS
    import me.MrFlip.Commands.CommandSay;
    import me.MrFlip.Commands.CommandTroll;
    
    import org.bukkit.ChatColor;
    import org.bukkit.command.Command;
    import org.bukkit.command.CommandSender;
    import org.bukkit.entity.Player;
    import org.bukkit.event.EventHandler;
    import org.bukkit.event.EventPriority;
    import org.bukkit.event.Listener;
    import org.bukkit.event.player.PlayerJoinEvent;
    import org.bukkit.event.player.PlayerQuitEvent;
    import org.bukkit.plugin.java.JavaPlugin;
    
    public class PowerServer_MAIN extends JavaPlugin implements Listener {
    	
    	
    	@Override
    	public void onEnable() {
    		//loadConfig();
    		this.getServer().getPluginManager().registerEvents(this, this);
    		System.out.println("[PS] is now activ");
    		System.out.println("[PS] is made by MrFlip");	
    	}
    	
    	@Override
    	public void onDisable() {
    		System.out.println("[PS] is now inactiv");
    		
    	}
    	
    	@Override
    	public boolean onCommand(CommandSender sender, Command cmd, String label, String[] args) {
    		//say Command
    		if(cmd.getName().equalsIgnoreCase("say")) {
             if ((sender instanceof Player) && !((Player)sender).hasPermission("PS.say")) { 
                ((Player)sender).sendMessage( "NO PERMISSION!" );
                 return true; 
             } else { 
                 return new CommandSay (cmd, args, sender, this).execute(); }
    			
    			
    		}
                   if(cmd.getName().equalsIgnoreCase("Troll")) {
             if ((sender instanceof Player) && !((Player)sender).hasPermission("PS.Troll")) { 
                ((Player)sender).sendMessage( "NO PERMISSION!" );
                 return true; 
             } else { 
                 return new CommandTroll (cmd, args, sender, this).execute(); }
    			
    			
    		}
    		
    		return true;
    
    }
    	
    	
    	@Event Handler(priority = EventPriority.NORMAL)//Leave nachricht
    	public void onPlayerQuit(PlayerQuitEvent e) {
    		Player p = e.getPlayer();
    		e.setQuitMessage(ChatColor.GREEN + p.getName() + ChatColor.GRAY + " hat den Server verlassen");
    	}
    	
    	
    	@Event Handler(priority = EventPriority.NORMAL)//Join nachricht
    	public void onPlayerJoin(PlayerJoinEvent e) {
    		Player p = e.getPlayer();
    		if(p.equals("xXProphetXx")){
    			p.sendMessage(ChatColor.RED + "Willkommen zurück du alter Programmiere");
    			e.setJoinMessage(ChatColor.RED + p.getName() + ChatColor.GRAY + " hat den Server betreten.");
    		}else{
    		e.setJoinMessage(ChatColor.GREEN + p.getName() + ChatColor.GRAY + " hat den Server betreten.");
    		}
    	}
    	
    	
    	
    	
    	
    	
    }


    CommandKlasse(Troll):
    Code:
    /*
     *  ###############
     *  # CommandTroll# 
     *  ###############                         
     */
    package me.MrFlip.Commands;
    
    
    import java.util.ArrayList;
    import java.util.Arrays;
    
    import me.MrFlip.PowerServer.PowerServer_MAIN;
    
    import org.bukkit.Bukkit;
    import org.bukkit.ChatColor;
    import org.bukkit.command.Command;
    import org.bukkit.command.CommandSender;
    import org.bukkit.command.ConsoleCommandSender;
    import org.bukkit.entity.Player;
    
    public class CommandTroll {
                public PowerServer_MAIN mainPlugin = null;
        
    	
    	Command cmd;
    	String[] args;
    	CommandSender p;
            PowerServer_MAIN plugin;
    	
    	public CommandTroll(Command cmd, String[] args, CommandSender sender, PowerServer_MAIN plugin) {
    		this.cmd = cmd;
    		this.args =args ;
    		this.p =  sender ;
                    this.mainPlugin = plugin;
                    
    	}	
    	public boolean execute() {
                Player target = mainPlugin.getServer().getPlayer(args[0]);
                String name;
                if (p instanceof Player) name = ((Player)p).getName(); 
                else name = "Server";
    		String message = "";
    		if(args.length == 0){
    			p.sendMessage(ChatColor.AQUA + "[PowerServer]" + ChatColor.DARK_AQUA + "/Troll [Getrollter Spieler]");	
    		}
    		
    	else if(args.length == 1){
                if(mainPlugin.getServer().getPlayer(args[0]).isOnline()) {
                    target.setFireTicks(20);
                    target.sendMessage(ChatColor.AQUA + "[PowerServer]" + ChatColor.DARK_AQUA + "Du wurdest von: " + ChatColor.YELLOW + name + ChatColor.DARK_AQUA + " getrollt");
                    p.sendMessage(ChatColor.AQUA + "[PowerServer]" + ChatColor.DARK_AQUA + "Du hast: " + ChatColor.YELLOW + target.getName() + ChatColor.DARK_AQUA + " getrollt");	
                }else{
                    p.sendMessage(ChatColor.AQUA + "[PowerServer]" + ChatColor.DARK_AQUA + "Spieler nicht gefunden!");	
                }
    
            }	
    		return true;
    	}
    }




    Hilfe würde mich sehr freuen

    MFG lolerXD
    Geändert von Teekeks (16.08.2013 um 22:34 Uhr) Grund: Lesbar gemacht

  2. #2
    Diamantensucher Avatar von SydMontague
    Registriert seit
    10.04.2012
    Beiträge
    566
    Minecraft
    SydMontague
    Du solltest prüfen ob das Array args überhaupt ein inhalt hat. -> if(args.lenght >= 1)

    Ansonsten ist dein Command System ziemlich umständlich. Du kannst Bukkit direkt sagen, dass bestimmte Commands von bestimmten Klasseninstanzen ausgeführt werden sollen.

    -> getCommand("troll").setExecutor(new CommandTroll())

    Die Command Klassen müssen natürlich CommandExecutor implementieren...

  3. #3
    Ehm das wird überprüft bei if und else if

  4. #4
    Diamantensucher Avatar von SydMontague
    Registriert seit
    10.04.2012
    Beiträge
    566
    Minecraft
    SydMontague
    Player target = mainPlugin.getServer().getPlayer(args[0]);

    Ist in der ersten Zeile von execute(), da wurde args.lenght noch nicht überprüft.

  5. #5
    Kostenlose Kekse für alle!
    Avatar von Teekeks
    Registriert seit
    18.12.2010
    Beiträge
    2.408
    Minecraft
    Teekeks42
    @lolerXD123456789 Ich hab deinen Code mal besser lesbar gemacht, nutze bitte in Zukunft selber [code ] und [/code ] (ohne Leerzeichen)

  6. #6
    ok werde ich tun.....
    und ich habe den Fehler schon gefixt hatte nur ein DenkFehler

  7. Mag ich BlockMaster mag diesen Beitrag
  8. #7
    Team BroFist Avatar von Panjab
    Registriert seit
    28.04.2012
    Beiträge
    1.397
    Minecraft
    Panjab
    Nichts gegen dich, aber wie bist du auf dieses System gekommen? Deine CommandClass ist ja mehr als fragwürdig

  9. #8
    Augenblick mal Avatar von JanBlack
    Registriert seit
    14.08.2011
    Beiträge
    1.412
    Minecraft
    wlan222
    Das Plugin sagt doch dem Spieler nur das er getrollt wurde oder hab ich da jetzt was übersehen ?

  10. #9
    Team BroFist Avatar von Panjab
    Registriert seit
    28.04.2012
    Beiträge
    1.397
    Minecraft
    Panjab
    Zitat Zitat von wlan222 Beitrag anzeigen
    Das Plugin sagt doch dem Spieler nur das er getrollt wurde oder hab ich da jetzt was übersehen ?
    Code:
    p.setFireTicks(20);

  11. #10
    Der gesamte Code stimmt so nicht !!
    Nur ein Beispiel

    if (p instanceof Player) name = ((Player)p).getName();
    else name = "Server";

    was soll das sein !!!
    inGame Happylosertempo
    My Bukkit Plugins

+ Antworten