EzFlyTime
3.0.4Sell flight time with customizable vouchers, and make flying players look awesome with highly configurable particles. Also includes configurable bossbar for countdown and has PlaceholderAPI support.
3.0.4latestEzFlyTime 3.0.4Aug 6, 2026 Added
- `display.time-format` config option - controls how{time}and{duration}are formatted in boss bars, action bars, commands, messages, and placeholders. Accepts a pattern string with tokens:DD/D(days),HH/H(hours),MM/M(minutes),SS/S(seconds). Examples:HH:MM:SS,MM:SS,Dd HH:MM:SS. The special valuescompactandclockare still supported for backward compatibility. - `/ezflytime info <player>` admin command - shows a target player's remaining flight time, active voucher status (name and duration), flying state, unlimited-flight status, and per-session max-flight bypass state. Permission node:ezflytime.info(default:op). - `hide-voucher-nbt` config option (default:true) - when enabled, voucher items no longer expose internal attribute modifiers or NBT metadata in the item tooltip. Sethide-voucher-nbt: falseinconfig.ymlto restore the previous behaviour. - Multi-line message support - configurable messages inmessages_*.ymlcan now contain literal\nsequences to split a single message across multiple chat lines. This is useful for longer notifications such as the update available message, which now displays version and download details on separate lines. - Action bar flight display - optionalactionbar:section inconfig.ymllets you show remaining flight time (and optional horizontal speed) above players' hotbars instead of, or alongside, the existing boss bar. Enable withactionbar.enabled: trueand customise the title and speed counter independently of the boss bar settings. Supports the same placeholders as the boss bar:{time},{seconds},{fuel}, and{speed}.Changed
- Voucher item flags now use the direct Bukkit API - replaced the legacy reflection-basedaddItemFlagscall withItemMeta.addItemFlags(ItemFlag…)so voucher tooltips are hidden consistently across Spigot, Paper, and Purpur.3.0.3EzFlyTime 3.0.3May 24, 2026 Changed
- Split unlimited-flight disabled message - Show a different message when a player disables flight while they have unlimited flight. Added theflight-disabled-unlimitedmessage key and updated the command and teams subcommand to use it when appropriate.3.0.2EzFlyTime 3.0.2May 20, 2026 Changed
- [TeamsAPI](https://modrinth.com/plugin/teams-api) dependency bumped 1.8.0 → 2.0.0 - the 2.0.0 release addsTeamRelation.MEMBERand adjusts the default colours ofALLYandTRUCE. EzFlyTime does not useTeamRelation, so no code changes were required.Added
- TeamsAPI integration smoke tests - 112 parameterized tests across all compatible server software (Paper, Spigot, Purpur, Folia) and Minecraft versions (1.16.5 – 1.21.5) guard against regressions of theNoClassDefFoundErrorcrash fixed in 3.0.1.Fixed
- Spurious `particle-shop-gui.yml` save warning -StartupBootstrapcalledsaveResource("particle-shop-gui.yml", false)unconditionally on every startup, producingCould not save … because … already existsafter the first run. The call was redundant:ParticleShopGUIalready guards the samesaveResourcebehind an existence check, so theStartupBootstrapcall has been removed. - [TeamsAPI](https://modrinth.com/plugin/teams-api) soft-dependency crash -NoClassDefFoundError: com/skyblockexp/teamsapi/api/TeamsSubcommandwas thrown on startup whenever TeamsAPI was absent. Bukkit's class loader eagerly loads field-type classes in the same jar, soFlySubcommand(and transitively itsTeamsSubcommandinterface) was resolved the momentTeamsIntegrationwas instantiated, before any availability guard ran. TheflySubcommandfield is now typed asObject; all TeamsAPI references remain in method bodies and are resolved lazily at execution time.3.0.1EzFlyTime 3.0.1May 20, 2026 Fixed
- [TeamsAPI](https://modrinth.com/plugin/teams-api) soft-dependency crash -NoClassDefFoundError: com/skyblockexp/teamsapi/api/TeamsSubcommandwas thrown on startup whenever TeamsAPI was absent. Bukkit's class loader eagerly loads field-type classes in the same jar, soFlySubcommand(and transitively itsTeamsSubcommandinterface) was resolved the momentTeamsIntegrationwas instantiated — before any availability guard ran. TheflySubcommandfield is now typed asObject; all TeamsAPI references remain in method bodies and are resolved lazily at execution time.Added
- `{time}` placeholder in `flight-disabled` message - the remaining flight time is now substituted intoflight-disabledmessages (e.g.&cFlight disabled. Remaining time: {time}.). Updated all 8 bundled locales (en, nl, de, fr, es, ru, tr, zh) to include the placeholder by default. ---3.0.0EzFlyTime 3.0.0May 19, 2026 This release is a major overhaul of EzFlyTime. Nearly every system has been rewritten or significantly extended. **Existingconfig.ymland message files will need to be updated** - delete them and let the plugin regenerate defaults, then re-apply your customisations.Added
- TeamsAPI integration (optional soft dependency) - integrates with [TeamsAPI](https://modrinth.com/plugin/teams-api) when the plugin is present: - Registers a/f flysubcommand in the team plugin's command tree so players can toggle EzFlyTime flight from within their team commands. - Newteams.claimed-chunks-onlyconfig option (defaultfalse): when enabled, EzFlyTime-managed flight is restricted to the player's own team-claimed chunks. Entering an unclaimed or enemy chunk mid-flight automatically lands the player. - Newteams.enabledconfig toggle to disable the integration entirely. - New permissionezflytime.teams.fly.bypass(defaultfalse): exempts a player from the claimed-chunks-only restriction. - New message keys:teams-no-fly-unclaimed,teams-fly-zone-left,teams-not-in-team(all 8 locales). - Timed flight system - players now have a flight-time balance instead of unlimited flight. The remaining time counts down live and is shown in a boss bar above the screen. - Physical flight vouchers - voucher items are backed by Persistent Data Container (PDC) metadata and carry a unique identifier, making each item traceable and preventing duplication exploits. - In-game voucher shop GUI - players open the shop with/flytimeand purchase vouchers directly using Vault economy currency. The GUI is fully configurable invoucher-gui.yml(title, slots, items, sounds, prices). - Configurable commands on voucher buy / use - addon-buy-commandsandon-use-commandsto any voucher inconfig.ymlto run console or player commands automatically. Supports placeholders:{player},{voucher},{voucher_name},{duration_seconds},{amount}. - Particle trail shop - players can unlock and equip particle effects during flight. The shop and selection GUI are configured inparticle-shop-gui.ymlandparticles.yml. - Auto-flight reward system - grant flight time automatically on a timer. Rewards can be flat, permission-based (rank groups), or tied to mcMMO skill level thresholds. - Fuel display mode - optionally show remaining flight as a percentage fuel bar instead of a time value (display.flytime-mode: fuel). - MySQL storage backend - store flight-time data in a MySQL database for multi-server / BungeeCord setups alongside the default YAML backend. - PlaceholderAPI expansion - use%ezflytime_time%,%ezflytime_seconds%,%ezflytime_minutes%, and%ezflytime_fuel%in any PlaceholderAPI-compatible plugin. - Multilingual messages - built-in translations for English, Dutch, Spanish, French, Russian, Turkish, Chinese, and German. Setlanguage:inconfig.ymlto switch instantly. - Tab-complete permission gating -/flyvouchertab completions now respect permissions:giveis only suggested to players withezflytime.give, andbuyonly to players withezflytime.buy. - `/flytime top` leaderboard command (permissionezflytime.top, default: true). - Per-session flight cap - limit how long a single uninterrupted flight session can last (max-single-flight-seconds). A per-player bypass permission is available. - Flight preservation across death - optionally keep or clear a player's remaining flight time when they die (preserve-on-death). - Creative / Spectator bypass - players in Creative or Spectator mode can be configured to fly freely without consuming time. - SpigotMC update checker - notifies online operators/admins when a new version is available. Configurable and can be disabled entirely. - bStats metrics - anonymous usage statistics to help guide future development (opt-out supported via bStats global config). - GitHub Pages documentation at <https://ez-plugins.github.io/EzFlyTime/>.Changed
-/flytimewith no arguments now opens the voucher shop GUI for all players who have theezflytime.buypermission (default: true). Previously only server operators saw the shop; regular players received only a "remaining time" message. -ezflytime.buyis now declared inplugin.ymlwithdefault: true, making the shop accessible to all players out of the box. Restrict it via your permission manager if needed. -/flyand/flytimeno longer operate independently of each other - both draw from and update the same flight-time balance. - Admin time-management commands (give,set,remove) no longer send a duplicate notification to the target player. The command handler sends one message;FlyTimeManageris toldnotify=false.Fixed
- Modrinth release workflow now listsvaultunlockedinstead ofvaultas an optional dependency; Vault has no Modrinth listing whereas [VaultUnlocked](https://modrinth.com/plugin/vaultunlocked) is the actively maintained fork. -plugin.ymlnow includes bothVaultandVaultUnlockedinsoftdependso EzFlyTime loads correctly regardless of which economy provider is installed. -/flyvouchertab completions are now gated on sender permissions:giveis only suggested to players withezflytime.giveandbuyonly to players withezflytime.buy. - Players withoutezflytime.buycould never open the voucher shop GUI because the permission was used in code but not registered inplugin.yml, causing it to silently default to OP-only. - Tab-complete for/flyvouchersuggestedgiveandbuyto every sender regardless of what they were actually allowed to do. - Right-clicking a voucher during the 1-second anti-spam cooldown did not cancel the event, allowing the click to propagate to the server. - Granting, setting, or removing flight time via admin commands sent two notifications to the target player (one from the command, one fromFlyTimeManager).2.3.3EzFlyTime 2.3.3Mar 24, 2026 - Added new configuration optionpreserve-on-deathin theconfig.yml. Example usage:flight: # Preserve flight state across death/respawn. If true, players keep plugin-granted # flight after they die and respawn (defaults to true). preserve-on-death: true2.3.2EzFlyTime 2.3.2Mar 22, 2026 - Added option to show formatted money (1k, 2m, 3b, etc.)  - Added formatting to enter price formatted in the config2.3.1EzFlyTime 2.3.1Mar 22, 2026 - Fixed issue in creative/spectator bypass still counting down the timer2.3.0EzFlyTime 2.3.0Mar 21, 2026 - Added permission bypass for creative mode (ezflytime.bypass.creative) - Added configurable bypass for creative mode (flight.allow-creative-bypass: trueinconfig.yml) - Added permission bypass for spectator mode (ezflytime.bypass.spectator) - Added configurable bypass for spectator mode (flight.allow-spectator-bypass: trueinconfig.yml)2.2.2EzFlyTime 2.2.2Mar 2, 2026 - Fixed/flyvoucherusage message - Fixed/flyvoucherdefault permission to prevent require*.givepermission for opening the shop GUI. Permissions are now handled per subcommand.2.2.1EzFlyTime 2.2.1Feb 22, 2026 - Addedde(German) as language (translated by FurubaFox) - Fixed issue not being able to use custom language files (outside of the default languages)2.2.0EzFlyTime 2.2.0Feb 8, 2026 - Improved multi-language support - Added language support and default messages for Chinese - Added language support and default messages for Russian - Added language support and default messages for Turkisch - Added language support and default messages for French - Moved messages files to themesssages/folder inside the plugin data folder. - For this version only old messages files are backwords compatible and will load - Added option to limit time per flight inconfig.yml
- Added single flight bypass permissionflight: # Maximum seconds allowed for a single continuous flight session. # Set to 0 to disable per-session limits (default). max-single-flight-seconds: 0ezflytime.maxsingle.bypass2.1.2EzFlyTime 2.1.2Feb 2, 2026 - Fixed issue in setting slot for information button - Fixed issue in setting slot for back button2.1.1EzFlyTime 2.1.1Jan 23, 2026 - Improved issue inmin-speedper particle configuration option - Added speed counter placeholder to bossbar  - Addedspreadoption per particle
- Addedparticles: <effect-name>: spread: 0.0require-sprintingoption per particleparticles: <effect-name>: require-sprinting: false2.1.0EzFlyTime 2.1.0Jan 22, 2026 Summary
Release 2.1.0 improves particles, debug logging, reload behaviour and the voucher shop GUI. These updates target stability (bossbar/manager lifecycle), compatibility across server versions, and clearer diagnostics for server owners. ---Particles
- New: comprehensive particles configuration (particles.yml templates included: low / medium / high). - New: example images and gallery link for reference. - Preview:  particle type - density: integer (affects visual intensity and cost) - interval: ticks between spawns - radius/offset: spawn area - cost-per-second: economy cost (if using Vault) - Performance notes: - Use low/medium templates for busy servers. - Disable particle features per-world or via permissions to reduce load. - Troubleshooting: - If particles don't appear, verifyparticles.enabled: trueand permission nodes (e.g.,ezflytime.particles.*). ---Debug mode
- Expanded debug logging across voucher detection, PDC reads, material resolution, bossbar lifecycle, and reload flow. - How to enable: - config.yml:debug: true- Logs will print: item types, display names, lore, PDC presence, material resolution fallback paths. - Use cases: - Diagnose voucher mismatches (PAPER vs FEATHER vs legacy names). - Verify bossbar creation/cleanup during reload. - Tip: capture full server log when reproducing issues and share only relevant debug blocks. ---
- Now reloads ALL configuration files and safely recreates managers: - Calls/flytime reloaddispose()on existing managers to stop tasks, unregister events and clear bossbars. - Reloads vouchers, bossbar, particles and GUI resources from disk. - Fixes: - Prevents bossbar duplication on reload by clearing previous bossbars before creating new ones. - Ensures plugin version inplugin.ymlis filtered frompom.xmlat build time. - Recommended workflow: - Edit configs →/flytime reload(or restart). - If bossbar is missing after reload: check logs for "BossBar:" debug lines, ensurebossbar.enabled: true, and confirm player has required permission. ---Voucher Shop GUI
- Detection robustness: - Voucher matching now prefers PersistentDataContainer (PDC) but falls back to legacy display-name and lore when PDC is absent. - Material resolution unified viaMaterialResolverto avoidLEGACY_*mismatches across server versions. - GUI changes: - GUI creation uses the same resolver/path as voucher parsing — eliminates inconsistencies between shop display item and stored voucher. - Improved user-facing display names & lore templates; shop screenshot link:  - Diagnostics: - Debug logs show: item type, meta (name/lore), expected voucher material and resolution path. - Troubleshooting: - If vouchers are not redeemed: - Check debug logs for PDC keys presence. - Confirm GUI-made items and given vouchers share material/name/custom-model-data. - Test on a clean server to rule out external plugins stripping metadata. ---Administrative & Misc
- Commands: -/fly— toggle flight (with fallbacks). -/flytime— show remaining time or (no args) open voucher shop GUI for players withezflytime.buy. -/flytime reload— reloads configuration and safely recreates managers.1.2.0EzFlyTime 1.2.0Jan 14, 2026 Added Minecraft compatibility for 1.7 - 1.21. * Added improved compatibility for Bukkit / Spigot * Added SpigotMC.org integration for checking new updates
Similar projects
Plugin →VeinMiner
Mine the whole vein on mining a single ore/block. Make the tedious mining experience to something satisfying and fun! FTB Ultimine alternative
99.3MSueta
VeinMiner Enchantment
Veinminer Addon - Adds vineminer enchantment to enchanting tables. Only tools with the enchantment can veinmine
18MSueta
ItemSwapper
Inventory update concept for hotswapping items.
2.1MSueta
Multiverse-Core
The Bukkit World Management Plugin.
910.6KSueta
EssentialsX
The essential plugin suite for Paper and Spigot servers.
832.5KSueta
Grim Anticheat
Fully async, multithreaded, predictive, open source, 3.01 reach, 1.005 timer, 0.01% speed, 99.99% antikb, "bypassable" 1.8-1.21 anticheat
823.4KSueta