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

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

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

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

    tiger'ok Старожил

    Баллы:
    123
    Skype:
    eto_tiger
    Имя в Minecraft:
    tigerOK
    Всем привет, пишу плагин, и вот сегодня возникла проблема, заключается в том что когда игрок пишет команду /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. Хостинг MineCraft
    <
  3. Den_Abr

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

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

    tiger'ok Старожил

    Баллы:
    123
    Skype:
    eto_tiger
    Имя в Minecraft:
    tigerOK
    Не подскажешь как это все записать? Буду очень благодарен :)
     
    RVXman нравится это.
  5. 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() в основном классе, но лично я пользуюсь таким методом.
     
  6. Jampire

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

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

    tiger'ok Старожил

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

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

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

    tiger'ok Старожил

    Баллы:
    123
    Skype:
    eto_tiger
    Имя в Minecraft:
    tigerOK
    Спасибо, завтра попробую.[DOUBLEPOST=1368419661,1368384419][/DOUBLEPOST]
    Ты не так меня понял, мне нужно что бы когда я пишу
    Location location = config.get();
    Доставались координаты из файла, т.е. когда я определяю локацию эти координаты брались из файла.
     
    slavik123123123 нравится это.
  10. 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;
    }
     
  11. Автор темы
    tiger'ok

    tiger'ok Старожил

    Баллы:
    123
    Skype:
    eto_tiger
    Имя в Minecraft:
    tigerOK
    Сейчас попробую.[DOUBLEPOST=1368429293,1368427287][/DOUBLEPOST]
    Можешь в скайпе помочь?
     
  12. 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 нравится это.
  13. Автор темы
    tiger'ok

    tiger'ok Старожил

    Баллы:
    123
    Skype:
    eto_tiger
    Имя в Minecraft:
    tigerOK
    Ничего не выходит :( Можешь в скайпе помочь?
     
  14. Den_Abr

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

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

    tiger'ok Старожил

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

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