Compatibility
Minecraft: Java Edition
26.2
26.1.x
1.21.x
1.20.x
1.19.x
1.18.x
1.17.x
1.16.x
1.15.2
1.15
1.14.x
1.13.x
Platforms
Tags
Creators
Details
Licensed MIT
Published 4 days ago
Labyrinth

It's a plugin that allows you to create an inifnity pattern of a labyrinth for add a challenge in your server! Designed for a Vanilla but usable in all modalities (Prison, Factions, Vanilla, Survival, Towny...), it is also configurable in many ways such as the material ground or wall, the regeneration of labyrinth with one command and so on!
⚡️Features⚡️
- Possibility to create infinity Labyrinth
- Possibility to set the height of Labyrinth
- Possibility to set the wall space of Labyrinth
- Possibility to modify the materials with a command
- Possibility to regenerate a labyrinth with a command
- Possibility to control if Labyrinth is solvable
- Possibility to add infinity start locations of a specific Labyrinth
- Possibility to add infinity chest of a specific Labyrinth
- Possibility to remove chest of a Labyrinth
- Possibility to remove start locations of a Labyrinth
- Possibility to configure all messages
- RGB Color support
- No Dependency
⚡️Commands⚡️
- lab <create> <name> <x> <y> <height> <wallSpace> for create a labyrinth
- lab <help> for help commands
- lab <list> for list of all labyrinths
- lab <modify> <name> <wallMaterial|groundMaterial|regenerate> [material1.percentage,material2.percentage,...]
- lab <reload> for reload plugin configurations
- lab <remove> <name> [chest|start|end] [{number}] to remove a labyrinth or its chest/start/end locations
- lab <resolve> <name> for try resolve a labyrinth from start to end
- lab <schematic> <name> for create a schematic of a labyrinth
- lab <start> <name> [[random] | [number]] for list of start locations, for tp at random start location and for tp at specific start location
- lab <set> <end|start|chest> <name> add a end, start or chest location for the labyrinth
- lab <wall> <add|remove> for add or remove a wall in the labyrinth

