public final class GraceperiodTestV2 extends JavaPlugin implements Listener {
// Houdt bij hoeveel ticks er nog over zijn in de grace period per speler
private final HashMap<UUID, Integer> graceTimers = new HashMap<>();
@Override
public void onEnable() {
getServer().getPluginManager().registerEvents(this, this);
// Herhaal elke tick (20 ticks = 1 seconde)
Bukkit.getScheduler().runTaskTimer(this, () -> {
for (UUID uuid : graceTimers.keySet().toArray(new UUID[0])) {
int timeLeft = graceTimers.get(uuid) - 1;
if (timeLeft <= 0) {
Player player = Bukkit.getPlayer(uuid);
if (player != null && player.isOnline()) {
player.setGameMode(GameMode.SURVIVAL); // Of Hardcore als je Hardcore wilt simuleren
player.setGameMode(GameMode.HARDCORE); // Zet de speler op Hardcore
player.sendMessage("Je grace periode is voorbij! Je bent nu in Hardcore.");
}
graceTimers.remove(uuid);
} else {
graceTimers.put(uuid, timeLeft);
}
}
}, 20L, 20L); // start na 1 seconde en repeat elke seconde
}
@Override
public void onDisable() {
// Plugin shutdown logic
}
@EventHandler
public void onJoin(PlayerJoinEvent event) {
Player player = event.getPlayer();
// Zet de speler op Survival bij joinen
player.setGameMode(GameMode.SURVIVAL);
player.sendMessage("Welkom! Je hebt 1 uur om te spelen voordat Hardcore start.");
// Start een grace period van 1 uur (3600 seconden)
graceTimers.put(player.getUniqueId(), 3600);
}
}