priyanshbot12 1.0.2

Sign up to get free protection for your applications and to get access to all the features.
Files changed (723) hide show
  1. package/.Dockerignore +4 -0
  2. package/.dockerignore +4 -0
  3. package/.github/workflows/publish.yml +20 -0
  4. package/Dockerfile +5 -0
  5. package/Priyansh.js +601 -0
  6. package/appcap.json +0 -0
  7. package/appstate.json +263 -0
  8. package/config.json +231 -0
  9. package/includes/antist.sqlite +0 -0
  10. package/includes/controllers/currencies.js +100 -0
  11. package/includes/controllers/threads.js +89 -0
  12. package/includes/controllers/users.js +96 -0
  13. package/includes/database/index.js +41 -0
  14. package/includes/database/model.js +22 -0
  15. package/includes/database/models/currencies.js +26 -0
  16. package/includes/database/models/threads.js +21 -0
  17. package/includes/database/models/users.js +21 -0
  18. package/includes/handle/handleCommand.js +140 -0
  19. package/includes/handle/handleCommandEvent.js +43 -0
  20. package/includes/handle/handleCreateDatabase.js +62 -0
  21. package/includes/handle/handleEvent.js +37 -0
  22. package/includes/handle/handleNotification.js +47 -0
  23. package/includes/handle/handleReaction.js +44 -0
  24. package/includes/handle/handleRefresh.js +66 -0
  25. package/includes/handle/handleReply.js +44 -0
  26. package/includes/listen.js +307 -0
  27. package/index.js +93 -0
  28. package/languages/en.lang +103 -0
  29. package/languages/vi.lang +104 -0
  30. package/lol.json +4001 -0
  31. package/modChangeColorFca.js +78 -0
  32. package/modules/commands/0tom.js +25 -0
  33. package/modules/commands/6packs.js +142 -0
  34. package/modules/commands/Bio.js +18 -0
  35. package/modules/commands/Getavtfb.js +59 -0
  36. package/modules/commands/Google.js +77 -0
  37. package/modules/commands/Obama.js +74 -0
  38. package/modules/commands/Onbot.js +5 -0
  39. package/modules/commands/Priyanshu/approvedThreads.json +151 -0
  40. package/modules/commands/Priyanshu/pendingdThreads.json +1 -0
  41. package/modules/commands/Rank.js +201 -0
  42. package/modules/commands/Rushi.js +30 -0
  43. package/modules/commands/Simpson.js +76 -0
  44. package/modules/commands/Troll.json +26 -0
  45. package/modules/commands/Trump.js +76 -0
  46. package/modules/commands/Vonglap.js +24 -0
  47. package/modules/commands/Work-beta.js +113 -0
  48. package/modules/commands/aah-xsound.js +26 -0
  49. package/modules/commands/accept_fri.js +111 -0
  50. package/modules/commands/adc.js +106 -0
  51. package/modules/commands/adden.js +83 -0
  52. package/modules/commands/adduser.js +52 -0
  53. package/modules/commands/admin.js +254 -0
  54. package/modules/commands/ai.js +97 -0
  55. package/modules/commands/ai1.js +39 -0
  56. package/modules/commands/alert.js +1 -0
  57. package/modules/commands/allbox.js +194 -0
  58. package/modules/commands/alllin.js +85 -0
  59. package/modules/commands/altar.js +56 -0
  60. package/modules/commands/amogus.js +26 -0
  61. package/modules/commands/anifact.js +33 -0
  62. package/modules/commands/animalear.js +26 -0
  63. package/modules/commands/animeimg.js +25 -0
  64. package/modules/commands/animescrape.js +101 -0
  65. package/modules/commands/antichange.js +237 -0
  66. package/modules/commands/antijoin.js +22 -0
  67. package/modules/commands/antiout.js +22 -0
  68. package/modules/commands/antirobbery.js +22 -0
  69. package/modules/commands/approve.js +139 -0
  70. package/modules/commands/appstate.js +30 -0
  71. package/modules/commands/ara.js +28 -0
  72. package/modules/commands/art.js +39 -0
  73. package/modules/commands/astalk.json +85 -0
  74. package/modules/commands/autoban.js +45 -0
  75. package/modules/commands/automention.js +17 -0
  76. package/modules/commands/autoreact.js +62 -0
  77. package/modules/commands/autoreset.js +40 -0
  78. package/modules/commands/autoseen.js +1 -0
  79. package/modules/commands/autosetname.js +52 -0
  80. package/modules/commands/avatar.js +32 -0
  81. package/modules/commands/avt.js +76 -0
  82. package/modules/commands/award.js +84 -0
  83. package/modules/commands/ayaka.js +134 -0
  84. package/modules/commands/baicao.js +166 -0
  85. package/modules/commands/balance.js +42 -0
  86. package/modules/commands/ban.js +220 -0
  87. package/modules/commands/banking.js +132 -0
  88. package/modules/commands/banner.js +93 -0
  89. package/modules/commands/banner2.js +237 -0
  90. package/modules/commands/banner3.js +510 -0
  91. package/modules/commands/bard.js +59 -0
  92. package/modules/commands/batmanslap.js +79 -0
  93. package/modules/commands/baybayin.js +18 -0
  94. package/modules/commands/bbm.js +84 -0
  95. package/modules/commands/beast.js +62 -0
  96. package/modules/commands/bf.js +74 -0
  97. package/modules/commands/biden.js +25 -0
  98. package/modules/commands/bigtext.js +219 -0
  99. package/modules/commands/billboard.js +83 -0
  100. package/modules/commands/birthday.js +27 -0
  101. package/modules/commands/board.js +74 -0
  102. package/modules/commands/bot.js +245 -0
  103. package/modules/commands/bot1.js +414 -0
  104. package/modules/commands/botban.js +51 -0
  105. package/modules/commands/botsay.js +16 -0
  106. package/modules/commands/box.js +119 -0
  107. package/modules/commands/boxinfo.js +53 -0
  108. package/modules/commands/bruh.js +26 -0
  109. package/modules/commands/cache/1.png +0 -0
  110. package/modules/commands/cache/2.gif +0 -0
  111. package/modules/commands/cache/2.png +0 -0
  112. package/modules/commands/cache/20.jpg +0 -0
  113. package/modules/commands/cache/3.png +0 -0
  114. package/modules/commands/cache/4.png +0 -0
  115. package/modules/commands/cache/5.png +0 -0
  116. package/modules/commands/cache/50.jpg +0 -0
  117. package/modules/commands/cache/6.png +0 -0
  118. package/modules/commands/cache/7.png +0 -0
  119. package/modules/commands/cache/8.jpg +0 -0
  120. package/modules/commands/cache/8.png +0 -0
  121. package/modules/commands/cache/9.png +0 -0
  122. package/modules/commands/cache/AlegreyaSans-Regular.ttf +0 -0
  123. package/modules/commands/cache/ArialUnicodeMS.ttf +0 -0
  124. package/modules/commands/cache/Avthai.png +0 -0
  125. package/modules/commands/cache/Play-Bold.ttf +0 -0
  126. package/modules/commands/cache/SVN-Arial 2.ttf +0 -0
  127. package/modules/commands/cache/VNCORSI.ttf +0 -0
  128. package/modules/commands/cache/autoseen.txt +1 -0
  129. package/modules/commands/cache/autosetname.json +1 -0
  130. package/modules/commands/cache/avt.png +0 -0
  131. package/modules/commands/cache/avt2.png +0 -0
  132. package/modules/commands/cache/avt_100000377396525.png +0 -0
  133. package/modules/commands/cache/avt_100027379701085.png +0 -0
  134. package/modules/commands/cache/avtuserrd2.png +0 -0
  135. package/modules/commands/cache/avtuserrd3.png +0 -0
  136. package/modules/commands/cache/banner.gif +0 -0
  137. package/modules/commands/cache/biden1.png +2 -0
  138. package/modules/commands/cache/bill.json +1 -0
  139. package/modules/commands/cache/bold-font.ttf +0 -0
  140. package/modules/commands/cache/canvas/arr2.png +0 -0
  141. package/modules/commands/cache/canvas/choigay.png +0 -0
  142. package/modules/commands/cache/canvas/fuck.png +0 -0
  143. package/modules/commands/cache/canvas/fuckv2.png +0 -0
  144. package/modules/commands/cache/canvas/fuckv3.png +0 -0
  145. package/modules/commands/cache/canvas/fuckv4.png +0 -0
  146. package/modules/commands/cache/canvas/hug4.png +0 -0
  147. package/modules/commands/cache/canvas/hugp.png +0 -0
  148. package/modules/commands/cache/canvas/hugv1.png +0 -0
  149. package/modules/commands/cache/canvas/hugv2.png +0 -0
  150. package/modules/commands/cache/canvas/hugv3.png +0 -0
  151. package/modules/commands/cache/canvas/josh.png +0 -0
  152. package/modules/commands/cache/canvas/joshua.png +0 -0
  153. package/modules/commands/cache/canvas/love2.jpg +0 -0
  154. package/modules/commands/cache/canvas/marriedv1.png +0 -0
  155. package/modules/commands/cache/canvas/marriedv2.png +0 -0
  156. package/modules/commands/cache/canvas/marriedv3.png +0 -0
  157. package/modules/commands/cache/canvas/marriedv4.png +0 -0
  158. package/modules/commands/cache/canvas/marriedv5.png +0 -0
  159. package/modules/commands/cache/canvas/marriedv6.jpeg +0 -0
  160. package/modules/commands/cache/canvas/marrywi.png +0 -0
  161. package/modules/commands/cache/canvas/namtay.png +0 -0
  162. package/modules/commands/cache/canvas/pairing.jpg +0 -0
  163. package/modules/commands/cache/canvas/pj.png +0 -0
  164. package/modules/commands/cache/canvas/seophi.png +0 -0
  165. package/modules/commands/cache/checkttDay.json +11594 -0
  166. package/modules/commands/cache/chocolate.jpg +0 -0
  167. package/modules/commands/cache/customrank/.txt +1 -0
  168. package/modules/commands/cache/data.json +3 -0
  169. package/modules/commands/cache/datlich.json +1 -0
  170. package/modules/commands/cache/dhbc1.png +0 -0
  171. package/modules/commands/cache/dhbc2.png +0 -0
  172. package/modules/commands/cache/elaina.jpg +0 -0
  173. package/modules/commands/cache/fbcover.png +0 -0
  174. package/modules/commands/cache/giflove.png +0 -0
  175. package/modules/commands/cache/giflove1.png +0 -0
  176. package/modules/commands/cache/giflove2.png +0 -0
  177. package/modules/commands/cache/giflove3.png +0 -0
  178. package/modules/commands/cache/giflove4.png +0 -0
  179. package/modules/commands/cache/giflove5.png +0 -0
  180. package/modules/commands/cache/giflove6.png +0 -0
  181. package/modules/commands/cache/giflove7.png +0 -0
  182. package/modules/commands/cache/hon.png +0 -0
  183. package/modules/commands/cache/hon1.png +0 -0
  184. package/modules/commands/cache/hon2.png +0 -0
  185. package/modules/commands/cache/image-0.png +0 -0
  186. package/modules/commands/cache/image-1.png +0 -0
  187. package/modules/commands/cache/image-10.png +0 -0
  188. package/modules/commands/cache/image-11.png +0 -0
  189. package/modules/commands/cache/image-12.png +0 -0
  190. package/modules/commands/cache/image-13.png +0 -0
  191. package/modules/commands/cache/image-14.png +0 -0
  192. package/modules/commands/cache/image-15.png +0 -0
  193. package/modules/commands/cache/image-16.png +0 -0
  194. package/modules/commands/cache/image-17.png +0 -0
  195. package/modules/commands/cache/image-18.png +0 -0
  196. package/modules/commands/cache/image-19.png +0 -0
  197. package/modules/commands/cache/image-2.png +0 -0
  198. package/modules/commands/cache/image-20.png +0 -0
  199. package/modules/commands/cache/image-21.png +0 -0
  200. package/modules/commands/cache/image-22.png +0 -0
  201. package/modules/commands/cache/image-23.png +0 -0
  202. package/modules/commands/cache/image-24.png +0 -0
  203. package/modules/commands/cache/image-25.png +0 -0
  204. package/modules/commands/cache/image-26.png +0 -0
  205. package/modules/commands/cache/image-27.png +0 -0
  206. package/modules/commands/cache/image-28.png +0 -0
  207. package/modules/commands/cache/image-29.png +0 -0
  208. package/modules/commands/cache/image-3.png +0 -0
  209. package/modules/commands/cache/image-30.png +0 -0
  210. package/modules/commands/cache/image-31.png +0 -0
  211. package/modules/commands/cache/image-32.png +0 -0
  212. package/modules/commands/cache/image-33.png +0 -0
  213. package/modules/commands/cache/image-34.png +0 -0
  214. package/modules/commands/cache/image-35.png +0 -0
  215. package/modules/commands/cache/image-36.png +0 -0
  216. package/modules/commands/cache/image-37.png +0 -0
  217. package/modules/commands/cache/image-38.png +0 -0
  218. package/modules/commands/cache/image-39.png +0 -0
  219. package/modules/commands/cache/image-4.png +0 -0
  220. package/modules/commands/cache/image-40.png +0 -0
  221. package/modules/commands/cache/image-41.png +0 -0
  222. package/modules/commands/cache/image-42.png +0 -0
  223. package/modules/commands/cache/image-43.png +0 -0
  224. package/modules/commands/cache/image-44.png +0 -0
  225. package/modules/commands/cache/image-45.png +0 -0
  226. package/modules/commands/cache/image-46.png +0 -0
  227. package/modules/commands/cache/image-47.png +0 -0
  228. package/modules/commands/cache/image-48.png +0 -0
  229. package/modules/commands/cache/image-49.png +0 -0
  230. package/modules/commands/cache/image-5.png +0 -0
  231. package/modules/commands/cache/image-50.png +0 -0
  232. package/modules/commands/cache/image-51.png +0 -0
  233. package/modules/commands/cache/image-52.png +0 -0
  234. package/modules/commands/cache/image-53.png +0 -0
  235. package/modules/commands/cache/image-6.png +0 -0
  236. package/modules/commands/cache/image-7.png +0 -0
  237. package/modules/commands/cache/image-8.png +0 -0
  238. package/modules/commands/cache/image-9.png +0 -0
  239. package/modules/commands/cache/img1.png +0 -0
  240. package/modules/commands/cache/img2.png +0 -0
  241. package/modules/commands/cache/listwarning.json +1 -0
  242. package/modules/commands/cache/lyrics.png +0 -0
  243. package/modules/commands/cache/memory.ttf +1950 -0
  244. package/modules/commands/cache/memorygame.png +0 -0
  245. package/modules/commands/cache/menu.gif +0 -0
  246. package/modules/commands/cache/mikasa.jpg +0 -0
  247. package/modules/commands/cache/mirai.jpg +0 -0
  248. package/modules/commands/cache/nami.jpg +0 -0
  249. package/modules/commands/cache/night.jpg +0 -0
  250. package/modules/commands/cache/notes.json +1 -0
  251. package/modules/commands/cache/priyansh.jpg +0 -0
  252. package/modules/commands/cache/quybu.gif +0 -0
  253. package/modules/commands/cache/rankcard.png +0 -0
  254. package/modules/commands/cache/rankcard1.png +0 -0
  255. package/modules/commands/cache/rankcard10.png +0 -0
  256. package/modules/commands/cache/rankcard11.png +0 -0
  257. package/modules/commands/cache/rankcard12.png +0 -0
  258. package/modules/commands/cache/rankcard13.png +0 -0
  259. package/modules/commands/cache/rankcard14.png +0 -0
  260. package/modules/commands/cache/rankcard2.png +0 -0
  261. package/modules/commands/cache/rankcard3.png +0 -0
  262. package/modules/commands/cache/rankcard4.png +0 -0
  263. package/modules/commands/cache/rankcard5.png +0 -0
  264. package/modules/commands/cache/rankcard6.png +0 -0
  265. package/modules/commands/cache/rankcard7.png +0 -0
  266. package/modules/commands/cache/rankcard8.png +0 -0
  267. package/modules/commands/cache/rankcard9.png +0 -0
  268. package/modules/commands/cache/rankup/.txt +1 -0
  269. package/modules/commands/cache/regular-font.ttf +0 -0
  270. package/modules/commands/cache/rules.json +1 -0
  271. package/modules/commands/cache/shortcutdata.json +6 -0
  272. package/modules/commands/cache/snoti.jpg +0 -0
  273. package/modules/commands/cache/statusAuto.json +3 -0
  274. package/modules/commands/cache/tiktok.png +0 -0
  275. package/modules/commands/cache/toilet.png +0 -0
  276. package/modules/commands/cache/toilet1.png +0 -0
  277. package/modules/commands/cache/ttt.png +0 -0
  278. package/modules/commands/cache/urbanjungle.ttf +0 -0
  279. package/modules/commands/cache/wanted.png +3 -0
  280. package/modules/commands/cache.js +112 -0
  281. package/modules/commands/callad.js +215 -0
  282. package/modules/commands/cardbox.js +161 -0
  283. package/modules/commands/cardcute.js +122 -0
  284. package/modules/commands/cardinfo.js +106 -0
  285. package/modules/commands/cardinfotag.js +110 -0
  286. package/modules/commands/cardinfov2.js +103 -0
  287. package/modules/commands/cardinfov3.js +111 -0
  288. package/modules/commands/cardinfov4.js +104 -0
  289. package/modules/commands/caro.json +354 -0
  290. package/modules/commands/catsay.js +25 -0
  291. package/modules/commands/cave.js +51 -0
  292. package/modules/commands/chart.js +35 -0
  293. package/modules/commands/checktt.js +121 -0
  294. package/modules/commands/checkv1.js +181 -0
  295. package/modules/commands/cheems.js +88 -0
  296. package/modules/commands/chocolate.js +26 -0
  297. package/modules/commands/choose.js +28 -0
  298. package/modules/commands/chumma.js +25 -0
  299. package/modules/commands/clearcache.js +60 -0
  300. package/modules/commands/cmd.js +192 -0
  301. package/modules/commands/cnbh.js +118 -0
  302. package/modules/commands/code.js +101 -0
  303. package/modules/commands/communism.js +56 -0
  304. package/modules/commands/confess.js +25 -0
  305. package/modules/commands/console.js +46 -0
  306. package/modules/commands/cosplay.json +38 -0
  307. package/modules/commands/count-by-thread/.txt +1 -0
  308. package/modules/commands/count.js +82 -0
  309. package/modules/commands/couple.js +80 -0
  310. package/modules/commands/coupledp.js +40 -0
  311. package/modules/commands/covid.js +46 -0
  312. package/modules/commands/crypto.js +109 -0
  313. package/modules/commands/daily.js +46 -0
  314. package/modules/commands/darock.js +27 -0
  315. package/modules/commands/daru.js +26 -0
  316. package/modules/commands/data/.txt +1 -0
  317. package/modules/commands/date.js +80 -0
  318. package/modules/commands/date2.js +80 -0
  319. package/modules/commands/deletelogo.js +32 -0
  320. package/modules/commands/delmsg.js +25 -0
  321. package/modules/commands/delthread.js +26 -0
  322. package/modules/commands/details.js +112 -0
  323. package/modules/commands/dictionary.js +42 -0
  324. package/modules/commands/dog.js +27 -0
  325. package/modules/commands/dogfact.js +31 -0
  326. package/modules/commands/doof.js +74 -0
  327. package/modules/commands/dot.js +58 -0
  328. package/modules/commands/download.js +32 -0
  329. package/modules/commands/drake.js +84 -0
  330. package/modules/commands/drip.js +61 -0
  331. package/modules/commands/einstein.js +74 -0
  332. package/modules/commands/elon.js +78 -0
  333. package/modules/commands/emoji.js +83 -0
  334. package/modules/commands/enrile.js +76 -0
  335. package/modules/commands/event.js +223 -0
  336. package/modules/commands/example.js +49 -0
  337. package/modules/commands/fact.js +16 -0
  338. package/modules/commands/fact2.js +26 -0
  339. package/modules/commands/family.js +194 -0
  340. package/modules/commands/fbcover.js +183 -0
  341. package/modules/commands/fbcoverv2.js +101 -0
  342. package/modules/commands/fberror.js +74 -0
  343. package/modules/commands/fbget.js +41 -0
  344. package/modules/commands/file.js +106 -0
  345. package/modules/commands/fire.js +52 -0
  346. package/modules/commands/fish.js +48 -0
  347. package/modules/commands/fishing.json +330 -0
  348. package/modules/commands/fuck.js +74 -0
  349. package/modules/commands/fuck2.js +74 -0
  350. package/modules/commands/fuck3.js +74 -0
  351. package/modules/commands/fuck4.js +74 -0
  352. package/modules/commands/fuck5.js +74 -0
  353. package/modules/commands/fyoutoo.js +25 -0
  354. package/modules/commands/fyt.js +58 -0
  355. package/modules/commands/gali_reply.js +24 -0
  356. package/modules/commands/game1.js +34 -0
  357. package/modules/commands/getlink.js +26 -0
  358. package/modules/commands/gf.js +74 -0
  359. package/modules/commands/girl.js +11497 -0
  360. package/modules/commands/girl2.js +23319 -0
  361. package/modules/commands/girlnude.js +126 -0
  362. package/modules/commands/github.js +37 -0
  363. package/modules/commands/giveaway.js +122 -0
  364. package/modules/commands/gpt.js +39 -0
  365. package/modules/commands/groupemoji.js +17 -0
  366. package/modules/commands/groupimage.js +24 -0
  367. package/modules/commands/groupname.js +17 -0
  368. package/modules/commands/hack.js +103 -0
  369. package/modules/commands/help.js +122 -0
  370. package/modules/commands/help2.js +160 -0
  371. package/modules/commands/help3.js +83 -0
  372. package/modules/commands/hi.js +191 -0
  373. package/modules/commands/hi2.js +83 -0
  374. package/modules/commands/history.js +74 -0
  375. package/modules/commands/hold.js +80 -0
  376. package/modules/commands/hololive.js +63 -0
  377. package/modules/commands/hug.js +74 -0
  378. package/modules/commands/hug4.js +74 -0
  379. package/modules/commands/hug5.js +74 -0
  380. package/modules/commands/hugj.js +74 -0
  381. package/modules/commands/hugp.js +74 -0
  382. package/modules/commands/hugv2.js +74 -0
  383. package/modules/commands/hugv3.js +74 -0
  384. package/modules/commands/idst.js +25 -0
  385. package/modules/commands/imagesearch.js +96 -0
  386. package/modules/commands/imagine.js +143 -0
  387. package/modules/commands/info.js +62 -0
  388. package/modules/commands/infobox.js +161 -0
  389. package/modules/commands/infocardv7.js +112 -0
  390. package/modules/commands/infoip.js +24 -0
  391. package/modules/commands/infosite.js +47 -0
  392. package/modules/commands/insta.js +210 -0
  393. package/modules/commands/instagram.js +131 -0
  394. package/modules/commands/install.js +103 -0
  395. package/modules/commands/ip.js +55 -0
  396. package/modules/commands/isko.json +74 -0
  397. package/modules/commands/iss.js +29 -0
  398. package/modules/commands/japan.js +211 -0
  399. package/modules/commands/jessica.js +74 -0
  400. package/modules/commands/join.js +51 -0
  401. package/modules/commands/kanna.js +27 -0
  402. package/modules/commands/khana.js +26 -0
  403. package/modules/commands/kick.js +51 -0
  404. package/modules/commands/kiss.js +79 -0
  405. package/modules/commands/kiss2.js +79 -0
  406. package/modules/commands/kiss3.js +85 -0
  407. package/modules/commands/language.js +37 -0
  408. package/modules/commands/ledtext.js +38 -0
  409. package/modules/commands/leni.js +84 -0
  410. package/modules/commands/lexi.js +74 -0
  411. package/modules/commands/listadmin.js +36 -0
  412. package/modules/commands/listbanbybot.js +165 -0
  413. package/modules/commands/listbox.js +203 -0
  414. package/modules/commands/listfriend.js +90 -0
  415. package/modules/commands/load.js +15 -0
  416. package/modules/commands/log.js +37 -0
  417. package/modules/commands/logobear.js +31 -0
  418. package/modules/commands/logogame.js +31 -0
  419. package/modules/commands/logogaming2.js +31 -0
  420. package/modules/commands/logogaming3.js +31 -0
  421. package/modules/commands/logogaming4.js +31 -0
  422. package/modules/commands/logogaming5.js +31 -0
  423. package/modules/commands/logogirlgame.js +31 -0
  424. package/modules/commands/logogold.js +31 -0
  425. package/modules/commands/logoninja.js +31 -0
  426. package/modules/commands/logout.js +16 -0
  427. package/modules/commands/logowolf.js +31 -0
  428. package/modules/commands/love.js +80 -0
  429. package/modules/commands/luatbot.js +24 -0
  430. package/modules/commands/luckynum.js +34 -0
  431. package/modules/commands/lyrics.js +34 -0
  432. package/modules/commands/mal.js +72 -0
  433. package/modules/commands/malnews.js +20 -0
  434. package/modules/commands/mark.js +74 -0
  435. package/modules/commands/markcmt.js +74 -0
  436. package/modules/commands/married.js +74 -0
  437. package/modules/commands/marriedj.js +74 -0
  438. package/modules/commands/marriedv2.js +74 -0
  439. package/modules/commands/marriedv3.js +74 -0
  440. package/modules/commands/marriedv4.js +74 -0
  441. package/modules/commands/marriedv5.js +74 -0
  442. package/modules/commands/marriedv6.js +74 -0
  443. package/modules/commands/marry.js +74 -0
  444. package/modules/commands/math.js +121 -0
  445. package/modules/commands/mathematics.js +37 -0
  446. package/modules/commands/mbbank.js +74 -0
  447. package/modules/commands/meme.js +31 -0
  448. package/modules/commands/memory.js +136 -0
  449. package/modules/commands/mention.js +22 -0
  450. package/modules/commands/menu.js +142 -0
  451. package/modules/commands/minari.js +49 -0
  452. package/modules/commands/minigame.js +32 -0
  453. package/modules/commands/minionslanguange.js +24 -0
  454. package/modules/commands/mlbb.js +1 -0
  455. package/modules/commands/mlstalk.js +22 -0
  456. package/modules/commands/mobilelegends.js +31 -0
  457. package/modules/commands/morse.js +27 -0
  458. package/modules/commands/music.js +138 -0
  459. package/modules/commands/music2.js +44 -0
  460. package/modules/commands/music3.js +124 -0
  461. package/modules/commands/mycoins.js +45 -0
  462. package/modules/commands/namtay.js +80 -0
  463. package/modules/commands/natsuki.json +63 -0
  464. package/modules/commands/naughty.js +58 -0
  465. package/modules/commands/newbox.js +22 -0
  466. package/modules/commands/news.js +64 -0
  467. package/modules/commands/nhentai.js +47 -0
  468. package/modules/commands/night.js +26 -0
  469. package/modules/commands/ninja.js +18 -0
  470. package/modules/commands/noitu.js +42 -0
  471. package/modules/commands/noprefix/Yest +1 -0
  472. package/modules/commands/noprefix/ara.mp3 +0 -0
  473. package/modules/commands/noprefix/box.mp4 +0 -0
  474. package/modules/commands/noprefix/daru.mp4 +0 -0
  475. package/modules/commands/noprefix/dk.mp3 +0 -0
  476. package/modules/commands/noprefix/fuck.gif +0 -0
  477. package/modules/commands/noprefix/hi.gif +0 -0
  478. package/modules/commands/noprefix/instagram.jpg +0 -0
  479. package/modules/commands/noprefix/rankup/.txt +1 -0
  480. package/modules/commands/noprefix/solar.gif +0 -0
  481. package/modules/commands/noprefix/sub.mp3 +0 -0
  482. package/modules/commands/noprefix/sus.mp3 +0 -0
  483. package/modules/commands/noprefix/tea.mp4 +0 -0
  484. package/modules/commands/noprefix/totalChat.json +1 -0
  485. package/modules/commands/noprefix/v.mp3 +0 -0
  486. package/modules/commands/noprefix/vineboom.gif +0 -0
  487. package/modules/commands/noprefix/wednesday.mp4 +0 -0
  488. package/modules/commands/noprefix/wn.mp4 +0 -0
  489. package/modules/commands/noprefix/xf.mp3 +0 -0
  490. package/modules/commands/noprefix/xxx.mp3 +0 -0
  491. package/modules/commands/noprefix/yamate.mp3 +0 -0
  492. package/modules/commands/note.js +86 -0
  493. package/modules/commands/npm.js +30 -0
  494. package/modules/commands/nsfw.js +43 -0
  495. package/modules/commands/nsfwanime.js +101 -0
  496. package/modules/commands/nude.js +25 -0
  497. package/modules/commands/osu.js +21 -0
  498. package/modules/commands/out.js +23 -0
  499. package/modules/commands/outall.js +26 -0
  500. package/modules/commands/outbox.js +117 -0
  501. package/modules/commands/package.js +119 -0
  502. package/modules/commands/pair.js +86 -0
  503. package/modules/commands/pair1.js +86 -0
  504. package/modules/commands/pair2.js +51 -0
  505. package/modules/commands/pair3.js +51 -0
  506. package/modules/commands/pair4.js +51 -0
  507. package/modules/commands/pair5.js +51 -0
  508. package/modules/commands/pair6.js +51 -0
  509. package/modules/commands/pair7.js +51 -0
  510. package/modules/commands/pair8.js +51 -0
  511. package/modules/commands/pantiesclose.js +199 -0
  512. package/modules/commands/pantiesclosev2.js +199 -0
  513. package/modules/commands/password.js +83 -0
  514. package/modules/commands/pat.js +43 -0
  515. package/modules/commands/pay.json +64 -0
  516. package/modules/commands/pending.js +83 -0
  517. package/modules/commands/penis.js +11 -0
  518. package/modules/commands/penticlose.js +199 -0
  519. package/modules/commands/petmonsters.js +138 -0
  520. package/modules/commands/phub.js +83 -0
  521. package/modules/commands/pin.js +36 -0
  522. package/modules/commands/ping.js +30 -0
  523. package/modules/commands/pingv2.js +32 -0
  524. package/modules/commands/pinterest.js +37 -0
  525. package/modules/commands/playstore.js +103 -0
  526. package/modules/commands/poli.js +25 -0
  527. package/modules/commands/pooh.js +28 -0
  528. package/modules/commands/post.js +272 -0
  529. package/modules/commands/prefix.js +43 -0
  530. package/modules/commands/prefixv2.js +91 -0
  531. package/modules/commands/prince.js +245 -0
  532. package/modules/commands/priyansh.js +33 -0
  533. package/modules/commands/pubg.js +31 -0
  534. package/modules/commands/punch.js +44 -0
  535. package/modules/commands/qr.js +36 -0
  536. package/modules/commands/quiz.js +51 -0
  537. package/modules/commands/rainbow.js +29 -0
  538. package/modules/commands/randomicon.js +36 -0
  539. package/modules/commands/rankcard (copy).js +257 -0
  540. package/modules/commands/rankcard.js +216 -0
  541. package/modules/commands/rankgif.js +375 -0
  542. package/modules/commands/rankup.js +123 -0
  543. package/modules/commands/red.js +29 -0
  544. package/modules/commands/red2.js +1 -0
  545. package/modules/commands/reload.js +22 -0
  546. package/modules/commands/removebg.js +61 -0
  547. package/modules/commands/resend.js +86 -0
  548. package/modules/commands/resetexp.js +25 -0
  549. package/modules/commands/resetmoney.js +25 -0
  550. package/modules/commands/restart.js +32 -0
  551. package/modules/commands/rip.js +32 -0
  552. package/modules/commands/rnamebot.js +39 -0
  553. package/modules/commands/rnamebox.js +27 -0
  554. package/modules/commands/rule.js +86 -0
  555. package/modules/commands/sauce.js +56 -0
  556. package/modules/commands/say.js +62 -0
  557. package/modules/commands/schoolid.js +107 -0
  558. package/modules/commands/screenshot.js +44 -0
  559. package/modules/commands/screenshotv2.js +44 -0
  560. package/modules/commands/search.js +21 -0
  561. package/modules/commands/selflisten.js +30 -0
  562. package/modules/commands/sendfile.js +102 -0
  563. package/modules/commands/sendnoti.js +76 -0
  564. package/modules/commands/sendnoti1.js +40 -0
  565. package/modules/commands/sendnoti2.js +75 -0
  566. package/modules/commands/sendnoti5.js +113 -0
  567. package/modules/commands/sentnoti.js +49 -0
  568. package/modules/commands/setall.js +24 -0
  569. package/modules/commands/setcoins.js +21 -0
  570. package/modules/commands/setdatabox.js +26 -0
  571. package/modules/commands/setdatauser.js +28 -0
  572. package/modules/commands/setemoji.js +15 -0
  573. package/modules/commands/setexp.js +64 -0
  574. package/modules/commands/setjoin.js +94 -0
  575. package/modules/commands/setkey.js +18 -0
  576. package/modules/commands/setmoney.js +63 -0
  577. package/modules/commands/setname.js +17 -0
  578. package/modules/commands/setnameall.js +24 -0
  579. package/modules/commands/setprefix.js +58 -0
  580. package/modules/commands/setrankup.js +90 -0
  581. package/modules/commands/shayri.js +34 -0
  582. package/modules/commands/shell.js +31 -0
  583. package/modules/commands/shortcut.js +177 -0
  584. package/modules/commands/siesta.js +25 -0
  585. package/modules/commands/sim.js +51 -0
  586. package/modules/commands/sing.js +1 -0
  587. package/modules/commands/slap.js +44 -0
  588. package/modules/commands/sleep.js +61 -0
  589. package/modules/commands/slot.js +61 -0
  590. package/modules/commands/slotwaifu.js +254 -0
  591. package/modules/commands/solarsystem.js +102 -0
  592. package/modules/commands/spamban.js +69 -0
  593. package/modules/commands/spamban1.js +69 -0
  594. package/modules/commands/spank.js +30 -0
  595. package/modules/commands/status.js +37 -0
  596. package/modules/commands/steal.js +41 -0
  597. package/modules/commands/student.js +75 -0
  598. package/modules/commands/studentv2.js +75 -0
  599. package/modules/commands/studentv3.js +74 -0
  600. package/modules/commands/sub.js +26 -0
  601. package/modules/commands/system.js +82 -0
  602. package/modules/commands/tea.js +26 -0
  603. package/modules/commands/teach.js +70 -0
  604. package/modules/commands/textpro.js +445 -0
  605. package/modules/commands/thread.js +272 -0
  606. package/modules/commands/tictactoe.json +219 -0
  607. package/modules/commands/tid.js +15 -0
  608. package/modules/commands/tiki.js +74 -0
  609. package/modules/commands/tikvideo.js +59 -0
  610. package/modules/commands/tile.js +43 -0
  611. package/modules/commands/time.js +19 -0
  612. package/modules/commands/toctoc.js +1 -0
  613. package/modules/commands/toilet.js +79 -0
  614. package/modules/commands/token.js +42 -0
  615. package/modules/commands/top.js +160 -0
  616. package/modules/commands/trans.js +44 -0
  617. package/modules/commands/triggered.js +25 -0
  618. package/modules/commands/try.js +35 -0
  619. package/modules/commands/tweet-tag.json +1 -0
  620. package/modules/commands/tweet.js +75 -0
  621. package/modules/commands/tweet.json +92 -0
  622. package/modules/commands/tweetv2.json +92 -0
  623. package/modules/commands/uid.js +17 -0
  624. package/modules/commands/unban.js +186 -0
  625. package/modules/commands/unsend.js +27 -0
  626. package/modules/commands/unsentvip.js +16 -0
  627. package/modules/commands/uptime.js +141 -0
  628. package/modules/commands/uptime2.js +151 -0
  629. package/modules/commands/uptime3.js +151 -0
  630. package/modules/commands/user.js +278 -0
  631. package/modules/commands/vanilla.json +38 -0
  632. package/modules/commands/video.js +2 -0
  633. package/modules/commands/videov2.js +124 -0
  634. package/modules/commands/virgin.js +25 -0
  635. package/modules/commands/vtuber.js +109 -0
  636. package/modules/commands/vtuberWiki.js +164 -0
  637. package/modules/commands/wall/MTOJamai.ttf +0 -0
  638. package/modules/commands/wanted.json +32 -0
  639. package/modules/commands/war.js +54 -0
  640. package/modules/commands/warning.js +88 -0
  641. package/modules/commands/wasted.json +56 -0
  642. package/modules/commands/weather.js +50 -0
  643. package/modules/commands/wednesday.js +26 -0
  644. package/modules/commands/wiki.js +37 -0
  645. package/modules/commands/wom.js +26 -0
  646. package/modules/commands/work.js +93 -0
  647. package/modules/commands/xavier.js +75 -0
  648. package/modules/commands/xvideo.js +1 -0
  649. package/modules/commands/yaoi.json +31 -0
  650. package/modules/commands/yes.js +74 -0
  651. package/modules/commands/yuri.json +34 -0
  652. package/modules/commands/zackv.js +105 -0
  653. package/modules/commands/zalgo.js +16 -0
  654. package/modules/commands/zerotwo.js +52 -0
  655. package/modules/commands/zuck.js +77 -0
  656. package/modules/commands/zz.js +43 -0
  657. package/modules/commands/zzz.js +50 -0
  658. package/modules/commands/zzzz.js +48 -0
  659. package/modules/commands/zzzzz.js +116 -0
  660. package/modules/events/antijoin.js +25 -0
  661. package/modules/events/antiout.js +22 -0
  662. package/modules/events/antirobbery.js +43 -0
  663. package/modules/events/antist.js +216 -0
  664. package/modules/events/autosent.js +27 -0
  665. package/modules/events/autosetname.js +28 -0
  666. package/modules/events/cache/1689024290268.jpg +0 -0
  667. package/modules/events/cache/1689024291948.jpg +0 -0
  668. package/modules/events/cache/1689338091241.jpg +0 -0
  669. package/modules/events/cache/1689338091358.jpg +0 -0
  670. package/modules/events/cache/1689338161936.jpg +0 -0
  671. package/modules/events/cache/1689338162061.jpg +0 -0
  672. package/modules/events/cache/1689782720063.jpg +0 -0
  673. package/modules/events/cache/1696308600074.jpg +0 -0
  674. package/modules/events/cache/1696330171870.jpg +0 -0
  675. package/modules/events/cache/1696432181920.jpg +0 -0
  676. package/modules/events/cache/1696489190436.jpg +0 -0
  677. package/modules/events/cache/1696529399872.jpg +0 -0
  678. package/modules/events/cache/1696585758189.jpg +0 -0
  679. package/modules/events/cache/1696595392125.jpg +0 -0
  680. package/modules/events/cache/1696675929706.jpg +0 -0
  681. package/modules/events/cache/1696773555786.jpg +0 -0
  682. package/modules/events/cache/1697903362006.jpg +0 -0
  683. package/modules/events/cache/1697967586121.jpg +0 -0
  684. package/modules/events/cache/1698479390255.jpg +0 -0
  685. package/modules/events/cache/1698479678850.jpg +0 -0
  686. package/modules/events/cache/1698484313383.jpg +0 -0
  687. package/modules/events/cache/1698493158950.jpg +0 -0
  688. package/modules/events/cache/1700485758929.jpg +0 -0
  689. package/modules/events/cache/1701466775429.jpg +0 -0
  690. package/modules/events/cache/1701466776229.jpg +0 -0
  691. package/modules/events/cache/1701467351100.jpg +0 -0
  692. package/modules/events/cache/1701502759299.jpg +0 -0
  693. package/modules/events/cache/1701502759797.jpg +0 -0
  694. package/modules/events/cache/1703741413729.jpg +0 -0
  695. package/modules/events/cache/1703741413899.jpg +0 -0
  696. package/modules/events/cache/1703745121246.jpg +0 -0
  697. package/modules/events/cache/1703745121366.jpg +0 -0
  698. package/modules/events/cache/1703968162735.jpg +0 -0
  699. package/modules/events/cache/1703968162770.jpg +0 -0
  700. package/modules/events/cache/1704008949591.jpg +0 -0
  701. package/modules/events/cache/1704008949769.jpg +0 -0
  702. package/modules/events/cache/1704028197166.jpg +0 -0
  703. package/modules/events/cache/1704028197470.jpg +0 -0
  704. package/modules/events/cache/1704184158582.jpg +0 -0
  705. package/modules/events/cache/1704184158811.jpg +0 -0
  706. package/modules/events/cache/CourierNewPS-BoldMT.ttf +0 -0
  707. package/modules/events/cache/avt.png +0 -0
  708. package/modules/events/cache/avtuserrd.png +0 -0
  709. package/modules/events/cache/joinGif/randomgif/join.png +0 -0
  710. package/modules/events/cache/joinGif/randomgif/join2.gif +0 -0
  711. package/modules/events/cache/joinGif/randomgif/welc.gif +0 -0
  712. package/modules/events/cache/joinMp4/hello.gif +0 -0
  713. package/modules/events/cache/joinnoti.png +0 -0
  714. package/modules/events/emoji.json +1 -0
  715. package/modules/events/join.js +4 -0
  716. package/modules/events/joinNoti.js +82 -0
  717. package/modules/events/leave.js +34 -0
  718. package/modules/events/log.js +106 -0
  719. package/package.json +121 -0
  720. package/utils/index.html +519 -0
  721. package/utils/index.js +159 -0
  722. package/utils/log.js +29 -0
  723. package/werewolfConfig.js +229 -0
