feat(assassin): add stealth and double jump
Release / release (push) Successful in 2m17s
CI / build (push) Successful in 1m1s

This commit is contained in:
dmg
2026-08-14 23:08:18 -04:00
parent 0371337a3e
commit 1642d46f1b
21 changed files with 939 additions and 18 deletions
@@ -0,0 +1,45 @@
package games.dmg.spigottyrant;
import java.time.Clock;
import org.bukkit.Server;
import org.bukkit.entity.Player;
public final class AbilityItemRefreshTask implements Runnable {
private final TyrantStateManager stateManager;
private final AbilityReadinessService readiness;
private final AbilityItemService items;
private final Server server;
private final Clock clock;
public AbilityItemRefreshTask(
TyrantStateManager stateManager,
AbilityReadinessService readiness,
AbilityItemService items,
Server server,
Clock clock
) {
this.stateManager = stateManager;
this.readiness = readiness;
this.items = items;
this.server = server;
this.clock = clock;
}
@Override
public void run() {
if (stateManager.game().lifecycle() != GameLifecycle.RUNNING) {
return;
}
for (Player player : server.getOnlinePlayers()) {
PlayerState before = stateManager.player(player.getUniqueId(), player.getName());
PlayerState after = readiness.refresh(before, clock.instant());
if (!after.equals(before)) {
stateManager.updatePlayer(
player.getUniqueId(), player.getName(), current -> after
);
}
items.removeInvalid(player, after);
items.recover(player, after);
}
}
}