Advertisement
Guest User

Untitled

a guest
Dec 13th, 2019
156
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 7.91 KB | None | 0 0
  1. options:
  2. prefix: &3&lSKYBLOCK
  3.  
  4. command /shop [<text>]:
  5. trigger:
  6. open virtual chest inventory with size 3 named "&3Shop" for player
  7. format gui slot 10 of player with grass block named "&7Building Blocks" to run function shop(player, "Building")
  8. format gui slot 11 of player with redstone dust named "&7Redstone" to run function shop(player, "Redstone")
  9. format gui slot 12 of player with rotten flesh named "&7Mob Drops" to run function shop(player, "Drops")
  10. format gui slot 13 of player with wheat named "&7Farming Supplies" to run function shop(player, "Farming")
  11. format gui slot 14 of player with barrier named "&cComing Soon!"
  12. format gui slot 15 of player with barrier named "&cComing Soon!"
  13.  
  14. function shop(p: player, s: text, page: number=1):
  15. open virtual chest inventory with size 6 named "&3%{_s}% &7($%convertNum({bal::%{_p}%})%)" for {_p}
  16. set {_n} to 0
  17. set {_tPage} to {_page} - 1
  18. set {_tPage-2} to 45*{_p3}
  19. set {_uuid} to uuid of {_p2}
  20. loop {shop::%{_s}%::*}:
  21. if (loop-index parsed as integer) > {_tPage-2}:
  22. set {_s::*} to loop-value split at " - "
  23. set {_i} to "%first element out of {_s::*}%" parsed as item
  24. set {_van::*} to vanilla name of {_i}
  25. set {_van} to first element out of {_van::*}
  26. replace all "minecraft:" in {_van} with ""
  27. replace all "_" in {_van} with " "
  28. set {_price} to "%2nd element out of {_s::*}%" parsed as number
  29. set {_i::*} to ("%{_van}%") split at " "
  30. loop {_i::*}:
  31. if {_name} is not set:
  32. set {_name} to cap(loop-value-2)
  33. else:
  34. set {_name} to "%{_name}% %cap(loop-value-2)%"
  35. format gui slot {_n} of {_p} with {_i} named "&b%{_name}%" lored "&8(&3!&8) &7Price: &b$%convertNum({_price})%" to run function buyitem({_p}, {_i}, {_price}, {_name})
  36. delete {_name}
  37. add 1 to {_n}
  38. if size of {shop::%{_s}%::*} > (45*{_page}):
  39. format gui slot 53 of {_p} with paper named "&8(&3!&8) &7Next Page" to run:
  40. shop({_p}, {-s}, {_page} + 1)
  41. if {_page} > 1:
  42. format gui slot 45 of {_p} with paper named "&8(&3!&8) &7Previous Page" to run:
  43. shop({_p}, {-s}, {_page} - 1)
  44.  
  45. command /additem [<text>] [<number>]:
  46. permission: *
  47. permission message: &cno
  48. trigger:
  49. if arg-1 is not set:
  50. send "{@prefix} &8-- &7Categories: &bBuilding, Redstone, Farming, Drops"
  51. else if arg-1 is not set:
  52. send "{@prefix} &8-- &7You need a price... are you okay?"
  53. else if player's tool is not air:
  54. if arg-1 is "building" or "farming" or "redstone" or "Drops":
  55. set {_v} to "%vanilla name of tool%"
  56. replace all "minecraft:" in {_v} with ""
  57. replace all "_" in {_v} with " "
  58. send "{@prefix} &8-- &7Added &b%{_v}% &7to &b%arg-1% &7for &b$%arg-2%&7!"
  59. add "%player's tool% - %arg-2%" to {shop::%arg-1%::*}
  60. else:
  61. send "{@prefix} &8-- &7Invalid category."
  62. else:
  63. send "{@prefix} &8-- &7Please hold the item you want to add."
  64.  
  65. command /delitem [<text>] [<text>]:
  66. permission: op
  67. permission message: &cno
  68. trigger:
  69. if arg-1 is not "building" or "farming" or "redstone" or "drops":
  70. send "{@prefix} &8-- &7Categories: &bBuilding, Redstone, Farming, Drops"
  71. else if arg-1 is not set:
  72. send "{@prefix} &8-- &7Choose an item."
  73. else if {shop::%arg-1%::*} does not contain arg-2:
  74. send "{@prefix} &8- &7ITEMS IN SHOP:"
  75. loop {shop::%arg-1%::*}:
  76. send "&8- &b%loop-value%"
  77. else:
  78. remove arg-2 from {shop::%arg-1%::*}
  79. send "{@prefix} &8- &7Removed the item from shop."
  80.  
  81. function buyitem(p: player, i: item, price: number, name: text):
  82. if {bal::%{_p}%} >= {_price}:
  83. if {_p} has enough space for {_i}:
  84. give {_p} {_i}
  85. subtract {_price} from {bal::%{_p}%}
  86. send "{@prefix} &8- &7You bought &b%{_name}% &7for &b$%convertNum({_price})%&7!" to {_p}
  87. else:
  88. send "{@prefix} &8- &7You don't have enough inventory space!" to {_p}
  89. else:
  90. send "{@prefix} &8- &7You're too broke to do that!" to {_p}
  91.  
  92. command /addsell [<number>]:
  93. permission: op
  94. permission message: &cno
  95. trigger:
  96. if arg-1 is not set:
  97. send "{@prefix} &8- &7Invalid price."
  98. else if player's tool is air:
  99. send "{@prefix} &8- &7Choose an item."
  100. else:
  101. add "%player's tool% - %arg-1%" to {sell::*}
  102. send "{@prefix} &8- &7Added your held item to /sell."
  103.  
  104. command /delsell [<text>]:
  105. permission: op
  106. permission message: &cno
  107. trigger:
  108. if arg-1 is not set:
  109. send "{@prefix} &8- &7Choose an item."
  110. else:
  111. if {sell::*} does not contain arg-1:
  112. send "{@prefix} &8- &7ITEMS IN /SELL:"
  113. loop {sell::*}:
  114. send "&8- &b%loop-value%"
  115. else:
  116. remove arg-1 from {sell::*}
  117. send "{@prefix} &8- &7Removed the item from /sell."
  118.  
  119. command /sell [<text>]:
  120. trigger:
  121. open virtual chest inventory with size 6 named "&3Sell Items &7($%convertNum({bal::%player%})%)" for player
  122. set {_n} to 0
  123. loop {sell::*}:
  124. set {_s::*} to loop-value split at " - "
  125. set {_i} to "%first element out of {_s::*}%" parsed as item
  126. set {_price} to "%2nd element out of {_s::*}%" parsed as number
  127. set {_van::*} to vanilla name of {_i}
  128. set {_van} to first element out of {_van::*}
  129. replace all "minecraft:" in {_van} with ""
  130. replace all "_" in {_van} with " "
  131. set {_i::*} to ("%{_van}%") split at " "
  132. loop {_i::*}:
  133. if {_name} is not set:
  134. set {_name} to cap(loop-value-2)
  135. else:
  136. set {_name} to "%{_name}% %cap(loop-value-2)%"
  137. format gui slot {_n} of player with {_i} named "&b%{_name}%" lored "&8(&3!&8) &7Price: &b$%convertNum({_price})%" to run function sellitem(player, {_i}, {_price}, {_name})
  138. delete {_name}
  139. add 1 to {_n}
  140.  
  141.  
  142. function sellitem(p: player, i: item, price: number, name: text):
  143. set {_num} to amount of {_i} in {_p}'s inventory
  144. if {_num} > 0:
  145. remove {_num} of {_i} from {_p}'s inventory
  146. add {_price}*{_num} to {bal::%{_p}%}
  147. send "{@prefix} &8- &7You sold &b%{_name}% &7for &b$%convertNum({_price}*{_num})%&7!" to {_p}
  148. else:
  149. send "{@prefix} &8- &7You don't have any &b%{_i}% &7to sell!" to {_p}
  150.  
  151. on inventory close:
  152. custom name of event-inventory contains "&7($":
  153. wait 1 tick
  154. player command "/shop"
  155.  
  156.  
  157. on script load:
  158. set {_letters} to "Aa Bb Cc Dd Ee Ff Gg Hh Ii Jj Kk Ll Mm Nn Oo Pp Qq Rr Ss Tt Uu Vv Ww Xx Yy Zz"
  159. set {_letter-pairs::*} to {_letters} split at " "
  160. loop {_letter-pairs::*}:
  161. set {_pair::*} to loop-value split at ""
  162. set {_uppercase} to {_pair::1}
  163. set {_lowercase} to {_pair::2}
  164. set {letters::uppercase::%{_lowercase}%} to {_uppercase}
  165. set {letters::lowercase::%{_uppercase}%} to {_lowercase}
  166.  
  167. on script unload:
  168. delete {letters::*}
  169.  
  170. function cap(text: text) :: text:
  171. set {_char} to the first character of {_text}
  172. set {_char} to {letters::uppercase::%{_char}%}
  173. set {_remaining} to ""
  174. set {_remaining} to the last (length of {_text} - 1) characters of {_text}
  175. return "%{_char}%%{_remaining}%"
  176.  
  177. function convertNum(n: number) :: text:
  178. set {_n} to "%{_n}%"
  179. set {_n} to regex replace "(?<=\d)(?=(\d{3})+(?!\d))" with "," in {_n}
  180. return {_n}
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement