• 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!

NullPointerException - Aber warum?

MineHarry

Redstoneengineer
Registriert
15 September 2012
Beiträge
34
Diamanten
0
Minecraft
MineHarry01
Ich programmiere derzeit für einen Privaten Server ein Plugin, unter benutzung von WorldEdit, WorldGuard, WGCustomFlags.
Ich nutze CraftBukkit in der version git-Spigot-1192 mit Java 7 x64 unter Windows 8.1 x64.
Folgendes Sagt das ErrorLog:
Code:
[18:53:49] [Server thread/INFO]: Starting minecraft server version 1.7.2[18:53:49] [Server thread/INFO]: Loading properties
[18:53:49] [Server thread/INFO]: Default game type: SURVIVAL
[18:53:49] [Server thread/INFO]: This server is running CraftBukkit version git-Spigot-1192 (MC: 1.7.2) (Implementing API version 1.7.2-R0.1-SNAPSHOT)
[18:53:49] [Server thread/INFO]: Using 3 threads for Netty based IO
[18:53:49] [Server thread/INFO]: Generating keypair
[18:53:49] [Server thread/INFO]: Starting Minecraft server on 127.0.0.1:25565
[18:53:50] [Server thread/ERROR]: Could not load 'plugins\vanillasystem.jar' in folder 'plugins'
org.bukkit.plugin.InvalidPluginException: java.lang.NullPointerException
	at org.bukkit.plugin.java.JavaPluginLoader.loadPlugin(JavaPluginLoader.java:182) ~[spigot.jar:git-Spigot-1192]
	at org.bukkit.plugin.SimplePluginManager.loadPlugin(SimplePluginManager.java:306) ~[spigot.jar:git-Spigot-1192]
	at org.bukkit.plugin.SimplePluginManager.loadPlugins(SimplePluginManager.java:230) [spigot.jar:git-Spigot-1192]
	at org.bukkit.craftbukkit.v1_7_R1.CraftServer.loadPlugins(CraftServer.java:259) [spigot.jar:git-Spigot-1192]
	at net.minecraft.server.v1_7_R1.DedicatedServer.init(DedicatedServer.java:133) [spigot.jar:git-Spigot-1192]
	at net.minecraft.server.v1_7_R1.MinecraftServer.run(MinecraftServer.java:430) [spigot.jar:git-Spigot-1192]
	at net.minecraft.server.v1_7_R1.ThreadServerApplication.run(SourceFile:617) [spigot.jar:git-Spigot-1192]
Caused by: java.lang.NullPointerException
	at de.henry_herrgesell.VanillaSystem.VanillaSystem.<init>(VanillaSystem.java:68) ~[?:?]
	at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method) ~[?:1.7.0_45]
	at sun.reflect.NativeConstructorAccessorImpl.newInstance(Unknown Source) ~[?:1.7.0_45]
	at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(Unknown Source) ~[?:1.7.0_45]
	at java.lang.reflect.Constructor.newInstance(Unknown Source) ~[?:1.7.0_45]
	at org.bukkit.plugin.java.JavaPluginLoader.loadPlugin(JavaPluginLoader.java:178) ~[spigot.jar:git-Spigot-1192]
	... 6 more