@@ -0,0 +1,272 @@
1
+ module.exports.config = {
2
+ name: "thread",
3
+ version: "1.0.5",
4
+ hasPermssion: 2,
5
+ credits: "Priyansh Rajput",
6
+ description: "Ban or unban a group",
7
+ commandCategory: "system",
8
+ usages: "[unban/ban/search] [ID or text]",
9
+ cooldowns: 5,
10
+ dependencies: {
11
+ "moment-timezone": ""
12
+ }
13
+ };
14
+
15
+ module.exports.languages = {
16
+ "vi": {
17
+ "reason": "Lรฝ do",
18
+ "at": "vร o lรบc",
19
+ "allCommand": "toร n bแป™ lแป‡nh",
20
+ "commandList": "nhแปฏng lแป‡nh",
21
+ "banSuccess": "[โ˜ ๏ธ ๐๐š๐ง ๐“๐ก๐ซ๐ž๐š๐ โ˜ ๏ธ] - ๐—๐ฎฬ›ฬ‰ ๐ฅ๐ฒฬ ๐ญ๐ก๐šฬ€๐ง๐ก ๐œ๐จฬ‚๐ง๐  ๐ฒ๐žฬ‚๐ฎ ๐œ๐šฬ‚ฬ€๐ฎ ๐œ๐šฬ‚ฬ๐ฆ ๐ง๐ก๐จฬ๐ฆ ๐œ๐จฬ ๐ˆ๐ƒ %1",
22
+ "unbanSuccess": "[๐ŸŒธ ๐”๐ง๐›๐š๐ง ๐“๐ก๐ซ๐ž๐š๐ ๐ŸŒธ] - ๐—๐ฎฬ›ฬ‰ ๐ฅ๐ฒฬ ๐ญ๐ก๐šฬ€๐ง๐ก ๐œ๐จฬ‚๐ง๐  ๐ฒ๐žฬ‚๐ฎ ๐œ๐šฬ‚ฬ€๐ฎ ๐ ๐จฬ›ฬƒ ๐œ๐šฬ‚ฬ๐ฆ ๐ง๐ก๐จฬ๐ฆ ๐œ๐จฬ ๐ˆ๐ƒ %1",
23
+ "banCommandSuccess": "[๐Ÿ“Œ ๐๐š๐ง๐‚๐จ๐ฆ๐ฆ๐š๐ง๐ ๐“๐ก๐ซ๐ž๐š๐ ๐Ÿšจ] - ๐—๐ฎฬ›ฬ‰ ๐ฅ๐ฒฬ ๐ญ๐ก๐šฬ€๐ง๐ก ๐œ๐จฬ‚๐ง๐  ๐ฒ๐žฬ‚๐ฎ ๐œ๐šฬ‚ฬ€๐ฎ ๐œ๐šฬ‚ฬ๐ฆ ๐ฅ๐žฬฃฬ‚๐ง๐ก ๐ฏ๐จฬ›ฬ๐ข ๐ง๐ก๐จฬ๐ฆ ๐œ๐จฬ ๐ˆ๐ƒ %1",
24
+ "unbanCommandSuccess": "[๐Ÿ’Ž ๐”๐ง๐›๐š๐ง๐‚๐จ๐ฆ๐ฆ๐š๐ง๐ ๐“๐ก๐ซ๐ž๐š๐ ๐ŸŒธ] - ๐—๐ฎฬ›ฬ‰ ๐ฅ๐ฒฬ ๐ญ๐ก๐šฬ€๐ง๐ก ๐œ๐จฬ‚๐ง๐  ๐ฒ๐žฬ‚๐ฎ ๐œ๐šฬ‚ฬ€๐ฎ ๐ ๐จฬ›ฬƒ ๐œ๐šฬ‚ฬ๐ฆ %1 ๐ซ๐ข๐žฬ‚๐ง๐  ๐ฏ๐จฬ›ฬ๐ข ๐ง๐ก๐จฬ๐ฆ ๐œ๐จฬ ๐ˆ๐ƒ %2",
25
+ "errorReponse": "%1 Khรดng thแปƒ hoร n tแบฅt cรดng viแป‡c bแบกn yรชu cแบงu ฤ‘แป‘i vแป›i nhรณm cรณ ID %2",
26
+ "IDNotFound": "%1 ID bแบกn nhแบญp khรดng tแป“n tแบกi trong cฦก sแปŸ dแปฏ liแป‡u",
27
+ "existBan": "[๐Ÿ’ธ ๐๐š๐ง ๐“๐ก๐ซ๐ž๐š๐ ๐Ÿ’ธ] - ๐ˆ๐ƒ %1 ๐ก๐ข๐žฬฃฬ‚๐ง ๐ฏ๐šฬ‚ฬƒ๐ง ๐›๐ขฬฃ ๐›๐š๐ง ๐ญ๐ฎฬ›ฬ€ ๐ญ๐ซ๐ฎฬ›๐จฬ›ฬ๐œ %2 %3",
28
+ "notExistBan": "[๐Ÿšจ ๐”๐ง๐›๐š๐ง ๐“๐ก๐ซ๐ž๐š๐ ๐Ÿšจ] - ๐ˆ๐ƒ ๐›๐šฬฃ๐ง ๐ง๐ก๐šฬฃฬ‚๐ฉ ๐œ๐ก๐ฎฬ›๐š ๐ญ๐ฎฬ›ฬ€๐ง๐  ๐›๐ขฬฃ ๐œ๐šฬ‚ฬ๐ฆ ๐ฌ๐ฎฬ›ฬ‰ ๐๐ฎฬฃ๐ง๐  ๐›๐จ๐ญ",
29
+ "missingCommandInput": "%1 Phแบงn command cแบงn cแบฅm khรดng ฤ‘ฦฐแปฃc ฤ‘แปƒ trแป‘ng!",
30
+ "notExistBanCommand": "[๐Ÿงฌ ๐”๐ง๐›๐š๐ง๐‚๐จ๐ฆ๐ฆ๐š๐ง๐ ๐“๐ก๐ซ๐ž๐š๐ ๐Ÿงฌ] - ๐‡๐ข๐žฬฃฬ‚๐ง ๐ญ๐šฬฃ๐ข ๐ˆ๐ƒ ๐ง๐ก๐จฬ๐ฆ ๐›๐šฬฃ๐ง ๐ง๐ก๐šฬฃฬ‚๐ฉ ๐œ๐ก๐ฎฬ›๐š ๐ญ๐ฎฬ›ฬ€๐ง๐  ๐›๐ขฬฃ ๐œ๐šฬ‚ฬ๐ฆ ๐ฌ๐ฎฬ›ฬ‰ ๐๐ฎฬฃ๐ง๐  ๐ฅ๐žฬฃฬ‚๐ง๐ก",
31
+
32
+ "returnBan": "[๐Ÿ“Œ ๐๐š๐ง ๐“๐ก๐ซ๐ž๐š๐ ๐Ÿ’Œ] - ๐‡๐ข๐žฬฃฬ‚๐ง ๐ญ๐šฬฃ๐ข ๐›๐šฬฃ๐ง ๐ฏ๐ฎฬ›ฬ€๐š ๐ฒ๐žฬ‚๐ฎ ๐œ๐šฬ‚ฬ€๐ฎ ๐œ๐ก๐จ ๐ง๐ก๐จฬ๐ฆ ๐ง๐šฬ€๐ฒ ๐ฏ๐žฬ‚ฬ€ ๐œ๐šฬ๐ญ ๐›๐ฎฬฃ๐ข:\nโฏ ๐ˆ๐ƒ ๐ง๐ก๐จฬ๐ฆ ๐œ๐šฬ‚ฬ€๐ง ๐œ๐šฬ‚ฬ๐ฆ: %1%2\n\nโฎ๐Ÿ’ธ ๐‘๐ž๐š๐œ๐ญ๐ข๐จ๐ง ๐ญ๐ข๐ง ๐ง๐ก๐šฬ†ฬ๐ง ๐ง๐šฬ€๐ฒ ๐ง๐žฬ‚ฬ๐ฎ ๐ฑ๐šฬ๐œ ๐ง๐ก๐šฬฃฬ‚๐ง ๐œ๐šฬ‚ฬ๐ฆ ๐ŸŒธโฏ",
33
+ "returnUnban": "[ ๐”๐ง๐›๐š๐ง ๐“๐ก๐ซ๐ž๐š๐ ] - ๐‡๐ข๐žฬฃฬ‚๐ง ๐ญ๐šฬฃ๐ข ๐›๐šฬฃ๐ง ๐ฏ๐ฎฬ›ฬ€๐š ๐ฒ๐žฬ‚๐ฎ ๐œ๐šฬ‚ฬ€๐ฎ ๐œ๐ก๐จ ๐ง๐ก๐จฬ๐ฆ ๐ง๐šฬ€๐ฒ ๐ฆ๐จฬฃฬ‚๐ญ ๐šฬ‚๐ง ๐ก๐ฎ๐žฬฃฬ‚ ๐ฏ๐žฬ‚ฬ€ ๐ก๐จ๐šฬ€ ๐ง๐ก๐šฬฃฬ‚๐ฉ ๐ฏ๐จฬ›ฬ๐ข ๐ฑ๐šฬƒ ๐ก๐จฬฃฬ‚๐ข:\nโฏ ๐ˆ๐ƒ ๐ง๐ก๐จฬ๐ฆ ๐œ๐šฬ‚ฬ€๐ง ๐ ๐จฬ›ฬƒ ๐œ๐šฬ‚ฬ๐ฆ: %1\n\nโฎ๐Ÿ’Œ ๐‘๐ž๐š๐œ๐ญ๐ข๐จ๐ง ๐ญ๐ข๐ง ๐ง๐ก๐šฬ†ฬ๐ง ๐ง๐šฬ€๐ฒ ๐ง๐žฬ‚ฬ๐ฎ ๐ฑ๐šฬ๐œ ๐ง๐ก๐šฬฃฬ‚๐ง ๐ ๐จฬ›ฬƒ ๐œ๐šฬ‚ฬ๐ฆ ๐Ÿ’Žโฏ",
34
+ "returnBanCommand": "[ ๐๐š๐ง๐‚๐จ๐ฆ๐ฆ๐š๐ง๐ ๐“๐ก๐ซ๐ž๐š๐ ] - Hiแป‡n tแบกi bแบกn ฤ‘ang yรชu cแบงu cแบฅm sแปญ dแปฅng lแป‡nh ฤ‘แป‘i vแป›i nhรณm:\n - ID nhรณm cแบงn cแบฅm: %1\n- Cรกc lแป‡nh cแบงn cแบฅm: %2\n\nโฎ Reaction tin nhแบฏn nร y ฤ‘แปƒ xรกc thแปฑc โฏ",
35
+ "returnUnbanCommand": "[ ๐”๐ง๐›๐š๐ง๐‚๐จ๐ฆ๐ฆ๐š๐ง๐ ๐“๐ก๐ซ๐ž๐š๐ ] - Hiแป‡n tแบกi bแบกn ฤ‘ang yรชu cแบงu gแปก cแบฅm sแปญ dแปฅng lแป‡nh ฤ‘แป‘i vแป›i nhรณm:\n - ID nhรณm cแบงn gแปก cแบฅm lแป‡nh: %1\n- Cรกc lแป‡nh cแบงn gแปก cแบฅm: %2\n\nโฎ Reaction tin nhแบฏn nร y ฤ‘แปƒ xรกc thแปฑc โฏ",
36
+
37
+ "returnResult": "ฤรขy lร  kแบฟt quแบฃ phรน hแปฃp: \n",
38
+ "returnNull": "Khรดng tรฌm thแบฅy kแบฟt quแบฃ dแปฑa vร o tรฌm kiแบฟm cแปงa bแบกn!",
39
+ "returnList": "[ Thread List ]\nHiแป‡n tแบกi ฤ‘ang cรณ %1 nhรณm bแป‹ ban, dฦฐแป›i ฤ‘รขy lร  %2 nhรณm\n\n%3",
40
+ "returnInfo": "[ Info Thread ] ฤรขy lร  mแป™t sรด thรดng tin vแป nhรณm bแบกn cแบงn tรฌm:\n- ID cแปงa nhรณm: %1n- Cรณ bแป‹ ban?: %2 %3 %4\n- Bแป‹ ban lแป‡nh?: %5"
41
+ },
42
+ "en": {
43
+ "reason": "Reason",
44
+ "at": "At",
45
+ "allCommand": "All commands",
46
+ "commandList": "Commands",
47
+ "banSuccess": "[ Ban Thread ] Banned thread has ID %1",
48
+ "unbanSuccess": "[ Unban Thread ] Unbanned thread has ID %1",
49
+ "banCommandSuccess": "[ banCommand Thread ] Banned command with thread has ID %1",
50
+ "unbanCommandSuccess": "[ unbanCommand Thread ] Unbanned %1 with thread has ID %2",
51
+ "errorReponse": "%1 Can't do what you request with thread has ID %2",
52
+ "IDNotFound": "%1 ID you import doesn't exist in database",
53
+ "existBan": "[ Ban Thread ] ID %1 has been banned before %2 %3",
54
+ "notExistBan": "[ Unban Thread ] ID you import hasn't been banned before bot",
55
+ "missingCommandInput": "%1 You have to import the command you want to ban!",
56
+ "notExistBanCommand": "[ UnbanCommand Thread ] The thread ID you import hasn't been banned before",
57
+
58
+ "returnBan": "[ Ban Thread ] You are requesting to ban thread:\n- Thread ID: %1%2\n\nโฎ Reaction this message to complete โฏ",
59
+ "returnUnban": "[ Unban Thread ] You are requesting to unban thread:\n- Thread ID: %1\n\nโฎ Reaction this message to complete โฏ",
60
+ "returnBanCommand": "[ banCommand Thread ] You are requesting to ban command with thread:\n - Thread ID: %1\n- Commands: %2\n\nโฎ Reaction this message to complete โฏ",
61
+ "returnUnbanCommand": "[ unbanCommand Thread ] You are requesting to unban command with thread:\n - Thread ID: %1\n- Commands: %2\n\nโฎ Reaction this message to complete โฏ",
62
+
63
+ "returnResult": "This is your result: \n",
64
+ "returnNull": "There is no result with your input!",
65
+ "returnList": "[ Thread List ]\There are %1 banned thread, here are %2\n\n%3",
66
+ "returnInfo": "[ Info Thread ] Here are some information about your thread which you want to search:\n- Thread ID: %1n- Banned?: %2 %3 %4\n- Command banned?: %5"
67
+ }
68
+ }
69
+
70
+ module.exports.handleReaction = async ({ event, api, Threads, handleReaction, getText }) => {
71
+ if (parseInt(event.userID) !== parseInt(handleReaction.author)) return;
72
+ const moment = require("moment-timezone");
73
+ const { threadID } = event;
74
+ const { messageID, type, targetID, reason, commandNeedBan } = handleReaction;
75
+
76
+ const time = moment.tz("Asia/Ho_Chi_minh").format("HH:MM:ss L");
77
+ global.client.handleReaction.splice(global.client.handleReaction.findIndex(item => item.messageID == messageID), 1);
78
+
79
+ switch (type) {
80
+ case "ban": {
81
+ try {
82
+ let data = (await Threads.getData(targetID)).data || {};
83
+ data.banned = true;
84
+ data.reason = reason || null;
85
+ data.dateAdded = time;
86
+ await Threads.setData(targetID, { data });
87
+ global.data.threadBanned.set(targetID, { reason: data.reason, dateAdded: data.dateAdded });
88
+ return api.sendMessage(getText("banSuccess", targetID), threadID, () => {
89
+ return api.unsendMessage(messageID);
90
+ });
91
+ } catch { return api.sendMessage(getText("errorReponse", "[ Ban Thread ]", targetID), threadID) };
92
+ }
93
+
94
+ case "unban": {
95
+ try {
96
+ let data = (await Threads.getData(targetID)).data || {};
97
+ data.banned = false;
98
+ data.reason = null;
99
+ data.dateAdded = null;
100
+ await Threads.setData(targetID, { data });
101
+ global.data.threadBanned.delete(targetID);
102
+ return api.sendMessage(getText("unbanSuccess", targetID), threadID, () => {
103
+ return api.unsendMessage(messageID);
104
+ });
105
+ } catch { return api.sendMessage(getText("errorReponse", "[ unBan Thread ]", targetID), threadID) };
106
+ }
107
+
108
+ case "banCommand": {
109
+ try {
110
+ let data = (await Threads.getData(targetID)).data || {};
111
+ data.commandBanned = [...data.commandBanned || [], ...commandNeedBan];
112
+ await Threads.setData(targetID, { data });
113
+ global.data.commandBanned.set(targetID, data.commandBanned);
114
+ return api.sendMessage(getText("banCommandSuccess", targetID), threadID, () => {
115
+ return api.unsendMessage(messageID);
116
+ });
117
+ } catch (e) { return api.sendMessage(getText("errorReponse", "[ banCommand Thread ]", targetID), threadID) };
118
+ }
119
+
120
+ case "unbanCommand": {
121
+ try {
122
+ let data = (await Threads.getData(targetID)).data || {};
123
+ data.commandBanned = [...data.commandBanned.filter(item => !commandNeedBan.includes(item))];
124
+ await Threads.setData(targetID, { data });
125
+ global.data.commandBanned.set(targetID, data.commandBanned);
126
+ if(data.commandBanned.length == 0) global.data.commandBanned.delete(targetID)
127
+ return api.sendMessage(getText("unbanCommandSuccess", ((data.commandBanned.length == 0) ? getText("allCommand") : `${getText("commandList")}: ${commandNeedBan.join(", ")}`), targetID), threadID, () => {
128
+ return api.unsendMessage(messageID);
129
+ });
130
+ } catch (e) { return api.sendMessage(getText("errorReponse", "[ unbanCommand Thread ]", targetID), threadID) };
131
+ }
132
+ default:
133
+ break;
134
+ }
135
+ }
136
+
137
+ module.exports.run = async ({ event, api, args, Threads, getText }) => {
138
+ const { threadID, messageID } = event;
139
+ var targetID = String(args[1]);
140
+ var reason = (args.slice(2, args.length)).join(" ") || null;
141
+
142
+ if (isNaN(targetID)) {
143
+ targetID = String(event.threadID);
144
+ reason = (args.slice(1, args.length)).join(" ") || null;
145
+ }
146
+
147
+ switch (args[0]) {
148
+ case "ban":
149
+ case "-b": {
150
+ if (!global.data.allThreadID.includes(targetID)) return api.sendMessage(getText("IDNotFound", "[ Ban Thread ]"), threadID, messageID);
151
+ if (global.data.threadBanned.has(targetID)) {
152
+ const { reason, dateAdded } = global.data.threadBanned.get(targetID) || {};
153
+ return api.sendMessage(getText("existBan", targetID, ((reason) ? `${getText("reason")}: "${reason}"` : ""), ((dateAdded) ? `${getText("at")}: ${dateAdded}` : "")), threadID, messageID);
154
+ }
155
+ return api.sendMessage(getText("returnBan", targetID, ((reason) ? `\n- ${getText("reason")}: ${reason}` : "")), threadID, (error, info) => {
156
+ global.client.handleReaction.push({
157
+ type: "ban",
158
+ targetID,
159
+ reason,
160
+ name: this.config.name,
161
+ messageID: info.messageID,
162
+ author: event.senderID,
163
+
164
+ });
165
+ }, messageID);
166
+ }
167
+
168
+ case "unban":
169
+ case "-ub": {
170
+ if (!global.data.allThreadID.includes(targetID)) return api.sendMessage(getText("IDNotFound", "[ Unban Thread ]"), threadID, messageID);
171
+ if (!global.data.threadBanned.has(targetID)) return api.sendMessage(getText("notExistBan"), threadID, messageID);
172
+ return api.sendMessage(getText("returnUnban", targetID), threadID, (error, info) => {
173
+ global.client.handleReaction.push({
174
+ type: "unban",
175
+ targetID,
176
+ name: this.config.name,
177
+ messageID: info.messageID,
178
+ author: event.senderID,
179
+
180
+ });
181
+ }, messageID);
182
+ }
183
+
184
+ case "banCommand":
185
+ case "-bc": {
186
+ if (!global.data.allThreadID.includes(targetID)) return api.sendMessage(getText("IDNotFound", "[ BanCommand Thread ]"), threadID, messageID);
187
+ if (reason == null || reason.length == 0) return api.sendMessage(getText("missingCommandInput", '[ BanCommand Thread ]'), threadID, messageID);
188
+ if (reason == "all") {
189
+ var allCommandName = [];
190
+ const commandValues = global.client.commands.keys();
191
+ for (const cmd of commandValues) allCommandName.push(cmd);
192
+ reason = allCommandName.join(" ");
193
+ }
194
+ const commandNeedBan = reason.split(" ");
195
+ return api.sendMessage(getText("returnBanCommand", targetID, ((commandNeedBan.length == global.client.commands.size) ? getText("allCommand") : commandNeedBan.join(", "))), threadID, (error, info) => {
196
+ global.client.handleReaction.push({
197
+ type: "banCommand",
198
+ targetID,
199
+ commandNeedBan,
200
+ name: this.config.name,
201
+ messageID: info.messageID,
202
+ author: event.senderID,
203
+
204
+ });
205
+ }, messageID);
206
+ }
207
+
208
+ case "unbanCommand":
209
+ case "-ubc": {
210
+ if (!global.data.allThreadID.includes(targetID)) return api.sendMessage(getText("IDNotFound", "[ UnbanCommand Thread ]"), threadID, messageID);
211
+ if (!global.data.commandBanned.has(targetID)) return api.sendMessage(getText("notExistBanCommand"), threadID, messageID);
212
+ if (reason == null || reason.length == 0) return api.sendMessage(getText("missingCommandInput", "[ UnbanCommand Thread ]"), threadID, messageID);
213
+ if (reason == "all") {
214
+ reason = (global.data.commandBanned.get(targetID)).join(" ");
215
+ }
216
+ const commandNeedBan = reason.split(" ");
217
+ return api.sendMessage(getText("returnUnbanCommand", targetID, ((commandNeedBan.length == global.data.commandBanned.get(targetID).length) ? "toร n bแป™ lแป‡nh" : commandNeedBan.join(", "))), threadID, (error, info) => {
218
+ global.client.handleReaction.push({
219
+ type: "unbanCommand",
220
+ targetID,
221
+ commandNeedBan,
222
+ name: this.config.name,
223
+ messageID: info.messageID,
224
+ author: event.senderID,
225
+
226
+ });
227
+ }, messageID);
228
+ }
229
+
230
+ case "search":
231
+ case "-s": {
232
+ const contentJoin = reason || "";
233
+ const getThreads = (await Threads.getAll(['threadID', 'threadInfo'])).filter(item => !!item.threadInfo);
234
+ var matchThreads = [], a = '', b = 0;
235
+ getThreads.forEach(i => {
236
+ if ((i.threadInfo.threadName || "").toLowerCase().includes(contentJoin.toLowerCase())) {
237
+ matchThreads.push({
238
+ name: i.threadInfo.threadName,
239
+ id: i.threadID
240
+ });
241
+ }
242
+ });
243
+ matchThreads.forEach(i => a += `\n${b += 1}. ${i.name} - ${i.id}`);
244
+ (matchThreads.length > 0) ? api.sendMessage(getText("returnResult", a), threadID) : api.sendMessage(getText("returnNull"), threadID, messageID);
245
+ break;
246
+ }
247
+
248
+ case "list":
249
+ case "-l": {
250
+ var listBan = [], i = 0;
251
+ const threadData = global.data.threadBanned.keys();
252
+ for (; ;) {
253
+ if (i > global.data.threadBanned.size) break;
254
+ let idThread = String(threadData.next().value);
255
+ if (typeof idThread == "undefined") {
256
+ const nameThread = (await Threads.getData(idThread)).threadInfo.threadName || "unknown";
257
+ listBan.push(`${i+=1}/ ${idThread} - ${nameThread}`)
258
+ }
259
+ if (i == global.data.threadBanned.size || i == (parseInt(reason) || 10)) break;
260
+ }
261
+ return api.sendMessage(getText("returnList",(global.data.threadBanned.size || 0), listBan.length, listBan.join("\n")), threadID, messageID);
262
+ }
263
+
264
+ case "info":
265
+ case "-i": {
266
+ if (!global.data.allThreadID.includes(targetID)) return api.sendMessage(getText("IDNotFound", "[ Info Thread ]"), threadID, messageID);
267
+ if (global.data.commandBanned.has(targetID)) { var commandBanned = global.data.commandBanned.get(targetID) || [] };
268
+ if (global.data.threadBanned.has(targetID)) { var { reason, dateAdded } = global.data.threadBanned.get(targetID) || {} };
269
+ return api.sendMessage(getText("returnInfo", targetID, ((!dateAdded) ? "YES" : "NO"), ((reason) ? `${getText("reason")}: "${reason}"` : ""), ((dateAdded) ? `${getText("at")}: ${dateAdded}` : ""), ((commandBanned) ? `YES: ${commandBanned.join(", ")}` : "NO")), threadID, messageID);
270
+ }
271
+ }
272
+ }
@@ -0,0 +1,219 @@
1
+ module.exports.config = {
2
+ name: "ttt",
3
+ version: "1.0.1",
4
+ hasPermssion: 0,
5
+ credits: "Mirai Team",
6
+ description: "Play tictactoe with AI",
7
+ commandCategory: "game-sp",
8
+ cooldowns: 5,
9
+ usages: "[random/x/o]"
10
+ };
11
+
12
+ var AIMove;
13
+
14
+ function startBoard({isX, data}) {
15
+ data.board = new Array(3);
16
+ data.isX = isX;
17
+ data.gameOn = true;
18
+ data.gameOver = false;
19
+ data.available = [];
20
+ for(var i = 0; i < 3; i++) data.board[i] = new Array(3).fill(0);
21
+ return data;
22
+ }
23
+
24
+ function displayBoard(data) {
25
+ let msg = "\n";
26
+ for (var i = 0; i < 3; i++) {
27
+ for (var j = 0; j < 3; j++) {
28
+ var temp = data.board[i][j].toString();
29
+ if (temp == "0") msg += "[ ] "
30
+ else if (temp == "1") {
31
+ (data.isX) ? msg += "[O] " : msg += "[X] ";
32
+ }
33
+ else {
34
+ (data.isX) ? msg += "[X] " : msg += "[O] ";
35
+ }
36
+ }
37
+ msg += "\n";
38
+ }
39
+ return msg;
40
+ }
41
+
42
+ function checkAIWon(data) {
43
+ if(data.board[0][0] == data.board[1][1] && data.board[0][0] == data.board[2][2] && data.board[0][0] == 1) return true;
44
+ if(data.board[0][2] == data.board[1][1] && data.board[0][2] == data.board[2][0] && data.board[0][2] == 1) return true;
45
+ for(var i = 0; i < 3; ++i) {
46
+ if(data.board[i][0] == data.board[i][1] && data.board[i][0] == data.board[i][2] && data.board[i][0] == 1) return true;
47
+ if(data.board[0][i] == data.board[1][i] && data.board[0][i] == data.board[2][i] && data.board[0][i] == 1) return true;
48
+ }
49
+ return false;
50
+ }
51
+
52
+ function checkPlayerWon(data) {
53
+ if(data.board[0][0] == data.board[1][1] && data.board[0][0] == data.board[2][2] && data.board[0][0] == 2) return true;
54
+ if(data.board[0][2] == data.board[1][1] && data.board[0][2] == data.board[2][0] && data.board[0][2] == 2) return true;
55
+ for(var i = 0; i < 3; ++i) {
56
+ if(data.board[i][0] == data.board[i][1] && data.board[i][0] == data.board[i][2] && data.board[i][0] == 2) return true;
57
+ if(data.board[0][i] == data.board[1][i] && data.board[0][i] == data.board[2][i] && data.board[0][i] == 2) return true;
58
+ }
59
+ return false;
60
+ }
61
+
62
+ function solveAIMove({depth, turn, data}) {
63
+ if (checkAIWon(data)) return +1;
64
+ if (checkPlayerWon(data)) return -1;
65
+ let availablePoint = getAvailable(data);
66
+ if (availablePoint.length == 0) return 0;
67
+
68
+ var min = Number.MAX_SAFE_INTEGER;
69
+ var max = Number.MIN_SAFE_INTEGER;
70
+
71
+ for (var i = 0, length = availablePoint.length; i < length; i++) {
72
+ var point = availablePoint[i];
73
+ if (turn == 1) {
74
+ placeMove({point, player: 1, data});
75
+ var currentScore = solveAIMove({depth: depth + 1, turn: 2, data});
76
+ max = Math.max(currentScore, max);
77
+ if (currentScore >= 0) {
78
+ if (depth == 0) AIMove = point;
79
+ }
80
+ if (currentScore == 1) {
81
+ data.board[point[0]][point[1]] = 0;
82
+ break;
83
+ }
84
+ if(i == availablePoint.length - 1 && max < 0) {
85
+ if(depth == 0) AIMove = point;
86
+ }
87
+ }
88
+ else if (turn == 2) {
89
+ placeMove({point, player: 2, data});
90
+ var currentScore = solveAIMove({depth: depth + 1, turn: 1, data});
91
+ min = Math.min(currentScore, min);
92
+ if (min == -1) {
93
+ data.board[point[0]][point[1]] = 0;
94
+ break;
95
+ }
96
+ }
97
+ data.board[point[0]][point[1]] = 0;
98
+ }
99
+ return turn == 1 ? max : min;
100
+ }
101
+
102
+ function placeMove({point, player, data}) {
103
+ return data.board[point[0]][point[1]] = player;
104
+ }
105
+
106
+ function getAvailable(data) {
107
+ let availableMove = []
108
+ for (var i = 0; i < 3; i++) {
109
+ for (var j = 0; j < 3; j++) {
110
+ if (data.board[i][j] == 0) availableMove.push([i, j]);
111
+ }
112
+ }
113
+ return availableMove;
114
+ }
115
+
116
+ function checkAvailableSpot(point, pointArray) {
117
+ if (pointArray.find(element => element.toString() == point.toString())) return true;//pointArray[i].toString() == point.toString()) return true;
118
+ else return false;
119
+
120
+ }
121
+
122
+ function move(x, y, data) {
123
+ if (checkGameOver(data)) return "game over";
124
+ var availablePoint = getAvailable(data);
125
+ var playerMove = [x, y];
126
+ if (checkAvailableSpot(playerMove, availablePoint)) {
127
+ placeMove({point: playerMove, player: 2, data});
128
+ } else return "spot not available";
129
+ if (checkGameOver(data)) return "game over!";
130
+ solveAIMove({depth: 0, turn: 1, data});
131
+ placeMove({point: AIMove, player: 1, data});
132
+ }
133
+
134
+ function checkGameOver(data) {
135
+ if (getAvailable(data).length == 0 || checkAIWon(data) || checkPlayerWon(data)) return true;
136
+ return false;
137
+ }
138
+
139
+ function AIStart(data) {
140
+ var point = [Math.round(Math.random()) * 2, Math.round(Math.random()) * 2];
141
+ placeMove({point, player: 1, data});
142
+ }
143
+
144
+
145
+ module.exports.handleEvent = ({ event, api }) => {
146
+ let {body, threadID, messageID,senderID} = event;
147
+ if (!global.moduleData.tictactoe) global.moduleData.tictactoe = new Map();
148
+ let data = global.moduleData.tictactoe.get(threadID);
149
+ if (!data || data.gameOn == false) return;
150
+ if (body == "show") return api.sendMessage(`${displayBoard(data)}`, threadID, messageID);
151
+ if (!data.player == senderID) return;
152
+ if(body && /^[0-9]*$/.test(body)) {
153
+ var row = parseInt(body.substring(0, 1));
154
+ var col = parseInt(body.substring(1));
155
+ if(row >= 0 && row <= 2 && col >= 0 && col <= 2) {
156
+ var temp = move(row, col, data);
157
+ if(temp == undefined) {
158
+ api.sendMessage(`${displayBoard(data)}`, threadID, messageID);
159
+ }
160
+ else {
161
+ api.sendMessage(temp, threadID);
162
+ api.sendMessage(`${displayBoard(data)}`, threadID);
163
+ }
164
+ if(checkGameOver(data)) {
165
+ if(checkAIWon(data)) api.sendMessage("AI has won!", threadID, messageID);
166
+ else if(checkPlayerWon(data)) api.sendMessage("Player has won!", threadID, messageID);
167
+ else api.sendMessage("It's a draw!", threadID, messageID);
168
+ global.moduleData.tictactoe.delete(threadID);
169
+ }
170
+ }
171
+ }
172
+ }
173
+
174
+ module.exports.run = ({ event, api, args }) => {
175
+ if (!global.moduleData.tictactoe) global.moduleData.tictactoe = new Map();
176
+ let {threadID, messageID, senderID} = event;
177
+ let data = global.moduleData.tictactoe.get(threadID) || { "gameOn": false, "player": "" };
178
+ let newData;
179
+ if (!data.gameOn) {
180
+ switch (args[0]) {
181
+ case "random":
182
+ if(Math.random() > 0.5) {
183
+ newData = startBoard({isX: true, data, threadID});
184
+ api.sendMessage("you go first, X", threadID, messageID);
185
+ api.sendMessage(`${displayBoard(newData)}`, threadID, messageID);
186
+ }
187
+ else {
188
+ newData = startBoard({isX: false, data, threadID});
189
+ AIStart(newData);
190
+ api.sendMessage("AI go first, O", threadID, messageID);
191
+ }
192
+ break;
193
+ case "x":
194
+ newData = startBoard({isX: true, data, threadID});
195
+ api.sendMessage("you go first, X", threadID, messageID);
196
+ api.sendMessage(`${displayBoard(newData)}`, threadID, messageID);
197
+ break;
198
+ case "o":
199
+ newData = startBoard({isX: false, data, threadID});
200
+ AIStart(newData);
201
+ api.sendMessage("AI go first, O", threadID, messageID);
202
+ break;
203
+ default:
204
+ if(Math.random() > 0.5) {
205
+ newData = startBoard({isX: true, data, threadID});
206
+ api.sendMessage("you go first, X", threadID, messageID);
207
+ api.sendMessage(`${displayBoard(newData)}`, threadID, messageID);
208
+ }
209
+ else {
210
+ newData = startBoard({isX: false, data, threadID});
211
+ AIStart(newData);
212
+ api.sendMessage("AI go first, O", threadID, messageID);
213
+ }
214
+ break;
215
+ }
216
+ newData.player = senderID;
217
+ global.moduleData.tictactoe.set(threadID, newData);
218
+ }
219
+ }
@@ -0,0 +1,15 @@
1
+ module.exports.config = {
2
+ name: "tid",
3
+ version: "1.0.0",
4
+ hasPermssion: 0,
5
+ credits: "๐๐ซ๐ข๐ฒ๐š๐ง๐ฌ๐ก ๐‘๐š๐ฃ๐ฉ๐ฎ๐ญ",
6
+ description: "Get box id",
7
+ commandCategory: "group",
8
+ usages: "tid",
9
+ cooldowns: 5,
10
+ dependencies: '',
11
+ };
12
+
13
+ module.exports.run = async function({ api, event }) {
14
+ api.sendMessage("ID of this thread: "+event.threadID, event.threadID, event.messageID);
15
+ };
@@ -0,0 +1,74 @@
1
+ module.exports.config = {
2
+ name: "tiki",
3
+ version: "1.0.1",
4
+ hasPermssion: 0,
5
+ credits: "๐๐ซ๐ข๐ฒ๐š๐ง๐ฌ๐ก ๐‘๐š๐ฃ๐ฉ๐ฎ๐ญ",
6
+ description: "Write words on the board \_(ใƒ„)_/ยฏ",
7
+ commandCategory: "Tools",
8
+ usages: "tiki [text]",
9
+ cooldowns: 10,
10
+ dependencies: {
11
+ "canvas":"",
12
+ "axios":"",
13
+ "fs-extra":""
14
+ }
15
+ };
16
+
17
+ module.exports.wrapText = (ctx, text, maxWidth) => {
18
+ return new Promise(resolve => {
19
+ if (ctx.measureText(text).width < maxWidth) return resolve([text]);
20
+ if (ctx.measureText('W').width > maxWidth) return resolve(null);
21
+ const words = text.split(' ');
22
+ const lines = [];
23
+ let line = '';
24
+ while (words.length > 0) {
25
+ let split = false;
26
+ while (ctx.measureText(words[0]).width >= maxWidth) {
27
+ const temp = words[0];
28
+ words[0] = temp.slice(0, -1);
29
+ if (split) words[1] = `${temp.slice(-1)}${words[1]}`;
30
+ else {
31
+ split = true;
32
+ words.splice(1, 0, temp.slice(-1));
33
+ }
34
+ }
35
+ if (ctx.measureText(`${line}${words[0]}`).width < maxWidth) line += `${words.shift()} `;
36
+ else {
37
+ lines.push(line.trim());
38
+ line = '';
39
+ }
40
+ if (words.length === 0) lines.push(line.trim());
41
+ }
42
+ return resolve(lines);
43
+ });
44
+ }
45
+
46
+ module.exports.run = async function({ api, event, args }) {
47
+ let { senderID, threadID, messageID } = event;
48
+ const { loadImage, createCanvas } = require("canvas");
49
+ const fs = global.nodemodule["fs-extra"];
50
+ const axios = global.nodemodule["axios"];
51
+ let pathImg = __dirname + '/cache/tiki.png';
52
+ var text = args.join(" ");
53
+ if (!text) return api.sendMessage("Enter content", threadID, messageID);
54
+ let getPorn = (await axios.get(`https://imgur.com/nqUIi2S.png`, { responseType: 'arraybuffer' })).data;
55
+ fs.writeFileSync(pathImg, Buffer.from(getPorn, 'utf-8'));
56
+ let baseImage = await loadImage(pathImg);
57
+ let canvas = createCanvas(baseImage.width, baseImage.height);
58
+ let ctx = canvas.getContext("2d");
59
+ ctx.drawImage(baseImage, 0, 0, canvas.width, canvas.height);
60
+ ctx.font = "200 50px Gabriele";
61
+ ctx.fillStyle = "#FFCC33";
62
+ ctx.textAlign = "start";
63
+ let fontSize = 45;
64
+ while (ctx.measureText(text).width > 2600) {
65
+ fontSize--;
66
+ ctx.font = `400 ${fontSize}px Gabriele, sans-serif`;
67
+ }
68
+ const lines = await this.wrapText(ctx, text, 900);
69
+ ctx.fillText(lines.join('\n'), 625,430);//comment
70
+ ctx.beginPath();
71
+ const imageBuffer = canvas.toBuffer();
72
+ fs.writeFileSync(pathImg, imageBuffer);
73
+ return api.sendMessage({ attachment: fs.createReadStream(pathImg) }, threadID, () => fs.unlinkSync(pathImg), messageID);
74
+ }
@@ -0,0 +1,59 @@
1
+ module.exports.config = {
2
+ name: "tikvideo",
3
+ version: "1.0.0",
4
+ hasPermssion: 0,
5
+ credits: "Thiแป‡u Trung Kiรชn",
6
+ description: "Download tiktok video",
7
+ commandCategory: "For user",
8
+ usages: "",
9
+ cooldowns: 5
10
+ }, module.exports.onLoad = function() {
11
+ console.log("===TIKTOK DOWNLOAD NO WATERMARK===")
12
+ }, module.exports.run = async function({ args,event, api }) {
13
+ const axios = require("axios");
14
+ const fs = require("fs-extra");
15
+ const request = require("request");
16
+ var img = [];
17
+ if(!args[0]){
18
+ return api.sendMessage(`No content entered`,event.threadID, event.messageID)
19
+ }
20
+ const res = (await axios.get(`http://api.leanhtruong.net/api-no-key/tiktok?url=${encodeURI(args[0])}`)).data
21
+ let imga = (await axios.get(res.thumbail , { responseType: "arraybuffer" } )).data;
22
+ fs.writeFileSync(__dirname + "/cache/tiktok.png", Buffer.from(imga, "utf-8") );
23
+ img.push(fs.createReadStream(__dirname + "/cache/tiktok.png"));
24
+ var msg = {body: `Title: ${res.title}\nAuthor : ${res.author_video}\nTitle Music : ${res.data_music.title}\n\n1.Download Videos\n2.Download Music\n\nReply message to choose!`,attachment: img}
25
+ return api.sendMessage(msg, event.threadID, (error, info) => {
26
+ global.client.handleReply.push({
27
+ type: "reply",
28
+ name: this.config.name,
29
+ author: event.senderID,
30
+ messageID: info.messageID,
31
+ video: res.data_nowatermark[0].url,
32
+ mp3: res.data_music.url,
33
+ title: res.title,
34
+ authorvd: res.author_video,
35
+ text : res.data_music.title
36
+ })
37
+ })
38
+ }
39
+ module.exports.handleReply = async function ({ args, event, Users, Currencies, api, handleReply }) {
40
+ const axios = require("axios");
41
+ const fs = require("fs-extra");
42
+ const request = require("request");
43
+ let { author, video,mp3, title,authorvd, text , messageID } = handleReply;
44
+ if (event.senderID != author) return api.sendMessage("Rรกc ?", event.threadID, event.messageID);
45
+ switch(handleReply.type) {
46
+ case "reply": {
47
+ switch(event.body){
48
+ case"1":{
49
+ var callback = () => api.sendMessage({body:`VIDEO : ${authorvd}\nTitle : ${title}\n`,attachment: fs.createReadStream(__dirname + "/cache/toptop.mp4")}, event.threadID, () => fs.unlinkSync(__dirname + "/cache/toptop.mp4"),event.messageID);
50
+ return request(encodeURI(`${video}`)).pipe(fs.createWriteStream(__dirname+'/cache/toptop.mp4')).on('close',() => callback());
51
+ }
52
+ case"2":{
53
+ var callback = () => api.sendMessage({body:`Song: ${text}`,attachment: fs.createReadStream(__dirname + "/cache/toptop.m4a")}, event.threadID, () => fs.unlinkSync(__dirname + "/cache/toptop.m4a"),event.messageID);
54
+ return request(encodeURI(`${mp3}`)).pipe(fs.createWriteStream(__dirname+'/cache/toptop.m4a')).on('close',() => callback());
55
+ }
56
+ }
57
+ }
58
+ }
59
+ }