Untitled
unknown
java
a year ago
1.8 kB
10
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