Hier die betreffenden zeilen...
Code:
Z40	public final class VanillaSystem extends JavaPlugin implements Listener {
Z64	public static BooleanFlag LABY_END = new BooleanFlag("LABY-END");Z65	public Player fplayer = null;
Z66	public int mitspieler = 0;
Z67	public int fertigespieler = 0;
Z68	public Location Stadion = new Location(getServer().getWorld("Stadion"), 839.54015, 60, -1358.16201);
Z69	public Location Laby = new Location(getServer().getWorld("Weihnachten"), 116.22765, 70, 211.70946);
Z70	public Location Spawn = new Location(getServer().getWorld("world"), 174.18, 70, 241.74);
Z71	public Location WH = new Location(getServer().getWorld("Weihnachten"), 83.28643, 64, 188.46992);
Z72	public Location Stadion_Mitte = new Location(getServer().getWorld("Stadion"), 850.35139, 49, -1385.7);

Abgerufen werden die Locations über ein Playerobjekt für ein Teleport:
Code:
player.teleport(Spawn);

Ich bin echt am verzweifeln, woran es liegt...
Die Locations hatte ich vorher kreuz und quer im code verteilt, und da ging es noch. Jedoch wollte ich jetzt aufräumen, seitdem geht das einfach nichtmehr.

Ich bin für jeden Hinweis dankbar

MfG
 

MineHarry

Redstoneengineer
Registriert
15 September 2012
Beiträge
34
Diamanten
0
Minecraft
MineHarry01
Hi,
wie kommst du darauf das es mit onEnable / onDisable zusammenhängen könnte?
Ich glaube auch nicht das dort ein fehler vorliegt:
Code:
	@Override	public void onEnable(){
		registerEvents();
		getWGCustomFlags().loadAllWorlds();
		getWGCustomFlags().addCustomFlag(LABY_END);
		getLogger().info("VanillaSystem aktiviert!");
	}
	@Override
	public void onDisable(){
		getWGCustomFlags().saveAllWorlds(true);
		getLogger().info("VanillaSystem deaktiviert!");
	}
 
S

Spedy123456

Guest
at org.bukkit.plugin.java.JavaPluginLoader.loadPlugin(JavaPluginLoader

Deshalb dachte ich, aber hab wie gesagt keine Ahnung davon ^^

Edit:
at de.henry_herrgesell.VanillaSystem.VanillaSystem.<init>(VanillaSystem.java:68) ~[?:?]
Was steht da denn in Zeile 68, vielleicht da der Fehler?
 

MineHarry

Redstoneengineer
Registriert
15 September 2012
Beiträge
34
Diamanten
0
Minecraft
MineHarry01
Achso np.
In Zeile 68 steht
Code:
[COLOR=#444444]public Location Stadion = new Location(getServer().getWorld("Stadion"), 839.54015, 60, -1358.16201);[/COLOR]
Wie auch geschrieben unter Betreffende Zeilen im 1. Post. Ich farge mich wie dabei ein Null-Point exception auftreten kann, da die Welt Stadion vorhanden ist. Ich kann mir nicht erklären wo ein wert null auftreten soll/kann.
 

MineHarry

Redstoneengineer
Registriert
15 September 2012
Beiträge
34
Diamanten
0
Minecraft
MineHarry01
Hmm, interesannter Aspeckt. Der teleport wird zwar relativ spät nach laden des Plugins ausgeführt, jedoch wird ja die Location direkt initialisiert. Was wäre die bessere variante? Initalisieren der Location nach hinten verschieben - oder Bukkit dazu zwingen alle welten vorher zu laden?
 

MineHarry

Redstoneengineer
Registriert
15 September 2012
Beiträge
34
Diamanten
0
Minecraft
MineHarry01
Danke, das werde ich gleich mal ausprobieren.
Jedoch erstmal neue Erkenntnisse zum Problem:
Ich habe mal stellen auskommentiert, die mit Abhängigkeiten der anderen Plugins zutun haben (WorldGuard Regionen, WorldEdit tools, WGCustomFLags Definitionen). Nach dem Auskommentieren scheint das Plugin jetzt wieder zu laufen, daher vermute ich, dass die Fehlermeldung nicht konkret auf die Locations verweist sondern eher ein Problem bei dem zusammenspiel mit WorldEdit/WorldGuard Regionen und der Locations. Denn die Locations alleine ergeben nicht nur keinen Fehler, sondern funktionieren zudem auch noch.

hauptsächlich habe ich nur dieses Event auskommentiert:
Code:
    public void onPlayerMove(PlayerMoveEvent e) {            WorldGuardPlugin worldGuard = getWorldGuard();
        if(worldGuard == null) {
            return;
        }
        com.sk89q.worldedit.Vector pt = toVector(e.getTo().getBlock().getLocation()); // This also takes a location
         
        RegionManager regionManager = worldGuard.getRegionManager(e.getTo().getWorld());
        ApplicableRegionSet set = regionManager.getApplicableRegions(pt);
        if (set.getFlag(LABY_END) == true) {
            Player p = e.getPlayer();
            p.addPotionEffect(PotionEffectType.NIGHT_VISION.createEffect(10, 1));
            p.addPotionEffect(PotionEffectType.SATURATION.createEffect(10, 1));
            p.addPotionEffect(PotionEffectType.SPEED.createEffect(10, 10));
            p.teleport(laby);
            if(fplayer == null) {
                getServer().broadcastMessage(ChatColor.translateAlternateColorCodes('&', "&6[&4Weihnachten&6] &bSpieler &6" + p.getDisplayName()  + " &bhat das Labyrinth als erstes geschafft!"));
                p.sendMessage(ChatColor.translateAlternateColorCodes('&', "&6[&4Weihnachten&6] &bDu hast das Labyrinth als erstes geschafft. Du kannst jetzt die anderen Spieler beobachten. Dir steht auch frei bis zur Siegerehrung das Event zu verlassen."));
                p.setLevel(p.getLevel() + 100);
            } else {
                getServer().broadcastMessage(ChatColor.translateAlternateColorCodes('&', "&6[&4Weihnachten&6] &bSpieler &6" + p.getDisplayName()  + " &bhat das Labyrinth geschafft!"));
                p.sendMessage(ChatColor.translateAlternateColorCodes('&', "&6[&4Weihnachten&6] &bDu hast das Labyrinth geschafft. Du kannst jetzt die anderen Spieler beobachten. Dir steht auch frei bis zur Siegerehrung das Event zu verlassen."));
                p.setLevel(p.getLevel() + 60);
            }
            if(fertigespieler < mitspieler) {
                fertigespieler++;
            } else {
                getServer().broadcastMessage(ChatColor.translateAlternateColorCodes('&', "&6[&4Weihnachten&6] &bAlle Spieler haben das Labyrinth geschafft!"));
                getServer().broadcastMessage(ChatColor.translateAlternateColorCodes('&', "&6[&4Weihnachten&6] &bTelepotiere nun alle zur Siegerehrung..."));
                for(Player pl : Bukkit.getOnlinePlayers()){
                     pl.sendMessage(ChatColor.translateAlternateColorCodes('&', "&6[&4Weihnachten&6] &bDu wirst nun zur Siegerehrung telepotiert!"));
                     pl.addPotionEffect(PotionEffectType.WEAKNESS.createEffect(20, 100));
                     pl.getWorld().playSound(p.getLocation(), Sound.ENDERMAN_TELEPORT, 100, 1);
                     pl.teleport(stadion);
                 }
                fertigespieler = 0;
            }
        }
        
    }
Ich weiß, das ist nicht grade schön Programmiert, aber sobald ich es besser kann optimiere ich es. Das ändert auch nichts an dem Momentanem Problem.
 
Oben