McMines is a highly customizable complex prison mine generator plugin. It contains amazing and high-tech features such as Timed Resets, Percent Resets, Holograms, and more. Without a big clunky confusing GUI, this plugin gets straight to the point. With one of the most customizable configurations on the market, this plugin will be truly unique for your server. The possibilities are endless.
With a highly active plugin author, whether its new features, bug fixes, or something else, the plugin will be staying active! McMines is one of the strongest prison mine generator plugins currently on the market!
Features
# Message Key # < > = Mandatory, must use at least one option # [ ] = Mandatory, must enter some custom input # ( ) = Optional, may or may not enter some input # { } = Placeholder
# Description # message: "value" # {placeholder} - definition messages: #Prefix of every message prefix: "&aMcMines &7| &r"
#When the command sender doesn't have the required permission command-no-permission: "&cYou have no permission to do this."
#When the player doesnt permission to interact with the mine interact-no-permission: "&cYou don't have permission to interact with Mine &4{mine_name}&c."
#Called when player tries to create duplicate mine mine-already-exists: "&4&lERROR &cMine &4{mine_name} &calready exists."
#Called when player tries to create duplicate hologram hologram-already-exists: "&4&lERROR &cHologram &4{holo_name} &calready exists."
#When hologram is not found hologram-not-found: "&6&lWARNING &eCannot find hologram &c{holo_name}&e."
#When hologram is not found hologram-line-not-found: "&6&lWARNING &eCannot find hologram line &c#{holo_line_number}&e."
#When player tries to reference a material that isnt valid or isnt a block material-not-found: "&6&lWARNING &6{material}&e is not a valid block."
#When mine referenced was not found mine-not-found: "&6&lWARNING &eCannot find mine &c{mine_name}&e."
#When player tries to remove a block thats not in the mine block-in-mine-not-found: "&6&lWARNING &eMine &6{mine_name} &edoes not contain &6{material}&e."
#Sent to console if command requires player must-be-player: "&cYou must be a player to do this."
#Sent to player if command requires console must-be-console: "&cYou must be the console to do this."
#Sent when mine is created with a name longer than one word name-too-long: "&4&lERROR &cThe name &4{mine_name} &cis too long."
#Sent when command is incorrectly entered mine-command-usage: "&4&lUSAGE &c/mine [create, delete, rename, add, remove, reset, version, reload, option, warp]"
#Sent when command is finished executing mine-create-command-completed: "&fCreated the mine &e{mine_name}&f."
#Sent when command is incorrectly entered mine-create-command-usage: "&4&lUSAGE &c/mine create [Name]"
#Sent when command is finished executing mine-delete-command-completed: "&fDeleted the mine &e{mine_name}&f."
#Sent when command is incorrectly entered mine-delete-command-usage: "&4&lUSAGE &c/mine delete [Name]"
#Sent when command is finished executing mine-rename-command-completed: "&fRenamed the mine &e{mine_old_name}&f to &e{mine_name}&f."
#Sent when command is incorrectly entered mine-rename-command-usage: "&4&lUSAGE &c/mine rename [Old Name] [New Name]"
#Sent when command is finished executing mine-add-command-completed: "&fAdded &e{material}&f the mine &e{mine_name}&f, with a &e{chance}%&f chance."
#Sent when command is incorrectly entered mine-add-command-usage: "&4&lUSAGE &c/mine add [Name] [Material] [Chance]"
#Sent when command is finished executing mine-remove-command-completed: "&fRemoved &e{material}&f from the mine &e{mine_name}&f."
#Sent when command is incorrectly entered mine-remove-command-usage: "&4&lUSAGE &c/mine remove [Name] [Material]"
#Sent when command is finished executing mine-reset-command-completed: "&fReset mine &e{mine_name}&f."
#Sent when command is incorrectly entered mine-reset-command-usage: "&4&lUSAGE &c/mine reset [Name]"
#Sent when command is finished executing mine-option-command-completed: "&fSet &e{option}&f for mine &e{mine_name}&f to &e{value}&f."
#Sent when command is incorrectly entered mine-option-command-usage: "&4&lUSAGE &c/mine option [Name] [Option] [Value]"
#Sent when command is incorrectly entered mine-warp-command-usage: "&4&lUSAGE &c/mine warp [Name]"
#Sent when command is finished executing mine-warp-command-completed: "&fYou have been teleported to mine &e{mine_name}&f."
#Sent when command is incorrectly entered mine-info-command-usage: "&4&lUSAGE &c/mine info [Name]"
#Sent when command is finished executing mine-info-command-completed: "&b&lINFO &eMine {mine_name}&f: \n&7 - Percent Mined: &e{percent_mined} \n&7 - Next Reset: &e{next_reset} \n&7 - Last Reset: &e{last_reset} &7\n - Children: &e{children}"
#Sent when command is incorrectly entered mine-version-command-usage: "&4&lUSAGE &c/mine version"
#Sent when command is incorrectly entered mine-reload-command-usage: "&4&lUSAGE &c/mine reload"
#Sent when command is finished executing mine-reload-command-completed: "&aPlugin has been reloaded."
#Sent when command is incorrectly entered mine-hologram-command-usage: "&4&lUSAGE &c/mine hologram [Name] [Create, Remove, Teleport, Edit]"
#Sent when command is incorrectly entered mine-hologram-create-command-usage: "&4&lUSAGE &c/mine hologram [Name] create [Name]"
#Sent when command is finished executing mine-hologram-create-command-completed: "&fHologram &e{holo_name}&f has been added to the mine &e{mine_name}&f. Edit with: &6/mine hologram {mine_name} addline {holo_name} {line}&f."
#Sent when command is incorrectly entered mine-hologram-delete-command-usage: "&4&lUSAGE &c/mine hologram [Name] delete [Name]"
#Sent when command is finished executing mine-hologram-delete-command-completed: "&fHologram &e{holo_name}&f has been removed from the mine &e{mine_name}&f"
#Sent when command is incorrectly entered mine-hologram-addline-command-usage: "&4&lUSAGE &c/mine hologram [Name] addline [Name] [Line]"
#Sent when command is finished executing mine-hologram-addline-command-completed: "&fThe line &e{holo_line}&f has been added to the hologram &e{holo_name}&f."
#Sent when command is incorrectly entered mine-hologram-setline-command-usage: "&4&lUSAGE &c/mine hologram [Name] setline [Name] [Line#] [Line]"
#Sent when command is finished executing mine-hologram-setline-command-completed: "&fLine has been set to &e{holo_line}&f for hologram &e{holo_name}&f."
#Sent when command is incorrectly entered mine-hologram-teleport-command-usage: "&4&lUSAGE &c/mine hologram [Name] teleport [Name]"
#Sent when command is finished executing mine-hologram-teleport-command-completed: "&fTeleported the hologram &e{holo_name}&f to your location."
#Sent when player is in mine creation mode mine-creation-mode-enabled: "&b&LINFO &fMine creation mode has been &aenabled&f."
#Sent when player leaves mine creation mode mine-creation-mode-disabled: "&b&LINFO &fMine creation mode has been &cdisabled&f."
#Sent when player selects a mine location mine-creation-set-location: "&b&LINFO &fMine &e{mine_name}&f's {location_type} has been set to &eX: {x}, Y: {y}, Z: {z}&f."
#Sent when player tries to save the locations set, but they didn't set them all. mine-creation-not-enough-locations: "&4&LERROR &cYou did not set all three locations for the mine." mine:
item: CARROT_ON_A_STICK
Developer API
First Steps
To add the plugin to your code, you must add it by jar. There currently is not a maven repository (coming soon). Once you have added the jar file, you must edit your plugin.yml to include depend: [McMines] or softdepend: [McMines] depending if the hook is optional or not.
Usage
To begin with the API, first declare the api object, McMinesAPI mineAPI = new McMinesAPI((McMines) getServer().getPluginManager().getPlugin("McMines"); Now you can view all the available functions by looking at the autocomplete with minesAPI.(usage).
Events
McMines throws a few custom events,
MineBlockBreakEvent - Thrown when a block inside a mine has been broken
MineResetEvent - Thrown when a mine has been reset
MineCreateEvent - Thrown when a mine has been created
World Guard Setup
It is highly recommended to have
World Guard installed on your server. If you do not have it installed, please continue to
First Steps.
Begin by accessing the region wand, from
World Edit by typing //wand To make it so players can't break through the walls of your mine, you will want to select the "container" of your mine. This is the exterior of your mine that will be holding all the blocks.
Figure 1 - Container of Mine
Once your region is selected, you will want to define it as such, /region define [mine_name]_exterior (e.g. "A_exterior") This creates a region around our mine that is protected from players being able to break your mine & mine container. Next, select the interior of the container, where the blocks would go, using the same wand. Once your region is selected, you will want to define it as such, /region define [min ename] (e.g. "A") This creates a region in our mind, that we can allow players to interact with. To allow players to break blocks inside our mine, we first need to add the correct flag using /region flag [mine name] block-break allow. This flag allows the player to be able to break blocks in our mine. Finally, give the player the required permission to interact with the mine mcmine.interact.[mine name] (e.g. "mcmine.interact.A"). You now have your basic mine setup!
First Steps
To begin creating your mine, make sure your main hand is empty. Start with the command /mine create [mine name] (e.g. "/mine create A"). Mine names must not contain any spaces. Once this command has been executed, you will receive an item in your hand called the "Mine Creation Tool". Begin by left clicking on the first corner of where your mine will be (inclusive). Then, right click on the other corner of where your mine will be (inclusive). While holding shift, left click on the block you want the players to warp to. Finally, while holding shift, right click and you will exit creation mode. If you get an error, you must have done something wrong.
Adding Blocks
When your mine first starts out, it will be with 100% stone blocks. To change this, you will first want to remove all the stone using the command /mine remove [mine name] STONE. Once your stone is removed, you can add any block in the game to your mine using this command /mine add [mine name] [material] [chance] (e.g. "/mine add A DIAMOND_ORE 10.50"). Chances can be any number from 0 to near infinity, and with a few decimal places of precision. All block chances do not need to total to 100%, but they are weighted, so the higher the chance, the higher the block count of that type will be.
Editing Mine's Options
Each mine comes with some default options that you may want changed. To do this, the base command /mine option [mine name] [option] [value] must be used. For example, say we want the mine to reset every hour. This is an option that comes with each mine. To enable this option we first must use the following command /mine option [mine name] Reset-Timer true. This enables the mine reset timer option. Now we can edit the frequency of the resets by using the command /mine option [mine name] Reset-Delay 00:00:01:00:00. Lets break this one down. The first set of zeros is the weekly frequency, or how many weeks to wait for each reset. The next set of zeros is the daily frequency, or how many days to wait for each reset, the same rules apply to the next "01" as hours, then minutes, and then seconds. These numbers can be set to anything. With this being set, the mine will now reset every hour. Each option available to you is listed in the tab-completer. See Figure 2 Each value for each option is also previewed in the tab-completer.
Figure 2 - Tab Completer
If we wanted the mine to reset when 75% of the mine has been mined, when can enable this option by using the command /mine option [mine name] Reset-When-%-Empty 75, or, if you only want a timed reset, you can just disable this feature by doing the command /mine option [mine name] Reset-When-%-Empty 0.
Each mine also supports "children" or "submines". To attach a child mine to your mine, you will need to execute the command /mine option [mine name] child [child mine name]. This will then set that mine as a child. A child mine simply resets when the parent mine resets.
Adding Holograms
If you are using
HolographicDisplays, you will have access to using holograms. We first need to enable them using commands. /mine option [mine name] holograms-enabled true. This enables the hologram option. Next we can add our first hologram. We can create a hologram using the command /mine hologram [mine name] [hologram name]. Hologram names must not contain spaces. This will create an empty hologram at our location. Don't worry too much about the location now, as we can change that later! Now, lets add a line to our hologram using /mine hologram [mine name] addline [hologram name] [line]. The value of [line] can be anything you would like. It even can contain some placeholders! See
Using Hologram Placeholders to use those. If for whatever reason you want to edit the line you just made, use the command /mine hologram [mine name] setline [hologram name] [line#] [line]. The line numbers start at 0 and go from the top down. To remove a line from your hologram, we actually just use the same command, but in a different way. /mine hologram [mine name] setline [hologram name] [line#] null. Using the "null" keyword acts as a delete button. Finally to delete a hologram, just use the command /mine holograms [mine name] delete [hologram name].
Hologram Placeholders
This is a little bit of a tricky area, so try to stay with me. For each hologram, you can add as my placeholders as you want. Unlike other placeholders, each hologram placeholder is unique and has its mine name attached to it.
Here are the list of placeholders
General
{mine_name} - Mine's name
Specific
Replace MINENAME with the name of your mine (case-sensitive) You can also use {mine_name} as a nested placeholder (e.g. "{block_count_{mine_name}}")
{block_count_MINENAME} - Total blocks, when full, in mine
{holo_name_MINENAME} - Name of mine
{last_reset_MINENAME} - The date of the mines last reset
{mine_percent_empty_MINENAME} - The percent of the mine that has been mined
{next_reset_date_MINENAME} - The date of the next reset
{next_reset_time_MINENAME} - The next reset date broken down into its components (x Weeks x Days x Hours x Minutes x Seconds)
{blocks_mined_MINENAME} - The amount of blocks that have been mined
{blocks_left_MINENAME} - The amount of blocks that have yet to be mined
{progress_bar_MINENAME} - A progress bar made up of 25 points, each representing ~ 4%
Figure 3 - Progress Bar
For support, please use only resource discussion
Terms of Service By using this plugin, you agree to the following terms, which may be updated by the author at any time.
All payments are final and non-refundable.
Redistribution or resale of this plugin is prohibited.
You are not permitted to modify, decompile, or extract any part of the plugin's source code.
Support is provided exclusively to legitimate customers. We cannot offer support for plugins obtained through unauthorized or illegal means.