Перейти к содержимому
Mineforgian

EzFlyTime

Sell 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.

Загрузки
653
Подписчики
2
Обновлён
24 мая 2026 г.
Лицензия
MIT

Опубликован 14 января 2026 г.

EzFlyTime is a production-ready timed-flight plugin for Minecraft servers. Players earn or purchase vouchers to gain temporary flight. A live boss bar counts down remaining time, particle trails add visual flair, and a GUI shop lets players spend server currency - all configurable with YAML or MySQL storage.

Voucher Shop GUI

Key Features

  • Timed flight with a real-time boss bar countdown
  • Physical voucher items with PDC-backed identity and duplicate detection
  • In-game GUI shop for buying vouchers with Vault economy integration
  • Configurable particle trails per player (with an unlockable shop)
  • Auto-flight rewards: flat, permission-based, or tied to mcMMO skill levels
  • Fuel display mode - show remaining time as a percentage instead of a countdown
  • YAML or MySQL storage - easy single-server setup or cross-server database
  • PlaceholderAPI support for scoreboards, chat formats, and GUIs
  • Multilingual messages: English, Dutch, Spanish, French, Russian, Turkish, Chinese

Advanced Particles Boss bar with flight speed meter


Quick Install

  1. Drop EzFlyTime-<version>.jar into your plugins/ directory.
  2. Start the server to generate plugins/EzFlyTime/config.yml and related files.
  3. Adjust vouchers:, bossbar:, and storage: in config.yml.
  4. (Optional) Install Vault + an economy plugin to enable the voucher buy flow.
  5. Run /ezflytime reload after any config edits.

Commands

Player commands

  • /fly - Toggle flight on/off.
  • /flytime - Show remaining fly time (or open the voucher GUI).
  • /flyparticles - Open the particle select/shop GUI or toggle auto-equip.
  • /flyvoucher buy <voucherId> [amount] - Purchase vouchers with server currency.
  • /flyvoucher gui - Open the voucher shop GUI.

Admin commands

  • /flytime give <player> <time> - Add flight time (e.g. 10m, 1h).
  • /flytime set <player> <time> - Set a player's flight time exactly.
  • /flytime remove <player> <time> - Remove flight time from a player.
  • /flytime top - Show the fly-time leaderboard.
  • /flyvoucher give <player> <voucherId> [amount] - Give vouchers to a player.
  • /ezflytime reload - Reload all configuration files.
  • /ezflytime maxsingle <player> [on|off|toggle] - Bypass the per-session cap for a player.

Permissions

Permission Default Description
ezflytime.fly true Toggle flight
ezflytime.flytime true View remaining time
ezflytime.top true View leaderboard
ezflytime.bypass false Keep flight when time runs out
ezflytime.give op Give vouchers to players
ezflytime.reload op Reload configuration
ezflytime.admin op Full admin access

Configuration highlights

Boss bar customization:

bossbar:
  enabled: true
  title: '&aFlight time remaining: {time}'
  color: GREEN
  style: SEGMENTED_10

Example voucher:

vouchers:
  basic:
    material: PAPER
    name: '&aBasic Fly Voucher'
    lore:
      - '&7Redeem for 5 minutes of flight.'
    duration-seconds: 300
    price: 1000

Display mode (time or fuel percentage):

display:
  flytime-mode: time  # 'time' or 'fuel'

PlaceholderAPI Placeholders

Placeholder Description
%ezflytime_time_remaining% Formatted remaining time (e.g. 1h 2m 3s)
%ezflytime_seconds% Raw remaining seconds
%ezflytime_minutes% Whole minutes remaining
%ezflytime_fuel% Remaining flight as a percentage (0–100)

Integrations

  • Vault / VaultUnlocked - economy abstraction for voucher purchasing
  • EzEconomy - lightweight Vault-compatible economy: https://modrinth.com/plugin/ezeconomy
  • PlaceholderAPI - register fly-time placeholders for scoreboards and GUIs
  • mcMMO - grant flight time based on skill level thresholds

Language Support

Supported languages: English, Dutch, Spanish, French, Russian, Turkish, Chinese.

Set language: en (or another code) in config.yml. To add a new language, copy messages_en.yml, rename it to messages_<code>.yml, and translate the values.


Links

Ченджлог

3.0.3Релиз26.1, 26.1.1, 26.1.2 · 24 мая 2026 г.

Changed

  • Split unlimited-flight disabled message - Show a different message when a player disables flight while they have unlimited flight. Added the flight-disabled-unlimited message key and updated the command and teams subcommand to use it when appropriate.
3.0.2Релиз26.1, 26.1.1, 26.1.2 · 20 мая 2026 г.

Changed

  • TeamsAPI dependency bumped 1.8.0 → 2.0.0 - the 2.0.0 release adds TeamRelation.MEMBER and adjusts the default colours of ALLY and TRUCE. EzFlyTime does not use TeamRelation, 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 the NoClassDefFoundError crash fixed in 3.0.1.

