1. Этот сайт использует файлы cookie. Продолжая пользоваться данным сайтом, Вы соглашаетесь на использование нами Ваших файлов cookie. Узнать больше.
  2. Вы находитесь в сообществе Rubukkit. Мы - администраторы серверов Minecraft, разрабатываем собственные плагины и переводим на различные языки плагины наших коллег из других стран.
    Скрыть объявление
Скрыть объявление
В преддверии глобального обновления, мы проводим исследования, которые помогут нам сделать опыт пользования форумом ещё удобнее. Помогите нам, примите участие!

Помогите Проблемы с установкой спавна.

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

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

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

    Баллы:
    103
    Имя в Minecraft:
    GodlikE
    Всем привет. Я пытаюсь поставить спавн в лобби коммандой /setlobby (естественно с заносом его в конфиг), но когда я запускаю сервер и на сервере пишу /setlobby, выдается ошибка в чате красными буквами "An internal error occurred while attempting to perform this command", а в консоли сервера написано ERROR: Null. Я уже 3 дня ищу эту ошибку и не могу найти, помогите пожалуйста! Ниже представлен код:
    Вот метод самого введения комманды:
    Код:
    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"))
                    {
                        lobby = player.getLocation();
                        player.sendMessage("Точка спавна в лобби установлена");
                        conf.createSection("lobbyspawn", serializeLocation(lobby));
                        saveConfig();  
                    }
    }return true;
    }
    Вот метод, которым я заношу и выношу из конфига локации:
    Код:
    private Map<String, Object> serializeLocation(Location loc){
              Map<String, Object> map = new HashMap<String, Object>();
            
              map.put("x", loc.getX());
              map.put("y", loc.getY());
              map.put("z", loc.getZ());
              map.put("w", loc.getWorld().getName());
              return map;
             }
           
             Location deserializeLocation(ConfigurationSection section){
              return new Location(
                Bukkit.getWorld(section.getString("w")),
                section.getDouble("x"),
                section.getDouble("y"),
                section.getDouble("z"));
             } 
    Вот метод, которым я вызываю определенную локацию из конфига:
    Код:
    player.teleport(deserializeLocation(conf.getConfigurationSection("playerspawn")));
    Помогите пожалуйста найти ошибку=)
     
  2. serega6531

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

    Баллы:
    173
    Skype:
    shkurovs
    Посмотрите отладчиком.
     
  3. JustBlender

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

    Баллы:
    123
    Skype:
    justblender
    Имя в Minecraft:
    JustBlender
    1. У тебя в конфиге действительно существует место спауна.
    2. Мне кажется что код серелизации и десерелизиации локации ты взял из MAPI, не так ли?
    3. Покажи стактрейс, а то я хер пойму где null у тебя
     
  4. serega6531

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

    Баллы:
    173
    Skype:
    shkurovs
    Я ему этот код и дал.
     
  5. JustBlender

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

    Баллы:
    123
    Skype:
    justblender
    Имя в Minecraft:
    JustBlender
    Ок, теперь все понятно :D А то я думаю ТС сам бы не догадался.
     
  6. serega6531

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

    Баллы:
    173
    Skype:
    shkurovs
    Я написал уже, надо отладчиком смотреть.
     
  7. Автор темы
    GodlikE

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

    Баллы:
    103
    Имя в Minecraft:
    GodlikE
    Всем спасибо=)
     

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