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

Welt der Config ist null

AvoPXL

Minecrafter
Registriert
14 Mai 2016
Beiträge
28
Alter
29
Diamanten
0
Hey MCSEU,

ich arbeite gerade an einen eigenen Minigame.

Ich habe eine Location erstellt "Location teleport = new Location(Welt, X, Y, Z)"

Beim Teleport bzw. wenn dieser Teleport ausgeführt wird, kommt ein Error: NullPointerException.

Folgendes ist Null:
Code:
static Main m;

World w = Bukkit.getServer().getWorld(m.getConfig().getString("world"));

Ich glaube es liegt daran dass in der Config folgendes steht:

world: world

und nicht

world: 'world'

Es existiert alles in der Config.

Vielen Dank für die Hilfe.
 

AvoPXL

Minecrafter
Registriert
14 Mai 2016
Beiträge
28
Alter
29
Diamanten
0
Code:
package me.avopxl.haudenhemdmann;

import java.util.ArrayList;
import java.util.HashMap;

import org.bukkit.Bukkit;
import org.bukkit.Location;
import org.bukkit.Material;
import org.bukkit.World;
import org.bukkit.block.Sign;
import org.bukkit.command.Command;
import org.bukkit.command.CommandSender;
import org.bukkit.entity.Player;
import org.bukkit.event.EventHandler;
import org.bukkit.event.Listener;
import org.bukkit.event.block.BlockBreakEvent;
import org.bukkit.event.block.BlockPlaceEvent;
import org.bukkit.event.block.SignChangeEvent;
import org.bukkit.event.entity.EntityDamageByEntityEvent;
import org.bukkit.event.player.PlayerInteractEvent;
import org.bukkit.event.player.PlayerQuitEvent;
import org.bukkit.inventory.ItemStack;
import org.bukkit.plugin.java.JavaPlugin;

public class Main extends JavaPlugin implements Listener {

    /** UTILS **/

    public static HashMap<Player, Location> save = new HashMap<Player, Location>();
    public static HashMap<Player, ItemStack[]> save2 = new HashMap<Player, ItemStack[]>();

    public static ArrayList<Player> ingame = new ArrayList<Player>();

    public static boolean countdown = false;

    /** REGISTERING **/

    @Override
    public void onEnable() {
        Bukkit.getServer().getPluginManager().registerEvents(this, this);
        set("hemd.spawn.welt", "world");
        coord("hemd.spawn.x", 0);
        coord("hemd.spawn.y", 0);
        coord("hemd.spawn.z", 0);
        set("hemd.teleport.welt", "world");
        coord("hemd.teleport.x", 0);
        coord("hemd.teleport.y", 0);
        coord("hemd.teleport.z", 0);
        set("hemd.wartelobby.welt", "world");
        coord("hemd.wartelobby.x", 0);
        coord("hemd.wartelobby.y", 0);
        coord("hemd.wartelobby.z", 0);
        getConfig().options().copyDefaults(true);
        saveConfig();
    }

    /** METHODS **/

    public void coord(String config, int value) {
        if (getConfig().getInt(config) == 0) {
            getConfig().set(config, value);
        } else {
            getConfig().set(config, getConfig().getInt(config));
        }
    }

    public void set(String config, String value) {
        if (getConfig().getString(config) == null) {
            getConfig().set(config, value);
        } else {
            getConfig().set(config, getConfig().getString(config));
        }
    }

    public void start(Player gamers) {
        if (Join.running == false) {
            World w = Bukkit.getServer().getWorld(getConfig().getString("hemd.spawn.world"));
            Location spawn = new Location(w, getConfig().getDouble("hemd.spawn.x"),
                    getConfig().getDouble("hemd.spawn.y"), getConfig().getDouble("hemd.spawn.z"));
            gamers.teleport(spawn);
            gamers.sendMessage("§7[§eHau den HemdMann§7] §aDas Spiel hat begonnen! Farme dir nun Equipment!");
            ingame.add(gamers);
            Bukkit.getServer().getScheduler().scheduleSyncDelayedTask(this, new Runnable() {
                public void run() {
                    gamers.sendMessage("§7[§eHau den HemdMann§7] §aIn 4 Minute werden alle Spieler teleportiert!");
                }
            }, 1 * (60 * 20));
            Bukkit.getServer().getScheduler().scheduleSyncDelayedTask(this, new Runnable() {
                public void run() {
                    gamers.sendMessage("§7[§eHau den HemdMann§7] §aIn 3 Minute werden alle Spieler teleportiert!");
                }
            }, 2 * (60 * 20));
            Bukkit.getServer().getScheduler().scheduleSyncDelayedTask(this, new Runnable() {
                public void run() {
                    gamers.sendMessage("§7[§eHau den HemdMann§7] §aIn 2 Minute werden alle Spieler teleportiert!");
                }
            }, 3 * (60 * 20));
            Bukkit.getServer().getScheduler().scheduleSyncDelayedTask(this, new Runnable() {
                public void run() {
                    gamers.sendMessage("§7[§eHau den HemdMann§7] §aIn 1 Minute werden alle Spieler teleportiert!");
                }
            }, 4 * (60 * 20));
            Bukkit.getServer().getScheduler().scheduleSyncDelayedTask(this, new Runnable() {
                public void run() {
                    Teleport.teleport(gamers);
                }
            }, 5 * (60 * 20));
        } else {
            gamers.sendMessage(
                    "§4§lError: §cDie Runde ist anscheinend bereits gestartet! Bitte melde das einen Administrator.");
        }
    }