⚡️Permissions⚡️
- labyrinth.create.command
- labyrinth.help.command
- labyrinth.list.command
- labyrinth.modify.command
- labyrinth.reload.command
- labyrinth.remove.command
- labyrinth.resolve.command
- labyrinth.schematic.command
- labyrinth.start.command
- labyrinth.set.command
- labyrinth.wall.command
⚡️bStats⚡️
⚡️Config⚡️
config.yml
# # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #
# #
# Labyrinth #
# Created by eliotesta98 & xSavior_of_God #
# #
# # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #
Configuration:
# Set whether various plugins should be hooked into (i will also check if is enabled).
Hooks:
WorldEdit: false
# Show in console the dimension of Labyrinth
ShowDimensionInConsole: true
# Choose the wall material of all labyrinth
# If you want more materials at the same time
# just add another section with material name and the percentage
# Example:
# STONE: 50
# WOOD: 50
# P.S. The percentage must be between 0 and 100 and the sum of all percentages must be 100!
WallMaterials:
STONE: 100
# Choose the ground material of all labyrinth
# If you want more materials at the same time
# just add another section with material name and the percentage
# Example:
# GRASS_BLOCK: 50
# WOOD: 50
# P.S. The percentage must be between 0 and 100 and the sum of all percentages must be 100!
GroundMaterials:
GRASS_BLOCK: 100
# Choose the end location material of all labyrinth
EndLocationMaterial: STONE_PRESSURE_PLATE
# Choose the resolve material for algorithm
ResolveMaterial: GOLD_BLOCK
# Backup Time of Labyrinths in minutes
BackupTimer: 1
# Show backup in console
ShowBackupInConsole: true
# Velocity of block place at creation in milliseconds. ATTENTION! if you cannot want tps down set at >= 10
VelocityPlace: 10
Chests:
Enabled: false
# Number of chests randomized in the labyrinth
# P.S. if the labyrinth cannot generate the number of chests you want, it will generate the maximum possible
Number: 10
# The loot tables of the chests
# P.S. The percentage must be between 0 and 100 and the sum of all percentages must be 100!
# Example:
# ANCIENT_CITY: 90
# CREEPER: 10
# You can found the list of loot tables at this url:
# https://hub.spigotmc.org/javadocs/spigot/org/bukkit/loot/LootTables.html
LootTables:
ANCIENT_CITY: 50
CREEPER: 50
# Reward
Reward:
Enabled: false
Actions:
- "give %player% STONE 1"
- "tp %player% 0 0 0"
# you can use a different coloring by using a hexadecimal. for all messages Ex. &{#FFFF00}(yellow).
# Example for a command: '/labyrinth &{#FFFF00}<reload>&{#000000} command reload Labyrinth plugin'
Messages:
Prefix: '&eLabyrinth &r'
Commands:
Footer: '&7(&7&l(&c&l!&7&l)&7) &9[] optional value, <> required'
Create: ' &e/labyrinth &6<create> <name> <width> <length> <height> <wallSpace> &7for create a labyrinth'
Reload: ' &e/labyrinth &6<reload> &7for reload Labyrinth plugin'
Help: ' &e/labyrinth &6<help> &7for help commands'
Remove: ' &e/labyrinth &6<remove> <name> [chest|start|end] [{number}] &7to remove a labyrinth or its chest/start/end locations'
Modify: ' &e/labyrinth &6<modify> <name> <wallMaterial|groundMaterial|regenerate> [material1.percentage,material2.percentage,...] &7for modify materials and regenerate labyrinth'
Resolve: ' &e/labyrinth &6<resolve> <name> [{number}] &7this command try to resolve the labyrinth with name assigned and a selected start location'
Set: ' &e/labyrinth &6<set> <end|start|chest> <name> &7add a end, start or chest location for the labyrinth'
Start: ' &e/labyrinth &6<start> <name> [[random]|[{number}]] &7this command tp at selected start location'
List: ' &e/labyrinth &6<list> &7for list of all labyrinths'
Wall: ' &e/labyrinth &6<wall> <add|remove> &7for add or remove a wall in the labyrinth'
Schematic: ' &e/labyrinth &6<schematic> <name> &7for create a schematic of a labyrinth'
Restore: ' &e/labyrinth &6<restore> [file] &7Allows you to restore a H2Database from backup file or see the list of backup files'
Success:
Remove: '{prefix}&a&lLabyrinth successfully removed'
Solve: '{prefix}&a&lLabyrinth solvable'
RemoveStart: '{prefix}&a&lStart Location successfully removed'
RemoveEnd: '{prefix}&a&lEnd Location successfully removed'
WallAddedCorrectly: '{prefix}&a&lWall successfully added, if you want add a new wall please retype the command /lab <wall> <add>'
WallRemovedCorrectly: '{prefix}&a&lWall successfully removed, if you want remove a new wall please retype the command /lab <wall> <add>'
Schematic: '{prefix}&aSuccessfully created schematic in {path}'
Restored: '{prefix}&aSuccessfully restored database'
Lists:
Commands: '{prefix}&a&lLabyrinths: {list}'
StartLocations: '{prefix}&a&lLocations: {list}'
ChestLocations: '{prefix}&a&lLocations: {list}'
EndLocations: '{prefix}&a&lLocations: {list}'
Files: '{prefix}&7Files List:'
FilesLine: '&5File: {fileName}'
Warnings:
Regen: '{prefix}&e&lI can''t check the solubility of this Labyrinth, please regenerate it'
SetStartLocation: '{prefix}&e&lI can''t add this start location because the Labyrinth backup is not yet finished, attempt for saving...'
SetEndLocation: '{prefix}&e&lI can''t add this end location because the Labyrinth backup is not yet finished, attempt for saving...'
SetChestLocation: '{prefix}&e&lI can''t add this chest location because the Labyrinth backup is not yet finished, attempt for saving...'
SetWallLocation: '{prefix}&e&lI can''t add this wall location because the Labyrinth backup is not yet finished, attempt for saving...'
RemoveWallLocation: '{prefix}&e&lI can''t remove this wall location because the Labyrinth backup is not yet finished, attempt for saving...'
Errors:
LabWallSpace: '{prefix}&c&lHEY!&7 The space between the walls must be an even number!'
Height: '{prefix}&c&lHEY!&7 The height must be over 0!'
LabNotExist: '{prefix}&c&lHEY!&7 This labyrinth not exist!'
NotSolve: '{prefix}&c&lLabyrinth not solvable'
MaterialNotExist: '{prefix}&c&lHEY!&7 This material not exist!'
Percentage: '{prefix}&c&lHEY!&7 This is not a valid percentage!'
NoPlayer: '{prefix}&cYou are not a player'
CommandNotFound: '{prefix}&cCommand not found'
InsufficientPermission: '{prefix}&cInsufficient permission'
LabTooSmall: '{prefix}&c&lHEY!&7 This labyrinth is too small!'
LabAlreadyExist: '{prefix}&c&lHEY!&7 This labyrinth already exist!'
LocationChest: '{prefix}&c&lHEY!&7 This is not a labyrinth location!'
LastStartLocation: '{prefix}&c&lHEY!&7 You cannot remove the last start location!'
LastEndLocation: '{prefix}&c&lHEY!&7 You cannot remove the last end location!'
IncorrectLocation: '{prefix}&c&lHEY!&7 This is not a labyrinth location! Please retype the command /lab <wall> <add|remove>'
HooksDisabled: '{prefix}&cPlease enabled {hook} in config.yml!'
Schematic: '{prefix}&cThis schematic already exist!'
AddWall: '{prefix}&7Now you can place a block to create a wall at specific location'
RemoveWall: '{prefix}&7Now you can remove a wall with a click on a block at specific location'
Debug:
# Commands time execution
Commands: false
# Interface open time execution
InterfaceOpenExecution: false
# Enabled time execution
Enabled: false
# Disabled time execution
Disabled: false
If you want support or add a feature, don't hesitate to report it either on Discord or via SpigotMC.
- Thanks xSavior_of_God for helping me to realize one of my project.
- BIG THANKS goes to [USER=25629]@Ome_R[/USER] (https://www.mc-market.org/members/40228/) from BG-Softwarse who allowed us to use his class for handling configuration files <3
- This plugin uses HikariCP for H2 Database (https://github.com/brettwooldridge/HikariCP)


