Skip to content

Latest commit

Β 

History

History
381 lines (283 loc) Β· 16.6 KB

README.md

File metadata and controls

381 lines (283 loc) Β· 16.6 KB

SilkSpawners

Build Status Build the plugin

BukkitDev SpigotMC

License

Info

This Bukkit (compatible with CraftBukkit, Spigot, Paper) plugin adds a way to obtain the spawner with the corresponding mob when mined with Silk Touch enchanted pickaxes and offers a range of features to change, obtain or craft spawners, too.

  • Crafting of each spawner (own recipe for every mob if wanted)
  • Commands for player and console
  • Changing spawners with spawn eggs
  • Permissions support or OP fallback
  • Support for
    • Custom mobs added by client/server mods
    • Spawning any entity with spawn eggs (dragons, non-creature entities, etc.)
  • Compatible with
    • CraftBukkit++ and Spigot (see spawnersUnstackable)
    • MCPC(+) and ported mods (auto-detects IDs)
  • Flexible creature type names on input (pigman, zombiepigman, pigzombie, etc. all accepted), official names on output (Magma Cube, not "LavaSlime")
  • Localization
  • Economy addon SilkSpawnersEcoAddon
  • Shop addon SilkSpawnersShopAddon (login required, Premium Plugin)
  • BossBarAPI support for >= 1.9, otherwise BarAPI can be used
  • Mimic support
  • Support for multiple Minecraft versions, from 1.8.8 to 1.21.4 (with exlusion of 1.9 and 1.10)

Third party features, all of them can be disabled

License

This plugin is released under the Creative Commons Attribution-NonCommercial-ShareAlike 4.0 International (CC BY-NC-SA 4.0) license. Please see LICENSE.md for more information.

Standard config

# See documentation at https://dev.bukkit.org/projects/silkspawners/pages/configuration

# Should the plugin automatically update if an update is available?
autoUpdater: true

# Should a permission be required when a spawner explodes by TNT to achieve a drop
permissionExplode: false

# Should be checked for WorldGuard build ability to change spawners
useWorldGuard: true

# Allows you to use Mimic item IDs in allowedTools
useMimic: true

# Percentage of dropping a spawner block when TNT or creepers explode
explosionDropChance: 30

# Percentage of dropping a iron bars when a spawner is mined
destroyDropChance: 100

# Percentage of dropping an egg when a spawner is mined
eggDropChance: 100

# Percentage of dropping the spawner when mined
silkDropChance: 100

# When generic spawner items are placed, spawn this creature (e.g. from /give or other plugins)
# PIG (90) is Minecraft default (put NAMES or IDs (for Minecraft <1.13 here!)
defaultCreature: pig

# How far is the spawner reachable with your crosshair (disable with -1)
spawnerCommandReachDistance: 6

# Minimum silk touch level [can be changed via other plugins to a higher value]
# Set it to 0 to mine it without silk touch
minSilkTouchLevel: 1

# If a player in creative destroys a spawner nothing is dropped
noDropsCreative: true

# If a spawner is destroyed, should the egg be dropped
destroyDropEgg: false

# If a spawner is destroyed, should XP be dropped
destroyDropXP: 0

# If a spawner is mined, should it be directly added to the inventory of the player
dropSpawnerToInventory: false

# Amount of spawners to be dropped when mined with valid silk touch
dropAmount: 1

# Flag a spawner as already mined to prevent XP duping
preventXPFarming: true

# Drops XP only when a spawner is destroyed and not mined via SilkTouch
dropXPOnlyOnDestroy: false

# If a spawner is destroyed, should iron bars be dropped
destroyDropBars: 0

# Should the player be able to craft spawners
craftableSpawners: false

# Leave a slot empty (null/air)? Just make a space then, example 'A A' -> middle is free
# X is always the egg
recipeTop: AAA
recipeMiddle: AXA
recipeBottom: AAA
recipeAmount: 1

# Custom example:
#recipeTop: 'A A'
#recipeMiddle: 'BXA'
#recipeBottom: 'C D'
#ingredients:
#  - 'A,IRON_FENCE'
#  - 'B,DIRT'
#  - 'C,2'
#  - 'D,5'

# You can put IDs or the NAME here (please uppercase)
# Add it for each custom ingredient you add, too!
ingredients:
  - A,IRON_FENCE

# Should spawners be unstackable
spawnersUnstackable: false

# Should the egg be consumed when the spawner is changed with it
consumeEgg: true

