Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #Help /customrecipe
- command /customrecipe [<text>] [<text>]:
- aliases: cr, originalrecipe, or
- permission: admin
- trigger:
- if arg 1 is not set:
- send "&6-------Custom recipe------"
- send "&b/cr (create/make) (""Recipename"")"
- send "&b/cr (list) or /recipes"
- stop
- if arg 1 and arg 2 is set:
- if arg 1 is "create" or "make":
- loop {recipes::*}:
- loop-index is colored arg 2
- send "&cAlready registered"
- stop
- set {recipename} to colored arg 2
- inv_open_menu(player)
- stop
- if arg 1 is "list":
- all_recipes(player)
- stop
- else:
- send "&6-------Custom recipe------"
- send "&b/cr (create/make) (""Recipename"")"
- send "&b/cr (list) or /recipes"
- stop
- function inv_open_menu(p: player): #recipe make menu
- open chest with 5 row named "%{recipename}%" to {_p}
- loop 45 times:
- if loop-number - 1 is 11 or 12 or 13 or 20 or 21 or 22 or 29 or 30 or 31 or 24:
- continue
- set slot loop-number - 1 of {_p}'s current inventory to black glass pane named "&r"
- set slot 44 of {_p}'s current inventory to light green wool named "&aDone"
- on left click on crafting table:
- player is op
- player is sneaking
- cancel event
- set {chatlove} to true
- send "&ePlease enter recipe name (Enter cancel to quit)"
- on inventory click:
- if clicked inventory is player's inventory:
- stop
- if name of player's current inventory contain "%{recipename}%":
- slot 44 of player's current inventory is light green wool named "&aDone"
- if name of clicked item is "&aDone":
- cancel event
- if slot 24 of player's current inventory isn't air:
- if slot 11 and 12 and 13 and 20 and 21 and 22 and 29 and 30 and 30 and 31 of player's current inventory is air:
- close player's inventory
- send "&cPlease set the material item"
- stop
- inv_set_recipe(player)
- else:
- close player's inventory
- send "&cPlease set the resulting recipe"
- stop
- if clicked slot isn't 11 or 12 or 13 or 20 or 21 or 22 or 29 or 30 or 31 or 24 or 44:
- clicked inventory isn't player's inventory
- cancel event
- stop
- function inv_set_recipe(p: player):
- if slot 24 of {_p}'s current inventory is not air:
- if {editing.%{_p}%} is true:
- delete {items.%{recipename}%::*}
- delete {recipes::%{recipename}%}
- set {_editmsg} to true
- send "&9Restart server to delete pre-edit recipe" to {_p}
- loop 45 times:
- if loop-number - 1 is 11 or 12 or 13 or 20 or 21 or 22 or 29 or 30 or 31:
- if slot loop-number - 1 of {_p}'s current inventory is not air:
- add slot loop-number - 1 of {_p}'s current inventory to {items.%{recipename}%::*}
- else:
- add air to {items.%{recipename}%::*}
- register new shaped recipe for slot 24 of {_p}'s current inventory using {items.%{recipename}%::1}, {items.%{recipename}%::2}, {items.%{recipename}%::3}, {items.%{recipename}%::4}, {items.%{recipename}%::5}, {items.%{recipename}%::6}, {items.%{recipename}%::7}, {items.%{recipename}%::8}, {items.%{recipename}%::9}
- set {recipes::%{recipename}%} to slot 24 of {_p}'s current inventory
- close {_p}'s inventory
- if {_editmsg} is true:
- send "&aEdit completed &7(%{recipename}%&f&7)" to {_p}
- stop
- else:
- send "&aRecipe added &7(%{recipename}%&f&7)" to {_p}
- loop {items.%{recipename}%::*}:
- give loop-value to {_p}
- give {recipes::%{recipename}%} to {_p}
- on chat:
- {chatlove} is true
- cancel event
- if message contain "cancel":
- send "&cCancelled"
- delete {chatlove}
- stop
- loop {recipes::*}:
- loop-index is colored message
- send "&cAlready registered"
- delete {chatlove}
- stop
- set {recipename} to colored message
- inv_open_menu(player)
- delete {chatlove}
- #craft recipe check
- on right click on crafting table:
- player is sneaking
- cancel event
- all_recipes(player)
- command /recipes:
- trigger:
- all_recipes(player)
- function all_recipes(p: player):
- open chest with 6 row named "All Recipes" to {_p}
- inv_sort_set({_p})
- set {_slots} to 11
- loop {recipes::*}:
- set {recipes.page.%{_p}%::%loop-index%} to loop-value
- loop {recipes.page.%{_p}%::*}:
- if {_slots} is 43 + 1:
- set slot 53 of {_p}'s current inventory to arrow named "&3Next Page"
- stop
- if {_slots} is 17 or 26 or 35:
- add 3 to {_slots}
- set slot {_slots} of {_p}'s current inventory to loop-value named loop-index
- add 1 to {_slots}
- delete {recipes.page.%{_p}%::%loop-index%}
- on inventory click:
- #Menu back
- if name of player's current inventory contain "%{checking.%player%}%":
- slot 36 of player's current inventory is arrow named "&cBack"
- slot 24 of player's current inventory is not air
- {editing.%player%} isn't true
- cancel event
- if name of clicked item is "&cBack":
- clicked item is arrow
- close player's inventory
- all_recipes(player)
- stop
- if name of player's current inventory contain "All Recipes":
- cancel event
- #Sort program
- if clicked slot is 9:
- clicked item is iron sword
- inv_sort_set(player)
- set {_slots} to 11
- loop {recipes::*}:
- loop-value is sword or bow #Sort
- if {_slots} is 43:
- stop
- if {_slots} is 17 or 26 or 35:
- add 3 to {_slots}
- set slot {_slots} of player's current inventory to loop-value named loop-index
- add 1 to {_slots}
- stop
- if clicked slot is 18:
- clicked item is gold chestplate
- inv_sort_set(player)
- set {_slots} to 11
- loop {recipes::*}:
- loop-value is armor
- if {_slots} is 43:
- stop
- if {_slots} is 17 or 26 or 35:
- add 3 to {_slots}
- set slot {_slots} of player's current inventory to loop-value named loop-index
- add 1 to {_slots}
- stop
- if clicked slot is 27:
- clicked item is diamond hoe
- inv_sort_set(player)
- set {_slots} to 11
- loop {recipes::*}:
- loop-value is axe or pickaxe or hoe or shovel
- if {_slots} is 43 + 1:
- stop
- if {_slots} is 17 or 26 or 35:
- add 3 to {_slots}
- set slot {_slots} of player's current inventory to loop-value named loop-index
- add 1 to {_slots}
- stop
- if clicked slot is 36:
- clicked item is nether star
- inv_sort_set(player)
- set {_slots} to 11
- loop {recipes::*}:
- set {recipes.page.%player%::%loop-index%} to loop-value
- loop {recipes.page.%player%::*}:
- if {_slots} is 43 + 1:
- set slot 53 of player's current inventory to arrow named "&3Next Page"
- stop
- if {_slots} is 17 or 26 or 35:
- add 3 to {_slots}
- set slot {_slots} of player's current inventory to loop-value named loop-index
- add 1 to {_slots}
- stop
- #Next Page program
- if clicked slot is 53:
- name of clicked item contain "Next Page"
- inv_sort_set(player)
- set {_slots} to 11
- loop {recipes.page.%player%::*}:
- if {_slots} is 43 + 1:
- set slot 53 of player's current inventory to arrow named "&3Next Page"
- stop
- if {_slots} is 17 or 26 or 35:
- add 3 to {_slots}
- set slot {_slots} of player's current inventory to loop-value named loop-index
- add 1 to {_slots}
- delete {recipes.page.%player%::%loop-index%}
- stop
- #Recipe check program
- clicked inventory isn't player's inventory
- clicked item is not air
- name of clicked item is not "&r" #stained glass
- name of clicked item is set
- clicked slot is not 9 or 18 or 27 or 36
- close player's inventory
- set {checking.%player%} to name of clicked item
- inv_recipes_check(player, name of clicked item)
- #Edit program
- if slot 36 of player's current inventory is arrow named "&cBack":
- if slot 17 and 35 of player's current inventory is not air:
- if name of clicked item contain "Edit":
- cancel event
- clicked item is lime dye
- set {editing.%player%} to true
- close player's inventory
- inv_recipes_check(player, name of event-inventory)
- if name of slot 44 of player's current inventory contain "Done editing":
- if slot 36 of player's current inventory is arrow named "&cBack":
- if name of clicked item contain "Done editing":
- if slot 24 of player's current inventory isn't air:
- if slot 11 and 12 and 13 and 20 and 21 and 22 and 29 and 30 and 30 and 31 of player's current inventory is air:
- close player's inventory
- send "&cPlease set the material item"
- stop
- set {editing.%player%} to true
- set {_split.recipename::*} to name of event-inventory split at "Edit "
- set {recipename} to "%{_split.recipename::2}%"
- inv_set_recipe(player)
- stop
- else:
- close player's inventory
- send "&cPlease set the resulting recipe"
- stop
- if clicked slot isn't 11 or 12 or 13 or 20 or 21 or 22 or 29 or 30 or 31 or 24 or 44:
- clicked inventory isn't player's inventory
- if clicked slot is 36:
- name of clicked item is "&cBack"
- close player's inventory
- all_recipes(player)
- cancel event
- #delete program
- if slot 36 of player's current inventory is arrow named "&cBack":
- if slot 17 and 35 of player's current inventory is not air:
- if name of clicked item contain "Delete":
- cancel event
- clicked item is red dye
- set {recipe.delete.name} to name of event-inventory
- close player's inventory
- open chest with 1 row named "&cConfirm delete recipe" to player
- set slot 3 of player's current inventory to red wool named "&cCancel"
- set slot 4 of player's current inventory to barrier block named "&6&lRecipe name" with lore "%{recipe.delete.name}%"
- set slot 5 of player's current inventory to light green wool named "&aDelete"
- stop
- if name of player's current inventory contain "Confirm delete recipe":
- cancel event
- if name of clicked item contain "delete":
- clicked item is light green wool
- delete {items.%{recipe.delete.name}%::*}
- delete {recipes::%{recipe.delete.name}%}
- close player's inventory
- send "%{recipe.delete.name}%, &adeleted successfully"
- send "&9Restart server to delete pre-edit recipe" to {_p}
- delete {recipe.delete.name}
- stop
- if name of clicked item contain "cancel":
- send "&cRecipe delete cancelled"
- delete {recipe.delete.name}
- close player's inventory
- stop
- #Edit inv close
- on inventory close:
- name of event-inventory contain "Edit"
- delete {editing.%player%}
- function inv_recipes_check(p: player, name: string):
- if {editing.%{_p}%} is true:
- open chest with 5 row named "Edit %{_name}%" to {_p}
- else:
- open chest with 5 row named "%{_name}%" to {_p}
- set {_itemnum} to 0
- loop 45 times:
- if loop-number - 1 is 11 or 12 or 13 or 20 or 21 or 22 or 29 or 30 or 31:
- add 1 to {_itemnum}
- set slot loop-number - 1 of {_p}'s current inventory to {items.%{_name}%::%{_itemnum}%}
- continue
- set slot loop-number - 1 of {_p}'s current inventory to gray glass pane named "&r"
- set slot 24 of {_p}'s current inventory to {recipes::%{_name}%}
- set slot 36 of {_p}'s current inventory to arrow named "&cBack"
- if {_p} is op:
- {editing.%{_p}%} isn't true
- set slot 17 of {_p}'s current inventory to lime dye named "&aEdit"
- set slot 35 of {_p}'s current inventory to red dye named "&cDelete"
- if {editing.%{_p}%} is true:
- set slot 44 of {_p}'s current inventory to light green wool named "&aDone editing"
- function inv_sort_set(p: player):
- loop 54 times:
- if loop-number - 1 is 9 or 18 or 27 or 36:
- if loop-number - 1 is 9:
- set slot 9 of {_p}'s current inventory to iron sword named "&6&nWeapons"
- if loop-number - 1 is 18:
- set slot 18 of {_p}'s current inventory to golden chestplate named "&9&nArmors"
- if loop-number - 1 is 27:
- set slot 27 of {_p}'s current inventory to diamond hoe named "&3&nTools"
- if loop-number - 1 is 36:
- set slot 36 of {_p}'s current inventory to nether star named "&a&nAll"
- continue
- if loop-number - 1 >= 11:
- if loop-number - 1 <= 43:
- loop-number - 1 is not 17 or 19 or 26 or 28 or 35 or 37
- if slot loop-number - 1 of {_p}'s current inventory is not air:
- set slot loop-number - 1 of {_p}'s current inventory to air
- continue
- set slot loop-number - 1 of {_p}'s current inventory to green glass pane named "&r"
- on Skript start:
- loop {recipes::*}:
- register new shaped recipe for loop-value using {items.%loop-index%::1}, {items.%loop-index%::2}, {items.%loop-index%::3}, {items.%loop-index%::4}, {items.%loop-index%::5}, {items.%loop-index%::6}, {items.%loop-index%::7}, {items.%loop-index%::8}, {items.%loop-index%::9}
- send "Recipe Loaded" to console
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement