Хостинг серверов Minecraft playvds.com
  1. Вы находитесь в русском сообществе Bukkit. Мы - администраторы серверов Minecraft, разрабатываем собственные плагины и переводим на русский язык плагины наших собратьев из других стран.
    Dismiss Notice

Помогите Ошибка при вводе комманды

Discussion in 'Разработка плагинов для новичков' started by GodlikE, Aug 5, 2014.

  1. Автор темы
    GodlikE

    GodlikE Старожил Пользователь

    Trophy Points:
    103
    Имя в Minecraft:
    GodlikE
    И снова мне нужна ваша помощь, друзья! Я создал плагин, когда ввожу комманду /setlobby, эта позиция должна заливаться в конфиг, а потом в нужный момент можно ее взять. Код представлен ниже. Но когда я пишу комманду, мне в чате выводится ошибка красными буквами:
    internal error occurred while attempting to perform this command
    Так вот, я смотрел в интернете, как исправить эту ошибку: у меня стоит всего 1 плагин (конфликтов быть не может), версия баккита совпадает с версией сервера, и остальные варианты тоже не подходят. Логи привожу ниже. Помогите, пожалуйста! Уже 4 дня бьюсь!
    Вот исходный код:
    Code:
    Location llobby;
    Location lobby;
    public boolean onCommand(CommandSender sender, Command cmd, String commandlabel, String args[] ){
            if (sender instanceof Player)
            {
                    Player player = (Player) sender;
    if (cmd.getName().equalsIgnoreCase("setlobby"))
                    {
                        llobby = player.getLocation();
                        player.sendMessage("Точка спавна в лобби установлена");
                        conf.set("lobby.x", llobby.getX());
                        conf.set("lobby.y", llobby.getY());
                        conf.set("lobby.z", llobby.getZ());
                        conf.set("lobby.world", llobby.getWorld().getName());
                        saveConfig();   
                    }
    }
            return true;
           
        }
    private FileConfiguration conf;
    private void getLocation()
         {
         conf = getConfig();
    
         lobby = new Location(Bukkit.getWorld(conf.getString("lobby.world")),conf.getInt("lobby.x"),conf.getInt("lobby.y"),conf.getInt("lobby.z"));
         
         saveConfig();
         }

    Вот логи:
    Code:
    [17:34:38] [Server thread/INFO]: kursion issued server command: /setplayersspawn1
    [17:34:38] [Server thread/ERROR]: null
    org.bukkit.command.CommandException: Unhandled exception executing command 'setplayersspawn1' in plugin TheLastStand v0.1
        at org.bukkit.command.PluginCommand.execute(PluginCommand.java:46) ~[craftbukkit-1.7.8-R0.1-20140417.160937-13.jar:git-Bukkit-1.7.2-R0.3-28-g05dc94e-b3055jnks]
        at org.bukkit.command.SimpleCommandMap.dispatch(SimpleCommandMap.java:180) ~[craftbukkit-1.7.8-R0.1-20140417.160937-13.jar:git-Bukkit-1.7.2-R0.3-28-g05dc94e-b3055jnks]
        at org.bukkit.craftbukkit.v1_7_R3.CraftServer.dispatchCommand(CraftServer.java:703) ~[craftbukkit-1.7.8-R0.1-20140417.160937-13.jar:git-Bukkit-1.7.2-R0.3-28-g05dc94e-b3055jnks]
        at net.minecraft.server.v1_7_R3.PlayerConnection.handleCommand(PlayerConnection.java:953) [craftbukkit-1.7.8-R0.1-20140417.160937-13.jar:git-Bukkit-1.7.2-R0.3-28-g05dc94e-b3055jnks]
        at net.minecraft.server.v1_7_R3.PlayerConnection.a(PlayerConnection.java:815) [craftbukkit-1.7.8-R0.1-20140417.160937-13.jar:git-Bukkit-1.7.2-R0.3-28-g05dc94e-b3055jnks]
        at net.minecraft.server.v1_7_R3.PacketPlayInChat.a(PacketPlayInChat.java:28) [craftbukkit-1.7.8-R0.1-20140417.160937-13.jar:git-Bukkit-1.7.2-R0.3-28-g05dc94e-b3055jnks]
        at net.minecraft.server.v1_7_R3.PacketPlayInChat.handle(PacketPlayInChat.java:47) [craftbukkit-1.7.8-R0.1-20140417.160937-13.jar:git-Bukkit-1.7.2-R0.3-28-g05dc94e-b3055jnks]
        at net.minecraft.server.v1_7_R3.NetworkManager.a(NetworkManager.java:148) [craftbukkit-1.7.8-R0.1-20140417.160937-13.jar:git-Bukkit-1.7.2-R0.3-28-g05dc94e-b3055jnks]
        at net.minecraft.server.v1_7_R3.ServerConnection.c(SourceFile:134) [craftbukkit-1.7.8-R0.1-20140417.160937-13.jar:git-Bukkit-1.7.2-R0.3-28-g05dc94e-b3055jnks]
        at net.minecraft.server.v1_7_R3.MinecraftServer.v(MinecraftServer.java:667) [craftbukkit-1.7.8-R0.1-20140417.160937-13.jar:git-Bukkit-1.7.2-R0.3-28-g05dc94e-b3055jnks]
        at net.minecraft.server.v1_7_R3.DedicatedServer.v(DedicatedServer.java:260) [craftbukkit-1.7.8-R0.1-20140417.160937-13.jar:git-Bukkit-1.7.2-R0.3-28-g05dc94e-b3055jnks]
        at net.minecraft.server.v1_7_R3.MinecraftServer.u(MinecraftServer.java:558) [craftbukkit-1.7.8-R0.1-20140417.160937-13.jar:git-Bukkit-1.7.2-R0.3-28-g05dc94e-b3055jnks]
        at net.minecraft.server.v1_7_R3.MinecraftServer.run(MinecraftServer.java:469) [craftbukkit-1.7.8-R0.1-20140417.160937-13.jar:git-Bukkit-1.7.2-R0.3-28-g05dc94e-b3055jnks]
        at net.minecraft.server.v1_7_R3.ThreadServerApplication.run(SourceFile:628) [craftbukkit-1.7.8-R0.1-20140417.160937-13.jar:git-Bukkit-1.7.2-R0.3-28-g05dc94e-b3055jnks]
    Caused by: java.lang.NullPointerException
        at thelaststand.MainClass.onCommand(MainClass.java:970) ~[?:?]
        at org.bukkit.command.PluginCommand.execute(PluginCommand.java:44) ~[craftbukkit-1.7.8-R0.1-20140417.160937-13.jar:git-Bukkit-1.7.2-R0.3-28-g05dc94e-b3055jnks]
        ... 13 more

     
  2. Хостинг MineCraft
    <
  3. serega6531

    serega6531 Старожил Девелопер Пользователь

    Trophy Points:
    173
    Skype:
    shkurovs
    >>версия баккита совпадает с версией сервера
    Чего?
    Где 970 строка?
     
  4. makssof

    makssof Старожил Девелопер Пользователь

    Trophy Points:
    103
    Skype:
    makssofez
    Code:
    if (cmd.getName().equalsIgnoreCase("setlobby"))
    Ты показал каплю, теперь покажи море. Больше кода, я имею в виду. Ибо из этого не очень понятно. + plugin.yml
     
  5. Автор темы
    GodlikE

    GodlikE Старожил Пользователь

    Trophy Points:
    103
    Имя в Minecraft:
    GodlikE
    Это не весь код, а только часть=) Но проблема именно в этой части[DOUBLEPOST=1407235038,1407235007][/DOUBLEPOST][DOUBLEPOST=1407235238][/DOUBLEPOST]
    Ах ты, маленький Да Винчи=) вот plugin.yml:
    Code:
    name: TheLastStand
    main: thelaststand.MainClass
    description: easy
    version: 0.1
    commands:
       setlobby:
          description: This is a demo command2.
          usage: /setlobby
          permission: TheLastStand.setlobby
          permission-message: You don't have <permission>
     
  6. makssof

    makssof Старожил Девелопер Пользователь

    Trophy Points:
    103
    Skype:
    makssofez
    Code:
    if (cmd.getName().equalsIgnoreCase("setlobby"))
    Code:
    commands:
       setlobby1:
    Я вот это не пойму..[DOUBLEPOST=1407235467,1407235394][/DOUBLEPOST]Попробуй вот так:
    Code:
    "setlobby1".equalsIgnoreCase(cmd.getName())
     
  7. Автор темы
    GodlikE

    GodlikE Старожил Пользователь

    Trophy Points:
    103
    Имя в Minecraft:
    GodlikE
    У меня в plugin.yml написано не "setlobby1", а "setlobby"[DOUBLEPOST=1407241931][/DOUBLEPOST]
    Вот 970 строка: conf.set("playersspawn.x", lplayersspawn.getX()); И я там опечатался: версия плагина совпадает с версией сервера
     
  8. serega6531

    serega6531 Старожил Девелопер Пользователь

    Trophy Points:
    173
    Skype:
    shkurovs
    null может быть conf или lplayersspawn
     
  9. Автор темы
    GodlikE

    GodlikE Старожил Пользователь

    Trophy Points:
    103
    Имя в Minecraft:
    GodlikE
    А как conf может быть null, если я в него заношу информацию? А lplayersspawn тоже не может быть null, потому что я присваиваю ему значение player.getLocation();
     
  10. Den_Abr

    Den_Abr Старожил Девелопер Пользователь

    Trophy Points:
    173
    Skype:
    Den_Abr
    Имя в Minecraft:
    Den_Abr
    Из кода не понятно, как переменной conf присваивается какое-то значение, getLocation() вроде нигде не вызвался
     
  11. Автор темы
    GodlikE

    GodlikE Старожил Пользователь

    Trophy Points:
    103
    Имя в Minecraft:
    GodlikE
    Я нашел ошибку! Ошибка была в том, что я присваивал переменной conf значение getConfig(); только тогда, когда вызывался метод getLocation(); а когда я писал комманду, метод getLocation() еще не был вызван и переменная conf оставалась пустой=) @serega6531 ты был прав! Спасибо всем!!
     

Share This Page