# Fallback if the creature should be enabled, if not specified for the entity
enableCreatureDefault: true

# Disable left click to change spawners, spawns a mob instead. Still blocks Vanilla right click behavior.
disableChangeTypeWithEgg: false

# Should instead of spawning a mob a MonsterSpawner be placed? (Uses consumeEgg value, too)
spawnEggToSpawner: false

# Should the spawn algorithm be overridden? Allows spawning of non-standard entities
spawnEggOverride: false

# Fallback if the creature should be spawned, if not specified for the entity
spawnEggOverrideSpawnDefault: true

# Allowed set of tools which can mine a spawner. IDs are supported, too
allowedTools:
  - WOOD_PICKAXE
  - STONE_PICKAXE
  - IRON_PICKAXE
  - GOLD_PICKAXE
  - DIAMOND_PICKAXE
  - NETHERITE_PICKAXE

# Amount of spawners or eggs given to a player when the argument is omitted
defaultAmountGive: 1

# Notify the player about the spawner when he clicks it in the inventory
notifyOnClick: true

# Notify the player about the spawner when he holds the spawner in the hand
notifyOnHold: true

# Configure displaying with BarAPI, time is in seconds
barAPI:
  enable: false
  displayTime: 3

# Configure displaying with 1.9 BossBarApi, time is in seconds
vanillaBossBar:
  enable: true
  displayTime: 3

  # Valid colors are BLUE, GREEN, PINK, PURPLE, RED, WHITE, YELLOW
  color: RED

  # Valid styles are SEGMENTED_10, SEGMENTED_12, SEGMENTED_20, SEGMENTED_6, SOLID
  style: SOLID

# Prevent that a spawner is changed via eggs in other territories. Supported are Factions, Faction3 and FactionsUUID
factionsSupport: false

# If the inventory of a player is full, drop spawners/eggs from /ss give on the ground
spillSpawnersFromCommands: false

# Check for spigot.yml and paper.yml flags that conflict with SilkSpawners
checkForNerfFlags: true

# Puts more information out on startup and interactions, such as block placement and breaking
verboseMode: false

# Internal stuff, do NOT change unless advised - the plugin might break otherwise
useReflection: true
testMCVersion: true
useMetadata: true

Commands

Aliases:

  • silkspawners
  • silkspawner
  • ss
  • spawner
  • silk
  • spawnersilk
  • egg
  • eggs
  • eg
Command Description
/ss help Displays the help menu.
/ss list|all Displays all available creatures.
/ss view|info Displays information about the viewed spawner.
/ss reload|rl Reloads the configuration files.
/ss change|set <newMob> Changes the spawner you are currently holding or viewing at.
/ss give|add <player> <mob> [amount] Gives a spawner or egg to the player. Amount is optional.
/ss selfget|i <mob> [amount] Gives a spawner or egg to you. Amount is optional.

Permissions

(Fallback to OPs, if no permissions system is found)

  • Grant either wild card permission for all mobs (use the star [*])
  • or define per mob permissions by using creature and replace it with a real mob name.
    • spaces will be stripped out of names

General

Permission node Default Description
silkspawners.* false Grants access to all other permissions
silkspawners.info true See informative messages about the spawners as you place and break them
silkspawners.viewtype true View the spawner type using /spawner
silkspawners.reload op Reload the configs on the fly
silkspawners.explodedrop false Receive a drop when Spawner explodes via TNT (off by default, see permissionExplode)
silkspawners.list.* true Allows you to view the list of mobs in /ss list

Placing spawners

Permission node Default Description
silkspawners.place.* false Ability to place all spawners
silkspawners.place.creature false Ability to place a creature spawner

Crafting spawners

Permission node Default Description
silkspawners.craft.* false Ability to craft all spawners (if enabled)
silkspawners.craft.creature false Ability to craft a creature spawner (if enabled)

Mining spawners

Permission node Default Description
silkspawners.destroydrop.* false Allows you to destroy all mob spawners to acquire mob spawn eggs / iron bars / XP (as configured)
silkspawners.destroydrop.creature false Allows you to destroy mob a creature spawner to acquire mob spawn eggs / iron bars / XP (as configured)
silkspawners.silkdrop.* false Allows you to use silk touch to acquire all mob spawner items
silkspawners.silkdrop.creature false Allows you to use silk touch to acquire a creature mob spawner item
silkspawners.nosilk.* false Allows you to use any tool to acquire all mob spawner items
silkspawners.nosilk.creature false Allows you to use any tool to acquire a creature spawner items

