4545 */
4646public class AdvancementListener implements Listener {
4747
48+ private static final Material [] MATS = Material .values ();
49+
4850 private final Boxed addon ;
4951 private final Advancement netherAdvancement ;
5052 private final Advancement netherFortressAdvancement ;
@@ -327,7 +329,8 @@ private void grantAdv(User user, List<String> list) {
327329
328330 private void clearAdv (User user ) {
329331 // Clear Statistics
330- Arrays .stream (Statistic .values ()).forEach (s -> resetStats (user , s ));
332+ Bukkit .getScheduler ().runTaskAsynchronously (addon .getPlugin (),
333+ () -> Arrays .stream (Statistic .values ()).forEach (s -> resetStats (user , s )));
331334 // Clear advancements
332335 Iterator <Advancement > it = Bukkit .advancementIterator ();
333336 while (it .hasNext ()) {
@@ -340,8 +343,9 @@ private void clearAdv(User user) {
340343
341344 private void resetStats (User user , Statistic s ) {
342345 switch (s .getType ()) {
343- case BLOCK -> Arrays .stream (Material .values ()).filter (Material ::isBlock ).forEach (m -> user .getPlayer ().setStatistic (s , m , 0 ));
344- case ITEM -> Arrays .stream (Material .values ()).filter (Material ::isItem ).forEach (m -> user .getPlayer ().setStatistic (s , m , 0 ));
346+ case BLOCK ->
347+ Arrays .stream (MATS ).filter (Material ::isBlock ).forEach (m -> user .getPlayer ().setStatistic (s , m , 0 ));
348+ case ITEM -> Arrays .stream (MATS ).filter (Material ::isItem ).forEach (m -> user .getPlayer ().setStatistic (s , m , 0 ));
345349 case ENTITY -> Arrays .stream (EntityType .values ()).filter (EntityType ::isAlive ).forEach (m -> user .getPlayer ().setStatistic (s , m , 0 ));
346350 case UNTYPED -> user .getPlayer ().setStatistic (s , 0 );
347351 }
0 commit comments