• Es freut uns dass du in unser Minecraft Forum gefunden hast. Hier kannst du mit über 130.000 Minecraft Fans über Minecraft diskutieren, Fragen stellen und anderen helfen. In diesem Minecraft Forum kannst du auch nach Teammitgliedern, Administratoren, Moderatoren , Supporter oder Sponsoren suchen. Gerne kannst du im Offtopic Bereich unseres Minecraft Forums auch über nicht Minecraft spezifische Themen reden. Wir hoffen dir gefällt es in unserem Minecraft Forum!

Elrontur (Und die anderen Plugins :D) - Brauch wieder Hilfe!

Status
Für weitere Antworten geschlossen.

Elronturalt

Kuhfänger
Gesperrt
Registriert
3 Juli 2012
Beiträge
62
Diamanten
0
Hallo alle!
Ich brauch echt mal Hilfe... :S
Mir fehlt ein Befehl vom Plugin, was diesen Error nicht ausgibt:
Code:
2012-08-23 11:34:53 [SEVERE] null
org.bukkit.command.CommandException: Unhandled exception executing command 'tome' in plugin Elrontur v2.0
	at org.bukkit.command.PluginCommand.execute(PluginCommand.java:42)
	at org.bukkit.command.SimpleCommandMap.dispatch(SimpleCommandMap.java:168)
	at org.bukkit.craftbukkit.CraftServer.dispatchCommand(CraftServer.java:492)
	at net.minecraft.server.NetServerHandler.handleCommand(NetServerHandler.java:878)
	at net.minecraft.server.NetServerHandler.chat(NetServerHandler.java:825)
	at net.minecraft.server.NetServerHandler.a(NetServerHandler.java:807)
	at net.minecraft.server.Packet3Chat.handle(Packet3Chat.java:44)
	at net.minecraft.server.NetworkManager.b(NetworkManager.java:276)
	at net.minecraft.server.NetServerHandler.d(NetServerHandler.java:109)
	at net.minecraft.server.ServerConnection.b(SourceFile:35)
	at net.minecraft.server.DedicatedServerConnection.b(SourceFile:30)
	at net.minecraft.server.MinecraftServer.q(MinecraftServer.java:581)
	at net.minecraft.server.DedicatedServer.q(DedicatedServer.java:212)
	at net.minecraft.server.MinecraftServer.p(MinecraftServer.java:474)
	at net.minecraft.server.MinecraftServer.run(MinecraftServer.java:406)
	at net.minecraft.server.ThreadServerApplication.run(SourceFile:539)
Caused by: java.lang.ArrayIndexOutOfBound***ception: 0
	at me.Elrontur.Elrontur.Elrontur.onCommand(Elrontur.java:188)
	at org.bukkit.command.PluginCommand.execute(PluginCommand.java:40)
	... 15 more
Dieser Befehl ist so geschreiben:
Code:
if (cmd.getName().equalsIgnoreCase("tome") && p.hasPermission("elrontur.to.me")) {
			Player t = (Player) this.getServer().getPlayer(args[0]);
				if(args.length == 1) {
					try {
						p.sendMessage(ChatColor.DARK_GREEN + "[Elrontur] " + ChatColor.BLUE + "Informiere Spieler " + ChatColor.GREEN + t.getName() + ChatColor.BLUE + " über Teleportation!");
						p.sendMessage(ChatColor.DARK_GREEN + "[Elrontur] " + ChatColor.BLUE + "Lokalisiere eigene Spieler-Position...");
						t.sendMessage(ChatColor.DARK_GREEN + "[Elrontur] " + ChatColor.BLUE + "Teleportation zu " + ChatColor.GREEN + p.getName() + ChatColor.BLUE + " wird lokalisiert.");
						
						Location location = p.getLocation();
						
						int posX = location.getBlockX();
						int posY = location.getBlockY();
						int posZ = location.getBlockZ();
						
						p.sendMessage(ChatColor.DARK_GREEN + "[Elrontur] " + ChatColor.BLUE + "Starte Teleportation zu " + ChatColor.GREEN + t.getName() + ChatColor.BLUE + ".");
						
						t.getLocation().setX(posX);
						t.getLocation().setY(posY);
						t.getLocation().setZ(posZ);
						
						p.sendMessage(ChatColor.DARK_GREEN + "[Elrontur] " + ChatColor.BLUE + "Teleportation erfolgreich abgeschlossen!");
						t.sendMessage(ChatColor.DARK_GREEN + "[Elrontur] " + ChatColor.BLUE + "Teleportation erfolgreich abgeschlossen!");
						
						return true;
					}
					catch(NullPointerException np) {
						p.sendMessage(ChatColor.DARK_GREEN + "[Elrontur] " + ChatColor.BLUE + "Der Spieler " + ChatColor.GREEN + args[0] + ChatColor.BLUE + " ist nicht online - Lokalisierung abgebrochen!");
					}
				}
		}