Changing spawners

Permission node Default Description
silkspawners.changetype.* false Allows you to change all spawner types using /spawner creature
silkspawners.changetype.creature false Allows you to change a creature spawner type using /spawner creature
silkspawners.changetypewithegg.* false Allows you to change all spawner types by left-clicking with a spawn egg
silkspawners.changetypewithegg.creature false Allows you to change a creature spawner type by left-clicking with a spawn egg

Free spawners and eggs

Permission node Default Description
silkspawners.freeitem.* false Allows you to get all spawner items in your hand for free using /spawner creature
silkspawners.freeitem.creature false Allows you to get a creature spawner item in your hand for free using /spawner creature
silkspawners.freeitemegg.* false Allows you to get all spawner eggs in your hand for free using /egg creature
silkspawners.freeitemegg.creature false Allows you to get a creature spawner egg in your hand for free using /egg creature

Credits

  • mushroomhostage for the original SilkSpawners plugin
  • Thermo_Core alias Archarin for the logo
  • Kiracastle for the nice review
  • smsunrato for the review and Indonesian translation
  • Jeroendedoem for the Dutch translation
  • electronicboy and Chazza for the 1.14 and 1.15 support during my absence

Support

For support visit the Bukkit page, the SpigotMC thread or ask on Discord!

Reporting Bugs

Please open an issue and make sure to follow the issue template!

Pull Requests

Feel free to submit any PRs here. :)
Please follow the Sun Coding Guidelines, thanks!

Building

Unfortunately, I can't give access to https://repo.dustplanet.de/artifactory/private due to the DMCA of CraftBukkit and the prohibiton to distribute those or Spigot's binaries. To successfully build SilkSpawners using Maven, you must first run Spigot's BuildTools for several versions in order to compile each module - this will populate the local .m2 cache of yours.

mkdir -p BuildTools
cd BuildTools
wget -q https://hub.spigotmc.org/jenkins/job/BuildTools/lastSuccessfulBuild/artifact/target/BuildTools.jar
java -jar BuildTools.jar --rev 1.21.4 --remapped
java -jar BuildTools.jar --rev 1.21.3 --remapped
java -jar BuildTools.jar --rev 1.21.1 --remapped
java -jar BuildTools.jar --rev 1.20.6 --remapped
java -jar BuildTools.jar --rev 1.20.4 --remapped
java -jar BuildTools.jar --rev 1.20.2 --remapped
java -jar BuildTools.jar --rev 1.20.1 --remapped
java -jar BuildTools.jar --rev 1.19.4 --remapped
java -jar BuildTools.jar --rev 1.19.3 --remapped
java -jar BuildTools.jar --rev 1.19.2 --remapped
java -jar BuildTools.jar --rev 1.18.2 --remapped
java -jar BuildTools.jar --rev 1.18.1 --remapped
java -jar BuildTools.jar --rev 1.17.1 --remapped
java -jar BuildTools.jar --rev 1.16.5
java -jar BuildTools.jar --rev 1.16.3
java -jar BuildTools.jar --rev 1.16.1
java -jar BuildTools.jar --rev 1.15.2
java -jar BuildTools.jar --rev 1.13.2
java -jar BuildTools.jar --rev 1.12.2
java -jar BuildTools.jar --rev 1.11.2
java -jar BuildTools.jar --rev 1.8.8

The final SilkSpawners.jar can now be generated by invoking mvn clean package. The location of this output can be found in the modules/SilkSpawners/target folder.

Usage statistics

Usage statistics

Data usage collection of bStats

Disabling bStats

The file ./plugins/bStats/config.yml contains an option to opt-out.

The following data is read and sent to https://bstats.org and can be seen under https://bstats.org/plugin/bukkit/SilkSpawners

  • Your server's randomly generated UUID
  • The amount of players on your server
  • The online mode of your server
  • The bukkit version of your server
  • The java version of your system (e.g. Java 8)
  • The name of your OS (e.g. Windows)
  • The version of your OS
  • The architecture of your OS (e.g. amd64)
  • The system cores of your OS (e.g. 8)
  • bStats-supported plugins
  • Plugin version of bStats-supported plugins

Donation

PayPal

BitCoin
1NnrRgdy7CfiYN63vKHiypSi3MSctCP55C

Support

In addition to reporting bugs here on GitHub you can join my Discord and ask your questions right away! Discord support