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

Помогите Spawn игрока

Тема в разделе "Разработка плагинов для новичков", создана пользователем tiger'ok, 12 май 2013.

Статус темы:
Закрыта.
  1. Автор темы
    tiger'ok

    tiger'ok Старожил

    Баллы:
    123
    Всем привет, пишу плагин, и вот сегодня возникла проблема, заключается в том что когда игрок пишет команду /spawn то он появляется не лицом к спавну, а спиной или боком в зависимости от положения спавн. Вот кусок кода:
    Код:
    else if(cmd.getName().equalsIgnoreCase("setspawn")){
    Player player = null;
      try{
      player = (Player)sender;
      }catch (Exception e){
        sender.sendMessage(ChatColor.RED + "Only players can use this command!");
        return true;
      }
    Location location = player.getLocation();
            player.setBedSpawnLocation(location, true);
    sender.sendMessage(ChatColor.GREEN + "Точка спавна успешно установлена!");
    return true;
    }else if(cmd.getName().equalsIgnoreCase("spawn")){
    Player player = null;
      try{
        player = (Player)sender;
      }catch (Exception e){
        sender.sendMessage(ChatColor.RED + "Only players can use this command!");
        return true;
      }
    Location loc = player.getBedSpawnLocation();
    if(loc != null){
    player.teleport(loc);
    sender.sendMessage(ChatColor.AQUA + "Вы были телепортированы на спавн!");
    }else{
    sender.sendMessage(ChatColor.RED + "Точка спавна не была установлена!");
    }
    return true;
    }
    return false;
    }
    Что делать, даже не знаю :(, поэтому прошу помощи у вас.
     
  2. Den_Abr

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

    Баллы:
    173
    Skype:
    Den_Abr
    Имя в Minecraft:
    Den_Abr
    Метод setBedSpawnLocation() берёт из локации только x, y и z. Записывай спаун в конфиг вместе с положением камеры игрока (Yaw)
     
    tiger'ok нравится это.
  3. Автор темы
    tiger'ok

    tiger'ok Старожил

    Баллы:
    123
    Не подскажешь как это все записать? Буду очень благодарен :)
     
    RVXman нравится это.
  4. Den_Abr

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

    Баллы:
    173
    Skype:
    Den_Abr
    Имя в Minecraft:
    Den_Abr
    Если использовать YamlConfiguration
    Код:
    ...
    Location loc = player.getLocation();
    File file = new File(Путь к конфигу);
    YamlConfiguration config = YamlConfiguration.loadConfiguration(file);
    config.set("Spawn.X", loc.getX());
    config.set("Spawn.Y", loc.getY());
    config.set("Spawn.Z", loc.getZ());
    config.set("Spawn.Yaw", loc.getYaw());
    config.save(file);
    ...
    Можно покомпактнее через getConfig() в основном классе, но лично я пользуюсь таким методом.
     
  5. Jampire

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

    Баллы:
    173
    Skype:
    jampire-h
    Имя в Minecraft:
    Jampire
    Как я понял, нужно переназначать функцию спауна игрока. Ибо в букките она принимает только банальные X, Y, Z
     
    slavik123123123 нравится это.
  6. Автор темы
    tiger'ok

    tiger'ok Старожил

    Баллы:
    123
    Это конечно хорошо :) , но как выгружать данные из файла командой /spawn?
     
  7. Den_Abr

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

    Баллы:
    173
    Skype:
    Den_Abr
    Имя в Minecraft:
    Den_Abr
    Так config.get();
     
    tiger'ok нравится это.
  8. Автор темы
    tiger'ok

    tiger'ok Старожил

    Баллы:
    123
    Спасибо, завтра попробую.
    Ты не так меня понял, мне нужно что бы когда я пишу
    Location location = config.get();
    Доставались координаты из файла, т.е. когда я определяю локацию эти координаты брались из файла.
     
    slavik123123123 нравится это.
  9. BeYkeR

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

    Баллы:
    173
    Незнаю как там правильно писать, но я использую так:
    Код:
                   
    Location loc = player.getLocation();
    loc.setX(this.getConfig().getDouble("Brat3.X"));
    loc.setY(this.getConfig().getDouble("Brat3.Y"));
    loc.setZ(this.getConfig().getDouble("Brat3.Z"));
    player.teleport(loc);
    return true;
    }
     
  10. Автор темы
    tiger'ok

    tiger'ok Старожил

    Баллы:
    123
    Сейчас попробую.
    Можешь в скайпе помочь?
     
  11. Den_Abr

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

    Баллы:
    173
    Skype:
    Den_Abr
    Имя в Minecraft:
    Den_Abr
    Можно так

    Код:
    Location loc = new Location(World, config.getDouble("Spawn.X"), config.getDouble("Spawn.Y"), config.getDouble("Spawn.Z"), config.getFloat("Spawn.Yaw"), player.getLocation().getPitch());
    player.teleport(loc);
     
    tiger'ok нравится это.
  12. Автор темы
    tiger'ok

    tiger'ok Старожил

    Баллы:
    123
    Ничего не выходит :( Можешь в скайпе помочь?
     
  13. Den_Abr

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

    Баллы:
    173
    Skype:
    Den_Abr
    Имя в Minecraft:
    Den_Abr
    Рад помочь, скайп Den_Abr
     
    tiger'ok нравится это.
  14. Автор темы
    tiger'ok

    tiger'ok Старожил

    Баллы:
    123
    Проблема решена. Тему закрываю.
     
Статус темы:
Закрыта.

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