PrisonMines

SpigotMC Plugin PrisonMines 3.1

You must be signed in and/or upgrade to VIP to download this resource
Tested Minecraft Versions:
1.7, 1.8, 1.9, 1.10, 1.11, 1.12


PrisonMines is the most professional way to manage your mines. It is mainly controlled by a GUI-Based control panel.

This is the most efficient Prison Mine plugin there is. Why? This is because there is a 'Gradual' reset type - this makes it so the blocks are spawned with a delay upon reset; which takes the struggle off of your CPU when resetting.​



  • Schematics
  • Timed Reset
  • Percentage Reset
  • Gradual Reset Type
  • Mine Reset Lite Converter
  • Mine Effects
  • Holograms & Signs
  • Configurable & Optional Reset Messages
  • Efficient
  • Spigot Version Proof
  • GUI Based
  • 100% Configurable (Even GUIs)














  • /Mine Create <Name> - Create a mine
  • /Mine Remove <Name> - Remove a mine
  • /Mine Panel <Name> - View the control panel of a mine
  • /Mine List - View all mines in a GUI
  • /Mine SetRegion <Name> - Set the region of a mine to your WorldEdit selection
  • /Mine SetTP <Name> - Set the mine teleport point to your current location (where players get teleported to during a reset)
  • /Mine Teleport <Name> - Teleport to a mine
  • /Mine Reset <Name> - Reset a mine or every mine
  • /Mine Info - Shows you the list of mine(s) you're inside
  • /Mine Reload - Reload the configs
  • /Mine AddBlock <name> <block:data> <chance> - Add a block to a mine without the GUI
  • /Mine RemoveBlock <name> <block:data> - Remove a block from a mine without the GUI
  • /Mine SetResetInterval <Name> <Seconds> - Set the reset interval in seconds of a mine
  • /Mine SetResetPercentage <Name> <Percentage> - Set the blocks left % to reset at
  • /Mine RemoveHologram - Remove the nearest hologram to you
  • /Convert MRL - Convert the mines from MineResetLite to PrisonMines



  • mine.* - Grant every PrisonMines permission to the user
  • mine.command.create - Grant pemission so user can create mines
  • mine.command.remove - Grant permission so user can remove mines
  • mine.command.panel - Grant permission so user can view a mine panel
  • mine.command.list - Grant permission so user can list mines
  • mine.command.setregion - Grant permission so user can set the region of mines
  • mine.command.settp - Grant permission so user can set the TP Point of a mine
  • mine.command.tp - Grant permission so user can teleport to the TP point of a mine
  • mine.command.info - Grant permission so user can view which mines they're inside
  • mine.command.reset.<*/name> - Grant permission so user can reset a mine using the command. '*' will allow for any mine to be reset. The name must have spaces replaced with a '_' so for example: 'mine.command.reset.mine_a' would be for 'mine a'.
  • mine.command.reload - Grant permission so user can reload the PrisonMines plugin using the command
  • mine.command.addblock - Grant permission so user can add a block to a mine using the command
  • mine.command.removeblock - Grant permission so user can remove a block from a mine using the command
  • mine.command.setresetinterval - Grant permission so user can set the reset interval of a / all mines
  • mine.command.setresetpercentage- Grant permission so user can set the percentage left of blocks to reset at of a / all mines
  • mine.command.convert - Grant permission so user can convert mines from other mine plugins
  • mine.command.removehologram - Grant permission so user can remove the nearest hologram
  • mine.sign.place - Grant permission so user can place mine signs
  • mine.sign.break - Grant permission so user can break mine signs
  • mine.hologram.place - Grant permission so user can place holograms
  • mine.block.place.bypass - Grant permission so user can bypass the no block placing rule you can define for your mine in the Block Manager



To create a sign:
  • /Mine Panel <Mine Name>
  • Click on the Signs / Holograms button
  • Click the Sign you want to create (You will then receive an item)
  • Place the item you received on the floor, a sign will appear there
Signs auto-update
This can be configured how often. (In the config.yml)

Signs can also be configured how they look in the config.yml
Look below for an example.

Signs have placeholders
These placeholders are applicable within the config.yml for the sign values

%NAME% - The name of the mine the sign belongs to
%MINED% - How many blocks have been mined
%PMINED% - The percentage of blocks that have been mined
%PLEFT% - The percentage of blocks that are left
%RESTIME% - The seconds left until the mine will reset (Eg 300 = 5 minutes, 5 seconds)
%RESTIMEM% - The minutes left until the mine will reset (Eg: 5.12 = 5 minutes, 5 seconds)
%RESTIMEF% - The formatted time until the mine will reset (Eg: 5:05 = 5 minutes, 5 seconds)




To create a hologram:
  • /Mine Panel <Mine Name>
  • Click on the Signs / Holograms button
  • Click the Hologram you want to create (You will then receive an item)
  • Place the item you received on the floor, a hologram will appear there
Holograms auto-update
This can be configured how often. (In the config.yml)

Holograms can also be configured how they look in the config.yml
Look below for an example.

Holograms have placeholders
These placeholders are applicable within the config.yml for the holograms values

