Skip to content

Commit f705236

Browse files
fix: Improve progress calculation and reduce update interval in BossBarService
1 parent dca9dd2 commit f705236

1 file changed

Lines changed: 5 additions & 2 deletions

File tree

  • multification-core/src/com/eternalcode/multification/notice/resolver/bossbar

multification-core/src/com/eternalcode/multification/notice/resolver/bossbar/BossBarService.java

Lines changed: 5 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -42,11 +42,14 @@ private void updateProgress(Instant expiration, Duration duration, BossBar bossB
4242
}
4343

4444
Duration remaining = Duration.between(Instant.now(), expiration);
45-
float progress = 1 - (float) remaining.getSeconds() / duration.getSeconds();
45+
double totalMillis = duration.toMillis();
46+
double remainingMillis = Math.max(0, remaining.toMillis());
47+
float progress = (float) (remainingMillis / totalMillis);
48+
progress = Math.max(0.0f, Math.min(1.0f, progress));
4649

4750
bossBar.progress(progress);
4851

49-
this.scheduler.schedule(() -> updateProgress(expiration, duration, bossBar, viewer), 500L, TimeUnit.MILLISECONDS);
52+
this.scheduler.schedule(() -> updateProgress(expiration, duration, bossBar, viewer), 100L, TimeUnit.MILLISECONDS);
5053
}
5154

5255
}

0 commit comments

Comments
 (0)