FlyCraft
PluginGPL-3.0-only

FlyCraft

Advanced /fly plugin for your minecraft server!

1.4K
Downloads
2
Followers
4 months ago
Updated
📦
15
Versions

📖About FlyCraft

FlyCraft v1.4.6 - Official Documentation

Overview

FlyCraft is a lightweight and powerful flight management plugin for Minecraft servers. It allows players to toggle flight mode, adjust flight speed, and integrate with Discord for remote management. With built-in metrics, update checking, and LuckPerms integration, it provides a complete flight control solution for your server.


1. Core Features

  • Toggle Flight Mode – Enable or disable flight for players
  • Configurable Flight Duration – Set limits on flight time
  • Customizable Cooldown System – Prevents excessive flight toggling
  • Adjustable Fly Speed – Speed levels from 1 (slowest) to 10 (fastest)
  • Group-Based Permissions – Group system with LuckPerms integration
    • Automatic group detection
    • Group-specific settings
    • Inherited permissions support
  • Speed Restrictions – Set maximum allowed speed per group
  • Welcome Messages – Display a message to new players
  • Full Discord Integration – Manage flights via Discord commands
  • Update Checker – Automatic version checking
  • Discord Notifications – Real-time flight activity tracking
  • LuckPerms Integration – Seamless permission management
  • Folia Support – Full support for Folia and modern server architectures

2. Commands

2.1 In-Game Commands

Command Description Permission Aliases
/fly [player] Toggle flying mode flycraft.use flymode
/flyspeed <1-10> Adjust flying speed flycraft.flyspeed N/A
/flycraftreload Reload the plugin configuration flycraft.reload fcr, flyreload

Notes:

  • Using /fly [player] requires additional flycraft.others permission
  • /flyspeed requires both flycraft.flyspeed and appropriate flycraft.maxflyspeed.<1-10> permission
  • Fly speed is adjustable from 1 (slowest) to 10 (fastest)
  • Players can only set speeds up to their maximum allowed speed permission

2.2 Discord Commands

Command Description Requirements
!startfly <player> Enables flight for the specified player Requires configured Discord role
!stopfly <player> Disables flight for the specified player Requires configured Discord role
!flyspeed <player> <1-10> Sets the player’s flight speed Requires configured Discord role

3. Permissions

3.1 Basic Permissions

Permission Description Default
flycraft.use Allows toggling flight mode op
flycraft.flyspeed Allows changing flight speed op
flycraft.flytime Allows using flight time commands op
flycraft.reload Allows reloading the configuration op
flycraft.others Allows managing flight for other players op

3.2 Speed Control Permissions

Permission Description Default
flycraft.maxflyspeed.1 Allows setting fly speed up to 1 op
flycraft.maxflyspeed.2 Allows setting fly speed up to 2 op
flycraft.maxflyspeed.3 Allows setting fly speed up to 3 op
flycraft.maxflyspeed.4 Allows setting fly speed up to 4 op
flycraft.maxflyspeed.5 Allows setting fly speed up to 5 op
flycraft.maxflyspeed.6 Allows setting fly speed up to 6 op
flycraft.maxflyspeed.7 Allows setting fly speed up to 7 op
flycraft.maxflyspeed.8 Allows setting fly speed up to 8 op
flycraft.maxflyspeed.9 Allows setting fly speed up to 9 op
flycraft.maxflyspeed.10 Allows setting fly speed up to 10 op

3.3 Permission Groups

Permission Description Includes
flycraft.* Grants all FlyCraft permissions All permissions listed above

4. Permission Systems

4.1 Basic Permissions (All Permission Plugins)

If you're using any permission plugin other than LuckPerms (like PermissionsEx, GroupManager, etc.), use these basic permissions to control access:

  • flycraft.use - Allow flight
  • flycraft.flyspeed - Allow speed changes
  • flycraft.maxflyspeed.<1-10> - Set maximum allowed speed
  • flycraft.others - Manage other players
  • flycraft.reload - Reload configuration

4.2 Group System (LuckPerms Only)

FlyCraft includes a powerful group-based permission system that works exclusively with LuckPerms. When LuckPerms is installed, the plugin will automatically use group settings from groups.yml based on the player's LuckPerms groups. If LuckPerms is not installed, the plugin will fall back to using the basic permission system.

4.1 Group Configuration (groups.yml)

groups:
  default:
    can-fly: false
    max-fly-speed: 1
    flight-duration: 300
    flight-cooldown: 60

  vip:
    can-fly: true
    max-fly-speed: 3
    flight-duration: 600
    flight-cooldown: 30

  mvp:
    can-fly: true
    max-fly-speed: 5
    flight-duration: 1200
    flight-cooldown: 15

  admin:
    can-fly: true
    max-fly-speed: 10
    flight-duration: -1
    flight-cooldown: 0

4.2 Group Settings

Setting Description Default
can-fly Whether the group can use flight false
max-fly-speed Maximum flight speed (1-10) 1
flight-duration Flight duration in seconds (-1 for unlimited) 300
flight-cooldown Cooldown between flights in seconds 60

4.3 Group System Features (LuckPerms Only)

  • LuckPerms Integration: Automatically detects player groups
  • Inherited Permissions: Support for LuckPerms inheritance system
  • Group Priorities: Uses primary group with fallback to inherited groups
  • Default Group: Fallback settings for players without a specific group

Important Note: The group system requires LuckPerms to be installed and enabled on your server. If you're using a different permission plugin, please use the basic permissions system described in section 4.1.


5. Configuration (config.yml)

4.1 General Settings

# Update Checker Settings
update-checker:
  enabled: true
  notify-ops: true
  debug: false

