Just so you know, we don't know the file format for every file. If it's just a bunch of random characters, it's probably a .zip or .jar.
#======= sample ================
# for using essentialsX must add permission "essentials.spawnerconvert.*" for member, else all ppl place spawner become pig
# entity ids
#http://minecraft.gamepedia.com/Data_values/Entity_IDs
#iron golem spawner on hand
#{BlockEntityTag:{MaxNearbyEntities:6s,RequiredPlayerRange:16s,SpawnCount:4s,SpawnData:{id:"minecraft:villager_golem"},MaxSpawnDelay:800s,Delay:20s,x:0,y:0,z:0,id:"minecraft:mob_spawner",SpawnRange:4s,MinSpawnDelay:200s,SpawnPotentials:[0:{Entity:{id:"minecraft:villager_golem"},Weight:1}]},display:{Name:"§rIron Golem Spawner"}}
#pola bear spawner on break
#{MaxNearbyEntities:6s,RequiredPlayerRange:16s,SpawnCount:4s,SpawnData:{id:"minecraft:polar_bear"},MaxSpawnDelay:800s,Delay:468s,x:-3673,y:63,z:2575,id:"minecraft:mob_spawner",SpawnRange:4s,MinSpawnDelay:200s,SpawnPotentials:[0:{Entity:{id:"minecraft:polar_bear"},Weight:1}]}
# test {BlockEntityTag:{SpawnData:{id:""minecraft:villager_golem""},id:""minecraft:mob_spawner"",SpawnPotentials:[0:{Entity:{id:""minecraft:villager_golem""},Weight:1}]},display:{Name:""§rIron Golem Spawner""}}
#===========#
# options #
#===========#
options:
prefix: &6[&eSilkSpawner&6]&b
breaking_fees: 10000 # breaking fees ; put 0 for disable
placing_fees: 1000 # placing fees ; put 0 for disable
logger: true # log break & place spawner activity in "Skript/logs/spawner-year-month.log"
#permission for staff
maintanance: "silkspawner.maintanance" # trigger maintnance, used of incase of bug ; once triggered player cannot break & place spawner
maintanance_use: "silkspawner.maintnance.use" # can use spawner while maintanance
give: "silkspawner.give" # access give spawner command
#===================#
# on load default #
#===================#
on script load:
set {silkspawner.maintanance} to false
#====================#
# Silkspawner: Break #
#====================#
on break of mob spawner:
#---------------- maintanance ------------------------------
if {silkspawner.maintanance} = true:
if player does not have permission {@maintanance_use}:
message "{@prefix} silkspawner under maintanance" to player
cancel event
stop
#-----------------------------------------------------------
player's gamemode is not creative
#----------- get spawner info --------------
set {_s} to "%nbt of targeted block%"
set {_s::*} to {_s} split at """" # get like minecraft:polar_bear
set {_entity} to {_s::2}
set {_entity_name} to {_s::2}
replace "minecraft:" in {_entity_name} with ""
replace "_" in {_entity_name} with " " # get like polar_bear ; this also can used as spawner id
#-------------------------------------------
#----------- !!! prevent known bug !!! -------------- (sktuff)
# !!! if no block will get spawner named below & error !!!
# !!! get spawner nbt facing side got placed torch & redstone torch --> will result: <none>
# !!! get spawner nbt facing side got placed sign --> will result: {x:2193,Text4:"{\"text\":\"\"}",y:41,Text3:"{\"text\":\"\"}",z:-4616,Text2:"{\"text\":\"\"}",id:"minecraft:sign",Text1:"{\"text\":\"\"}"}
#sample get nbt from target spawner: {MaxNearbyEntities:6s,RequiredPlayerRange:16s,SpawnCount:4s,SpawnData:{id:"minecraft:cave_spider"},MaxSpawnDelay:800s,Delay:284s,x:2192,y:41,z:-4616,id:"minecraft:mob_spawner",SpawnRange:4s,MinSpawnDelay:200s,SpawnPotentials:[0:{Entity:{id:"minecraft:cave_spider"},Weight:1}]}
if {_s} does not contain "{MaxNearbyEntities:6s,RequiredPlayerRange:16s,SpawnCount:4s,SpawnData:{id:":
set {_month} to month
#log "%player%, bugged %{_entity_name}% spawner, %world%, %location of block%, ping %player's ping%" to "Spawner-%year%-%{_month}%.log"
message "{@prefix} pls remove anything stick to the spawner before break it"
cancel event
stop
#-------------------------------------------
if player's tool is any pickaxe of silk touch:
#-------------------------------------------------------------------- # fees
if {@breaking_fees} is not equal to 0:
if player's balance >= {@breaking_fees}:
remove {@breaking_fees} from player's balance
else:
message "{@prefix} sorry son, you dont have ${@breaking_fees} to do that"
cancel event
stop
#--------------------------------------------------------------------
drop mob spawner with nbt "{BlockEntityTag:{SpawnData:{id:""%{_entity}%""},id:""minecraft:mob_spawner"",SpawnPotentials:[0:{Entity:{id:""%{_entity}%""},Weight:1}]},display:{Name:""&e%{_entity_name}% spawner""}}" with lore "%{_entity_name}% spawner" #lore can always defind the spawner type even player change name scam
broadcast "{@prefix} %player% breaked &c%{_entity_name}% &bspawner with ${@breaking_fees}"
#---- logger -------------------
if {@logger} = true:
set {_month} to month
log "%player%, break %{_entity_name}% spawner, %world%, %location of block%, ping %player's ping%" to "Spawner-%year%-%{_month}%.log"
else:
broadcast "{@prefix} %player% destroyed &c%{_entity_name}% &bspawner without silk touch"
#---- logger -------------------
if {@logger} = true:
set {_month} to month
log "%player%, destroyed %{_entity_name}% spawner, %world%, %location of block%, ping %player's ping%" to "Spawner-%year%-%{_month}%.log"
#====================#
# Silkspawner: Place #
#====================#
on place of mob spawner:
#---------------- maintanance -----------------------------
if {silkspawner.maintanance} = true:
if player does not have permission {@maintanance_use}:
message "{@prefix} silkspawner under maintanance" to player
cancel event
stop
#----------------------------------------------------------
player's gamemode is not creative
#----------- get hand spawner info --------------
set {_s} to "%nbt of player's tool%" # !!!!! suspect high ping player not enough time to get nbt from player's tool ---> result will <none>
set {_s::*} to {_s} split at """" # get like minecraft:polar_bear
set {_entity} to {_s::2}
set {_entity_name} to {_s::2}
replace "minecraft:" in {_entity_name} with ""
replace "_" in {_entity_name} with " "
#--------- fix old spawner (repair name) --------------------- (test old spawner crated by old silkspawner plugin, cant use without the plugin, so sucks)
# sample of SilkSpawners plugin generated nbt: {BlockEntityTag:{SpawnData:{id:"blaze"},SpawnPotentials:{}},display:{Name:"§eBlaze §fSpawner"},SpawnData:{id:"blaze"},SilkSpawners:{entityID:61s}}
if {_s} contains "rideablespider" or "pumpling" or "cave spider" or "},SilkSpawners:{entityID:": # condition same as below + detect silkspawner plugin nbt
if {_entity_name} = "rideablespider":
set {_entity_name} to "spider"
if {_entity_name} = "pumpling":
set {_entity_name} to "zombie"
if {_entity_name} = "cave spider":
set {_entity_name} to "cave_spider"
# if {_entity_name} = "pig":
# set {_entity_name} to "zombie"
# broadcast "{@spawner} pig --> zombie"
set {_repair} to mob spawner with nbt "{BlockEntityTag:{SpawnData:{id:""minecraft:%{_entity_name}%""},id:""minecraft:mob_spawner"",SpawnPotentials:[0:{Entity:{id:""minecraft:%{_entity_name}%""},Weight:1}]},display:{Name:""&e%{_entity_name}% spawner""}}" with lore "%{_entity_name}% spawner"
remove 1 of player's tool from player's inventory
give player {_repair}
message "{@prefix} auto repaired old spawner &c%{_entity_name}%"
set {_month} to month
log "%player%, repaired %{_entity_name}% spawner, %world%, %location of block%, ping %player's ping%" to "Spawner-%year%-%{_month}%.log"
cancel event
stop # prevent code go down
#-------------------------------------------------------------------- # fees
if {@placing_fees} is not equal to 0:
if player's balance >= {@placing_fees}:
remove {@placing_fees} from player's balance
else:
message "{@prefix} sorry son, you dont have ${@placing_fees} to do that"
cancel event
stop
#--------------------------------------------------------------------
broadcast "{@prefix} %player% placed &c%{_entity_name}% &bspawner with ${@placing_fees}"
#---- logger -------------------
if {@logger} = true:
set {_month} to month
log "%player%, placed %{_entity_name}% spawner, %world%, %location of block%, ping %player's ping%" to "Spawner-%year%-%{_month}%.log"
#=======================#
# Silkspawner: Commands #
#=======================#
command /silkspawner [<text>] [<text>]:
aliases: ss
trigger:
if arg 1 = "maintanance" or "m": # command maintnance
#-----------------------------------------------------------
if player does not have permission {@maintanance}:
message "{@prefix} you dont have permission to do that"
stop
#-----------------------------------------------------------
if {silkspawner.maintanance} = false:
set {silkspawner.maintanance} to true
broadcast "{@prefix} maintanance &a&lEnabled &bby %player%"
else:
set {silkspawner.maintanance} to false
message "{@prefix} maintanance &c&lDisabled &bby %player%"
else if arg 1 = "give": # command give spawner
#-----------------------------------------------------------
if player does not have permission {@give}:
message "{@prefix} you dont have permission to do that"
stop
#-----------------------------------------------------------
if arg 2 is not set:
message "{@prefix} pls put a spawner name"
stop
#---------------------------------------------
set {_a} to mob spawner with nbt "{BlockEntityTag:{SpawnData:{id:""minecraft:%arg 2%""},id:""minecraft:mob_spawner"",SpawnPotentials:[0:{Entity:{id:""minecraft:%arg 2%""},Weight:1}]},display:{Name:""&e%arg 2% spawner""}}" with lore "%arg 2% spawner" #lore can always defind the spawner type even player change name scam
give player {_a}
message "{@prefix} you get &c%arg 2% &bspawner"
else:
message "&6&m--------------------&6[&aSilkspawner&6]&m--------------------"
message "&b/ss <maintanance/m> &cppl cant use spawner while maintanance"
message "&b/ss <give> <spawner type> &cgive spawner"
message "&6&m---------------------------------------------------"