Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #
- # Essentials Kits (made by Austin collaborating with Lupusor)
- #
- # Known Bug
- # when using the /createkit there is a bug ever so often where it sends "An internal error occurred"
- # it's an issue with timespam mainly just add/remove the (s) in the cooldown part (this issue can also be seen for [1 minute and 5 seconds]
- # EX: /createkit example 1 minute
- # EX: /createkit example 1 minutes
- #
- # PERMISSIONS:
- # easykits.createkit
- # easykits.deletekit
- # easykits.kit.(kit)
- # easykits.createkit
- # easykits.createsigns
- #
- # COMMANDS:
- # /previewkit (kit) | preview a kit on the server | no permission needed
- # /kit (kit) | select a kit you own | no permission needed
- # /kits | list all kits you own with an unlimited page gui | no permission needed
- # /deletekit (kit) | delete a kit you don't want from the server | easykits.deletekit
- # /createkit (kit) (timespan) | create a kit you for the server | easykits.createkit
- # EX: /createkit example 1 second
- # EX: /createkit example 0 seconds
- # EX: /createkit example 5 minutes and 5 seconds
- #
- # SIGNS:
- # on any sign put [PREVIEW KIT] or [SELECT KIT] on line 1
- # and on line 2 put the kit you'd like to preview/select
- # these usages are great for people who own a kit pvp server
- #
- # Functions (Do not edit without knowing how)
- #
- options:
- drop_when_full: true # true or false | yes or no
- function previewKit(p: player, kit: text):
- {EasyKits::*} contains {_kit}
- set metadata value "gui" of {_p} to "kitpreview"
- set {_inv} to chest inventory with 5 rows named "Previewing Kit | %{_kit}%"
- loop {EasyKits::%{_kit}%::items::*}:
- set {_id} to (((loop-index) parsed as integer)-1)
- {_id} < 36
- set {_slot} to {_id}+27 if {_id} < 9 else {_id}-9
- set slot {_slot} of {_inv} to loop-value
- set slot (integers from 36 to 44) of {_inv} to black stained glass pane
- set slot 40 of {_inv} to paper named "&3Inventory View Information" with lore "&7Line 1", "&7Line 2", "&7Line 3" and "&bHot-Bar"
- open {_inv} to {_p}
- function listKits(p: player, page: number):
- set metadata value "gui" of {_p} to "kitlist"
- set metadata value "guidata" of {_p} to {_page}
- set {_kits::*} to {EasyKits::*} where [{_p} has permission "easykits.kit.%input%"]
- set {_inv} to chest inventory with 6 rows named "Kits | Total: %size of {_kits::*}% | Page: %({_page})+1%"
- set {_startPoint} to {_page}*36
- set {_slot} to 9
- loop {_kits::*}:
- ((loop-index) parsed as integer) > {_startPoint}
- set slot {_slot} of {_inv} to paper named "&e%loop-value%" with lore "&7Cooldown: &f%{EasyKits::%loop-value%::cooldown}%" and "&7Permission: &fEasyKits.kit.%loop-value%", "" and "&7&l| &fRight Click to Preview"
- add 1 to {_slot}
- {_slot} = 45
- exit loop
- if (size of {_kits::*}) > (({_startPoint})+36):
- set slot 53 of {_inv} to arrow named "&eNext Page"
- if {_page} > 0:
- set slot 45 of {_inv} to arrow named "&ePrevious Page"
- open {_inv} to {_p}
- function selectKit(p: player, kit: text):
- {EasyKits::*} contains {_kit}
- {_p} has permission "easykits.kit.%{_kit}%"
- set {_uuid} to uuid of {_p}
- set {_now} to now
- set {_lastUsed} to {KitData::%{_uuid}%::%{_kit}%} otherwise now
- set {_cooldown} to {EasyKits::%{_kit}%::cooldown}
- send "&cYou still need to wait &4%difference between {_lastUsed} and {_now}%" to {_p} where [{_now} < {_lastUsed}]
- {_now} >= {_lastUsed}
- set {KitData::%{_uuid}%} to {_uuid}
- set {KitData::%{_uuid}%::%{_kit}%} to {_cooldown} from now
- loop {EasyKits::%{_kit}%::items::*}:
- loop-value is not air
- add loop-value to {_p}'s inventory where [{_p} can hold loop-value]
- {@drop_when_full} is true or yes
- drop loop-value above {_p}'s location where [{_p} can't hold loop-value]
- send "&aYou've used the kit &2%{_kit}%" to {_p}
- #
- # Message Options
- #
- options:
- usage: &c/createkit (name) (cooldown)
- noItems: &cYou don't have any items if your inventory
- inUse: &cThis kit name already exist
- lengthLimit: &cThere is a minimum of 3 characters and a maximum of 8 characters!
- #
- # Command Options
- #
- options:
- permission: easykits.createkit
- permission_message: {@server} &8&l| &cYou don't have the required permission node
- cooldown: 0 seconds # when set to 0 this will allow it to be spammed
- cooldown_message: {@server} &8&l| &cThis command is currently still on a %remaining time% cooldown
- cooldown_bypass: skript.admin
- command /createkit [<text>] [<timespan>]:
- permission: {@permission}
- permission message: {@permission_message}
- cooldown: {@cooldown}
- cooldown message: {@cooldown_message}
- cooldown bypass: {@cooldown_bypass}
- executable by: players
- trigger:
- if arg 1 or arg 2 is not set:
- send "{@usage}"
- cancel cooldown
- else if (amount of items in player's inventory) = 0:
- send "{@noItems}"
- cancel cooldown
- else if {EasyKits::*} contains arg-1:
- send "{@inUse}"
- cancel cooldown
- else if length of arg-1 > 10:
- send "{@lengthLimit}"
- cancel cooldown
- else if length of arg-1 < 3:
- send "{@lengthLimit}"
- cancel cooldown
- else:
- set {EasyKits::%arg-1%} to arg-1
- set {EasyKits::%arg-1%::cooldown} to arg-2
- loop 36 times:
- set {EasyKits::%arg-1%::items::%loop-value%} to slot ((loop-value)-1) of player's inventory
- send "&cYou've created the new kit &4%arg-1% &cwith a cooldown of &4%arg-2%"
- command /previewkit [<text>]:
- executable by: players
- trigger:
- send "&cYou need to define a kit" to player where [arg-1 is not set]
- arg-1 is set
- send "&4%arg-1% &cdoesn't seem to be a kit" to player where [{EasyKits::*} doesn't contain arg-1]
- {EasyKits::*} contains arg-1
- previewKit(player, arg-1)
- command /kit [<text>]:
- executable by: players
- trigger:
- send "&cYou need to define a kit" to player where [arg-1 is not set]
- arg-1 is set
- send "&4%arg-1% &cdoesn't seem to be a kit" to player where [{EasyKits::*} doesn't contain arg-1]
- {EasyKits::*} contains arg-1
- send "&cYou don't have the required permission node" to player where [player doesn't have permission "easykits.kit.%arg-1%"]
- player has permission "easykits.kit.%arg-1%"
- selectKit(player, arg-1)
- command /kits [<text>]:
- executable by: players
- trigger:
- listKits(player, 0)
- options:
- permission: easykits.deletekit
- permission_message: &8&l| &cYou don't have the required permission node
- cooldown: 0 seconds # when set to 0 this will allow it to be spammed
- cooldown_message: &8&l| &cThis command is currently still on a %remaining time% cooldown
- cooldown_bypass: skript.admin
- command /deletekit [<text>]:
- permission: {@permission}
- permission message: {@permission_message}
- cooldown: {@cooldown}
- cooldown message: {@cooldown_message}
- cooldown bypass: {@cooldown_bypass}
- executable by: players
- trigger:
- if {EasyKits::*} doesn't contain arg-1:
- send "&cThere doesn't seem to be any kit by that name"
- else:
- delete {EasyKits::%arg-1%::items::*}
- delete {EasyKits::%arg-1%::*}
- delete {EasyKits::%arg-1%}
- send "&cYou've deleted the kit &4%arg-1%"
- #
- # Inventory Management
- #
- on inventory close:
- if metadata value "gui" of player is set:
- clear metadata "gui" of player
- if metadata value "guidata" of player is set:
- clear metadata "guidata" of player
- on quit:
- if metadata value "gui" of player is set:
- clear metadata "gui" of player
- if metadata value "guidata" of player is set:
- clear metadata "guidata" of player
- on inventory click:
- if metadata value "gui" of player is "kitpreview":
- cancel event
- else if metadata value "gui" of player is "kitlist":
- cancel event
- set {_page} to "%metadata value ""guidata"" of player%" parsed as number
- if event-item is a paper:
- click type is right mouse button or right mouse button with shift
- close player's inventory
- previewKit(player, uncolored name of event-item)
- else if event-item is a arrow named "&eNext Page":
- close player's inventory
- listKits(player, {_page}+1)
- else if event-item is a arrow named "&ePrevious Page":
- close player's inventory
- listKits(player, {_page}-1)
- #
- # Sign Stuff
- #
- on sign edit:
- player has permission "easykits.createsigns"
- if uncolored line 1 is "[PREVIEW KIT]":
- if line 2 is empty:
- set line 1 to "&c[PREVIEW KIT]"
- set line 2 to "&4(kit name)"
- else if {EasyKits::*} doesn't contain uncolored line 2:
- set line 1 to "&c[PREVIEW KIT]"
- set line 2 to "&4(kit name)"
- else:
- set line 1 to "&1[PREVIEW KIT]"
- set line 2 to uncolored line 2
- else if uncolored line 1 is "[SELECT KIT]":
- if line 2 is empty:
- set line 1 to "&c[SELECT KIT]"
- set line 2 to "&4(kit name)"
- else if {EasyKits::*} doesn't contain uncolored line 2:
- set line 1 to "&c[SELECT KIT]"
- set line 2 to "&4(kit name)"
- else:
- set line 1 to "&1[SELECT KIT]"
- set line 2 to uncolored line 2
- on right click on any sign:
- if colored line 1 of event-block is "&1[PREVIEW KIT]":
- previewKit(player, uncolored line 2 of event-block)
- else if colored line 1 of event-block is "&1[SELECT KIT]":
- selectKit(player, uncolored line 2 of event-block)
- command /give <item types> to <player>:
- permission: skript.give
- trigger:
- send "{@colour1}Giving {@colour2}%argument 1% {@colour1}to {@colour3}%argument 2%" to player
- loop argument 1:
- player has permission "skript.give.%loop-item%":
- give loop-item to argument 2
- send "{@colour1}You recieved {@colour2}%loop-item% {@colour1}from {@colour3}%player%" to argument 2
- command /giveaway <item types>:
- permission: skript.give
- trigger:
- send "{@colour1}Giving {@colour2}%argument 1% {@colour1}to {@colour3}everyone!" to player
- loop argument 1:
- player has permission "skript.give.%loop-item%":
- give loop-item to all players
- send "{@colour1}You recieved {@colour2}%loop-item% {@colour1}from &lGIVEAWAY." to all players
Add Comment
Please, Sign In to add comment