Resource image

MCMines [1.8-1.17.1]

2.0

Highly Customizable Prison Mine Generator

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

  • Highly Customizable Configuration File
  • Reset Prisons Based on Mine Percent Left
  • Reset Prisons Based on Timer
  • Multiple Easy-to-Use Mine Holograms
  • Add Blocks to Mine with Decimal Precision
  • Custom Placeholders, Including Progress Bar
  • Edit Mines via Commands
  • Edit Mines via Files
  • Many Permissions
  • Many Commands
  • Teleport Player on Reset
  • Notify Player on Reset (with Radius)
  • Developer API
  • Support for HolographicDisplays
  • Highly Active Author
  • Mine Regions (coming soon)

Dependencies

HolographicDisplays (Optional)
[World Guard & World Edit] (Optional)

Commands & Permissions

  • /mine
  • mcmine.command.mine.*
  • /mine create [name]
  • mcmine.command.mine.create
  • /mine delete [name]
  • mcmine.command.mine.delete
  • /mine add [name] [material] [chance]
  • mcmine.command.mine.add
  • /mine remove [name] [material]
  • mcmine.command.mine.remove
  • /mine rename [old name] [new name]
  • mcmine.command.mine.rename
  • /mine reset [name]
  • mcmine.command.mine.reset
  • /mine option [name] [option] [value]
  • mcmine.command.mine.option
  • /mine warp [name]
  • mcmine.command.warp.MINENAME
  • mcmine.command.warp.*
  • /mine reload
  • mcmine.command.mine.reload
  • /mine version
  • mcmine.command.mine.version
  • /mine info [name]
  • mcmine.command.mine.info
  • /mine hologram [name] [hologram] [command] [value]
  • mcmine.command.mine.hologram
  •  
  • mcmine.interact.MINENAME
  • mcmine.interact.*

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. See Figure 1

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% See Figure 3.

Figure 3 - Progress Bar

Each placeholder will update roughly every second.

#+-------------------------------------+
#| |
#| McMines |
#| A_Brave_Panda |
#| |
#+-------------------------------------+
#
#
#+------------------------------+
#| |
#| Messages |
#| |
#+------------------------------+

# 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


Terms of Service (you agree to, by buying/downloading this plugin):

  • You are responsible what happens with the plugin after you download, therefore, if plugin is leaked or redistributed and it's registered under your name, I am allowed to remove you from buyers list without a warning. I may be obligated to report you on SpigotMC, which might lead to your account being permanently suspended (banned).
  • You may not redistribute plugin, in any shape or form neither it's code or parts of it.
  • You may ask me for support if plugin doesn't function the way it's supposed to.
  • No refunds, all payments are final as by buying you gain access to this resource without ability to stop it.
More information about the plugin is provided in configuration files

(you will have to go through buyer verification process before getting accepted for support, if you don't have access to "Download" button here don't even bother joining and begging for help or bothering users via PM)
Information
Author chochoco4777
Total downloads 1
First Release 08 Oct. 2021
Last Update 08 Oct. 2021
Category Mechanics
All-time rating
Version 2.0
Released 08 Oct. 2021
Downloads 1
Version rating
0 ratings
More resources from chochoco4777
Resource logo

New generation of monsters and effects items.

Resource logo

Arcade and PvP minigame that your players will love!

Resource logo

Let your players release their creativity in this amazing minigame!

Resource logo

Another alternative for players to earn money

Resource logo

The best auth system for your server or network [1.8-1.17.1]