Das möchte ich, wie auch z.B. hier wegkriegen:
Code:
if (cmd.getName().equalsIgnoreCase("hug") && p.hasPermission("elrontur.hug")) {
				Player t = (Player) this.getServer().getPlayer(args[0]);
					if(args.length == 0) {
						p.sendMessage(ChatColor.DARK_GREEN + "[Elrontur] " + ChatColor.BLUE + "Gib einen Spieler an!");
						return true;
					}
			if(args.length == 1) {
				try {
				p.sendMessage(ChatColor.DARK_GREEN + "[Elrontur] " + ChatColor.BLUE + "Du hast " + ChatColor.GREEN + t.getName() + ChatColor.BLUE + " umarmt! :)");
				t.sendMessage(ChatColor.DARK_GREEN + "[Elrontur] " + ChatColor.GREEN + p.getName() + ChatColor.BLUE + " hat dich umarmt! :)");
				return true;
				}
				catch(NullPointerException np) {
					p.sendMessage(ChatColor.DARK_GREEN + "[Elrontur] " + ChatColor.BLUE + "Der Spieler " + ChatColor.GREEN + args[0] + ChatColor.BLUE + " ist nicht online!");
					}
				}
			}
Das Problem dabei ist, dass dieser Befehl nicht auf args.length == 0 hört, sondern ein ArrayIndexOutOfBound***eption: 0 ausgibt!
Im Client wirft er mir im Chat dies vor:
An internal error occured while attempting to perform this command

Wenn mir jemand helfen könnte, wäre ich sehr dankbar! :)
 

Elronturalt

