nfell2009

CodeGenAPI - V2.4

Dec 6th, 2014
348
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 13.76 KB | None | 0 0
  1. #CodeGenAPI
  2. #By nfell2009
  3.  
  4. options:
  5. P: &8[&aCGA&8]&a # Prefix for all messages
  6. N: &a # Default text colour
  7.  
  8. on script load:
  9. delete {cga.list::*}
  10. add "a" to {cga.list::*}
  11. add "b" to {cga.list::*}
  12. add "c" to {cga.list::*}
  13. add "d" to {cga.list::*}
  14. add "e" to {cga.list::*}
  15. add "f" to {cga.list::*}
  16. add "g" to {cga.list::*}
  17. add "h" to {cga.list::*}
  18. add "i" to {cga.list::*}
  19. add "j" to {cga.list::*}
  20. add "k" to {cga.list::*}
  21. add "l" to {cga.list::*}
  22. add "m" to {cga.list::*}
  23. add "n" to {cga.list::*}
  24. add "o" to {cga.list::*}
  25. add "p" to {cga.list::*}
  26. add "q" to {cga.list::*}
  27. add "r" to {cga.list::*}
  28. add "s" to {cga.list::*}
  29. add "t" to {cga.list::*}
  30. add "u" to {cga.list::*}
  31. add "v" to {cga.list::*}
  32. add "w" to {cga.list::*}
  33. add "x" to {cga.list::*}
  34. add "y" to {cga.list::*}
  35. add "z" to {cga.list::*}
  36. add "1" to {cga.list::*}
  37. add "2" to {cga.list::*}
  38. add "3" to {cga.list::*}
  39. add "4" to {cga.list::*}
  40. add "5" to {cga.list::*}
  41. add "6" to {cga.list::*}
  42. add "7" to {cga.list::*}
  43. add "8" to {cga.list::*}
  44. add "9" to {cga.list::*}
  45. loop {cga.ulist::*}:
  46. add loop-value to {cga.list::*}
  47. set {cga.max} to size of {cga.list::*}
  48.  
  49. command /cgapi [<text>] [<text>]:
  50. permission: codegenapi.usage
  51. trigger:
  52. if arg 1 is not set:
  53. make player execute command "/cgapi help"
  54. else if arg 1 is "api":
  55. if arg 2 is "hooks" or "list":
  56. if size of {cga.apilist.codes::*} is 0:
  57. message "{@P} There are currently no scripts hooked into CodeGenAPI"
  58. else:
  59. loop {cga.apilist.codes::*}:
  60. set {_code} to loop-value
  61. add 1 to {_num}
  62. message "{@P} %{_num}%- %{cga.apilist.names::%{_code}%}% - %{_code}%"
  63. else if arg 1 is "code":
  64. if arg 2 is "stats":
  65. loop {cga.codelist::*}:
  66. set {_first} to loop-value
  67. stop loop
  68. loop {cga.codelist::*}:
  69. add 1 to {_num}
  70. set {_code} to loop-value
  71. set {_code.length} to length of {_code}
  72. set {_first.length} to length of {_first}
  73. if {_code.length} is greater than {_first.length}:
  74. set {_first} to {_code}
  75. message "{@P} CodeGenAPI Code Stats:"
  76. message "{@P} There have been: %{_num}% codes made"
  77. message "{@P} The longest is: %{_first}% with a length of: %length of {_first}%"
  78. message "{@P} There are: %size of {cga.apilist.names::*}% scripts hooked into CodeGenAPI"
  79. message "{@P} Want another stat added? Contact nfell2009 on the Skript Forums"
  80. else if arg 2 is "count":
  81. message "{@P} The size of the codes list is: %size of {cga.codelist::*}%"
  82. else if arg 1 is "add":
  83. if player doesn't have permission "codegenapi.admin":
  84. message "{@P} You don't have permission to do that (Required permission: codegenapi.admin)"
  85. stop
  86. if arg 2 is set:
  87. if {cga.list::*} does not contain arg 2:
  88. set {cga.ulist::%arg 2%} to arg 2
  89. message "{@P} Successfully added: %arg 2% to the list of letters within CodeGenAPI"
  90. message "{@P} CodeGenAPI will now update the list"
  91. add arg 2 to {cga.list::*}
  92. set {cga.max} to size of {cga.list::*}
  93. else if arg 1 is "remove":
  94. if player doesn't have permission "codegenapi.admin":
  95. message "{@P} You don't have permission to do that (Required permission: codegenapi.admin)"
  96. stop
  97. if arg 2 is set:
  98. if {cga.list::*} contains arg 2:
  99. remove arg 2 from {cga.ulist::*}
  100. message "{@P} Successfully removed: %arg 2% from the list of letters within CodeGenAPI"
  101. message "{@P} CodeGenAPI will now update the list"
  102. remove arg 2 from {cga.list::*}
  103. set {cga.max} to size of {cga.list::*}
  104. else if arg 1 is "purge":
  105. if player doesn't have permission "codegenapi.admin":
  106. message "{@P} You don't have permission to do that (Required permission: codegenapi.admin)"
  107. stop
  108. if arg 2 is "hooks" or "list":
  109. message "{@P} This will delete all the hooks that other scripts have done with CodeGenAPI"
  110. message "{@P} This &4&lCANNOT {@N}be undone! You have been warned!"
  111. message "{@P} Performing the deletion will delete:"
  112. message "{@P} - All API keys stored in the CodeGenAPI list"
  113. message "{@P} - The variable that is used to set the key for the script"
  114. message "{@P} Please note that by deleting the API keys may cause scripts not to work correctly as they rely on CodeGenAPI and cannot access it due to not having an API key"
  115. message "{@P} Enter: /cgapi purge confirm - to delete the hooks"
  116. set {cga.%player%.purge} to "hooks"
  117. else if arg 2 is "codes":
  118. message "{@P} This will delete all the codes that other scripts have done with CodeGenAPI"
  119. message "{@P} This &4&lCANNOT {@N}be undone! You have been warned!"
  120. message "{@P} Unfortunately CodeGenAPI cannot delete every variable. This is because CodeGenAPI doesn't track the Unique Identifiers that scripts use"
  121. message "{@P} Please note that by deleting the codes some scripts may not work correctly as they rely on them codes"
  122. message "{@P} Enter: /cgapi purge confirm - to delete the hooks"
  123. set {cga.%player%.purge} to "codes"
  124. else if arg 2 is "confirm":
  125. if {cga.%player%.purge} is "hooks":
  126. loop {cga.apilist.codes::*}:
  127. delete {cga.%{cga.apilist.names::%{_code}%}%}
  128. delete {cga.apilist.codes::*}
  129. delete {cga.apilist.names::*}
  130. message "{@P} Successfully deleted all hooks!"
  131. else if {cga.%player%.purge} is "codes":
  132. delete {cga.codelist::*}
  133. message "{@P} Successfully deleted all codes!"
  134. else:
  135. message "{@P} Help:"
  136. message "{@P} /cgapi api <hooks|list> - Lists all scripts using CodeGenAPI"
  137. message "{@P} /cgapi code stats - Gives stats about CodeGenAPI"
  138. message "{@P} /cgapi code count - Gives the number of codes generated"
  139. message "{@P} /cgapi add <letter> - Adds a letter to the generation list"
  140. message "{@P} /cgapi remove <letter> - Removes a letter from the generation list"
  141. message "{@P} /cgapi purge hooks - Deletes all API keys"
  142. message "{@P} /cgapi purge codes - Deletes all codes"
  143.  
  144. command /codegenapi [<text>] [<text>] [<text>] [<text>] [<text>] [<text>]:
  145. executable by: console
  146. trigger:
  147. if arg 1 is "generate" or "gen" or "g":
  148. if arg 2 is "key" or "k":
  149. if arg 3 is not set:
  150. broadcast "{@P} A Skript just tried to create an API key for CodeGenAPI, however it failed to give its name"
  151. else:
  152. set {_code} to ""
  153. loop 100000000 times:
  154. loop 6 times:
  155. set {_type} to a rounded random integer between 1 and 10
  156. if {_type} is equal to 1 or 3 or 5 or 7 or 9:
  157. set {_rand} to a rounded random integer between 27 and {cga.max}
  158. set {_char} to {cga.list::%{_rand}%}
  159. else:
  160. set {_rand} to a rounded random integer between 1 and 26
  161. set {_char} to {cga.list::%{_rand}%}
  162. set {_code} to "%{_code}%%{_char}%"
  163. if {cga.codelist::%{_code}%} is not set:
  164. set {cga.codelist::%{_code}%} to {_code}
  165. set {cga.apilist.names::%{_code}%} to arg 3
  166. set {cga.apilist.codes::%{_code}%} to {_code}
  167. set {cga.%arg 3%.code} to {_code}
  168. exit
  169. else if arg 2 is "code" or "c":
  170. set {_key} to arg 3
  171. if arg 3 is not set:
  172. broadcast "{@P} A Skript tried to generate a code with CodeGenAPI, but failed to supply its API Key"
  173. else if {cga.codelist::%{_key}%} is not set:
  174. broadcast "{@P} A Skript tried to generate a code with CodeGenAPI, but the API Key given doesn't exist"
  175. else if {cga.codelist::%{_key}%} is set:
  176. set {_code} to ""
  177. if arg 4 is set:
  178. if arg 5 is not set:
  179. loop 100000000 times:
  180. loop 6 times:
  181. set {_type} to a rounded random integer between 1 and 10
  182. if {_type} is equal to 1 or 3 or 5 or 7 or 9:
  183. set {_rand} to a rounded random integer between 27 and {cga.max}
  184. set {_char} to {cga.list::%{_rand}%}
  185. else:
  186. set {_rand} to a rounded random integer between 1 and 26
  187. set {_char} to {cga.list::%{_rand}%}
  188. set {_code} to "%{_code}%%{_char}%"
  189. if {cga.codelist::%{_code}%} is not set:
  190. set {cga.codelist::%{_code}%} to {_code}
  191. set {cga.%arg 3%.%arg 4%.code} to {_code}
  192. exit
  193. else:
  194. set {_times} to arg 5 parsed as integer
  195. loop 100000000 times:
  196. loop {_times} times:
  197. set {_type} to a rounded random integer between 1 and 10
  198. if {_type} is equal to 1 or 3 or 5 or 7 or 9:
  199. set {_rand} to a rounded random integer between 27 and {cga.max}
  200. set {_char} to {cga.list::%{_rand}%}
  201. else:
  202. set {_rand} to a rounded random integer between 1 and 26
  203. set {_char} to {cga.list::%{_rand}%}
  204. set {_code} to "%{_code}%%{_char}%"
  205. if {cga.codelist::%{_code}%} is not set:
  206. set {cga.codelist::%{_code}%} to {_code}
  207. set {cga.%arg 3%.%arg 4%.code} to {_code}
  208. exit
  209. else:
  210. broadcast "{@P} A Skript tried to generate a code with CodeGenAPI, but failed to give a unique identifier"
  211. else:
  212. set {_code} to "&c[ERROR] CodeGenAPI failed to get the API key so couldn't create a code..."
  213. else if arg 2 is "lc" or "longcode":
  214. set {_key} to arg 3
  215. if arg 3 is not set:
  216. broadcast "{@P} A Skript tried to generate a code with CodeGenAPI, but failed to supply its API Key"
  217. else if {cga.codelist::%{_key}%} is not set:
  218. broadcast "{@P} A Skript tried to generate a code with CodeGenAPI, but the API Key given doesn't exist"
  219. else if {cga.codelist::%{_key}%} is set:
  220. set {_code} to ""
  221. if arg 4 is set:
  222. if arg 5 is set:
  223. if arg 6 is set:
  224. set {_key} to arg 3
  225. set {_ui} to arg 4
  226. set {_no} to arg 5 parsed as integer
  227. set {_len} to arg 6 parsed as integer
  228. loop {_no} times:
  229. add 1 to {_numm}
  230. set {_code.%{_numm}%} to ""
  231. loop 100000000 times:
  232. loop {_no} times:
  233. add 1 to {_num}
  234. loop {_len} times:
  235. set {_type} to a rounded random integer between 1 and 10
  236. if {_type} is equal to 1 or 3 or 5 or 7 or 9:
  237. set {_rand} to a rounded random integer between 27 and {cga.max}
  238. set {_char} to {cga.list::%{_rand}%}
  239. else:
  240. set {_rand} to a rounded random integer between 1 and 26
  241. set {_char} to {cga.list::%{_rand}%}
  242. set {_code.%{_num}%} to "%{_code.%{_num}%}%%{_char}%"
  243. broadcast "%{_code.%{_num}%}%"
  244. loop {_no} times:
  245. add 1 to {_count}
  246. if {_fcode} is not set:
  247. set {_fcode} to "%{_code.%{_count}%}%"
  248. else:
  249. set {_fcode} to "%{_fcode}%-%{_code.%{_count}%}%"
  250. broadcast "%{_fcode}%"
  251. if {cga.codelist::%{_fcode}%} is not set:
  252. set {cga.codelist::%{_fcode}%} to {_fcode}
  253. set {cga.%{_key}%.%{_ui}%.code} to {_fcode}
  254. stop
  255. else:
  256. set {_key} to arg 3
  257. set {_ui} to arg 4
  258. set {_no} to arg 5 parsed as integer
  259. loop {_no} times:
  260. add 1 to {_numm}
  261. set {_code.%{_numm}%} to ""
  262. loop 100000000 times:
  263. loop {_no} times:
  264. loop 4 times:
  265. add 1 to {_num}
  266. set {_type} to a rounded random integer between 1 and 10
  267. if {_type} is equal to 1 or 3 or 5 or 7 or 9:
  268. set {_rand} to a rounded random integer between 27 and {cga.max}
  269. set {_char} to {cga.list::%{_rand}%}
  270. else:
  271. set {_rand} to a rounded random integer between 1 and 26
  272. set {_char} to {cga.list::%{_rand}%}
  273. set {_code.%{_num}%} to "%{_code}%%{_char}%"
  274. loop {_num} times:
  275. add 1 to {_count}
  276. set {_fcode} to "%{_fcode}%-%{_code.%{_count}%}%"
  277. if {cga.codelist::%{_fcode}%} is not set:
  278. set {cga.codelist::%{_fcode}%} to {_fcode}
  279. set {cga.%{_key}%.%{_ui}%.code} to {_fcode}
  280. stop
  281. else:
  282. broadcast "{@P} A script attempted to make a Long Code but didn't specify a length"
  283. else:
  284. broadcast "{@P} A Skript tried to generate a code with CodeGenAPI, but failed to give a unique identifier"
  285. else:
  286. set {_code} to "&c[ERROR] CodeGenAPI failed to get the API key so couldn't create a code..."
  287. else if arg 2 is "s" or "scramble":
  288. set {_key} to arg 3
  289. if arg 3 is not set:
  290. broadcast "{@P} A Skript tried to generate a code with CodeGenAPI, but failed to supply its API Key"
  291. else if {cga.codelist::%{_key}%} is not set:
  292. broadcast "{@P} A Skript tried to generate a code with CodeGenAPI, but the API Key given doesn't exist"
  293. else if {cga.codelist::%{_key}%} is set:
  294. if arg 4 is set:
  295. if arg 5 is set:
  296. if arg 6 is not set:
  297. set {_code} to ""
  298. set {_in} to arg 5
  299. set {_l} to length of {_in}
  300. loop {_l} times:
  301. add 1 to {_char}
  302. set {_le} to subtext of {_in} from characters {_char} to {_char}
  303. add {_le} to {_mixed::*}
  304. loop {_l} times:
  305. set {_letter} to random element out of {_mixed::*}
  306. set {_code} to "%{_code}%%{_letter}%"
  307. remove {_letter} from {_mixed::*}
  308. set {cga.%arg 3%.%arg 4%.code} to {_code}
  309. else:
  310. set {_scrambles} to arg 6 parsed as integer
  311. set {_code} to ""
  312. set {_in} to arg 5
  313. set {_l} to length of {_in}
  314. loop {_scrambles} times:
  315. set {_char} to 0
  316. set {_code} to ""
  317. loop {_l} times:
  318. add 1 to {_char}
  319. set {_le} to subtext of {_in} from characters {_char} to {_char}
  320. add {_le} to {_mixed::*}
  321. loop {_l} times:
  322. set {_letter} to random element out of {_mixed::*}
  323. set {_code} to "%{_code}%%{_letter}%"
  324. remove {_letter} from {_mixed::*}
  325. set {_le} to {_code}
  326. set {cga.%arg 3%.%arg 4%.code} to {_code}
Advertisement
Add Comment
Please, Sign In to add comment