Tags
Creators
Details
2.0.0
Compatibility
Changes
PremiumFly v2.0.0 Release Notes
This is a major update that transforms PremiumFly from a simple βflight ON/OFF pluginβ for survival servers into a significantly more secure, customizable, and manageable flight system.
π¨ Important Changes
- Paper is now the only supported platform. PremiumFly uses Paper's new jump detection API and will not work on Spigot alone.
- Java 21 or newer is now required.
- The permission data storage method has been changed from scoreboard tags to PersistentDataContainer. Existing player data will be migrated automatically the next time each player logs in, with no administrator action required.
π Bug Fixes
- Fixed an issue where players could not fly in Spectator Mode. Players without PremiumFly permissions who entered Spectator Mode were being forcibly prevented from flying by an internal task that ran every second, interfering with staff moderation and server monitoring.
- Fixed unreliable landing detection. The previous block hitbox-based detection could fail to correctly detect landings on slabs, stairs, and other blocks. It has been replaced with Paper's official jump detection event combined with
isOnGround(). - Fixed an issue where players could be forcibly sent back into flight immediately when attempting to land. This was caused by using the same processing logic for both flight activation and landing without distinguishing between the two states.
- Fixed an issue where players without permission did not receive the custom
/pflypermission message. Bukkit's default English message was being displayed first, making the custom Japanese message effectively unused. - Fixed a potential false positive caused by partial player-name matching with
/pfly <name> enable, etc. For example, entering"Tak"could potentially grant flight permissions to an unintended player. - Fixed a minor memory leak where internal data for players who had left the server remained in memory.
- Fixed an issue where player flight states were not properly cleaned up when the plugin was reloaded with
/reloador disabled, which could cause flying players to be incorrectly kicked for illegal flight. - Fixed an issue where the version number was maintained separately in
plugin.ymlandbuild.gradle, potentially causing version mismatches during updates. The two are now automatically synchronized.
β¨ New Features
- Automatic permission-based flight (
premiumfly.fly). Simply grant the permission to a LuckPerms rank or other permission group, and flight will automatically be enabled for all members without requiring any commands. - Added sound and particle effects when taking off and landing. These can be enabled or disabled and customized in
config.yml. - Added
/pfly listto display players who currently have flight permission and/pfly infoto display version and update information. - Added tab completion to the
/pflycommand. - Added per-world disabling with
disabled-worlds. This can be used to prevent flight in minigames, parkour maps, and other specific worlds. - Added an update checker. When a new version is published on Modrinth, the console and players with the
premiumfly.notifypermission will be notified. - Added optional bStats metrics support. A bStats plugin ID obtained from bstats.org is required.
- Reworked the message system using Adventure / MiniMessage.
config.ymlnow supports fully customizable formatting, including HEX colors and gradients.
βοΈ Configuration Changes
The structure of config.yml has been updated. After upgrading, review the new config.yml and adjust settings such as flight.speed and effects to your preferences.
flight:
speed: 0.2
jump-window-ticks: 40
disabled-worlds: []
effects:
sound: { enabled: true, activate: ..., deactivate: ... }
particles: { enabled: true, activate: CLOUD }
update-checker:
enabled: true
modrinth-id: premiumfly
metrics:
enabled: true
plugin-id: 0
π¦ Other Changes
- Added a
LICENSEfile specifying the MIT License. - Added
.gitignoreto prevent build artifacts and IDE configuration files from cluttering the repository.
Projects on Modrinth are automatically available through a Maven repository for use with JVM build tools such as Gradle. To learn more about the Modrinth Maven API, click here.
Note: When available, you should use the creator's maven repo instead as it will have transitive dependency information that the Modrinth Maven API does not. You may also end up with duplicate dependencies if you use a mix of Modrinth and non-Modrinth Maven repositories for your dependencies, because the group identifier will be different when served through the Modrinth Maven API.
Maven coordinates:
Version ID:
build.gradle:
repositories {
exclusiveContent {
forRepository {
maven {
name = "Modrinth"
url = "https://api.modrinth.com/maven"
}
}
// forRepositories(fg.repository) // Uncomment when using ForgeGradle
filter {
includeGroup "maven.modrinth"
}
}
}
// Standard Gradle dependency
dependencies {
implementation "maven.modrinth:wjznyO0c:qJvPf67n"
}
// Legacy Loom dependency
dependencies {
modImplementation "maven.modrinth:wjznyO0c:qJvPf67n"
}

