MergedSpawner (mcMMO/SilkSpawner/TokenEnchant/etc support included!)

ULTRA MergedSpawner (mcMMO/SilkSpawner/TokenEnchant/etc support included!) 8.4.2

NOTICE: If you have stacked mobspawners created by pre v4.0.0 MergedSpawner plugin, they will automatically updated to the newer merged spawners when one of the following happens:
  • add/remove a spawner,
  • mobs are spawned from the old merged spawner.
Since there is not any mobspawner merge plugin which does what I wanted, I made this...

How it works:
You first place a mob spawner, then you hit the placed mob spawner with another one (of the same kind). The new one will not be placed (on/under/next to), but merged. If you "break" the merged mob spawner, the count of the merged spawner will be decremented.

This plugin does not have mob stacking function. All spawned mobs are regular vanilla mobs. Ofc, this plugin works fine with plugin like MergedMob as shown in the video below.

NOTE: The mob stacking in the video is done by MergedMob plugin. The information display header says "MergedMob" but it was my typo.

This plugin allows you to virtually stack mobspawner block of the same EntityType. By using this merged mobspawner, you will significantly reduce the space required to build your mob grinders. When mobs are spawned from the merged spawner, the number of spawned mob will be multiplied according to the number of merged spawners.

If plugins like MergedMob, SilkSpawners, this plugin will work with those plugins. This plugin may not be work with some plugins, which carelessly hijacks events and not allowing other plugins to process those hijacked events.

Commands: (alias: mspawner)
  • /mergedspawner | /mergedspawner help : displays the help menu
  • /mergedspawner reload : reloads the configuration file.
  • /mergedspawner info : displays the information on the spawner you're looking at.
  • /mergedspawner clean : (in case the plugin malfunction and left orphant markers on the map) cleans out all the orphant markers on the map.
  • /mergedspawner give <player> <mobtype> <amount> : gives <player> <amount> spawner of type <mobtype>.
  • /mergedspawner set <mobtype> [amount] : changes the mob type of the spawner you're looking at to <mobtype> and set the stacked size to [amount].
Permission Node:
  • mergedspawner.reload : allows you to reload the config file.
  • mergedspawner.clean : allows you to execute "clean" command.
  • mergedspawner.give : allows you to use "give" command.
  • mergedspawner.set : allows you to use "set" command.
Installation:
You just install MergedSpawner.jar into "plugins" folder.

Configuration:
Messages:
ErrorMsg : "&c[MergedSpawner] : Some error occured."
OrphanRemoved : "&a[MergedSpawner] : an orphan marker removed."
OrphanRemoveComplete : "&a[MergedSpawner] : Orphan marker removal completed."
MaxReached : "&a[MergedSpawner] : the max count has been reached!"

HelpMessages:
banner:
msg: "=== &e[&aMergedSpawner Commands List (%version%)&e] &r==="
help:
msg: "&a/mergedspawner help : displays this help menu."
reload:
msg: "&a/mergedspawner reload : reloads config file."
permission: "mergedspawner.reload"
debug:
msg: "&a/mergedspawner debug <true|false> : turn on / off the debug mode."
permission: "mergedspawner.debug"
info:
msg: "&a/mergedspawner info : displays the information on the spawn you're looking at."
permission: "mergedspawner.info"
clean:
msg: "&a/mergedspawner clean : removes all orphan markers."
permission: "mergedspawner.clean"
give:
msg: "&a/mergedspawner give <player> <mobtype> <amount> : gives <player> <amount> spawner of type <mobtype>."
permission: "mergedspawner.give"
set:
msg: "&a/mergedspawner set <mobtype> [amount]: changes the mob type of the spawner you're looking at to <mobtype> and set the stacked size to [amount]."
permission: "mergedspawner.set"
news:
msg: "&a/mergedspawner news : display the news associated with the current release."
permission: "mergedspawner.news"

DisplayCount: false
NumberRegex: "([0-9]+)(X)" #this corresponds to %number%X in CustomNameFormat
CustomNameFormat: "&d%number%X &6%type%"


# if you're using SilkSpawner, set BlockPlaceEventPriority to MONITOR
BlockPlaceEventPriority: MONITOR
BlockBreakEventPriority: MONITOR
BlockExplodeEventPriority: MONITOR
EntityExplodeEventPriority: HIGH
SpawnerSpawnEventPriority: HIGHEST

# if this option is true, mined spawner will automatically be placed in your inventory
# if the inventory is full, it will be dropped at spawner's locaation
AutoPickup: false

# if this option is true,
# shift + Silktouch mine will mine all stacked spawners
ShiftMineAll: false

# if this option is true,
# shift + place a spawner will try to place all stacked spawners
ShiftPlaceAll: false

# Default Max if the max stack number is not provided for individual mob type under Mobs:
# This default max number will be used. If this value is -1, No limit will be applied.
DefaultMax : -1

# This radius is used to search the existing mob spawner of a same type when you "place" a new spawner
# The newly placed spawner will be merged into the found existing spawner.
MergeRadius : 1

# this option will determin whether spawner will be exploded one by one or all at once.
# option : ONE or ALL (default: ALL)
ExplodeDrop: ALL

# Inspection tool
InspectionTool: BONE # if you specify AIR, you can hit with a hand.
InspectionDuration: 5 # in seconds
LookToInspect: false # when this is true, you can see the spawner information by just looking.

InfoFormat:
- "&a===== &eMergedSpawner &a====="
- "&aMob Type: &b%type%"
- "&aSpawner Count: &b%count%"

# MobAliases option is deprecated. if you wish to change the name of the spawner
# please use "alias:" under "Mobs:" section.
MobAliases:
# COW: "&aCowCow"

Mobs:
COW:
alias: "&aCowCow"
max: 10
count_per_spawn: 1
BLAZE:
max: 20
count_per_spawn: 3


For Developers:
If you have a plugin, from which you wish to find out how many spawners are stacked in the spawner, you can invoke the following static method:

MergedSpawner.getCountFor(Block spawner);

If you wish to use an event-driven approach, you can use the follwing events:
@EventHandler
public void onMergedSpawnerPlaced(MergedSpawnerPlaceEvent e) {
Block spawnerBlock = e.getSpawner();
int newCount = e.getSpawnerCount();
EntityType type = e.getSpawnerType();
...
}

@EventHandler
public void onMergedSpawnerBroken(MergedSpawnerBreakEvent e) {
Block spawnerBlock = e.getSpawner();
int newCount = e.getSpawnerCount();
EntityType type = e.getSpawnerType();
...
}
Author
Wifi
Downloads
0
Views
18
First release
Last update

Ratings

0.00 star(s) 0 ratings

More resources from Wifi

Top