Advertisement
siso_

custom recipe

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