Следуйте инструкциям в видео ниже, чтобы узнать, как установить наш сайт как веб-приложение на главный экран вашего устройства.
Примечание: Эта функция может быть недоступна в некоторых браузерах.
объясни конкретнее, может смогу помочь.Нужно, чтобы после смерти, тп в другой мир с кулдауном, а потом на спавн первого мир. Помогите кодом, учусь
телепорт игрока - Player#teleport(Location)
Получить мир = Bukkit#getWorld(Name)
Ивент смерти - PlayerDeathEvent
Ивент воскрешения(он то тебе и нужен) - PlayerRespawnEvent
Таймер - BukkitRunnable
С начало слушаешь PlayerRespawnEvent -> в нем прописываешь таймер на любое время -> в таймере телепортируешь игрока.
Полностью код за тебя писать никто не хочет
@EventHandler
public void onPlrSpawn(PlayerRespawnEvent event) {
BukkitRunnable timer = new BukkitRunnable() {
@Override
public void run() {
// выполняем функцию телепорта
Location loctp = new Location(Bukkit.getWorld("world"), -0, 50, -0, 0, 0); // Создаём переменную тип локация(где гетмир ставим ворлд, в твоём случае название твоего мира).
Bukkit.getPlayer(event.getPlayer().getName()).teleport(loctp); // Тут получаем игрока через баккит по имени игрока, и телепортируем его на локацию.
}
};
timer.runTaskTimer(plugin, 2, 20);
timer.cancel(); // останавлием таймер, что б оптимизировался плагин, тобишь если не удалять то будет занимать физ.память сервера(тоесть потому что таймер существует).
timer = null; // удаляем таймер.
}
здесь выделяет Plugin, я пытался заменить на this Plugin и вроде не выделяет, но сам плагин не работает, при смерти просто телепортирует в этот же мир(название мира проверял)timer.runTaskTimer(plugin, 2, 20);
Эмм, сек подожди.здесь выделяет Plugin, я пытался заменить на this Plugin и вроде не выделяет, но сам плагин не работает, при смерти просто телепортирует в этот же мир(название мира проверял)
Ну я ничего не понял, что нужно исправить)
Да собственно из темы тоже точно не понятно, чего ты хочешь.Ну я ничего не понял, что нужно исправить)
да, все в точности такДа собственно из темы тоже точно не понятно, чего ты хочешь.
После возрождения игрок должен телепортироваться в, условно, world2, после по истечении некоторого времени в world1, так что ли?
да, все в точности так
@EventHandler(priority=EventPriority.HIGH)
public void onRespawn(PlayerRespawnEvent e) {
Location loc = new Location(Bukkit.getWorld("world1"), 0, 0, 0, 0, 0);
e.getPlayer().teleport(loc);
BukkitRunnable br = new BukkitRunnable() {
@Override
public void run() {
Player p = Bukkit.getPlayerExact(e.getPlayer().getName());
if (p != null) {
Location loc = new Location(Bukkit.getWorld("world2"), 0, 0, 0, 0, 0);
p.teleport(loc);
}
}
};
br.runTaskLater(plugin, 20);
}
подчеркивает Plugin так же было и в предыдущем кодеbr.runTaskLater(plugin, 20);
Потому что тебе нужно туда подставить поле, наследующее JavaPlugin (главный класс твой)подчеркивает Plugin так же было и в предыдущем коде
пример можно, так на словах не понятноПотому что тебе нужно туда подставить поле, наследующее JavaPlugin (главный класс твой)
пример можно, так на словах не понятно
public class PluginMain extends JavaPlugin {
private static PluginMain instance;
@Override
public void onEnable() {
instance = this;
}
public static PluginMain getInstance() {
return instance;
}
}
Это в главный класс и вместо Plugin напиши Название_главного_класса.getInstance()Код:public class PluginMain extends JavaPlugin { private static PluginMain instance; @Override public void onEnable() { instance = this; } public static PluginMain getInstance() { return instance; } }
PluginMain на свое заменяй

Я пишу это на коленках, без IDE, для новичка, который хочет написать свой небольшой плагин, зачем мне это сейчас? Да и мой способ получения именно инстенса главного класса, как по мне, нормальный. Тут вполне уместно использовать синглтон.Как же DI, брат![]()
https://pastes.dev/1N4NRRr1Ln
Код:@EventHandler(priority=EventPriority.HIGH) public void onRespawn(PlayerRespawnEvent e) { Location loc = new Location(Bukkit.getWorld("world1"), 0, 0, 0, 0, 0); e.getPlayer().teleport(loc); BukkitRunnable br = new BukkitRunnable() { @Override public void run() { Player p = Bukkit.getPlayerExact(e.getPlayer().getName()); if (p != null) { Location loc = new Location(Bukkit.getWorld("world2"), 0, 0, 0, 0, 0); p.teleport(loc); } } }; br.runTaskLater(plugin, 20); }
20 тиков = 1 секунда, посчитаешь и заменишь на нужное число.