Войти или зарегистрироваться
  • Вы находитесь в сообществе Rubukkit. Мы - администраторы серверов Minecraft, разрабатываем собственные плагины и переводим на различные языки плагины наших коллег из других стран.

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

Статус
Закрыто для дальнейших ответов.

tiger'ok

Старожил
Баллы
123
Имя в Minecraft
tigerOK
Всем привет, пишу плагин, и вот сегодня возникла проблема, заключается в том что когда игрок пишет команду /spawn то он появляется не лицом к спавну, а спиной или боком в зависимости от положения спавн. Вот кусок кода:
Java:
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;
}
Что делать, даже не знаю :(, поэтому прошу помощи у вас.
 
Метод setBedSpawnLocation() берёт из локации только x, y и z. Записывай спаун в конфиг вместе с положением камеры игрока (Yaw)
 
Метод setBedSpawnLocation() берёт из локации только x, y и z. Записывай спаун в конфиг вместе с положением камеры игрока (Yaw)
Не подскажешь как это все записать? Буду очень благодарен :)
 
Не подскажешь как это все записать? Буду очень благодарен :)
Если использовать 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() в основном классе, но лично я пользуюсь таким методом.
 
Как я понял, нужно переназначать функцию спауна игрока. Ибо в букките она принимает только банальные X, Y, Z
 
Если использовать 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() в основном классе, но лично я пользуюсь таким методом.
Это конечно хорошо :) , но как выгружать данные из файла командой /spawn?
 
Спасибо, завтра попробую.
Ты не так меня понял, мне нужно что бы когда я пишу
Location location = config.get();
Доставались координаты из файла, т.е. когда я определяю локацию эти координаты брались из файла.
 
Спасибо, завтра попробую.

Ты не так меня понял, мне нужно что бы когда я пишу
Location location = config.get();
Доставались координаты из файла, т.е. когда я определяю локацию эти координаты брались из файла.
Незнаю как там правильно писать, но я использую так:
Код:
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;
}
 
Незнаю как там правильно писать, но я использую так:
Код:
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;
}
Сейчас попробую.
Незнаю как там правильно писать, но я использую так:
Код:
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;
}
Можешь в скайпе помочь?
 
Ты не так меня понял, мне нужно что бы когда я пишу
Location location = config.get();
Доставались координаты из файла, т.е. когда я определяю локацию эти координаты брались из файла.
Можно так

Код:
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);
 
Рад помочь, скайп Den_Abr
 
Статус
Закрыто для дальнейших ответов.

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

Назад
Верх