Fixed

  • Spurious particle-shop-gui.yml save warning - StartupBootstrap called saveResource("particle-shop-gui.yml", false) unconditionally on every startup, producing Could not save … because … already exists after the first run. The call was redundant: ParticleShopGUI already guards the same saveResource behind an existence check, so the StartupBootstrap call has been removed.

  • TeamsAPI soft-dependency crash - NoClassDefFoundError: com/skyblockexp/teamsapi/api/TeamsSubcommand was thrown on startup whenever TeamsAPI was absent. Bukkit's class loader eagerly loads field-type classes in the same jar, so FlySubcommand (and transitively its TeamsSubcommand interface) was resolved the moment TeamsIntegration was instantiated, before any availability guard ran. The flySubcommand field is now typed as Object; all TeamsAPI references remain in method bodies and are resolved lazily at execution time.

3.0.1Релиз26.1, 26.1.1, 26.1.2 · 20 мая 2026 г.

Fixed

  • TeamsAPI soft-dependency crash - NoClassDefFoundError: com/skyblockexp/teamsapi/api/TeamsSubcommand was thrown on startup whenever TeamsAPI was absent. Bukkit's class loader eagerly loads field-type classes in the same jar, so FlySubcommand (and transitively its TeamsSubcommand interface) was resolved the moment TeamsIntegration was instantiated — before any availability guard ran. The flySubcommand field is now typed as Object; 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 into flight-disabled messages (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.0Релиз26.1, 26.1.1, 26.1.2 · 19 мая 2026 г.

This release is a major overhaul of EzFlyTime. Nearly every system has been rewritten or significantly extended. Existing config.yml and 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 when the plugin is present:
    • Registers a /f fly subcommand in the team plugin's command tree so players can toggle EzFlyTime flight from within their team commands.
    • New teams.claimed-chunks-only config option (default false): 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.
    • New teams.enabled config toggle to disable the integration entirely.
    • New permission ezflytime.teams.fly.bypass (default false): 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 /flytime and purchase vouchers directly using Vault economy currency. The GUI is fully configurable in voucher-gui.yml (title, slots, items, sounds, prices).
  • Configurable commands on voucher buy / use - add on-buy-commands and on-use-commands to any voucher in config.yml to 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 in particle-shop-gui.yml and particles.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. Set language: in config.yml to switch instantly.
  • Tab-complete permission gating - /flyvoucher tab completions now respect permissions: give is only suggested to players with ezflytime.give, and buy only to players with ezflytime.buy.
  • /flytime top leaderboard command (permission ezflytime.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

  • /flytime with no arguments now opens the voucher shop GUI for all players who have the ezflytime.buy permission (default: true). Previously only server operators saw the shop; regular players received only a "remaining time" message.
  • ezflytime.buy is now declared in plugin.yml with default: true, making the shop accessible to all players out of the box. Restrict it via your permission manager if needed.
  • /fly and /flytime no 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; FlyTimeManager is told notify=false.

Fixed

  • Modrinth release workflow now lists vaultunlocked instead of vault as an optional dependency; Vault has no Modrinth listing whereas VaultUnlocked is the actively maintained fork.
  • plugin.yml now includes both Vault and VaultUnlocked in softdepend so EzFlyTime loads correctly regardless of which economy provider is installed.
  • /flyvoucher tab completions are now gated on sender permissions: give is only suggested to players with ezflytime.give and buy only to players with ezflytime.buy.
  • Players without ezflytime.buy could never open the voucher shop GUI because the permission was used in code but not registered in plugin.yml, causing it to silently default to OP-only.
  • Tab-complete for /flyvoucher suggested give and buy to 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 from FlyTimeManager).
2.3.3Релиз1.21.9, 1.21.10, 1.21.11 · 24 марта 2026 г.
  • Added new configuration option preserve-on-death in the config.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: true
2.3.2Релиз1.21.9, 1.21.10, 1.21.11 · 22 марта 2026 г.
  • Added option to show formatted money (1k, 2m, 3b, etc.) Flight time voucher shop formatted price
  • Added formatting to enter price formatted in the config
2.3.1Релиз1.21.9, 1.21.10, 1.21.11 · 22 марта 2026 г.
  • Fixed issue in creative/spectator bypass still counting down the timer
2.3.0Релиз1.21.9, 1.21.10, 1.21.11 · 21 марта 2026 г.
  • Added permission bypass for creative mode (ezflytime.bypass.creative)
  • Added configurable bypass for creative mode (flight.allow-creative-bypass: true in config.yml)
  • Added permission bypass for spectator mode (ezflytime.bypass.spectator)
  • Added configurable bypass for spectator mode (flight.allow-spectator-bypass: true in config.yml)

Комментарии

Загружаем…