Kuhfänger
Gesperrt
Registriert
3 Juli 2012
Beiträge
62
Diamanten
0
Cabraca' schrieb:
Sicher, dass argumente übergeben wurden? (args[0] also existiert?
Also args[0] geht, ja, nur wenn ich das nicht angebe, bringt der mir den Mist... :(

~~~~
EDIT da Doppel

Naja, also so gesehen, wenn man es nicht falsch eigibt, macht es keinen Ärger. ^^
Wenn jemand doch eine Idee hat, kann er diese ja preisgeben.
 

Calenria

Braumeister
Registriert
28 Juli 2012
Beiträge
386
Alter
45
Diamanten
300
Minecraft
Calenria
Probier mal ob das so klappt:

Code:
        if (cmd.getName().equalsIgnoreCase("tome") && p.hasPermission("elrontur.to.me")) {
            if (args.length > 0 && this.getServer().getPlayer(args[0]) != null) {
                Player t = this.getServer().getPlayer(args[0]);
                if (args.length == 1) {
                    p.sendMessage(ChatColor.DARK_GREEN + "[Elrontur] " + ChatColor.BLUE + "Informiere Spieler " + ChatColor.GREEN + t.getName() + ChatColor.BLUE + " über Teleportation!");
                    p.sendMessage(ChatColor.DARK_GREEN + "[Elrontur] " + ChatColor.BLUE + "Lokalisiere eigene Spieler-Position...");
                    t.sendMessage(ChatColor.DARK_GREEN + "[Elrontur] " + ChatColor.BLUE + "Teleportation zu " + ChatColor.GREEN + p.getName() + ChatColor.BLUE + " wird lokalisiert.");

                    Location location = p.getLocation();

                    int posX = location.getBlockX();
                    int posY = location.getBlockY();
                    int posZ = location.getBlockZ();

                    p.sendMessage(ChatColor.DARK_GREEN + "[Elrontur] " + ChatColor.BLUE + "Starte Teleportation zu " + ChatColor.GREEN + t.getName() + ChatColor.BLUE + ".");

                    t.getLocation().setX(posX);
                    t.getLocation().setY(posY);
                    t.getLocation().setZ(posZ);

                    p.sendMessage(ChatColor.DARK_GREEN + "[Elrontur] " + ChatColor.BLUE + "Teleportation erfolgreich abgeschlossen!");
                    t.sendMessage(ChatColor.DARK_GREEN + "[Elrontur] " + ChatColor.BLUE + "Teleportation erfolgreich abgeschlossen!");

                    return true;
                }
            } else {
                p.sendMessage(ChatColor.DARK_GREEN + "[Elrontur] " + ChatColor.BLUE + "Der Spieler " + ChatColor.GREEN + args[0] + ChatColor.BLUE + " ist nicht online - Lokalisierung abgebrochen!");
            }
        }
 

DerHolzhacker

Braumeister
Registriert
24 April 2012
Beiträge
339
Diamanten
0
Minecraft
DerHolzhacker
Calenria' schrieb:
Probier mal ob das so klappt:

Code:
        if (cmd.getName().equalsIgnoreCase("tome") && p.hasPermission("elrontur.to.me")) {
            if (args.length > 0 && this.getServer().getPlayer(args[0]) != null) {
                Player t = this.getServer().getPlayer(args[0]);
                if (args.length == 1) {
                    p.sendMessage(ChatColor.DARK_GREEN + "[Elrontur] " + ChatColor.BLUE + "Informiere Spieler " + ChatColor.GREEN + t.getName() + ChatColor.BLUE + " über Teleportation!");
                    p.sendMessage(ChatColor.DARK_GREEN + "[Elrontur] " + ChatColor.BLUE + "Lokalisiere eigene Spieler-Position...");
                    t.sendMessage(ChatColor.DARK_GREEN + "[Elrontur] " + ChatColor.BLUE + "Teleportation zu " + ChatColor.GREEN + p.getName() + ChatColor.BLUE + " wird lokalisiert.");

                    Location location = p.getLocation();

                    int posX = location.getBlockX();
                    int posY = location.getBlockY();
                    int posZ = location.getBlockZ();

                    p.sendMessage(ChatColor.DARK_GREEN + "[Elrontur] " + ChatColor.BLUE + "Starte Teleportation zu " + ChatColor.GREEN + t.getName() + ChatColor.BLUE + ".");

                    t.getLocation().setX(posX);
                    t.getLocation().setY(posY);
                    t.getLocation().setZ(posZ);

                    p.sendMessage(ChatColor.DARK_GREEN + "[Elrontur] " + ChatColor.BLUE + "Teleportation erfolgreich abgeschlossen!");
                    t.sendMessage(ChatColor.DARK_GREEN + "[Elrontur] " + ChatColor.BLUE + "Teleportation erfolgreich abgeschlossen!");

                    return true;
                }
            } else {
                p.sendMessage(ChatColor.DARK_GREEN + "[Elrontur] " + ChatColor.BLUE + "Der Spieler " + ChatColor.GREEN + args[0] + ChatColor.BLUE + " ist nicht online - Lokalisierung abgebrochen!");
            }
        }
Das hört / schaut besser aus! als mit args
 

Elronturalt

Kuhfänger
Gesperrt
Registriert
3 Juli 2012
Beiträge
62
Diamanten
0
Neues Problem - Benötige Admin-Permission, die die Gast-Permission unterbindet!... >.<

Hi alle!

Ich brauche in meinem kleinen Listener eine Permission, welches die Gast-Permission inaktiv macht, sobald man die Admin-Permission hat!
Hier ist der Code:

Code:
@EventHandler(priority=EventPriority.NORMAL, ignoreCancelled=false)
	public void onBlockPlace(BlockPlaceEvent e) {
		
		Player p = e.getPlayer();

		if (p.hasPermission("elrontur.guest")) {
			p.sendMessage(plg + ChatColor.BLUE + "Du musst dich erst " + ChatColor.GREEN + "freischalten lassen" + ChatColor.BLUE + ", um mit der Welt interagieren zu können!");
			e.setCancelled(true);
		}
	}

Dies ist der eine Listener; da habe ich halt dann noch den BlockBreak-Listener, BlockIgnite-Listener und den PlayerInteract-Listener.
So wie ich denke, müsste man das dann in all den Listenern übertragen können... ^^

Wer hätte da eine Idee?
 
X

|| xX [DEV][LP] Ms. DivaCraft Xx ||

Guest
Logische bedingunen:

Code:
if (p.hasPermission("elrontur.guest") && !p.hasPermission("elrontur.admin") {
			p.sendMessage(plg + ChatColor.BLUE + "Du musst dich erst " + ChatColor.GREEN + "freischalten lassen" + ChatColor.BLUE + ", um mit der Welt interagieren zu können!");
			e.setCancelled(true);
		}
 

Elronturalt

Kuhfänger
Gesperrt
Registriert
3 Juli 2012
Beiträge
62
Diamanten
0
PlayerJoinEvent / PlayerQuitEvent / PlayerDeathEvent - NullPointerExeption?!

Hallo alle!
Ich habe nun eine NullPointerExeption in meinen Listenern!
Ich fügte mir eine Config ein, nur die Nachrichten geben es nicht aus...
Code:
package me.Elrontur.LingoRevision;

import java.io.File;

import org.bukkit.plugin.java.JavaPlugin;

import me.Elrontur.LingoRevision.LingoRevision;

public class LingoRevision extends JavaPlugin {
	
	@Override
	public void onDisable() {
		
		System.out.println(" ");
		System.out.println("[LingoRevision] )III( BY ELRONTUR {OFF}");
		System.out.println(" ");
		
	}

	@Override
	public void onEnable() {
		
		File fileconfig = new File(getDataFolder(), "config.yml");
		
		if (!fileconfig.exists()) {
			
	  	getDataFolder().mkdir();
	  	
	  	getConfig().addDefault("active", Boolean.valueOf(true));
	  	getConfig().addDefault("joinmessage", "§7%p joins %s!");
	  	getConfig().addDefault("quitmessage", "§8%p leaves %s!");
	  	getConfig().addDefault("deathmessage", "§c%p is died!");
	  	getConfig().addDefault("servername", "server");
	  	getConfig().options().copyDefaults(true);
	  	
	  	getConfig().options().header("--------------------------\nLingoRevision by Elrontur\n--------------------------\nCONFIG:\n--------------------------");
	  	getConfig().options().copyHeader(true);
	  	
	  	saveConfig();
		}
		
		getServer().getPluginManager().registerEvents(new EventListener(), this);

		System.out.println(" ");
		System.out.println("[LingoRevision] )III( BY ELRONTUR {ON}");
		System.out.println(" ");
	}

}
Code:
package me.Elrontur.LingoRevision;

import me.Elrontur.LingoRevision.EventListener;

import org.bukkit.entity.Player;
import org.bukkit.event.EventHandler;
import org.bukkit.event.EventPriority;
import org.bukkit.event.Listener;
import org.bukkit.event.entity.PlayerDeathEvent;
import org.bukkit.event.player.PlayerJoinEvent;
import org.bukkit.event.player.PlayerQuitEvent;

public class EventListener implements Listener {
	
	private static LingoRevision plugin;

	@EventHandler(priority=EventPriority.NORMAL, ignoreCancelled=false)
	public void onJoin(PlayerJoinEvent e) {
				
	Player p = e.getPlayer();
	
	if (plugin.getConfig().getBoolean("active") == true) {
		if ((!p.getName().equalsIgnoreCase(""))) {
			e.setJoinMessage(plugin.getConfig().getString("joinmessage").replace("%p", p.getName()).replace("%s", plugin.getConfig().getString("servername")));
			}
		}
	}

	@EventHandler(priority=EventPriority.NORMAL, ignoreCancelled=false)
	public void onQuit(PlayerQuitEvent e) {
				
	Player p = e.getPlayer();

	if (plugin.getConfig().getBoolean("active") == true) {
		if ((!p.getName().equalsIgnoreCase(""))) {
			e.setQuitMessage(plugin.getConfig().getString("quitmessage").replace("%p", p.getName()).replace("%s", plugin.getConfig().getString("servername")));
			}
		}
	}
	@EventHandler(priority=EventPriority.NORMAL, ignoreCancelled=false)
	public void onDeath(PlayerDeathEvent e) {
				
	Player p = (Player) e.getEntity();

	if (plugin.getConfig().getBoolean("active") == true) {
		if ((!p.getName().equalsIgnoreCase(""))) {
			e.setDeathMessage(plugin.getConfig().getString("joinmessage").replace("%p", p.getName()).replace("%s", plugin.getConfig().getString("servername")));
			}
		}
	}

}
 

Elronturalt

Kuhfänger
Gesperrt
Registriert
3 Juli 2012
Beiträge
62
Diamanten
0
plugin ist immernoch null -.-

Das ist doof, denn plugin ist immernoch null!
Ich schrieb das so:
Code:
package me.Elrontur.LingoRevision;

import me.Elrontur.LingoRevision.EventListener;

import org.bukkit.entity.Player;
import org.bukkit.event.EventHandler;
import org.bukkit.event.EventPriority;
import org.bukkit.event.Listener;
import org.bukkit.event.entity.PlayerDeathEvent;
import org.bukkit.event.player.PlayerJoinEvent;
import org.bukkit.event.player.PlayerQuitEvent;

public class EventListener implements Listener {
	
	private LingoRevision plugin;
	
	public EventListener(LingoRevision plugin) {
		this.plugin = plugin;
	}

	@EventHandler(priority=EventPriority.NORMAL, ignoreCancelled=false)
	public void onJoin(PlayerJoinEvent e) {
				
	Player p = e.getPlayer();
	
	if (plugin.getConfig().getBoolean("active") == true) {
		if ((!p.getName().equalsIgnoreCase(""))) {
			e.setJoinMessage(plugin.getConfig().getString("joinmessage").replace("%p", p.getName()).replace("%s", plugin.getConfig().getString("servername")));
			}
		}
	}

	@EventHandler(priority=EventPriority.NORMAL, ignoreCancelled=false)
	public void onQuit(PlayerQuitEvent e) {
				
	Player p = e.getPlayer();

	if (plugin.getConfig().getBoolean("active") == true) {
		if ((!p.getName().equalsIgnoreCase(""))) {
			e.setQuitMessage(plugin.getConfig().getString("quitmessage").replace("%p", p.getName()).replace("%s", plugin.getConfig().getString("servername")));
			}
		}
	}
	@EventHandler(priority=EventPriority.NORMAL, ignoreCancelled=false)
	public void onDeath(PlayerDeathEvent e) {
				
	Player p = (Player) e.getEntity();

	if (plugin.getConfig().getBoolean("active") == true) {
		if ((!p.getName().equalsIgnoreCase(""))) {
			e.setDeathMessage(plugin.getConfig().getString("joinmessage").replace("%p", p.getName()).replace("%s", plugin.getConfig().getString("servername")));
			}
		}
	}

}
Und bei der Zeile
Code:
getServer().getPluginManager().registerEvents(new EventListener(null), this);
ist nun das null in der Klammer...
 
Status
Für weitere Antworten geschlossen.
Oben