    public void end() {
        for (Player p : Join.players) {
            p.sendMessage("§7[§eHau den HemdMann§7] §aHerzlichen Glückwunsch! Alle HemdMänner wurden gehauen!");
            p.sendMessage("§7[§eHau den HemdMann§7] §aBenutze den Befehl /leavehdhm oder warte noch 10 Sekunden.");
            Bukkit.getScheduler().scheduleSyncDelayedTask(this, new Runnable() {
                public void run() {
                    if (Join.players.contains(p)) {
                        Leave.leave(p);
                        Join.running = false;
                    }
                }
            }, 10 * 20);
        }
    }

    /** EVENTS **/

    @EventHandler
    public void SignChangeEvent(SignChangeEvent e) {
        Player p = e.getPlayer();
        if (p.hasPermission("hemdmann.haudenhemdmann.schild")) {
            if (e.getLine(0).equalsIgnoreCase("[hau]") || e.getLine(0).equalsIgnoreCase("[hdhm]")) {
                e.setLine(0, "§6[HDHM]");
                e.setLine(1, Join.players.size() + "§e/§010");
                Bukkit.getServer().getScheduler().scheduleSyncRepeatingTask(this, new Runnable() {
                    public void run() {
                        e.setLine(1, Join.players.size() + "§e/§010");
                    }
                }, 50, 50);
                e.setLine(2, "§b[§3Join§b]");
                e.setLine(3, "***");
            }
        }
    }

    @EventHandler
    public void PlayerInteract(PlayerInteractEvent e) {
        Player p = e.getPlayer();
        ItemStack i = e.getItem();
        if (e.getClickedBlock().getType() == Material.WALL_SIGN) {
            Sign s = (Sign) e.getClickedBlock().getState();
            if (s.getLine(3).equalsIgnoreCase("***")) {
                Join.join(p);
            }
        } else if (i.getType() == Material.SLIME_BALL) {
            if (i.getItemMeta().getDisplayName().equalsIgnoreCase("§cSpiel verlassen")) {
                Leave.leave(p);
            }
        } else {

        }
    }

    @EventHandler
    public void onLeave(PlayerQuitEvent e) {
        Player p = e.getPlayer();
        if (Join.players.contains(p)) {
            Leave.leave(p);
        }
    }

    @EventHandler
    public void onBlockPlace(BlockPlaceEvent e) {
        if (Join.players.contains(e.getPlayer())) {
            e.setCancelled(true);
        }
    }

    @EventHandler
    public void onBlockBreak(BlockBreakEvent e) {
        if (Join.players.contains(e.getPlayer())) {
            e.setCancelled(true);
        }
    }

    @EventHandler
    public void onDamage(EntityDamageByEntityEvent e) {
        if (Join.players.contains(e.getEntity())) {
            e.setCancelled(true);
        }
    }

    /** COMMANDS **/

    public boolean onCommand(CommandSender cs, Command cmd, String label, String[] args) {
        Player p = (Player) cs;
        if (cmd.getName().equalsIgnoreCase("sethemdspawn")) {
            if (p.hasPermission("hemdmann.haudenhemdmann.setspawn")) {
                if (args.length == 0) {
                    getConfig().set("hemd.spawn.world", "'" + p.getWorld().getName().toString() + "'");
                    getConfig().set("hemd.spawn.x", p.getLocation().getX());
                    getConfig().set("hemd.spawn.y", p.getLocation().getY());
                    getConfig().set("hemd.spawn.z", p.getLocation().getZ());
                    saveConfig();
                    p.sendMessage("§aDer Spawn wurde erfolgreich gesetzt!");
                    return true;
                } else {
                    p.sendMessage("§c/sethemdspawn");
                    return true;
                }
            }
        }
        if (cmd.getName().equalsIgnoreCase("starthdhm")) {
            if (p.hasPermission("hemdmann.haudenhemdmann.start")) {
                for (Player gamers : Join.players) {
                    start(gamers);
                }
            }
        }
        if (cmd.getName().equalsIgnoreCase("sethemdteleport")) {
            if (p.hasPermission("hemdmann.haudenhemdmann.setteleport")) {
                if (args.length == 0) {
                    getConfig().set("hemd.teleport.world", "'" + p.getWorld().getName().toString() + "'");
                    getConfig().set("hemd.teleport.x", p.getLocation().getX());
                    getConfig().set("hemd.teleport.y", p.getLocation().getY());
                    getConfig().set("hemd.teleport.z", p.getLocation().getZ());
                    saveConfig();
                    p.sendMessage("§aDer Spawn des Teleports wurde erfolgreich gesetzt!");
                    return true;
                } else {
                    p.sendMessage("§c/sethemdspawn");
                    return true;
                }
            }
        }
        if (cmd.getName().equalsIgnoreCase("joinhdhm")) {
            Join.join(p);
        }
        if (cmd.getName().equalsIgnoreCase("leavehdhm")) {
            Leave.leave(p);
        }
        if (cmd.getName().equalsIgnoreCase("setwartelobby")) {
            if (p.hasPermission("hemdmann.haudenhemdmann.setwartelobby")) {
                if (args.length == 0) {
                    getConfig().set("hemd.wartelobby.world", "'" + p.getWorld().getName().toString() + "'");
                    getConfig().set("hemd.wartelobby.x", p.getLocation().getX());
                    getConfig().set("hemd.wartelobby.y", p.getLocation().getY());
                    getConfig().set("hemd.wartelobby.z", p.getLocation().getZ());
                    saveConfig();
                    p.sendMessage("§aDer Spawn der Wartelobby wurde erfolgreich gesetzt!");
                    return true;
                } else {
                    p.sendMessage("§c/sethemdspawn");
                    return true;
                }
            }
        }
        return true;
    }

}

Und ich weis das mit coord() und set() war unnötig könnte man mit addDefault machen aber ich hatte nur etwas getestet.
Ich habe mittlerweile die Methode von dieser Location in die Main eingefügt
 
Oben