Name can't not be "null" ???

Discussion in 'Plugin Development' started by sum_17427, Jul 31, 2013.

Thread Status:
Not open for further replies.
  1. Offline

    sum_17427

    I have a plugin /setshop and use /shop to go. But my code is error, it said: Name cannot be null
    My Error:
    Code:
    22:46:54 [SEVERE] Error occurred while enabling SetPlus v1.0 (Is it up to date?)
     
    java.lang.IllegalArgumentException: Name cannot be null
            at org.apache.commons.lang.Validate.notNull(Validate.java:203)
            at org.bukkit.craftbukkit.v1_6_R2.CraftServer.getWorld(CraftServer.java:
    819)
            at org.bukkit.Bukkit.getWorld(Bukkit.java:247)
            at mc.summc.setplus.SetPlus.onEnable(SetPlus.java:24)
            at org.bukkit.plugin.java.JavaPlugin.setEnabled(JavaPlugin.java:217)
            at org.bukkit.plugin.java.JavaPluginLoader.enablePlugin(JavaPluginLoader
    .java:457)
            at org.bukkit.plugin.SimplePluginManager.enablePlugin(SimplePluginManage
    r.java:381)
            at org.bukkit.craftbukkit.v1_6_R2.CraftServer.loadPlugin(CraftServer.jav
    a:282)
            at org.bukkit.craftbukkit.v1_6_R2.CraftServer.enablePlugins(CraftServer.
    java:264)
            at net.minecraft.server.v1_6_R2.MinecraftServer.l(MinecraftServer.java:3
    13)
            at net.minecraft.server.v1_6_R2.MinecraftServer.f(MinecraftServer.java:2
    90)
            at net.minecraft.server.v1_6_R2.MinecraftServer.a(MinecraftServer.java:2
    50)
            at net.minecraft.server.v1_6_R2.DedicatedServer.init(DedicatedServer.jav
    a:151)
            at net.minecraft.server.v1_6_R2.MinecraftServer.run(MinecraftServer.java
    :391)
            at net.minecraft.server.v1_6_R2.ThreadServerApplication.run(SourceFile:5
    82)
    My Main class ( only 1 class ):
    Code:
    package mc.summc.setplus;
     
    import org.bukkit.Bukkit;
    import org.bukkit.ChatColor;
    import org.bukkit.Location;
    import org.bukkit.command.Command;
    import org.bukkit.command.CommandSender;
    import org.bukkit.entity.Player;
    import org.bukkit.plugin.java.JavaPlugin;
     
    public class SetPlus extends JavaPlugin {
        public Location loc = new Location(null, 0, 0, 0);
       
        @Override
        public void onEnable(){
           
            getConfig().options().copyDefaults(true);
            saveConfig();
            loc.setX(getConfig().getInt("Shop.x"));
            loc.setY(getConfig().getInt("Shop.y"));
            loc.setZ(getConfig().getInt("Shop.z"));
            loc.setPitch((float) getConfig().getDouble("Shop.Pitch"));
            loc.setYaw((float) getConfig().getDouble("Shop.Yaw"));
            loc.setWorld(Bukkit.getWorld(getConfig().getString("Shop.World")));
        }
     
        public boolean onCommand(CommandSender sender, Command cmd, String label, String[] args)
        {
            if (cmd.getName().equalsIgnoreCase("shop"))
            {
                if (!(sender instanceof Player))
                {
                    sender.sendMessage("You can't use /shop on console");
                    return true;
                }
                if (args.length != 0)
                {
                    if (args[0].equalsIgnoreCase("reload") && sender.hasPermission("shop.set"))
                    {
                        loc.setX(getConfig().getInt("Shop.x"));
                        loc.setY(getConfig().getInt("Shop.y"));
                        loc.setZ(getConfig().getInt("Shop.z"));
                        loc.setPitch((float) getConfig().getDouble("Shop.Pitch"));
                        loc.setYaw((float) getConfig().getDouble("Shop.Yaw"));
                        loc.setWorld(Bukkit.getWorld(getConfig().getString("Shop.World")));
                        sender.sendMessage(ChatColor.GREEN + "Config Reloaded!");
                    }
                }
                else
                {
                    sender.sendMessage(colorize(getConfig().getString("ShopTeleportMessage")));
                    Player player = (Player)sender;
                    player.teleport(loc);
                }
                return true;
            }
            else if (cmd.getName().equalsIgnoreCase("setshop"))
            {
                if (!(sender instanceof Player))
                {
                    sender.sendMessage("You can't use /setshop on console");
                    return true;
                }
                sender.sendMessage(colorize(getConfig().getString("ShopSetMessage")));
                Player player = (Player)sender;
                loc = player.getLocation();
                getConfig().set("Shop.x", loc.getBlockX());
                getConfig().set("Shop.y", loc.getBlockY());
                getConfig().set("Shop.z", loc.getBlockZ());
                getConfig().set("Shop.Yaw", loc.getYaw());
                getConfig().set("Shop.Pitch", loc.getPitch());
                getConfig().set("Shop.World", loc.getWorld().getName());
                saveConfig();
                return true;
            }
            return false;
        }
     
        public String colorize(String string)
        {
            string = string.replace("&", "ยง");
            return string;
        }
       
        @Override
        public void onDisable(){
           
        }
    }
    
    Please help me.
     
  2. Offline

    RROD

    Line 24, shop.world in your configuration is likely empty so will be returning a null value. Set a default value to return if this is the case, and/or add defaults to your config.

    Code:java
    1.  
    2. loc.setWorld(Bukkit.getWorld(getConfig().getString("Shop.World", "world")));
    3.  


    It might also be that your config.yml isn't being copied over for some reason (is it being packaged into the jar file?).

    An alternative would be to get the default (first world), though a configuration ability is always nicer if you can get it to work.
    Code:java
    1.  
    2. loc.setWorld(Bukkit.getWorlds().get(0));
    3.  
     
  3. Offline

    sum_17427

    RROD the error on cons is gone, but when I do /setshop, it said "An internal error occurred while attempting to perform this command"
    Error /setshop:
    Code:
    07:13:40 [INFO] summc issued server command: /setshop
    07:13:40 [SEVERE] null
    org.bukkit.command.CommandException: Unhandled exception executing command 'sets
    hop' in plugin SetPlus v1.0
            at org.bukkit.command.PluginCommand.execute(PluginCommand.java:46)
            at org.bukkit.command.SimpleCommandMap.dispatch(SimpleCommandMap.java:18
    9)
            at org.bukkit.craftbukkit.v1_6_R2.CraftServer.dispatchCommand(CraftServe
    r.java:523)
            at net.minecraft.server.v1_6_R2.PlayerConnection.handleCommand(PlayerCon
    nection.java:964)
            at net.minecraft.server.v1_6_R2.PlayerConnection.chat(PlayerConnection.j
    ava:882)
            at net.minecraft.server.v1_6_R2.PlayerConnection.a(PlayerConnection.java
    :839)
            at net.minecraft.server.v1_6_R2.Packet3Chat.handle(SourceFile:49)
            at net.minecraft.server.v1_6_R2.NetworkManager.b(NetworkManager.java:296
    )
            at net.minecraft.server.v1_6_R2.PlayerConnection.e(PlayerConnection.java
    :118)
            at net.minecraft.server.v1_6_R2.ServerConnection.b(SourceFile:37)
            at net.minecraft.server.v1_6_R2.DedicatedServerConnection.b(SourceFile:3
    0)
            at net.minecraft.server.v1_6_R2.MinecraftServer.t(MinecraftServer.java:5
    90)
            at net.minecraft.server.v1_6_R2.DedicatedServer.t(DedicatedServer.java:2
    26)
            at net.minecraft.server.v1_6_R2.MinecraftServer.s(MinecraftServer.java:4
    86)
            at net.minecraft.server.v1_6_R2.MinecraftServer.run(MinecraftServer.java
    :419)
            at net.minecraft.server.v1_6_R2.ThreadServerApplication.run(SourceFile:5
    82)
    Caused by: java.lang.NullPointerException
            at mc.summc.setplus.SetPlus.colorize(SetPlus.java:81)
            at mc.summc.setplus.SetPlus.onCommand(SetPlus.java:64)
            at org.bukkit.command.PluginCommand.execute(PluginCommand.java:44)
            ... 15 more
    How I set the config.yml?
     
  4. Offline

    RROD

  5. Offline

    sum_17427

    RROD I'm from vietnam, i cannot understand all. Sorry
    Can u fixed it for me
     
Thread Status:
Not open for further replies.

Share This Page