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)