fixed missing countdown for JoinProtection

This commit is contained in:
Elias Müller 2025-04-08 11:49:25 +02:00
parent 859733e3dd
commit ef7232e687

View File

@ -3,6 +3,7 @@ package eu.mhsl.craftattack.spawn.varo.appliances.metaGameplay.joinProtection;
import eu.mhsl.craftattack.core.Main;
import eu.mhsl.craftattack.core.appliance.Appliance;
import net.kyori.adventure.text.Component;
import net.kyori.adventure.text.format.NamedTextColor;
import net.kyori.adventure.util.Ticks;
import org.bukkit.Bukkit;
import org.bukkit.entity.Player;
@ -20,6 +21,7 @@ public class JoinProtection extends Appliance {
static final class Options {
public boolean wasOnGround = false;
public Long joinTime = System.currentTimeMillis();
}
private final Map<UUID, Options> protectedPlayers = new HashMap<>();
@ -36,15 +38,21 @@ public class JoinProtection extends Appliance {
);
}
@Nullable Options getOptions(Player player) {
@Nullable JoinProtection.Options getOptions(Player player) {
return this.protectedPlayers.get(player.getUniqueId());
}
public void cancelEvent(Player player, Cancellable event) {
if(!this.protectedPlayers.containsKey(player.getUniqueId())) return;
event.setCancelled(true);
Options option = this.protectedPlayers.get(player.getUniqueId());
int secondsLeft = Math.abs((int) ((System.currentTimeMillis() - option.joinTime) / 1000) - resistanceDuration);
player.sendActionBar(
Component.text("Du befindest dich in der %s Sekündigen")
Component.text(
String.format("Du bist in %d Sekunden angreifbar", secondsLeft),
NamedTextColor.RED
)
);
}