Skip to content

fix: BukkitPlatformScheduler teleportAsync on Folia (v3.2.3)#106

Merged
ez-plugins merged 1 commit into
v3.xfrom
fix/folia-error
May 16, 2026
Merged

fix: BukkitPlatformScheduler teleportAsync on Folia (v3.2.3)#106
ez-plugins merged 1 commit into
v3.xfrom
fix/folia-error

Conversation

@ez-plugins

@ez-plugins ez-plugins commented May 16, 2026

Copy link
Copy Markdown
Owner

On Folia, calling the synchronous Player.teleport() from a region thread throws UnsupportedOperationException. BukkitPlatformScheduler was using the PlatformScheduler interface default which does exactly that.

Override teleportAsync in BukkitPlatformScheduler: when regionizedRuntime is true, call player.teleportAsync(Location) via reflection (same pattern used for all other Folia scheduler calls in this class). Falls back to synchronous teleport on standard Bukkit/Spigot.

PaperPlatformScheduler already called teleportAsync directly; Purpur reuses PaperPlatformScheduler, only the Bukkit module needed fixing.

Bump version 3.2.2 → 3.2.3.

On Folia, calling the synchronous Player.teleport() from a region thread
throws UnsupportedOperationException. BukkitPlatformScheduler was using
the PlatformScheduler interface default which does exactly that.

Override teleportAsync in BukkitPlatformScheduler: when regionizedRuntime
is true, call player.teleportAsync(Location) via reflection (same pattern
used for all other Folia scheduler calls in this class). Falls back to
synchronous teleport on standard Bukkit/Spigot.

PaperPlatformScheduler already called teleportAsync directly; Purpur
reuses PaperPlatformScheduler — only the Bukkit module needed fixing.

Bump version 3.2.2 → 3.2.3.
@ez-plugins
ez-plugins merged commit 4026510 into v3.x May 16, 2026
10 checks passed
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.

1 participant