Untitled

 avatar
unknown
java
a year ago
1.8 kB
7
Indexable
@EventHandler
public void onBlockBreak(BlockBreakEvent event) {
    Player player = event.getPlayer();
    Material blockType = event.getBlock().getType();

    long currentTime = System.currentTimeMillis();

    // Jeśli gracz jest w przerwie, zablokuj kopanie i zresetuj timer
    if (breakCooldown.containsKey(player)) {
        long cooldownEnd = breakCooldown.get(player);
        if (currentTime < cooldownEnd) {
            event.setCancelled(true);
            player.sendMessage(ChatColor.RED + "Jesteś w przerwie! Musisz odczekać przed ponownym kopaniem.");
            // Resetuj czas przerwy na nowo, jeśli gracz spróbuje wykopać blok podczas przerwy
            breakCooldown.put(player, currentTime + breakResetTime);
            player.sendMessage(ChatColor.RED + "Czas przerwy został przedłużony. Musisz odczekać dodatkowe " + formatTime(breakResetTime) + " przed ponownym kopaniem.");
            return;
        }
    }

    // Jeśli blok jest typu naturalnie wykopującego się kilofem
    if (isBreakableByPickaxe(blockType)) {
        // Jeśli czas ostatniego wykopania bloku nie jest zapisany, oznacza to rozpoczęcie liczenia
        if (!lastBreakTime.containsKey(player)) {
            lastBreakTime.put(player, currentTime);
            hasStartedBreak.put(player, true); // Ustaw flagę, że rozpoczęto liczenie czasu do przerwy
            warnedAboutBreak.put(player, false); // Resetuj flagę ostrzeżenia
            player.sendMessage(ChatColor.GREEN + "Rozpoczęto liczenie czasu do przerwy.");
        } else {
            // Resetowanie czasu przerwy tylko, gdy gracz nie jest w przerwie
            if (!hasStartedBreak.getOrDefault(player, false)) {
                lastBreakTime.put(player, currentTime);
            }
        }
    }
}
Editor is loading...
Leave a Comment