%NAME% - The name of the mine the hologram belongs to
%MINED% - How many blocks have been mined
%PMINED% - The percentage of blocks that have been mined
%PLEFT% - The percentage of blocks that are left
%RESTIME% - The seconds left until the mine will reset (Eg 300 = 5 minutes, 5 seconds)
%RESTIMEM% - The minutes left until the mine will reset (Eg: 5.12 = 5 minutes, 5 seconds)
%RESTIMEF% - The formatted time until the mine will reset (Eg: 5:05 = 5 minutes, 5 seconds)


Simply use this to get the API instance:
Code:
PrisonMines.getAPI()
/**
* Get every stored {@link Mine}.
*
* @return a Collection of {@link Mine}s in use by PrisonMines
*/
Collection<Mine> getMines();

/**
* Get a {@link Mine} object by its name.
*
* @param name the name of the {@link Mine}
* @return the found {@link Mine}
*/
Mine getByName(String name);

/**
* Get a {@link Mine} object by a {@link Location} inside of it.
*
* @param location the location to search for
* @return a {@link Mine} with the specified {@link Location} inside it
*/
Mine getByLocation(Location location);

/**
* Whether the {@link Mine} resets over intervals of time.
*
* @param mine the {@link Mine}
* @return if it's subject to timed resets
*/
boolean hasTimedReset(Mine mine);

/**
* Get the seconds delay between {@link Mine} resets.
* <p>
* -1 is returned if {@link TimedReset#isEnabled()} is false.
*
* @param mine the {@link Mine}
* @return the delay in seconds
*/
int getResetDelay(Mine mine);

/**
* Get the seconds until the {@link Mine} will next reset.
*
* @param mine the {@link Mine}
* @return the seconds until the {@link Mine} resets
*/
int getTimeUntilReset(Mine mine);

/**
* Whether the {@link Mine} resets when a {@link Mine} is
* depleted of a percentage.
*
* @param mine the {@link Mine}
* @return if it's subject to percentage resets
*/
abstract boolean hasPercentageReset(Mine mine);

/**
* Get the total recorded amount of blocks mined inside the
* {@link Mine}.
* <p>
* -1 is returned if {@link PercentageReset#isEnabled()} is false.
*
* @param mine the {@link Mine}
* @return total recored blocks mined
*/
int getBlocksMined(Mine mine);

/**
* Get the percentage of blocks mined by using the {@link #getBlocksMined(Mine)}
* and the volume of the {@link Mine}.
* <p>
* -1 is returned if {@link PercentageReset#isEnabled()} is false.
*
* @param mine the {@link Mine}
* @return percentage of blocks mined
*/
double getPercentMined(Mine mine);

/**
* Get the percentage of blocks left inside the Mine by performing
* 100 - {@link #getPercentMined(Mine)}.
* <p>
* -1 is returned if {@link PercentageReset#isEnabled()} is false.
*
* @param mine the {@link Mine}
* @return percentage of blocks left
*/
double getPercentLeft(Mine mine);

/**
* Simulate a block break within the mine for the percentage of blocks
* mined to be logged correctly. This will simply increment the logged
* blocks mined counter by 1.
* <p>
* This is to use if you are modifying the blocks within a {@link Mine},
* if you break a block call this or {@link #onBlockBreak(int)} to specify
* the amount of blocks broken (more efficient).
*
* @deprecated use {@link #onBlockBreak(int)}, more efficient than multiple
* calls of this method.
*/
@Deprecated
void onBlockBreak(Mine mine);

/**
* Simulate block breakage within the mine for the percentage of blocks
* mined to be logged correctly.This will simply increment the logged
* blocks mined counter by the specified amount.
* <p>
* This is to use if you are modifying the blocks within a {@link Mine},
* if you break a block call this or {@link #onBlockBreak()}, however
* this method is recommended).
*/
void onBlockBreak(Mine mine, int amount);
MinePreResetEvent - Called just before the Mine resets. Implements Cancellable
MinePostResetEvent - Called just after the Mine resets.


config.yml
guiconfig.yml
messages.yml



I have an issue / suggestion
PM me privately, I will reply as quick as possible.

What are the dependencies?
Required:
  • WorldEdit
Some Optional Dependencies:
How do I set a mine region?
You would use a wooden axe to select the region with WorldEdit, then use the setregion command to set the actual region.

How can I increase the performance of PrisonMines?
If you're having performance issues you can try one of the following:
  • Reduce the maximum number of rests at a given time in the config.yml
  • Use Gradual Resets
  • Use Smaller Regions
  • Percentage Resets instead of Timed Resets
  • Longer Timed Resets intervals
  • If using MineEffects, try Mines without them; this could increase performance
How do connected (child/parent) mines work?
All this does is makes it so that when the parent (the owner of the children) resets, the others will too. There is no inheritance of settings, it is simply when the parent resets the children will too.

A mine can be a child of several parents, however the following situation can never happen:
  • A is the parent of B
  • B is the parent of A
The reason for this is: if A reset, B would reset, which would cause A to reset, in a continuous loop until the server crashed. However the plugin will stop you from causing potential crashes.
Author
Admin
Downloads
8
Views
213
First release
Last update
Rating
0.00 star(s) 0 ratings

More resources from Admin

Share this resource