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

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

Тема в разделе "Разработка плагинов для новичков", создана пользователем GodlikE, 5 авг 2014.

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

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

    Баллы:
    103
    Имя в Minecraft:
    GodlikE
    И снова мне нужна ваша помощь, друзья! Я создал плагин, когда ввожу комманду /setlobby, эта позиция должна заливаться в конфиг, а потом в нужный момент можно ее взять. Код представлен ниже. Но когда я пишу комманду, мне в чате выводится ошибка красными буквами:
    internal error occurred while attempting to perform this command
    Так вот, я смотрел в интернете, как исправить эту ошибку: у меня стоит всего 1 плагин (конфликтов быть не может), версия баккита совпадает с версией сервера, и остальные варианты тоже не подходят. Логи привожу ниже. Помогите, пожалуйста! Уже 4 дня бьюсь!
    Вот исходный код:
    Код:
    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();
         }

    Вот логи:
    Код:
    [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 Старожил Девелопер Пользователь

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

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

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

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

    Баллы:
    103
    Имя в Minecraft:
    GodlikE
    Это не весь код, а только часть=) Но проблема именно в этой части[DOUBLEPOST=1407235038,1407235007][/DOUBLEPOST][DOUBLEPOST=1407235238][/DOUBLEPOST]
    Ах ты, маленький Да Винчи=) вот plugin.yml:
    Код:
    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 Старожил Девелопер Пользователь

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

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

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

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

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

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

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

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

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

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

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

Поделиться этой страницей