# Flight Settings
flight-duration: 300  # Duration of flight in seconds (default: 300)
flight-cooldown: 60   # Cooldown time between flights (default: 60)
welcome-message-enabled: true  # Enable welcome messages

# Messages can be customized with color codes (&)
messages:
  flight-enabled: "&aFlight enabled for %time% seconds!"
  flight-disabled: "&cFlight disabled!"
  flight-expired: "&cYour flight time has expired!"
  cooldown: "&cYou must wait %time% seconds before flying again!"

4.2 Discord Integration

discord:
  enabled: true
  channel-id: "YOUR_CHANNEL_ID"
  bot-token: "YOUR_BOT_TOKEN"
  bot-settings:
    status: "ONLINE"  # ONLINE, IDLE, DO_NOT_DISTURB, INVISIBLE
    activity:
      type: "PLAYING"  # PLAYING, WATCHING, LISTENING, COMPETING
      message: "with %online_players% players"
  commands:
    enabled: true
    prefix: "!"
    allowed-roles:
      - "ROLE_ID_1"
      - "ROLE_ID_2"
  embed:
    enabled: true
    color:
      start: "#3498db"
      end: "#e74c3c"
      speed: "#f1c40f"
    thumbnail:
      enabled: true
      url: "https://minotar.net/avatar/%player%/64"
    footer:
      text: "FlyCraft • %server_name%"

4.3 Bot Activity Settings

bot-activity:
  type: PLAYING  # Options: PLAYING, WATCHING, LISTENING, COMPETING
  message: "Flying on %server_name% with %online_players%/%max_players% online!"

5. Discord Features

5.1 Notifications

  • Flight start/stop alerts
  • Speed change updates
  • Total flight time tracking
  • Player avatars included in embeds

5.2 Message Formatting

  • Supports custom emojis
  • Displays player names and server info
  • Tracks flight duration

6. Time Formatting

Automatically formats time periods for clarity:

  • 25 seconds
  • 1 minute 30 seconds
  • 2 hours 15 minutes 45 seconds

7. Dependencies

Required

  • Minecraft Server: Spigot/Paper 1.13+
  • JDA (Discord API): 5.0.0-beta.13

Optional (For Enhanced Features)

  • PlaceholderAPI – Dynamic placeholders support
  • Vault – Economy and permissions support
  • DiscordSRV – Alternative Discord integration

8. PlaceholderAPI Support

FlyCraft fully supports PlaceholderAPI, allowing you to display flight information in scoreboards, chat, tab lists, and menus.

8.1 Global Placeholders

Placeholder Description
%flycraft_flying_count% Number of players currently flying

8.2 Player Placeholders

Placeholder Description
%flycraft_is_flying% Returns true or false
%flycraft_status% Returns "Flying" or "Not Flying"
%flycraft_time_left% Remaining flight time (e.g., "5m 30s") or "Unlimited"
%flycraft_can_fly% Returns true if player has permission to fly
%flycraft_speed% Current flight speed (e.g., "1", "2")
%flycraft_max_speed% Player's maximum allowed flight speed
%flycraft_cooldown% Remaining cooldown time (e.g., "30s") or "Ready"
%flycraft_group% Returns "Authorized" or "Unauthorized" based on group access

8.3 Specific Player Placeholders

Replace <playername> with the name of the target player.

Placeholder Description
%flycraft_status_<playername>% Fly status of specific player
%flycraft_cooldown_<playername>% Cooldown status of specific player
%flycraft_max_speed_<playername>% Max speed of specific player

9. Technical Features

  • Async Discord Messaging – Improves performance
  • Safe Reload Handling – Prevents crashes during reloads
  • Automatic Cooldown Management – Ensures fair gameplay
  • Flight Time Tracking – Monitors player flight duration
  • Speed Conversion Handling – Converts between Minecraft speed units
  • Error Logging & Handling – Logs issues for troubleshooting
  • Event-Based Architecture – Efficient and modular

10. Messages

All messages are customizable in config.yml:

  • Plugin enable/disable messages
  • Permission error messages
  • Flight status updates
  • Speed change notifications
  • Welcome messages
  • Discord alerts
  • Admin notifications

11. Safety Features

  • Permission Checks – Ensures players have the correct permissions
  • Input Validation – Prevents invalid command arguments
  • Error Handling – Captures and logs issues gracefully
  • Safe Discord Reconnection – Prevents bot disconnection issues
  • Cooldown Enforcement – Prevents spam abuse
  • Flight Duration Limits – Ensures balanced gameplay
  • Speed Range Limits (1-10) – Prevents unintended behavior

12. Development Information

  • API Version: 1.13
  • Java Version: 21
  • Build System: Maven-based
  • Open Source: Yes
  • Extendable Architecture: Designed for future expansions

Installation Guide

  1. Download FlyCraft v1.4 from the official repository.
  2. Place the .jar file in your server’s /plugins/ folder.
  3. Restart your server to generate configuration files.
  4. Edit config.yml to customize settings.
  5. (Optional) Configure Discord Bot for remote flight control.
  6. Reload the plugin using /flycraftreload or restart the server.

Support

For help, feature requests, or bug reports:


bStats

FlyCraft usage graph

License

License
FlyCraft is an open-source project licensed under the GNU General Public License v3.0 (GPL-3.0). You are free to use, modify, and distribute it, provided that:

  • Proper credit is given to the original author (Borhani).
  • Any modifications or redistributed versions are also licensed under GPL-3.0.
  • The original license is included in all copies or substantial portions of the project.

For full license details, see: GNU GPL v3.


Credits

Developed by Borhani.