From 559cae2b6d30b5b5d04f67a147fd8c31cd487687 Mon Sep 17 00:00:00 2001 From: YoyoNow Date: Sun, 31 May 2026 20:20:14 +0200 Subject: [PATCH] Add playtime update --- .../steamwar/velocitycore/advancements/Advancements.java | 4 ++++ .../velocitycore/advancements/AdvancementsManager.java | 9 +++++++++ 2 files changed, 13 insertions(+) diff --git a/VelocityCore/src/de/steamwar/velocitycore/advancements/Advancements.java b/VelocityCore/src/de/steamwar/velocitycore/advancements/Advancements.java index 7093e7f7..5d0f0460 100644 --- a/VelocityCore/src/de/steamwar/velocitycore/advancements/Advancements.java +++ b/VelocityCore/src/de/steamwar/velocitycore/advancements/Advancements.java @@ -36,6 +36,9 @@ public class Advancements { @Getter static final List all = new ArrayList<>(); + @Getter + private static final List playtime = new ArrayList<>(); + public static final Advancement ROOT = new Advancement( "steamwar:advancements/root", Optional.empty(), @@ -80,6 +83,7 @@ public class Advancements { return (int) (playtime / (neededPlayTime / 100)); } ); + playtime.add(previous); } } } diff --git a/VelocityCore/src/de/steamwar/velocitycore/advancements/AdvancementsManager.java b/VelocityCore/src/de/steamwar/velocitycore/advancements/AdvancementsManager.java index 15d260b4..9819ce91 100644 --- a/VelocityCore/src/de/steamwar/velocitycore/advancements/AdvancementsManager.java +++ b/VelocityCore/src/de/steamwar/velocitycore/advancements/AdvancementsManager.java @@ -28,6 +28,7 @@ import com.velocitypowered.proxy.protocol.MinecraftPacket; import com.velocitypowered.proxy.protocol.ProtocolUtils; import com.velocitypowered.proxy.protocol.StateRegistry; import de.steamwar.linkage.Linked; +import de.steamwar.messages.Chatter; import de.steamwar.sql.SteamwarUser; import de.steamwar.velocitycore.VelocityCore; import de.steamwar.velocitycore.listeners.BasicListener; @@ -55,6 +56,14 @@ public class AdvancementsManager extends BasicListener { } catch (Exception e) { // Ignore } + + VelocityCore.schedule(() -> { + for (Advancement advancement : Advancements.getPlaytime()) { + Chatter.allPlayers().forEach(player -> { + advancement.get(SteamwarUser.get(player.getUniqueId())).update(); + }); + } + }).repeat(10, TimeUnit.MINUTES).schedule(); } @Subscribe(priority = -1000)