OpenNAW/src/main/java/moe/oko/opennaw/util/ActionLogger.java

44 lines
1.5 KiB
Java

package moe.oko.opennaw.util;
import moe.oko.opennaw.OpenNAW;
import moe.oko.opennaw.model.action.Action;
import moe.oko.opennaw.model.action.CityAttackAction;
import org.bukkit.Bukkit;
import java.util.HashMap;
import java.util.UUID;
public class ActionLogger {
HashMap<UUID, Action> actionByUuid = new HashMap<>();
public ActionLogger() {
}
public boolean tryAction(Action action) {
if(action instanceof CityAttackAction) {
//City attack logic
if(enoughTimeElapsed(action.timeOfAction, CityAttackAction.DELAY)) {
CityAttackAction CAA = (CityAttackAction) action;
if (actionByUuid.containsKey(CAA.getPlayer().getUniqueId())) {
actionByUuid.remove(CAA.getPlayer().getUniqueId());
}
actionByUuid.put(CAA.getPlayer().getUniqueId(), action);
Bukkit.getScheduler().scheduleSyncDelayedTask(OpenNAW.getInstance(), () -> {
var actionCallback = actionByUuid.get(CAA.getPlayer().getUniqueId());
if (!actionCallback.isCancelled()) {
CAA.completion();
}
actionByUuid.remove(CAA.getPlayer().getUniqueId());
}, CityAttackAction.DELAY);
return true;
}
return false;
}
return false;
}
private boolean enoughTimeElapsed(long timestamp, long delay) {
return (System.currentTimeMillis() - timestamp) > delay;
}
}