Skip to content

Claude/optimize paper server hbj la#2

Merged
Basti20999 merged 2 commits intomainfrom
claude/optimize-paper-server-HbjLa
Apr 9, 2026
Merged

Claude/optimize paper server hbj la#2
Basti20999 merged 2 commits intomainfrom
claude/optimize-paper-server-HbjLa

Conversation

@Basti20999
Copy link
Copy Markdown
Member

No description provided.

claude added 2 commits April 9, 2026 01:17
Populate a ConfigCache on enable so event handlers no longer walk the
YAML map on every tick. Move kit/spawn/host-rank saveConfig() calls off
the main thread via a new Scheduler.runAsync helper. Replace the per-join
UpdateChecker (which spawned a new virtual thread per connection) with
a singleton cached on the plugin. Fix a Component+String concatenation
bug in KitCommand/KitManager that rendered the prefix as its toString.

Other improvements:
- GameManager: drop AtomicInteger, cache titles/messages per tick, use
  cached custom-command lists
- MapManager: eager spawn-location load with scheduled retry only on
  world-not-loaded fallback; null-safe drop()
- BorderUtil: safe static init via reload(), tick guards against missing
  world, async save for setAutoBorder
- CreatureSpawnListener: EnumSet lookup instead of OR chain
- PlaceholderHook: cache %eventcore_tps% for 1s; use stack amounts for
  totem count; use PluginMeta instead of deprecated description
- LocationUtil: preserve yaw through fromString/toString round-trip
- AnnouncementCommand: stop double-sending usage on success, fix broken
  UTF-8 in usage string
- /event reload: also refresh ConfigCache, BorderUtil and KitManager

https://claude.ai/code/session_01AqVRRmETiWkTPadN2jcffW
Remove the Folia runtime path entirely (Scheduler wrappers, plugin.yml
flag, runPaper.folia task) now that only Paper 1.21.11 is supported,
and bump the paper-api dependency accordingly.

Hot-path cleanups:
- MessageUtil.getPrefix() memoizes the translated Component and is
  invalidated from ConfigCache.reload() so per-tick call sites stop
  re-parsing legacy color codes.
- ConfigCache preloads Messages.StartTimer.Colors into a List and the
  PlaceholderAPI availability flag so tickStart/tickActionBar no longer
  touch the YAML config or the plugin manager every tick.
- PlayerUtil.getAlive() switches from a stream to a direct iteration.
- PlayerPickupItemListener moves off the deprecated
  PlayerPickupItemEvent to EntityPickupItemEvent.
- All gate-style listeners now run at EventPriority.HIGH so other
  plugins can veto earlier.

Deprecation cleanup: WorldBorder.setSize -> changeSize, player max
health read via the MAX_HEALTH attribute, and the one remaining
ANNOUNCE_ADVANCEMENTS call is explicitly @SuppressWarnings'd since
Bukkit has no non-deprecated alternative yet.

Also removes the unused EventCore field from AnnouncementCommand and
the now-dead getSoftware() helper in EventCommand.

https://claude.ai/code/session_01AqVRRmETiWkTPadN2jcffW
@Basti20999 Basti20999 merged commit 1fbf0f1 into main Apr 9, 2026
3 checks passed
@Basti20999 Basti20999 deleted the claude/optimize-paper-server-HbjLa branch April 9, 2026 20:33
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants