Initial commit: LoChat v1.0.0 with Gradient module
This commit is contained in:
commit
252b0a60db
86 changed files with 8922 additions and 0 deletions
45
src/main/java/com/loki/lochat/managers/CooldownManager.java
Normal file
45
src/main/java/com/loki/lochat/managers/CooldownManager.java
Normal file
|
|
@ -0,0 +1,45 @@
|
|||
package com.loki.lochat.managers;
|
||||
|
||||
import java.util.Map;
|
||||
import java.util.UUID;
|
||||
import java.util.concurrent.ConcurrentHashMap;
|
||||
|
||||
public class CooldownManager {
|
||||
|
||||
private final Map<UUID, Long> globalCooldowns = new ConcurrentHashMap<>();
|
||||
private final Map<UUID, Long> localCooldowns = new ConcurrentHashMap<>();
|
||||
|
||||
public boolean isOnCooldown(UUID player, String chatType, int cooldownSeconds) {
|
||||
Map<UUID, Long> cooldowns = chatType.equals("global") ? globalCooldowns : localCooldowns;
|
||||
Long lastTime = cooldowns.get(player);
|
||||
|
||||
if (lastTime == null) {
|
||||
return false;
|
||||
}
|
||||
|
||||
long elapsed = (System.currentTimeMillis() - lastTime) / 1000;
|
||||
return elapsed < cooldownSeconds;
|
||||
}
|
||||
|
||||
public int getRemainingCooldown(UUID player, String chatType, int cooldownSeconds) {
|
||||
Map<UUID, Long> cooldowns = chatType.equals("global") ? globalCooldowns : localCooldowns;
|
||||
Long lastTime = cooldowns.get(player);
|
||||
|
||||
if (lastTime == null) {
|
||||
return 0;
|
||||
}
|
||||
|
||||
long elapsed = (System.currentTimeMillis() - lastTime) / 1000;
|
||||
return Math.max(0, cooldownSeconds - (int) elapsed);
|
||||
}
|
||||
|
||||
public void setCooldown(UUID player, String chatType) {
|
||||
Map<UUID, Long> cooldowns = chatType.equals("global") ? globalCooldowns : localCooldowns;
|
||||
cooldowns.put(player, System.currentTimeMillis());
|
||||
}
|
||||
|
||||
public void removeCooldown(UUID player) {
|
||||
globalCooldowns.remove(player);
|
||||
localCooldowns.remove(player);
|
||||
}
|
||||
}
|
||||
Loading…
Add table
Add a link
Reference in a new issue