Для отправки игроку p боссбара с задержкой в 30 секунд, можно использовать метод `addBar` класса `BossBar` с параметром `progress`, в который передается текущее значение прогресса (от 0.0 до 1.0).
Для отображения прогресса кулдауна в виде числа, необходимо использовать переменную, которая будет уменьшаться на 1 каждую секунду внутри цикла, который будет срабатывать каждую секунду при помощи класса `BukkitScheduler`.
Примерный код для этого выглядит так:
```java
public class BossBarExample extends JavaPlugin {
private int cooldown = 30;
private BossBar bossBar;
public void onEnable() {
this.bossBar = Bukkit.createBossBar("Прогресс кулдауна: " + cooldown, BarColor.GREEN, BarStyle.SEGMENTED_20);
this.bossBar.setVisible(true);
this.bossBar.setProgress(1.0);
BukkitScheduler scheduler = Bukkit.getServer().getScheduler();
scheduler.scheduleSyncRepeatingTask(this, new Runnable(){
public void run(){
cooldown--;
if (cooldown <= 0) {
bossBar.setVisible(false);
scheduler.cancelTasks(BossBarExample.this);
} else {
bossBar.setProgress(cooldown / 30.0);
bossBar.setTitle("Прогресс кулдауна: " + cooldown);
}
}
} , 20L, 20L); // Запускаем каждую секунду
}
public void sendBossBar(Player player) {
player.playSound(player.getLocation(), Sound.ITEM_TOTEM_USE, 1f, 1f);
player.spawnParticle(Particle.TOTEM, player.getLocation(), 4);
bossBar.addPlayer(player);
}
}
```
Чтобы отправить боссбар игроку, нужно вызвать метод `sendBossBar(player);`, где player - игрок, которому нужно отправить боссбар. Например, так:
```java
Player player = Bukkit.getPlayer("Имя_игрока_которому_отправить_боссбар");
BossBarExample plugin = (BossBarExample) Bukkit.getServer().getPluginManager().getPlugin("BossBarExample");
plugin.sendBossBar(player);
```
Надеюсь, это поможет вам реализовать вашу задумку!