Other available versions. Ordered by newest to oldest versions:
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.
import:
org.bukkit.event.player.PlayerInteractEvent
org.bukkit.event.player.PlayerInteractEntityEvent
org.bukkit.event.block.BlockBreakEvent
org.bukkit.event.block.BlockPlaceEvent
org.bukkit.event.block.Action
on script load:
if directory "plugins/LockIT" doesn't exist:
skutil create directory "plugins/LockIT"
send "[LockIT] &fCreating folder..." to the console
if file "plugins/LockIT/config.yml" doesn't exist:
skutil download file from "https://bit.ly/2z30IEL" to file "plugins/LockIT/config.yml"
send "[LockIT] &fGenerating config.yml..." to the console
if file "plugins/LockIT/permissions.yml" doesn't exist:
skutil download file from "https://bit.ly/2TJ0USQ" to file "plugins/LockIT/permissions.yml"
send "[LockIT] &fGenerating permissions.yml..." to the console
if file "plugins/LockIT/messages.yml" doesn't exist:
skutil download file from "https://bit.ly/2NkRvjc" to file "plugins/LockIT/messages.yml"
send "[LockIT] &fGenerating messages.yml..." to the console
send "[LockIT] &2DONE!!" to the console
send "" to the console
send "[LockIT] &fGrabbing settings from the config..." to the console
delete {lockIT::*}
set {lockIT::prefix} to skutil yaml value "prefix" from file "plugins/LockIT/config.yml"
set {lockIT::fastLock} to skutil yaml value "fastLock" from file "plugins/LockIT/config.yml"
set {lockIT::version} to skutil yaml value "version" from file "plugins/LockIT/config.yml"
set {lockit::protectedItems::*} to skutil yaml list "protectedItems" from file "plugins/LockIT/config.yml"
send "[LockIT] &fGrabbing all messages..." to the console
set {lockIT::msgAlreadyLocked} to skutil yaml value "msgAlreadyLocked" from file "plugins/LockIT/messages.yml"
set {lockIT::msgLocked} to skutil yaml value "msgLocked" from file "plugins/LockIT/messages.yml"
set {lockIT::msgOtherDenied} to skutil yaml value "msgOtherDenied" from file "plugins/LockIT/messages.yml"
set {lockIT::msgUpdateSign} to skutil yaml value "msgUpdateSign" from file "plugins/LockIT/messages.yml"
set {lockIT::msgNoUpdateSign} to skutil yaml value "msgNoUpdateSign" from file "plugins/LockIT/messages.yml"
set {lockIT::msgSignDenied} to skutil yaml value "msgSignDenied" from file "plugins/LockIT/messages.yml"
set {lockIT::msgFixed} to skutil yaml value "msgFixed" from file "plugins/LockIT/messages.yml"
set {lockIT::msgSignUpdated} to skutil yaml value "msgSignUpdated" from file "plugins/LockIT/messages.yml"
send "[LockIT] &fGrabbing all permissions..." to the console
set {lockIT::useLockIT} to skutil yaml value "useLockIT" from file "plugins/LockIT/permissions.yml"
set {lockIT::bypassLocked} to skutil yaml value "bypassLocked" from file "plugins/LockIT/permissions.yml"
set {lockIT::adminLockIT} to skutil yaml value "adminLockIT" from file "plugins/LockIT/permissions.yml"
send "[LockIT] &2DONE! ENJOY!" to the console
send "[LockIT] You are running Version: &d%{lockIT::version}%" to the console
set {_verCheck} to skutil line 1 from url "https://bit.ly/2ujmO3y"
if {_verCheck} is not {lockIT::version}:
send "[LockIT] The most recent Version: &d%{_verCheck}%" to the console
# ---------------------------------------------------------------------------------------------------------------
# Commands
# ---------------------------------------------------------------------------------------------------------------
command /lockit [<integer>] [<text>]:
trigger:
if arg 1 is not set:
if arg 2 is "help":
message "&4&m---------------------------------------------------"
message "%{lockIT::prefix}% &eby DroidVengeance"
message "&4&m---------------------------------------------------"
message " - &eTo edit a sign, rightclick and use:"
message " - &e/lockit <line number> <text>"
if player has permission "lockit.admin":
message " - &eTo turn on fastlock (shift+rightclick)"
message " - &3/lockit true / false"
message " - &eTo fix a door use:"
message " - &e/lockit fix"
if arg 2 is "fix":
loop blocks in radius 2 of target block:
loop-block = wall sign
line 1 of loop-block is "[LockIT]"
line 2 of loop-block = "%player%" or uuid of player
toggle target block
send "%colored {lockIT::prefix}% %colored {lockIT::msgFixed}%"
if arg 2 is "fastlock":
if {lockIT::%player%::fastLock} is not set:
set {lockIT::%player%::fastLock} to false
send "%colored {lockIT::prefix}% &9Fastlock &6is turned &cOFF"
stop
if {lockIT::%player%::fastLock} is true:
set {lockIT::%player%::fastLock} to false
send "%colored {lockIT::prefix}% &9Fastlock &6is turned &cOFF"
stop
if {lockIT::%player%::fastLock} is false:
set {lockIT::%player%::fastLock} to true
send "%colored {lockIT::prefix}% &9Fastlock &6is turned &aON"
stop
if arg 1 is set:
if arg 2 is not set:
set line arg 1 of {lockit::%player%::signEdit} to " "
send "%colored {lockIT::prefix}% %colored {lockIT::msgSignUpdated}%"
delete {lockit::%player%::signEdit}
stop
set line arg 1 of {lockit::%player%::signEdit} to arg 2
send "%colored {lockIT::prefix}% %colored {lockIT::msgSignUpdated}%"
delete {lockit::%player%::signEdit}
command /lockitdebug:
trigger:
# Code here
loop {lockit::protectedItems::*}:
send "%loop-value%"
set {_item} to loop-value parsed as an item
give {_item} to the player
# ---------------------------------------------------------------------------------------------------------------
# Fastlock
# ---------------------------------------------------------------------------------------------------------------
on BlockPlaceEvent:
if event.getBlockPlaced() = any wall sign:
{lockIT::fastLock} = true
if {lockIT::%event.getPlayer()%::fastLock} is not set:
loop blocks in radius 1 of event.getBlockPlaced():
loop {lockit::protectedItems::*}:
set {_item} to loop-value-2 parsed as an item
if loop-block = {_item}:
if event.getPlayer() has permission "%{lockIT::useLockIT}%" or "%{lockIT::bypassLocked}%":
close event.getPlayer()'s inventory
wait 3 ticks
set line 1 of event.getBlockPlaced() to "[LockIT]"
set line 2 of event.getBlockPlaced() to "%event.getPlayer()%"
event.getPlayer().sendMessage("%colored {lockIT::prefix}% &6This item is now protected!")
stop
if {lockIT::%event.getPlayer()%::fastLock} is true:
loop blocks in radius 1 of event.getBlockPlaced():
loop {lockit::protectedItems::*}:
set {_item} to loop-value-2 parsed as an item
if loop-block = {_item}:
if event.getPlayer() has permission "%{lockIT::useLockIT}%" or "%{lockIT::bypassLocked}%":
close event.getPlayer()'s inventory
wait 3 ticks
set line 1 of event.getBlockPlaced() to "[LockIT]"
set line 2 of event.getBlockPlaced() to "%event.getPlayer()%"
event.getPlayer().sendMessage("%colored {lockIT::prefix}% &6This item is now protected!")
stop
else:
wait 1 ticks
stop
on sign edit:
if line 1 of block is "[LockIT]":
if player has permission "%{lockIT::useLockIT}%":
if line 2 of block contains "%player%" or uuid of event.getPlayer():
send "%colored {lockIT::prefix}% &6This item is now protected!"
else:
set block to air
send "%colored {lockIT::prefix}% &cYou don't have permission to do that!"
# --------------------------------------------------------------------------------------------------------
# Interacting with protected blocks
# ---------------------------------------------------------------------------------------------------------------
on PlayerInteractEvent:
loop {lockit::protectedItems::*}:
set {_item} to loop-value parsed as an item
if event.getClickedBlock() = {_item}:
loop blocks in radius 1 of event.getClickedBlock():
if loop-block = wall sign:
if line 1 of loop-block = "[LockIT]":
if line 2 of loop-block does not contain "%event.getPlayer()%" or uuid of event.getPlayer():
cancel event
if event.getPlayer() has permission "%{lockIT::bypassLocked}%" or "lockit.admin.*":
uncancel event
stop
if line 3 of loop-block contains "%event.getPlayer()%" or uuid of event.getPlayer() or "everyone":
uncancel event
stop
event.getPlayer().sendMessage("%colored {lockIT::prefix}% %colored {lockIT::msgOtherDenied}%")
stop
else:
uncancel event
if loop-block = chest:
loop blocks in radius 1 of loop-block-1:
if loop-block-2 = wall sign:
if line 1 of loop-block-2 = "[LockIT]":
if line 2 of loop-block-2 does not contain "%event.getPlayer()%" or uuid of event.getPlayer():
cancel event
if event.getPlayer() has permission "%{lockIT::bypassLocked}%" or "lockit.admin.*":
uncancel event
stop
if line 3 of loop-block-2 contains "%event.getPlayer()%" or uuid of event.getPlayer() or "everyone":
uncancel event
stop
event.getPlayer().sendMessage("%colored {lockIT::prefix}% %colored {lockIT::msgOtherDenied}%")
stop
else:
uncancel event
if event.getClickedBlock() = oak door or dark oak door or spruce door or jungle door or acacia door or birch door:
loop blocks in radius 2 of event.getClickedBlock():
if loop-block = wall sign:
if line 1 of loop-block = "[LockIT]":
if line 2 of loop-block does not contain "%event.getPlayer()%" or uuid of event.getPlayer():
cancel event
if event.getPlayer() has permission "%{lockIT::bypassLocked}%" or "lockit.admin.*":
uncancel event
if line 4 of loop-block = "[timer:1]":
wait 1 second
close event.getClickedBlock()
if line 4 of loop-block = "[timer:2]":
wait 2 second
close event.getClickedBlock()
if line 4 of loop-block = "[timer:3]":
wait 3 second
close event.getClickedBlock()
if line 4 of loop-block = "[timer:4]":
wait 4 second
close event.getClickedBlock()
if line 4 of loop-block = "[timer:5]":
wait 5 second
close event.getClickedBlock()
stop
if line 3 of loop-block contains "%event.getPlayer()%" or uuid of event.getPlayer() or "everyone":
uncancel event
stop
event.getPlayer().sendMessage("%colored {lockIT::prefix}% %colored {lockIT::msgOtherDenied}%")
stop
else:
uncancel event
if line 4 of loop-block = "[timer:1]":
wait 1 second
close event.getClickedBlock()
if line 4 of loop-block = "[timer:2]":
wait 2 second
close event.getClickedBlock()
if line 4 of loop-block = "[timer:3]":
wait 3 second
close event.getClickedBlock()
if line 4 of loop-block = "[timer:4]":
wait 4 second
close event.getClickedBlock()
if line 4 of loop-block = "[timer:5]":
wait 5 second
close event.getClickedBlock()
else if event.getClickedBlock() = wall sign:
if line 1 of event.getClickedBlock() = "[LockIT]":
"%event.getAction()%" contains "RIGHT_CLICK"
if line 2 of event.getClickedBlock() does not contain "%event.getPlayer()%" or uuid of event.getPlayer():
cancel event
if event.getPlayer() has permission "%{lockIT::bypassLocked}%" or "%{lockIT::adminLockIT}%" or "lockit.admin.*":
uncancel event
event.getPlayer().sendMessage("%colored {lockIT::prefix}% %colored {lockIT::msgUpdateSign}%")
set {lockit::%event.getPlayer()%::signEdit} to event.getClickedBlock()
stop
event.getPlayer().sendMessage("%colored {lockIT::prefix}% %colored {lockIT::msgNoUpdateSign}%")
stop
else:
uncancel event
event.getPlayer().sendMessage("%colored {lockIT::prefix}% %colored {lockIT::msgUpdateSign}%")
set {lockit::%event.getPlayer()%::signEdit} to event.getClickedBlock()
stop
# ---------------------------------------------------------------------------------------------------------------
# Break Protection
# ---------------------------------------------------------------------------------------------------------------
on BlockBreakEvent:
loop {lockit::protectedItems::*}:
set {_item} to loop-value parsed as an item
if event.getBlock() = {_item}:
loop blocks in radius 1 of event.getBlock():
if loop-block = wall sign:
if line 1 of loop-block = "[LockIT]":
if line 2 of loop-block != "%event.getPlayer()%" or uuid of event.getPlayer():
cancel event
event.getPlayer().sendMessage("%colored {lockIT::prefix}% %colored {lockIT::msgOtherDenied}%")
else:
uncancel event
else if event.getBlock() = wall sign:
if line 1 of event.getBlock() = "[LockIT]":
if line 2 of event.getBlock() != "%event.getPlayer()%" or uuid of event.getPlayer():
cancel event
if event.getPlayer() has permission "%{lockIT::bypassLocked}%" or "lockit.admin.*":
uncancel event
stop
event.getPlayer().sendMessage("%colored {lockIT::prefix}% %colored {lockIT::msgSignDenied}%")
stop
else:
uncancel event
stop
# ---------------------------------------------------------------------------------------------------------------
# Hopper Protection
# ---------------------------------------------------------------------------------------------------------------
on place of hopper:
if block west of block above event-block is a wall sign:
line 1 of block west of block above event-block is "[LockIT]"
cancel event
send "&cYou can't place that below a protected chest."
if block east of block above event-block is a wall sign:
line 1 of block east of block above event-block is "[LockIT]"
cancel event
send "&cYou can't place that below a protected chest."
if block south of block above event-block is a wall sign:
line 1 of block south of block above event-block is "[LockIT]"
cancel event
send "&cYou can't place that below a protected chest."
if block north of block above event-block is a wall sign:
line 1 of block north of block above event-block is "[LockIT]"
cancel event
send "&cYou can't place that below a protected chest."