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

Помогите Требуется помощь знающих людей

мир пока опускаем, теоретически, мы знаем какой мир :)
если задать в виде списка, как в плагине получить значение?
Код:
parkour_start_pos: 500,65,350
 
Последнее редактирование:
@Serrrgio
Ну чёрт побери, это же уже банальная работа со строками.

Вот, допустим, такой вариант:
String s = getConfig().getString("parkour_start_pos","");
String [] ln = s.split(",\\s*");
Location loc = new Location (world, Integer.parseInt(ln[0]),Integer.parseInt(ln[1]),Integer.parseInt(ln[2]));

Можно ещё придумать несколько способов, при желании.

P.S. Тут естественно надо проверять, что в конфиге есть что-то; что длина массива ln = 3 и что элементы этого массива - числа.
 
@Serrrgio
Если не жалко байты на диске, то можете данные хранить и в таком виде:
Код:
parkour_start_pos:
  world: world
  location:
    ==: Vector
    x: -953.0
    y: 88.0
    z: 1297.0
И из конфига получать так:
Код:
Location loc = getConfig().getVector("parkour_start_pos.location").toLocation(getServer().getWorld(getConfig().getString("parkour_start_pos.world"));
 
Последнее редактирование:
@fromgate
со строками понятно, я думал что можно сразу, каким-то методом, из конфига получить переменную типа list или array

@leonmark061
спасибо, не совсем, на мой взгляд, удобный способ хранения.

общая информация получена, пойду запускать eclipse :)
 
@leonmark061
спасибо, не совсем, на мой взгляд, удобный способ хранения.

общая информация получена, пойду запускать eclipse :)
Как раз таки самый удобный.

Если Вам надо плучать из конфига List, то придется хранить данные в еще более неудобном виде(ИМХО):
Код:
parkour_start_pos:
  - xxxx
  - yyyy
  - zzzz
И получать так:
Код:
List<String\Integer> list = getConfig().getStringList("parkour_start_pos")\getIntegerList("parkour_start_pos");
При этом, с каждой строкой(числом) придется работать отдельно.
 
Последнее редактирование:
Еще вопрос.

Есть небольшой паркур на сервере, хотелось бы сделать так, чтобы игроки, которые упали, автоматом телепортировались на старт.
Ребят, можно же спокойно на командных блоках сделать...
 
@fromgate
со строками понятно, я думал что можно сразу, каким-то методом, из конфига получить переменную типа list или array

Для этого в yaml есть такая запись:

Код:
parkour_start_pos: [500, 65, 350]

А получение это:

Код:
config.getIntegerList(key)
 
@kirill2011s
вот про это я и говорил, не знал как называется.
вобщем затупил я, думал что onRegionEnter это api WG, оказалось нет :)
вернулся к onPlayerMove
Java:
@EventHandler
public void onPlayerMove(PlayerMoveEvent e){
if (e.isCancelled() || e.getPlayer() == null) {
return;
}
if (plugin.getConfig().getBoolean("parkour-teleport")) {
Player p = e.getPlayer();
if (!p.getWorld().equals(Bukkit.getWorlds().get(0))) {
return;
}
if (e.getTo().getBlockY()==73 && e.getTo().getBlockX()>60 && e.getTo().getBlockX()<83
&& e.getTo().getBlockZ()>-733 && e.getTo().getBlockZ()<-650 ) {
Location loc = new Location(p.getWorld(), 68, 81, -729);
p.teleport(loc);
}
}
}
Как задать направление куда будет смотреть игрок после телепорта, например на север?
 
я правильно понимаю, после телепорта игрок смотрит на север прямо перед собой?
Java:
Location loc = new Location(p.getWorld(), 68, 81, -729, 0, 0);
 
я правильно понимаю, после телепорта игрок смотрит на север прямо перед собой?
Java:
Location loc = new Location(p.getWorld(), 68, 81, -729, 0, 0);
Если 0 градусов - это север, то да. (Я в этом не уверен, оперирую обычно координатами X, Z)
  • A yaw of 0 or 360 represents the positive z direction.
  • A yaw of 180 represents the negative z direction.
  • A yaw of 90 represents the negative x direction.
  • A yaw of 270 represents the positive x direction.
Значения float yaw, float pitch задаются в градусах.
Документация тут: https://hub.spigotmc.org/javadocs/bukkit/org/bukkit/Location.html
 

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

Назад
Верх