RegenBlock

66.4k Downloads

Part of the Minds of Chimera Project (dev)

CodeBlocks | MOCPlaytimeTracker | MOCDBLib | RegenBlock | MOCGoodEats | MOC3DImporter | ImageImport | MOCKiosk | MOCRater | MOCFizziks | GravitySheep | MOCChemistry | MOCRegistry

MOC


RegenBlock allows a creation of regions within Minecraft worlds that have a certain re-spawn timer assigned to them. Once a block in the region is destroyed by a player or a new block is placed it will regenerate to the old state after the timer is up.

Example uses

Regeneration of natural resources in certain areas, resetting of region to an earlier state - in a tutorial area on my server, there is a broken bridge that has to be repaired by the player, but after the player does so the bridge would normally remain fixed for the next player that does the tutorial, with RegenBlock I am able to "regenerate" old broken bridge. Can be possibly used as anti-griefing to some degree, but it will only check events associated with played placing or destroying blocks, not tnt, lava fire etc.

Permissions

regenblock.self - all or nothing permission for the use of any commands

Commands

(all at op level)

Selection
/rb select (ex,ey,ez) - Starts/stops player's selection mode. ex/ey/ez will expand selection in that direction. Y is vertical.
/rb listselection - Lists player's current selection points.
Editor
/rb edit - Puts you into editor mode that allows you to change blocks in a region without triggering the re-spawn.
Info
/rb info - Print out information about the region in front of the character
/rb list - lists all regions
Global Blacklist
/rb blacklist add/remove (id id id ...) - adds/removes supplied block IDs. Blacklisted blocks will be ignored by the plugin and not regenerated.
Reload
/rb reload - Reloads the configuration file. Use this if you updated regions through config.yml and have to reload it.
Region management
/rb create (name) [re-spawn time] - Creates a region based on your selection from /rb select
/rb remove (name) - removes region from the list
/rb type [typeId] - sets region type, 0 for normal, 1 for mine. Mine will regenerate only upwards and with random blocks that you specify with /rb spawnblock
/rb sync [0/1/2/3] - sets region to regenerate all at once or not, 0 - normal operation, 1 - all blocks re-spawn at once based on first block broken, 2 - same as 1, but based on last block broken, 3 - blocks re-spawn in normal order, but shifted in time based on last block broken.
/rb modify (name) [re-spawn time] - modify existing region
/rb modify time (name) (re-spawn time) - modify existing region's re-spawn time
/rb alarm time/message/radius (name) (value)- changes the region's alarm settings. Alarm will go off before blocks are due for re-pop to warn players.
/rb rblacklist (name) add/remove (id id id ...) - adds/removes supplied block IDs for region. Blacklist blocks for a specific region.
/rb feedback (name) (type) - sets feedback type for the region. 0 - none, 1 - on place, 2 - on place/remove
/rb feedback set (string) - sets string sent to player during region feedback. Use TIME to show re-spawn time.
/rb spawnblock (name) - lists region's spawn blocks.
/rb spawnblock add (name) [id chance id chance...] - adds new blocks with spawn chance. Chances do not need to add up to 100.
/rb spawnblock remove (name) [id id id...] - removes blocks.
/rb repop (name) - Re-spawns all blocks in a given region

API

Method available directly from RegenBlock class.

public void regenBlock(Location location, Material material, byte data, Player player, Boolean isBreakEvent)
location - block's location
material - what material block should be set to once restored
data - data value for the restored block
player - player that broke/placed the block
isBreakEvent - test if this is a BlockBreak of BlockPlace event.