Flyblock the ultimate balance between survival and creative.
What is Flyblock?
Flyblock is a plugin which enables server owners to let players buy limited flying capabilities.
The goal of Flyblock was to create a plugin which allows servers to grant players access to flying while still keeping the server survival.
How does flyblock work? Flyblock allows you to configure up to 28 levels of Flyblocks for your players to purchase. For each of these levels you can configure the price, range and duration.
Once a player places a Flyblock this player is granted flying abilities for a certain amount of time within a certain range. The player can pick the Flyblock back up by mining it.
Features
Up to 28 levels of Flyblocks fully editable by the owner.
Pause and resume the usage of Flyblocks
Item or money based purchasing of Flyblocks
Add up to 14 other players to use the Flyblock together.
Add up to a unlimited amount of Flyblocks to create a net of flyblocks if you can afford it!
Right click on any Flyblock to see the stats.
Flyblocks can be picked up and placed again! the duration (time left) goes on where it left off!
Customize the GUI names, the blocks used, the messages displayed and much more!
Thorough config validation
Automatic update checking
Should work with any placement permission plugin. Worldguard, Residence etc. (if not let me know)
Get data from the Flyblocks using Placeholder API (more below)
Other information
Flyblocks will be destroyed after the duration ends, with this the ability for the player to fly also gets removed. (Yes also when they are offline)
This plugin requires Vault in order to use the shop. the give flyblock command works without vault and so does the rest of the plugin.
The plugin contains a configurable "no fall damage range" in which players can fall down and not receive damage.
Flyblocks can handle both server reloads and restarts without any problems.
Flyblocks are transferable between players either by dropping if enabled or by transferring ownership to a user.
Players by default can not break other players their Flyblock. This can be changed using the flyblock.breakOthersBlocks permission.
This plugin utilizes bStats to collect anonymous statistics, learn more here
Placeholder API
Placeholder API can be used to get certain data from the Flyblock plugin.
If you have any requests, suggestions or questions about this please send me a message on discord.
%flyblock_display% : display the total number of flyblocks on the server
Returns 0 if none exist
%flyblock_all%: displays basic info for all flyblocks of the player
Format used: x, y, z, worldName, durationInMinutes, range\n
may contain multible of these lines. for example:
10, 0, 20, World, 20, 10\n
15, 0, 20, World, 12, 20\n
Returns "" if none exist
%flyblock_locations%: displays all flyblock locations of the player
Format: x, y, z, worldName\n
May contain multiple lines. for example:
10, 0, 20, World\n
15, 0, 20, World\n
Returns "" if none exist
# Amount of Flyblock levels to sell
# MAXIMUM = 28
amountOfLevelsToSell: 3
# Range, duration and price of the Flyblocks on sell.
# Each property must have the same amount of values as Flyblocks on sell ('amountOfLevelsToSell').
flyblockRanges: [20, 40, 60]
# Setting a duration to -1 will make the Flyblock duration infinite.
flyblockDurations: [20, 25, 30]
# Price of the Flyblock levels, also the needed amount of items when using a item as the 'flyblockPurchaseUnit'
flyblockPrices: [5000, 10000, 15000]
# Replace this with a valid material name to let players buy flyblocks with items.
# Valid material names can be found here under "Enum Constant" name
# https://hub.spigotmc.org/javadocs/spigot/org/bukkit/Material.html
flyblockPurchaseUnit: "MONEY"
# Worlds in which placing flyblocks is not allowed, note that the name of the banned world is the name of the folder.
bannedWorlds:
- world_the_end
- world_nether
# Putting this on true will restrict the amount of blocks a player can fly on the y coordinate
includeHeightInRadius : false
# The amount below works as an extra to the radius, This will be used when a player goes outside the radius and falls down,
# It is to prevent them from getting fall damage, the higher you put this the further a player can fall outside the region without getting fall damage
# For example this is set to 30, then the total distance that a player can fall outside the region without getting fall damage is 30.
# MAXIMUM = 200
noFallDamageRange: 30
# When false: A dropped flyblock can not be placed or used by the player who picks it up (other than the owner)
# When true: The flyblock will become owned by the person who picks it up and places it again.
# Users will be wiped when the flyblock is placed by the new owner.
transferOwnershipOnDrop: true
# Will remove the option to transfer ownership of a flyblock in the right click flyblock GUI.
allowOwnershipTransfer: true
# Amount of users a flyblock can have. (This doesn't include the owner)
# MAXIMUM = 14
maxFlyblockUsers: 14
# Flyblock drop change % on explosion (creeper, tnt etc)
# MAXIMUM = 500
dropOnExplosionChange: 100
# Does player need permission to add players to his/her Flyblock? (flyblock.add5 would allow up to 5 people to be added for example)
addPermissionRequired: false
# DISCLAIMER: Changing this while already using the plugin can prevent existing flyblocks from working and might cause errors.
# Text displayed on the Flyblock when in inventory form when hovered over. (as item)
flyblockItemCustomization:
fbItemName: "&6Flyblock"
fbItemLevel: "&7Level: &f%level%"
fbItemRange: "&7Range: &f%range%"
fbItemDuration: "&7Duration: &f%duration% &7minutes"
fbItemOwner: "&7Owner: &f%owner%"
fbItemUsers: "&7Users: &f%users%"
# Expired/destroyed/cleared messages
expired: "&7your &6flyblock &7has expired and has been removed"
expiredOffline: "&7One or more of your &6flyblock(s) &7have expired and have been removed"
destroyed: "&7One or more of your &6flyblock(s) &7have been destroyed and have been removed"
destroyedOffline: "&7One or more of your &6flyblock(s) &7have been destroyed and have been removed"
cleared: "&7One or more of your &6flyblock(s) &7have been cleared and have been removed"
clearedOffline: "&7One or more of your &6flyblock(s) &7have been cleared and have been removed"
paused: "&7One or more of your &6flyblock(s) &7have been paused and have been temporarily removed"
pausedOffline: "&7One or more of your &6flyblock(s) &7have been paused and have been temporarily removed"
# No permission related messages
noShopPerm: "&4You do not have permission to open the shop"
noPickupPerm: "&4You're not allowed to pick up this flyblock"
noPlacePerm: "&4You do not have permission to place a level %level% &6flyblock"
noBuyPerm: "&4You do not have permission to buy a level %level% &6flyblock"
noClearPerm: "&4You do not have permission to clear flyblocks using this command"
noGivePerm: "&4You do not have permission to give flyblocks to other people"
noAddPerm: "&4You do not have permission to add another player to this Flyblock"
noReloadPerm: "&4You do not have permission to reload the Flyblock plugin"
noPauseResumePerm: "&4You do not have permission to use pause and or resume commands"
# Shop related messages
openShopError: "&4Error opening shop, please inform a administrator."
notEnoughMoney: "&4You do not have enough money to buy a level %level% &6flyblock"
notEnoughItems: "&4You do not have enough items to buy a level %level% &6flyblock"
inventoryFull: "&4Inventory full!"
flyblockBought: "&2Level %level% &6flyblock &2has been acquired"
shopDisabled: "&4Flyblock shop is currently disabled"
buyFlyblockError: "&4Flyblock purchase failed, please inform a administrator"
# Flyblock related messages
forbiddenWorld: "&4You are not allowed to place flyblocks in this world"
playerMustBeOnline: "&4Selected player must be online"
ownershipTransferred: "&2Ownership of &6Flyblock &2has been transferred to user %user%"
ownershipGranted: "&2Ownership of a &6Flyblock &2has been transferred to you"
mustBeOwner: "&4You must own this Flyblock to perform this action"
pluginPaused: "&4Placement and usage of flyblocks has been temporarily paused"
# Add player related messages
addPlayerPrefix: "&6Flyblock &7> "
addPlayerPrompt: "&7Which player would you like to add? (type 'back' to exit out)"
userAlreadyAdded: "&4Selected player is already a user of this Flyblock"
cantAddYourself: "&4Can't add yourself"
invalidPlayer: "&4Selected player does not exist or is offline!"
invalidAmount: "&4Amount must be a (positive) valid number!"
userRemoved: "&2User %user% has been removed"
canOnlyRemoveSelf: "&4You can only remove yourself if you do not own this Flyblock"
# Command related messages
removedAll: "&2Removed all active flyblocks"
removedSpecific: "&2Removed all active flyblocks for user %user%"
invalidGiveLevel: "&4Given level is not a valid level, please enter a level between 1 and %highestLevel%"
incorrectCommandUsage: "&4Incorrect usage of command, usage: %correctUsage%"
notEnoughSpace: "&4Receiver does not have enough space!"
flyblockgivenreceiver: "&2You have received one or more level %level% flyblocks from %user%"
flyblockgivensender: "&2User %user% has been given one or more level %level% flyblocks"
noFlyblocksFound: "&4No Flyblocks found"
onlyPlayersCanUse: "&4Only players can use this command"
foundAt: "&6Flyblock &7found at %coordinates%"
flyblockUsagePaused: "&6Flyblock usage paused"
flyblockUsageResumed: "&6Flyblock usage resumed"
alreadyResumed: "&6Flyblock was already resumed, nothing changed"
alreadyPaused: "&6Flyblock was already paused, use /flyblock resume to resume."
userAdded: "&6User %user% has been added"
# Each GUI name must be unique failing to do so will cause errors.
# Names like 'shop' or 'info' are BAD idea.
guiNames:
shopGUI: "Flyblock shop"
rightClickGUI: "Flyblock info"
usersGUI: "Flyblock users"
# Make sure there is always a value here for each key
# DO NOT use duplicate names for the same GUI.
# DISCLAIMER: Changing this while already using the plugin can prevent existing flyblocks from working and might cause errors.
guiItemNames:
# Flyblock info GUI (opened on right-click on a flyblock)
level: "&6Flyblock level: &7%level%"
duration: "&6Flyblock duration: &7%duration% &6minutes"
radius: "&6Flyblock range: &7%radius%"
users: "&6Users"
usersLore: "&5Click to see, add or remove users"
# User info GUI (opened when left-click on users inside flyblock info GUI)
availableSlot: "&eAvailable slot"
availableSlotLore: "&5Click to add a player"
notAvailableSlot: "&eSlot not available"
notAvailableSlotLore: "&5This slot is not available"
userLore1: "&5Left click to remove player"
userLore2: "&5Right click to transfer ownership to player"
# Color of users that are added to a Flyblock
# Only allowed to change chat color. DO NOT add anything else.
userChatColor: "&e"
##################################
######## MATERIAL SETTINGS #######
##################################
# Replace this with a valid material name.e
# Valid material names can be found here under "Enum Constant" name
# https://hub.spigotmc.org/javadocs/spigot/org/bukkit/Material.html
materials:
flyblock: "TARGET"
userMenuGuiAvailableSlot: "ZOMBIE_HEAD"
userMenuGuiNotAvailableSlot: "ZOMBIE_HEAD"
infoGuiUserMenu: "PLAYER_HEAD"
infoGuiLevel: "NETHER_STAR"
infoGuiRadius: "SPYGLASS"
infoGuiDuration: "COMPASS"
guiFiller: "CYAN_STAINED_GLASS_PANE"
guiGoBack: "SPECTRAL_ARROW"
# flyblock.shop : permission access to shop using /flyblock
# flyblock.buy<levelNum>: permission to buy specified level flyblock
# flyblock.place<levelNum>: permission to place specified level flyblock
# flyblock.breakOthersBlocks: permission to break other people their flyblock instead of only their own.
# flyblock.placeAll: permission to place all available flyblock levels
# flyblock.buyAll: permission to buy all available flyblock levels
# flyblock.noPay: able to bypass payment and get flyblocks for free
# flyblock.all : all permissions
# flyblock.clear: Access to use the /flyblock clear command
# flyblock.give: Permission to use the /flyblock give command
# flyblock.reload: Permission to use the /flyblock reload command to reload the plugin
# flyblock.pause: Permission to use /flyblock pause and /flyblock resume
Code (Text):
flyblock.shop : permission access to shop using /flyblock
flyblock.buy<levelNum>: permission to buy specified level flyblock
flyblock.place<levelNum>: permission to place specified level flyblock
flyblock.add<amountOfUsers>: grants the user permission to add amountOfUsers number of people to their Flyblock. Not needed if
addPermissionRequired is false inside the config.yml
flyblock.breakOthersBlocks: permission to break other people their flyblock instead of only their own.
flyblock.placeAll: permission to place all available flyblock levels
flyblock.buyAll: permission to buy all available flyblock levels
flyblock.noPay: able to bypass payment and get flyblocks for free
flyblock.all : all permissions
flyblock.clear: permission to use the /flyblock clear <player> command
flyblock.give: permission to use the /flyblock give <player> <level> command
flyblock.reload: permission to use the /flyblock reload command.
flyblock.pause: permission to use the /flyblock pause and /flyblock resume commands.
/flyblock [command type] <optional arguments> INFO: if no arguments are specified the shop will be opened.
Example: /<command> - opens the Flyblock shop (NO ARGUMENT GIVEN)
Example: /<command> shop - opens the Flyblock shop
Example: /<command> give <player> <level> - gives a Flyblock of the specified level to the player
Example: /<command> clear <player> - clears all flyblocks for the given player (
-1 or
all to remove for all players)
Example: /<command> locations - displays the coordinates of the players Flyblock(s)
Example: /<command> reload - reloads the flyblock plugin
Example: /<command> pause - pauses the placing and usage of flyblocks
Example: /<command> resume - resumes the placing and usage of flyblocks
Example: /<command> add <player> - adds the player to the closest flyblock
I am encoutering errors and or problems what can i do?
The best thing in this situation is to shut down your server and go in to the flyblock folder and delete the fbdate.yml & flyblocks.yml. Then start the server back up and see if it is fixed (this will remove any currently active Flyblocks)
I get a 'an internal error ...' when trying to execute the /flyblock command 2.13 introduced a stricter config validation meaning the config must be set up properly in order for the plugin to run.
Please make sure you update your config using the latest version found on the plugin page.
When config validation fails the plugin will be disabled. Any calls to the /flyblock command will result in an internal error.
I encountered a configuration warning The warnings are usually pretty straight forward. Yet if might me useful compare your config file with the default one provided above.
Why doesn't Flyblock charge me any money? If you happen to run in this problem it could be one of the following things.
* You have the flyblock.all or flyblock.noPay permission.
Is the area of the flyblock a square, circle or sphere? Depending on whether or not you have the height setting enabled the area will either be a square or cube, if a flyblock has a range of 20 it means it goes 20 in each direction as seen below.
I run paper 1.18.1-xxx where xxx is lower then 219 (latest) Please update your paper to the latest version for 1.18.1, download links can be found here
Other problems In case you don't find you're problem listed here you can try the following to see if it resolves your issue.
Warning: this option removes any currently placed down Flyblocks!
1. Shut down your server 2. Go in to plugins/flyblock 3. Delete the folder 4. Start up your server
Nothing works what now? Contact me on discord by joining my server using the link provided below or messaging me directly (Erikv#4924)
I aim to respond withing 24 hours and resolve the problem within 48-72 hours depending on the nature of the problem and timing.
Always feel free to send me a message either here or on discord for any questions or problems. (anything basically)
If you happen to enjoy this plugin a rating would be greatly appreciated as it helps me. If you have any problems or complaints please contact me either on Spigot orDiscord. https://discord.gg/PwE5ZXZshh
Please contact me before leaving a complaint, most problems can be resolved fairly easily and quick.