Advertisement
Guest User

Untitled

a guest
Nov 20th, 2019
138
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 14.71 KB | None | 0 0
  1. #Help /customrecipe
  2.  
  3. command /customrecipe [<text>] [<text>]:
  4. aliases: cr, originalrecipe, or
  5. permission: admin
  6. trigger:
  7. if arg 1 is not set:
  8. send "&6-------Custom recipe------"
  9. send "&b/cr (create/make) (""Recipename"")"
  10. send "&b/cr (list) or /recipes"
  11. stop
  12. if arg 1 and arg 2 is set:
  13. if arg 1 is "create" or "make":
  14. loop {recipes::*}:
  15. loop-index is colored arg 2
  16. send "&cAlready registered"
  17. stop
  18. set {recipename} to colored arg 2
  19. inv_open_menu(player)
  20. stop
  21. if arg 1 is "list":
  22. all_recipes(player)
  23. stop
  24. else:
  25. send "&6-------Custom recipe------"
  26. send "&b/cr (create/make) (""Recipename"")"
  27. send "&b/cr (list) or /recipes"
  28. stop
  29.  
  30.  
  31. function inv_open_menu(p: player): #recipe make menu
  32. open chest with 5 row named "%{recipename}%" to {_p}
  33. loop 45 times:
  34. if loop-number - 1 is 11 or 12 or 13 or 20 or 21 or 22 or 29 or 30 or 31 or 24:
  35. continue
  36. set slot loop-number - 1 of {_p}'s current inventory to black glass pane named "&r"
  37. set slot 44 of {_p}'s current inventory to light green wool named "&aDone"
  38.  
  39. on left click on crafting table:
  40. player is op
  41. player is sneaking
  42. cancel event
  43. set {chatlove} to true
  44. send "&ePlease enter recipe name (Enter cancel to quit)"
  45.  
  46. on inventory click:
  47. if clicked inventory is player's inventory:
  48. stop
  49. if name of player's current inventory contain "%{recipename}%":
  50. slot 44 of player's current inventory is light green wool named "&aDone"
  51. if name of clicked item is "&aDone":
  52. cancel event
  53. if slot 24 of player's current inventory isn't air:
  54. 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:
  55. close player's inventory
  56. send "&cPlease set the material item"
  57. stop
  58. inv_set_recipe(player)
  59. else:
  60. close player's inventory
  61. send "&cPlease set the resulting recipe"
  62. stop
  63. 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:
  64. clicked inventory isn't player's inventory
  65. cancel event
  66. stop
  67.  
  68. function inv_set_recipe(p: player):
  69. if slot 24 of {_p}'s current inventory is not air:
  70. if {editing.%{_p}%} is true:
  71. delete {items.%{recipename}%::*}
  72. delete {recipes::%{recipename}%}
  73. set {_editmsg} to true
  74. send "&9Restart server to delete pre-edit recipe" to {_p}
  75. loop 45 times:
  76. if loop-number - 1 is 11 or 12 or 13 or 20 or 21 or 22 or 29 or 30 or 31:
  77. if slot loop-number - 1 of {_p}'s current inventory is not air:
  78. add slot loop-number - 1 of {_p}'s current inventory to {items.%{recipename}%::*}
  79. else:
  80. add air to {items.%{recipename}%::*}
  81. 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}
  82. set {recipes::%{recipename}%} to slot 24 of {_p}'s current inventory
  83. close {_p}'s inventory
  84. if {_editmsg} is true:
  85. send "&aEdit completed &7(%{recipename}%&f&7)" to {_p}
  86. stop
  87. else:
  88. send "&aRecipe added &7(%{recipename}%&f&7)" to {_p}
  89. loop {items.%{recipename}%::*}:
  90. give loop-value to {_p}
  91. give {recipes::%{recipename}%} to {_p}
  92.  
  93. on chat:
  94. {chatlove} is true
  95. cancel event
  96. if message contain "cancel":
  97. send "&cCancelled"
  98. delete {chatlove}
  99. stop
  100. loop {recipes::*}:
  101. loop-index is colored message
  102. send "&cAlready registered"
  103. delete {chatlove}
  104. stop
  105. set {recipename} to colored message
  106. inv_open_menu(player)
  107. delete {chatlove}
  108.  
  109. #craft recipe check
  110. on right click on crafting table:
  111. player is sneaking
  112. cancel event
  113. all_recipes(player)
  114.  
  115. command /recipes:
  116. trigger:
  117. all_recipes(player)
  118.  
  119. function all_recipes(p: player):
  120. open chest with 6 row named "All Recipes" to {_p}
  121. inv_sort_set({_p})
  122. set {_slots} to 11
  123. loop {recipes::*}:
  124. set {recipes.page.%{_p}%::%loop-index%} to loop-value
  125. loop {recipes.page.%{_p}%::*}:
  126. if {_slots} is 43 + 1:
  127. set slot 53 of {_p}'s current inventory to arrow named "&3Next Page"
  128. stop
  129. if {_slots} is 17 or 26 or 35:
  130. add 3 to {_slots}
  131. set slot {_slots} of {_p}'s current inventory to loop-value named loop-index
  132. add 1 to {_slots}
  133. delete {recipes.page.%{_p}%::%loop-index%}
  134.  
  135. on inventory click:
  136. #Menu back
  137. if name of player's current inventory contain "%{checking.%player%}%":
  138. slot 36 of player's current inventory is arrow named "&cBack"
  139. slot 24 of player's current inventory is not air
  140. {editing.%player%} isn't true
  141. cancel event
  142. if name of clicked item is "&cBack":
  143. clicked item is arrow
  144. close player's inventory
  145. all_recipes(player)
  146. stop
  147. if name of player's current inventory contain "All Recipes":
  148. cancel event
  149. #Sort program
  150. if clicked slot is 9:
  151. clicked item is iron sword
  152. inv_sort_set(player)
  153. set {_slots} to 11
  154. loop {recipes::*}:
  155. loop-value is sword or bow #Sort
  156. if {_slots} is 43:
  157. stop
  158. if {_slots} is 17 or 26 or 35:
  159. add 3 to {_slots}
  160. set slot {_slots} of player's current inventory to loop-value named loop-index
  161. add 1 to {_slots}
  162. stop
  163. if clicked slot is 18:
  164. clicked item is gold chestplate
  165. inv_sort_set(player)
  166. set {_slots} to 11
  167. loop {recipes::*}:
  168. loop-value is armor
  169. if {_slots} is 43:
  170. stop
  171. if {_slots} is 17 or 26 or 35:
  172. add 3 to {_slots}
  173. set slot {_slots} of player's current inventory to loop-value named loop-index
  174. add 1 to {_slots}
  175. stop
  176. if clicked slot is 27:
  177. clicked item is diamond hoe
  178. inv_sort_set(player)
  179. set {_slots} to 11
  180. loop {recipes::*}:
  181. loop-value is axe or pickaxe or hoe or shovel
  182. if {_slots} is 43 + 1:
  183. stop
  184. if {_slots} is 17 or 26 or 35:
  185. add 3 to {_slots}
  186. set slot {_slots} of player's current inventory to loop-value named loop-index
  187. add 1 to {_slots}
  188. stop
  189. if clicked slot is 36:
  190. clicked item is nether star
  191. inv_sort_set(player)
  192. set {_slots} to 11
  193. loop {recipes::*}:
  194. set {recipes.page.%player%::%loop-index%} to loop-value
  195. loop {recipes.page.%player%::*}:
  196. if {_slots} is 43 + 1:
  197. set slot 53 of player's current inventory to arrow named "&3Next Page"
  198. stop
  199. if {_slots} is 17 or 26 or 35:
  200. add 3 to {_slots}
  201. set slot {_slots} of player's current inventory to loop-value named loop-index
  202. add 1 to {_slots}
  203. stop
  204. #Next Page program
  205. if clicked slot is 53:
  206. name of clicked item contain "Next Page"
  207. inv_sort_set(player)
  208. set {_slots} to 11
  209. loop {recipes.page.%player%::*}:
  210. if {_slots} is 43 + 1:
  211. set slot 53 of player's current inventory to arrow named "&3Next Page"
  212. stop
  213. if {_slots} is 17 or 26 or 35:
  214. add 3 to {_slots}
  215. set slot {_slots} of player's current inventory to loop-value named loop-index
  216. add 1 to {_slots}
  217. delete {recipes.page.%player%::%loop-index%}
  218. stop
  219. #Recipe check program
  220. clicked inventory isn't player's inventory
  221. clicked item is not air
  222. name of clicked item is not "&r" #stained glass
  223. name of clicked item is set
  224. clicked slot is not 9 or 18 or 27 or 36
  225. close player's inventory
  226. set {checking.%player%} to name of clicked item
  227. inv_recipes_check(player, name of clicked item)
  228. #Edit program
  229. if slot 36 of player's current inventory is arrow named "&cBack":
  230. if slot 17 and 35 of player's current inventory is not air:
  231. if name of clicked item contain "Edit":
  232. cancel event
  233. clicked item is lime dye
  234. set {editing.%player%} to true
  235. close player's inventory
  236. inv_recipes_check(player, name of event-inventory)
  237. if name of slot 44 of player's current inventory contain "Done editing":
  238. if slot 36 of player's current inventory is arrow named "&cBack":
  239. if name of clicked item contain "Done editing":
  240. if slot 24 of player's current inventory isn't air:
  241. 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:
  242. close player's inventory
  243. send "&cPlease set the material item"
  244. stop
  245. set {editing.%player%} to true
  246. set {_split.recipename::*} to name of event-inventory split at "Edit "
  247. set {recipename} to "%{_split.recipename::2}%"
  248. inv_set_recipe(player)
  249. stop
  250. else:
  251. close player's inventory
  252. send "&cPlease set the resulting recipe"
  253. stop
  254. 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:
  255. clicked inventory isn't player's inventory
  256. if clicked slot is 36:
  257. name of clicked item is "&cBack"
  258. close player's inventory
  259. all_recipes(player)
  260. cancel event
  261. #delete program
  262. if slot 36 of player's current inventory is arrow named "&cBack":
  263. if slot 17 and 35 of player's current inventory is not air:
  264. if name of clicked item contain "Delete":
  265. cancel event
  266. clicked item is red dye
  267. set {recipe.delete.name} to name of event-inventory
  268. close player's inventory
  269. open chest with 1 row named "&cConfirm delete recipe" to player
  270. set slot 3 of player's current inventory to red wool named "&cCancel"
  271. set slot 4 of player's current inventory to barrier block named "&6&lRecipe name" with lore "%{recipe.delete.name}%"
  272. set slot 5 of player's current inventory to light green wool named "&aDelete"
  273. stop
  274. if name of player's current inventory contain "Confirm delete recipe":
  275. cancel event
  276. if name of clicked item contain "delete":
  277. clicked item is light green wool
  278. delete {items.%{recipe.delete.name}%::*}
  279. delete {recipes::%{recipe.delete.name}%}
  280. close player's inventory
  281. send "%{recipe.delete.name}%, &adeleted successfully"
  282. send "&9Restart server to delete pre-edit recipe" to {_p}
  283. delete {recipe.delete.name}
  284. stop
  285. if name of clicked item contain "cancel":
  286. send "&cRecipe delete cancelled"
  287. delete {recipe.delete.name}
  288. close player's inventory
  289. stop
  290.  
  291. #Edit inv close
  292. on inventory close:
  293. name of event-inventory contain "Edit"
  294. delete {editing.%player%}
  295.  
  296. function inv_recipes_check(p: player, name: string):
  297. if {editing.%{_p}%} is true:
  298. open chest with 5 row named "Edit %{_name}%" to {_p}
  299. else:
  300. open chest with 5 row named "%{_name}%" to {_p}
  301. set {_itemnum} to 0
  302. loop 45 times:
  303. if loop-number - 1 is 11 or 12 or 13 or 20 or 21 or 22 or 29 or 30 or 31:
  304. add 1 to {_itemnum}
  305. set slot loop-number - 1 of {_p}'s current inventory to {items.%{_name}%::%{_itemnum}%}
  306. continue
  307. set slot loop-number - 1 of {_p}'s current inventory to gray glass pane named "&r"
  308. set slot 24 of {_p}'s current inventory to {recipes::%{_name}%}
  309. set slot 36 of {_p}'s current inventory to arrow named "&cBack"
  310. if {_p} is op:
  311. {editing.%{_p}%} isn't true
  312. set slot 17 of {_p}'s current inventory to lime dye named "&aEdit"
  313. set slot 35 of {_p}'s current inventory to red dye named "&cDelete"
  314. if {editing.%{_p}%} is true:
  315. set slot 44 of {_p}'s current inventory to light green wool named "&aDone editing"
  316.  
  317. function inv_sort_set(p: player):
  318. loop 54 times:
  319. if loop-number - 1 is 9 or 18 or 27 or 36:
  320. if loop-number - 1 is 9:
  321. set slot 9 of {_p}'s current inventory to iron sword named "&6&nWeapons"
  322. if loop-number - 1 is 18:
  323. set slot 18 of {_p}'s current inventory to golden chestplate named "&9&nArmors"
  324. if loop-number - 1 is 27:
  325. set slot 27 of {_p}'s current inventory to diamond hoe named "&3&nTools"
  326. if loop-number - 1 is 36:
  327. set slot 36 of {_p}'s current inventory to nether star named "&a&nAll"
  328. continue
  329. if loop-number - 1 >= 11:
  330. if loop-number - 1 <= 43:
  331. loop-number - 1 is not 17 or 19 or 26 or 28 or 35 or 37
  332. if slot loop-number - 1 of {_p}'s current inventory is not air:
  333. set slot loop-number - 1 of {_p}'s current inventory to air
  334. continue
  335. set slot loop-number - 1 of {_p}'s current inventory to green glass pane named "&r"
  336.  
  337. on Skript start:
  338. loop {recipes::*}:
  339. 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}
  340. send "Recipe Loaded" to console
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement