gaber-elsayed

Untitled

Aug 3rd, 2021
94
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 122.17 KB | None | 0 0
  1. const functions = require("../../functions")
  2. const config = require("../../config.json");
  3. const { MessageEmbed,MessageAttachment } = require("discord.js");
  4. const Discord = require("discord.js")
  5. const Canvacord = require("canvacord");
  6. const { Welcomer, Leaver } = require("canvacord");
  7. module.exports = {
  8. name: "setup",
  9. aliases: ["setup"],
  10. category: "📕 Setup Commands",
  11. description: "Show the list of available setup systems!",
  12. usage: "setup",
  13. run: async (client, message, args) => {
  14.  
  15. if (!message.member.hasPermission("ADMINISTRATOR")) return functions.embedbuilder(client,"null", message, config.colors.no, "SETUPS", `❌ You don\'t have permission for this Command!`)
  16. let embed = new MessageEmbed()
  17. .setColor(config.colors.yes)
  18. .setTitle("What Setup do u want?")
  19. .setDescription(`
  20. **1.** \`Welcome/Leave System\`
  21. **2.** \`Ticket System\`
  22. **3.** \`Ranking System\`
  23. **4.** \`Join to Create\`
  24. **5.** \`AI-CHAT System\`
  25. **6.** \`Counter Chat System\`
  26. **7.** \`Member Counter Channel\`
  27. **8.** \`Logger System\`
  28. **9.** \`Application System\`
  29. **10.** \`Reaction Role System\`
  30. `).addField("**__TUTORIAL VIDEO__**", "https://youtu.be/DpWLmoLd84Y")
  31.  
  32. .setFooter("Pick the INDEX NUMBER", config.AVATARURL)
  33. .setThumbnail(config.AVATARURL)
  34.  
  35.  
  36. message.reply(embed).then(msg => {
  37. msg.channel.awaitMessages(m=> m.author.id === message.author.id, { max: 1, time: 30000, errors: ['time'] }).then(collected=>{
  38. switch(collected.first().content.toString()){
  39. case "1":
  40. welcomesystem();
  41. break;
  42. case "2":
  43. ticketsystem();
  44. break;
  45. case "3":
  46. rankingsystem();
  47. break;
  48. case "4":
  49. jointocreatesystem();
  50. break;
  51. case "5":
  52. aichat();
  53. break;
  54. case "6":
  55. counter()
  56. break;
  57. case "7":
  58. membercountsystem();
  59. break;
  60. case "8":
  61. loggersystem();
  62. break;
  63. case "9":
  64. applysystem();
  65. break;
  66. case "10":
  67. reactionrolesystem()
  68. break;
  69. default:
  70. message.reply(String("SORRY, that Number does not exists :(\n Your Input:\n> " + collected.first().content).substr(0,1999))
  71. break;
  72.  
  73. }
  74. }).catch(error=>{
  75. console.log(error)
  76. return message.reply("SORRY BUT YOUR TIME RAN OUT!")
  77. })
  78. })
  79. /**
  80. * @APPLYSYSTEM NOT FINISHED
  81. */
  82. function applysystem(){
  83. let rembed = new MessageEmbed()
  84. .setColor(config.colors.yes)
  85. .setTitle("What do u want to do?")
  86. .setDescription(`
  87. **1.** \`Create Setup\` - *Creates ONE Application System*
  88. **2.** \`Edit Setup\` - *Edits the already existing Application System*
  89. **3.** \`Reset\` - *Resets settings for Application system*
  90. `)
  91. .setFooter("Pick the INDEX NUMBER", config.AVATARURL)
  92. .setThumbnail(config.AVATARURL)
  93.  
  94. message.reply(rembed).then(msg => {
  95. msg.channel.awaitMessages(m=>m.author.id===message.author.id,{max:1,time:30000,errors:['time']}).then(collected=>{
  96. switch(collected.first().content.toString()){
  97. case "1":
  98. let color = "GREEN";
  99. let desc;
  100. let userid = message.author.id;
  101.  
  102. message.reply(new Discord.MessageEmbed().setFooter(message.guild.name, message.guild.iconURL({dynamic:true})).setColor(config.colors.yes).setAuthor("Setting up...", "https://miro.medium.com/max/1600/1*e_Loq49BI4WmN7o9ItTADg.gif").setFooter(message.guild.name, message.guild.iconURL({dynamic:true})))
  103. message.guild.channels.create("📋 | Applications", {
  104. type: "category",
  105. }).then(ch=>{
  106. ch.guild.channels.create("✔️|finished-applies", {
  107. type: "text",
  108. topic: "React to the Embed, to start the application process",
  109. parent: ch.id,
  110. permissionOverwrites: [
  111. {
  112. id: ch.guild.id,
  113. deny: ["VIEW_CHANNEL"]
  114. }
  115. ]
  116. }).then(ch=> {
  117. client.apply.set(ch.guild.id, ch.id, "f_channel_id")
  118. })
  119. ch.guild.channels.create("✅|apply-here", {
  120. type: "text",
  121. topic: "React to the Embed, to start the application process",
  122. parent: ch.id,
  123. permissionOverwrites: [
  124. {
  125. id: ch.guild.id,
  126. allow: ["VIEW_CHANNEL"],
  127. deny: ["SEND_MESSAGES"]
  128. }
  129. ]
  130. }).then(ch=> {
  131. let embed = new Discord.MessageEmbed().setFooter(message.guild.name, message.guild.iconURL({dynamic:true}))
  132. .setColor("ORANGE")
  133. .setFooter(message.guild.name, message.guild.iconURL({dynamic:true}))
  134. message.channel.send(embed.setTitle("What should be the embed color?").setDescription("It MUST be an HEX CODE 7 letters long, **with** the `#` (e.g: #ffee55)")).then(msg =>{
  135. msg.channel.awaitMessages(m => m.author.id === userid, {max: 1, time: 60000, errors: ["TIME"]}).then(collected=>{
  136. let content = collected.first().content;
  137. if(!content.startsWith("#") && content.length !== 7){
  138. message.reply("WRONG COLOR! USING `GREEN`")
  139. }
  140. else {
  141. if(isValidColor(content)){
  142. console.log(content)
  143. color = content;
  144. }
  145. else{
  146. message.reply("WRONG COLOR! USING `GREEN`")
  147. }
  148. }
  149. function isValidColor(str) {
  150. return str.match(/^#[a-f0-9]{6}$/i) !== null;
  151. }
  152. }).catch(error=>{
  153. console.log(error)
  154. return message.reply("SORRY BUT YOUR TIME RAN OUT!")
  155. })
  156. .then(something=>{
  157. message.channel.send(embed.setTitle("What should be the embed TEXT?").setDescription("Like what do u want to have listed in the Embed?")).then(msg =>{
  158. msg.channel.awaitMessages(m => m.author.id === userid, {max: 1, time: 60000, errors: ["TIME"]}).then(collected=>{
  159. desc = collected.first().content;
  160. let setupembed = new Discord.MessageEmbed().setFooter(message.guild.name, message.guild.iconURL({dynamic:true}))
  161. .setColor(color)
  162. .setDescription(desc)
  163. .setTitle("Apply for: `" + message.guild.name + "`")
  164. .setFooter(message.guild.name, message.guild.iconURL({dynamic:true}))
  165. ch.send(setupembed).then(msg=>{
  166. msg.react("✅")
  167. client.apply.set(msg.guild.id, msg.channel.id, "channel_id")
  168. });
  169. let counter = 0;
  170. client.apply.set(msg.guild.id, [{"1":"DEFAULT"}], "QUESTIONS")
  171. ask_which_qu();
  172. function ask_which_qu(){
  173. counter++;
  174. if(counter === 25) {
  175. message.reply(new Discord.MessageEmbed().setFooter(message.guild.name, message.guild.iconURL({dynamic:true})).setColor("RED").setAuthor("You reached the maximum amount of Questions!", "https://emojipedia-us.s3.dualstack.us-west-1.amazonaws.com/thumbs/120/facebook/65/cross-mark_274c.png"))
  176. return ask_addrole();
  177. }
  178. message.channel.send(embed.setTitle(`What should be the **${counter}** Question?`).setDescription("Enter `finish`, if you are finished with your Questions!")).then(msg=>{
  179. msg.channel.awaitMessages(m => m.author.id === userid, {max: 1, time: 60000, errors: ["TIME"]}).then(collected => {
  180. if(collected.first().content.toLowerCase() === "finish") {
  181. return ask_addrole();
  182. }
  183. switch(counter){
  184. case 1: { client.apply.set(msg.guild.id, [], "QUESTIONS"); client.apply.push(msg.guild.id, {"1": collected.first().content}, "QUESTIONS");}break;
  185. case 2: client.apply.push(msg.guild.id, {"2": collected.first().content}, "QUESTIONS");break;
  186. case 3: client.apply.push(msg.guild.id, {"3": collected.first().content}, "QUESTIONS");break;
  187. case 4: client.apply.push(msg.guild.id, {"4": collected.first().content}, "QUESTIONS");break;
  188. case 5: client.apply.push(msg.guild.id, {"5": collected.first().content}, "QUESTIONS");break;
  189. case 6: client.apply.push(msg.guild.id, {"6": collected.first().content}, "QUESTIONS");break;
  190. case 7: client.apply.push(msg.guild.id, {"7": collected.first().content}, "QUESTIONS");break;
  191. case 8: client.apply.push(msg.guild.id, {"8": collected.first().content}, "QUESTIONS");break;
  192. case 9: client.apply.push(msg.guild.id, {"9": collected.first().content}, "QUESTIONS");break;
  193. case 10: client.apply.push(msg.guild.id, {"10": collected.first().content}, "QUESTIONS");break;
  194. case 11: client.apply.push(msg.guild.id, {"11": collected.first().content}, "QUESTIONS");break;
  195. case 12: client.apply.push(msg.guild.id, {"12": collected.first().content}, "QUESTIONS");break;
  196. case 13: client.apply.push(msg.guild.id, {"13": collected.first().content}, "QUESTIONS");break;
  197. case 14: client.apply.push(msg.guild.id, {"14": collected.first().content}, "QUESTIONS");break;
  198. case 15: client.apply.push(msg.guild.id, {"15": collected.first().content}, "QUESTIONS");break;
  199. case 16: client.apply.push(msg.guild.id, {"16": collected.first().content}, "QUESTIONS");break;
  200. case 17: client.apply.push(msg.guild.id, {"17": collected.first().content}, "QUESTIONS");break;
  201. case 18: client.apply.push(msg.guild.id, {"18": collected.first().content}, "QUESTIONS");break;
  202. case 19: client.apply.push(msg.guild.id, {"19": collected.first().content}, "QUESTIONS");break;
  203. case 20: client.apply.push(msg.guild.id, {"20": collected.first().content}, "QUESTIONS");break;
  204. case 21: client.apply.push(msg.guild.id, {"21": collected.first().content}, "QUESTIONS");break;
  205. case 22: client.apply.push(msg.guild.id, {"22": collected.first().content}, "QUESTIONS");break;
  206. case 23: client.apply.push(msg.guild.id, {"23": collected.first().content}, "QUESTIONS");break;
  207. case 24: client.apply.push(msg.guild.id, {"24": collected.first().content}, "QUESTIONS");break;
  208. }
  209. ask_which_qu();
  210. }).catch(error=>{
  211. console.log(error)
  212. return message.reply("SORRY BUT YOUR TIME RAN OUT!")
  213. })
  214. })
  215. }
  216. function ask_addrole(){
  217. message.channel.send(embed.setTitle(`Do you want to add a Role, when some1 applies?`).setDescription("Enter `no`, if not\n\nJust ping the Role")).then(msg=>{
  218. msg.channel.awaitMessages(m => m.author.id === userid, {max: 1, time: 60000, errors: ["TIME"]}).then(async collected => {
  219. if(collected.first().content.toLowerCase() === "no") {
  220. return message.reply(`YOUR APPLICATION SYSTEM IS READY 2 USE: ${ch}\n\n*You can edit Questions by running the cmd: \`//setup\`->\`editsetup\` / rerunning: \`//setup\`* NOTE: ONLY ONE SETUP**/**GUILD`);
  221. }
  222. else{
  223. let role = collected.first().mentions.roles.map(role => role.id).join(" ");
  224. if(!role) return message.reply(`COULD NOT FIND THE ROLE!\n\nYOUR APPLICATION SYSTEM IS READY 2 USE: ${ch}\n\n*You can edit Questions by running the cmd: \`//setup\`->\`editsetup\` / rerunning: \`//setup\`* NOTE: ONLY ONE SETUP**/**GUILD`)
  225. let guildrole = message.guild.roles.cache.get(role)
  226. let botrole = message.guild.roles.cache.get(message.guild.me.roles.highest.id)
  227.  
  228. if(guildrole.position >= botrole.position){
  229. message.channel.send("I can't access that role, place \"me\" / \"my highest Role\" above other roles that you want me to manage.\n\n SO I AM USING **NO** ROLE, you can change it with: `e!editsetup role`")
  230. return message.reply(`YOUR APPLICATION SYSTEM IS READY 2 USE: ${ch}\n\n*You can edit Questions by running the cmd: \`//setup\`->\`editsetup\` / rerunning: \`//setup\`* NOTE: ONLY ONE SETUP**/**GUILD`)
  231. }
  232. client.apply.set(message.guild.id, role, "TEMP_ROLE")
  233. return message.reply(`YOUR APPLICATION SYSTEM IS READY 2 USE: ${ch}\n\n*You can edit Questions by running the cmd: \`//setup\`->\`editsetup\` / rerunning: \`//setup\`* NOTE: ONLY ONE SETUP**/**GUILD`)
  234. }
  235. }).catch(error=>{
  236. console.log(error)
  237. return message.reply("SORRY BUT YOUR TIME RAN OUT!")
  238. })
  239. })
  240. }
  241. }).catch(error=>{
  242. console.log(error)
  243. return message.reply("SORRY BUT YOUR TIME RAN OUT!")
  244. })
  245. })
  246. })
  247. })
  248. })
  249. })
  250. break;
  251. case "2":
  252. let rrembed = new MessageEmbed()
  253. .setColor(config.colors.yes)
  254. .setTitle("What do u want to do?")
  255. .setDescription(`
  256. **1.** \`acceptmsg\` - *Edit's the accept message!*
  257. **2.** \`denymsg\` - *Edit's the deny message!*
  258. **3.** \`question\` - *Edit one Question out of all Questions*
  259. **4.** \`role\` - *Edit's the Role*
  260. **5.** \`addquestion\` - *Add a Question to the Questions*
  261. `)
  262. .setFooter("Pick the INDEX NUMBER", config.AVATARURL)
  263. .setThumbnail(config.AVATARURL)
  264.  
  265. message.reply(rrembed).then(msg => {
  266. msg.channel.awaitMessages(m=>m.author.id===message.author.id,{max:1,time:30000,errors:['time']}).then(collected=>{
  267. switch(collected.first().content.toString()){
  268. case "1":
  269.  
  270. {
  271. message.channel.send(new Discord.MessageEmbed().setFooter(message.guild.name, message.guild.iconURL({dynamic:true})).setColor(config.colors.yes).setAuthor("What should be the new accept message?", message.author.displayAvatarURL({dynamic:true}))).then(msg=>{
  272. msg.channel.awaitMessages(m=>m.author.id === message.author.id, {max: 1, time: 60000, errors: ["TIME"]}).then(collected=>{
  273. client.apply.set(message.guild.id, collected.first().content, "accept")
  274. return message.reply(new Discord.MessageEmbed().setFooter(message.guild.name, message.guild.iconURL({dynamic:true})).setColor("GREEN").setAuthor("Successfully changed the ACCEPT MESSAGE!", message.author.displayAvatarURL({dynamic:true})))
  275. }).catch(error=>{
  276. console.log(error)
  277. return message.reply("SORRY BUT YOUR TIME RAN OUT!")
  278. })
  279. })
  280. }
  281. break;
  282. case "2":
  283.  
  284. {
  285. message.channel.send(new Discord.MessageEmbed().setFooter(message.guild.name, message.guild.iconURL({dynamic:true})).setColor(config.colors.yes).setAuthor("What should be the new deny message?", message.author.displayAvatarURL({dynamic:true}))).then(msg=>{
  286. msg.channel.awaitMessages(m=>m.author.id === message.author.id, {max: 1, time: 60000, errors: ["TIME"]}).then(collected=>{
  287. client.apply.set(message.guild.id, collected.first().content, "deny")
  288. return message.reply(new Discord.MessageEmbed().setFooter(message.guild.name, message.guild.iconURL({dynamic:true})).setColor("GREEN").setAuthor("Successfully changed the DENY MESSAGE!", message.author.displayAvatarURL({dynamic:true})))
  289. }).catch(error=>{
  290. console.log(error)
  291. return message.reply("SORRY BUT YOUR TIME RAN OUT!")
  292. })
  293. })
  294. }
  295. break;
  296. case "3":
  297.  
  298. {
  299. let Questions = client.apply.get(message.guild.id, "QUESTIONS");
  300.  
  301. let embed = new Discord.MessageEmbed().setFooter(message.guild.name, message.guild.iconURL({dynamic:true}))
  302. .setColor(config.colors.yes)
  303. .setTitle("Current Questions") //Tomato#6966
  304. .setDescription("WHICH QUESTION DO U WANT TO EDIT?")
  305. .setFooter("ADD THE INDEX TO EDIT THE MSG", message.guild.iconURL({dynamic: true}))
  306. .setTimestamp()
  307.  
  308. for(let i = 0; i < Questions.length; i++){
  309. try{
  310. embed.addField("**"+Object.keys(Questions[i])+".** ",Object.values(Questions[i]))
  311. }catch (e){
  312. console.log(e)
  313. }
  314. }
  315.  
  316. message.channel.send(embed).then(msg=>{
  317. msg.channel.awaitMessages(m=>m.author.id === message.author.id, {max: 1, time: 60000, errors:["TIME"]}).then(collected=>{
  318.  
  319.  
  320. let arr = client.apply.get(message.guild.id, "QUESTIONS");
  321. if(arr.length >= Number(collected.first().content)){
  322. message.channel.send(new Discord.MessageEmbed().setFooter(message.guild.name, message.guild.iconURL({dynamic:true})).setColor(config.colors.yes).setAuthor("What should be the new Question?", message.author.displayAvatarURL({dynamic:true}))).then(msg=>{
  323. msg.channel.awaitMessages(m=>m.author.id === message.author.id, {max: 1, time: 60000, errors: ["TIME"]}).then(collected => {
  324. const index = Number(collected.first().content);
  325. var obj;
  326. switch(Number(index)){
  327. case 1: obj = {"1": collected.first().content};break;
  328. case 2: obj = {"2": collected.first().content};break;
  329. case 3: obj = {"3": collected.first().content};break;
  330. case 4: obj = {"4": collected.first().content};break;
  331. case 5: obj = {"5": collected.first().content};break;
  332. case 6: obj = {"6": collected.first().content};break;
  333. case 7: obj = {"7": collected.first().content};break;
  334. case 8: obj = {"8": collected.first().content};break;
  335. case 9: obj = {"9": collected.first().content};break;
  336. case 10: obj = {"10": collected.first().content};break;
  337. case 11: obj = {"11": collected.first().content};break;
  338. case 12: obj = {"12": collected.first().content};break;
  339. case 13: obj = {"13": collected.first().content};break;
  340. case 14: obj = {"14": collected.first().content};break;
  341. case 15: obj = {"15": collected.first().content};break;
  342. case 16: obj = {"16": collected.first().content};break;
  343. case 17: obj = {"17": collected.first().content};break;
  344. case 18: obj = {"18": collected.first().content};break;
  345. case 19: obj = {"19": collected.first().content};break;
  346. case 20: obj = {"20": collected.first().content};break;
  347. case 21: obj = {"21": collected.first().content};break;
  348. case 22: obj = {"22": collected.first().content};break;
  349. case 23: obj = {"23": collected.first().content};break;
  350. case 24: obj = {"24": collected.first().content};break;
  351. }
  352. arr[index-1] = obj;
  353. client.apply.set(message.guild.id, arr, "QUESTIONS")
  354. Questions = client.apply.get(message.guild.id, "QUESTIONS");
  355. let new_embed = new Discord.MessageEmbed().setFooter(message.guild.name, message.guild.iconURL({dynamic:true}))
  356. .setColor(config.colors.yes)
  357. .setTitle("NEW Questions") //Tomato#6966
  358. .setFooter(message.guild.name, message.guild.iconURL({dynamic: true}))
  359. .setTimestamp()
  360. for(let i = 0; i < Questions.length; i++){
  361. try{
  362. new_embed.addField("**"+Object.keys(Questions[i])+".** ",Object.values(Questions[i]))
  363. }catch{
  364. }
  365. }
  366. message.channel.send(new_embed);
  367. }).catch(error=>{
  368. console.log(error)
  369. return message.reply("SORRY BUT YOUR TIME RAN OUT!")
  370. })
  371. })
  372. }else{
  373. message.reply(new Discord.MessageEmbed().setFooter(message.guild.name, message.guild.iconURL({dynamic:true})).setColor("RED").setAuthor("It seems, that this Question does not exist! Please retry! Here are all Questions:", message.author.displayAvatarURL({dynamic:true})))
  374. return message.channel.send(embed);
  375. }
  376.  
  377. })
  378. .catch(e=>{
  379. return message.reply("YOUR TIME RAN OUT!, Cancelled")
  380. })
  381. })
  382. }
  383. break;
  384. case "4":
  385. message.channel.send("What should be the new role?\n\nJust ping it!").then(msg=>{
  386. msg.channel.awaitMessages(m=>m.author.id === message.author.id, {max: 1, time: 60000, errors: ["TIME"]}).then(collected=>{
  387. if(!collected.first().mentions.roles) return message.reply("YOU did not ping a role!")
  388. let roleid = collected.first().mentions.roles.map(role => role.id)[0];
  389. let guildrole = message.guild.roles.cache.get(roleid)
  390. let botrole = message.guild.roles.cache.get(message.guild.me.roles.highest.id)
  391.  
  392. if(guildrole.position >= botrole.position){
  393. return message.channel.send("I can't access that role, place \"me\" / \"my highest Role\" above other roles that you want me to manage.")
  394. }
  395. client.apply.set(message.guild.id, roleid, "TEMP_ROLE")
  396. return message.reply("SUCCESSFULLY CHANGED THE TEMP_ROLE!")
  397. }).catch(error=>{
  398. console.log(error)
  399. return message.reply("SORRY BUT YOUR TIME RAN OUT!")
  400. })
  401. })
  402. break;
  403. case "5":
  404.  
  405. {
  406. message.channel.send(new Discord.MessageEmbed().setFooter(message.guild.name, message.guild.iconURL({dynamic:true})).setColor(config.colors.yes).setAuthor("What Question should be added?", message.author.displayAvatarURL({dynamic:true}))).then(msg=>{
  407. msg.channel.awaitMessages(m=>m.author.id === message.author.id, {max: 1, time: 60000, errors: ["TIME"]}).then(collected=>{
  408. let Questions = client.apply.get(message.guild.id, "QUESTIONS")
  409. let obj;
  410. switch(Questions.length+1){
  411. case 1: obj = {"1": collected.first().content};break;
  412. case 2: obj = {"2": collected.first().content};break;
  413. case 3: obj = {"3": collected.first().content};break;
  414. case 4: obj = {"4": collected.first().content};break;
  415. case 5: obj = {"5": collected.first().content};break;
  416. case 6: obj = {"6": collected.first().content};break;
  417. case 7: obj = {"7": collected.first().content};break;
  418. case 8: obj = {"8": collected.first().content};break;
  419. case 9: obj = {"9": collected.first().content};break;
  420. case 10: obj = {"10": collected.first().content};break;
  421. case 11: obj = {"11": collected.first().content};break;
  422. case 12: obj = {"12": collected.first().content};break;
  423. case 13: obj = {"13": collected.first().content};break;
  424. case 14: obj = {"14": collected.first().content};break;
  425. case 15: obj = {"15": collected.first().content};break;
  426. case 16: obj = {"16": collected.first().content};break;
  427. case 17: obj = {"17": collected.first().content};break;
  428. case 18: obj = {"18": collected.first().content};break;
  429. case 19: obj = {"19": collected.first().content};break;
  430. case 20: obj = {"20": collected.first().content};break;
  431. case 21: obj = {"21": collected.first().content};break;
  432. case 22: obj = {"22": collected.first().content};break;
  433. case 23: obj = {"23": collected.first().content};break;
  434. case 24: obj = {"24": collected.first().content};break;
  435. }
  436. client.apply.push(message.guild.id, obj, "QUESTIONS")
  437. message.reply(new Discord.MessageEmbed().setFooter(message.guild.name, message.guild.iconURL({dynamic:true})).setColor("GREEN").setAuthor("Successfully added your Question!", message.author.displayAvatarURL({dynamic:true})))
  438. Questions = client.apply.get(message.guild.id, "QUESTIONS");
  439. let embed = new Discord.MessageEmbed().setFooter(message.guild.name, message.guild.iconURL({dynamic:true}))
  440. .setColor(config.colors.yes)
  441. .setTitle("NEW Questions") //Tomato#6966
  442. .setFooter(message.guild.name, message.guild.iconURL({dynamic: true}))
  443. .setTimestamp()
  444. for(let i = 0; i < Questions.length; i++){
  445. try{
  446. embed.addField("**"+Object.keys(Questions[i])+".** ",Object.values(Questions[i]))
  447. }catch (e){
  448. console.log(e)
  449. }
  450. }
  451. message.channel.send(embed);
  452. }).catch(error=>{
  453. console.log(error)
  454. return message.reply("SORRY BUT YOUR TIME RAN OUT!")
  455. })
  456. })
  457. }
  458. break;
  459. default:
  460. message.reply(String("SORRY, that Number does not exists :(\n Your Input:\n> " + collected.first().content).substr(0,1999))
  461. break;
  462.  
  463. }
  464. })
  465. })
  466. break;
  467. case "3":
  468. client.apply.set(message.guild.id, {
  469. "channel_id": "",
  470. "f_channel_id": "", //changequestions --> which one (lists everyone with index) --> 4. --> Question
  471. "QUESTIONS": [{"1":"DEFAULT"}],
  472. "TEMP_ROLE": "",
  473. "accept": "You've got accepted!",
  474. "deny": "You've got denied!"
  475. })
  476. message.reply("Successfully resetted the application System!")
  477. break;
  478. default:
  479. break;
  480. }
  481. })
  482. })
  483. }
  484. /**
  485. * @REACTIONROLESYSTEM FINISHED
  486. */
  487. function reactionrolesystem(){
  488. let rembed = new MessageEmbed()
  489. .setColor(config.colors.yes)
  490. .setTitle("What do u want to do?")
  491. .setDescription(`
  492. **1.** \`Create new Reaction Role\` - *Creates A New Reaction Role*
  493. **2.** \`Reset Settings\` - *Resets settings for Reaction Role*
  494. `)
  495. .setFooter("Pick the INDEX NUMBER", config.AVATARURL)
  496. .setThumbnail(config.AVATARURL)
  497.  
  498. message.reply(rembed).then(msg => {
  499. msg.channel.awaitMessages(m=>m.author.id === message.author.id, {max: 1, time: 60000, errors: ["TIME"]}).then(collected=>{
  500. switch(collected.first().content){
  501. case "1":
  502. let rembed = new MessageEmbed()
  503. .setColor(config.colors.yes)
  504. .setTitle("THIS IS A INFORMATION EMBED!")
  505. .setDescription(`
  506. **How to setup Milrato's Reaction Role!**
  507. > 1. React to message __BELOW__ **this** message
  508. > 2. Then, afterwards a new message appears! After that, you can PING the ROLE for the reacted EMOJI
  509. > 3. Process 1... continues, enter \`finish\` to finish the process! (or just dont react)
  510. > 4. Once it's finished:
  511. > 4.1 I will ask you, which reaction role **type** you want!
  512. | - **Multiple** = *you can have every possible reaction option!*
  513. | - **Single** = *Only one Role at the same time!*
  514. > 4.2 You will be asked for the TITLE of the Reaction Role, that's necessary!
  515. > 4.3 After that, enter in which channel you want to have your Reaction Role listed at! Just ping it! \`#chat\`
  516. > 4.4 After that the Reaction Role Embed, with the information for every Parameter: \`EMOJI = ROLE\`, will be sent in your wished channel and it'll work!
  517. *You have 30 seconds for each input!*
  518. `)
  519. .setThumbnail(config.AVATARURL)
  520. .setFooter("Milrato", config.AVATARURL)
  521. message.channel.send(rembed)
  522. let objet = {
  523. MESSAGE_ID: "",
  524. remove_others: false,
  525. Parameters: []
  526. };
  527. let counters = 0;
  528. ask_emoji()
  529.  
  530. function ask_emoji(){
  531. counters++;
  532. if(counters.length === 21) return finished();
  533. let object2 = { Emoji: "", Role: "" };
  534. let rermbed = new MessageEmbed()
  535. .setColor(config.colors.yes)
  536. .setTitle("What's the next Emoji, which u want to use?")
  537. let cancel = false;
  538. message.channel.send(rermbed).then(msg => {
  539. msg.awaitReactions((reaction, user) => user.id == message.author.id,
  540. { max: 1, time: 30000 }).then(collected => {
  541. if (collected.first().emoji.name) {
  542. msg.delete();
  543. object2.Emoji = collected.first().emoji.name;
  544. return ask_role();
  545. }
  546. else if(collected.first().emoji.id){
  547. msg.delete();
  548. object2.Emoji = collected.first().emoji.id;
  549. return ask_role();
  550. }else{
  551. message.channel.send('Operation canceled. and finished!');
  552. return finished();
  553. }
  554. }).catch(() => {
  555. if(!cancel){
  556. message.reply('No reaction after 30 seconds, operation canceled');
  557. return finished();
  558. }
  559. });
  560. msg.channel.awaitMessages(m=>m.author.id===message.author.id,{ max: 1, time: 30000 }).then(collected => {
  561. if(collected.first().content.toLowerCase()=== "finish"){
  562. cancel = true;
  563. return finished();
  564. }
  565. }).catch(() => {if(!cancel){
  566. message.reply('No reaction after 30 seconds, operation canceled');
  567. return finished();
  568. }
  569. });
  570. })
  571. function ask_role(){
  572. counters++;
  573. let rermbed = new MessageEmbed()
  574. .setColor(config.colors.yes)
  575. .setTitle("What Role do you want for that emoji?")
  576. message.channel.send(rermbed).then(msg => {
  577. msg.channel.awaitMessages(m => m.author.id == message.author.id,
  578. { max: 1, time: 30000 }).then(collected => {
  579. let role = collected.first().mentions.roles.first();
  580. if(!role) message.reply("CANCELLED, u didn't Pingged a valid Role")
  581. if (role) {
  582.  
  583. object2.Role = role.id;
  584. objet.Parameters.push(object2)
  585.  
  586.  
  587. try{msg.delete();}catch{}
  588. try{msg.channel.bulkDelete(1);}catch{}
  589.  
  590. return ask_emoji();
  591. }
  592. else{
  593. message.channel.send('Operation canceled. and finished!');
  594. return finished();
  595. }
  596. }).catch((e) => {
  597. console.log(e)
  598. message.reply('No reaction after 30 seconds, operation canceled');
  599. return finished();
  600. });
  601. })
  602. }
  603. }
  604.  
  605.  
  606. function finished(){
  607. message.reply("What type of Reaction Role do you want?\n`1` === Multiple reaction Options\n`2` === Single reaction Options").then(msg=>{
  608. msg.channel.awaitMessages(m=>m.author.id===message.author.id, {max: 1, time: 60000, errors:["TIME"]}).then(collected=>{
  609. switch(collected.first().content){
  610. case "1":
  611. break;
  612. case "2":
  613. objet.remove_others = true;
  614. break;
  615. default:
  616. message.reply("NO CORRECT INPUT! So i will use `MULTIPLE REACTION OPTION`")
  617. break;
  618. }
  619. message.reply(`I will use${objet.remove_others ? "Single": "Multiple"} Reaction Option!\n\n`+"What should be the **`Title`** of your Reaction Role?").then(msg=>{
  620. msg.channel.awaitMessages(m=>m.author.id===message.author.id, {max: 1, time: 60000, errors:["TIME"]}).then(collected=>{
  621. let title = collected.first().content;
  622. message.reply("In which channel do you want your Reaction Role to Be?").then(msg=>{
  623. msg.channel.awaitMessages(m=>m.author.id===message.author.id, {max: 1, time: 60000, errors:["TIME"]}).then(collected=>{
  624.  
  625. if(collected.first().mentions.channels.first()){
  626.  
  627. let channel = collected.first().mentions.channels.first();
  628. let embed = new MessageEmbed().setColor(config.colors.yes) .setTitle(title.substr(0, 256)).setFooter(message.guild.name, message.guild.iconURL({dynamic:true}))
  629. let buffer = "";
  630. for(let i = 0; i< objet.Parameters.length; i++){
  631. try{ buffer += objet.Parameters[i].Emoji+ " **==** <@&"+objet.Parameters[i].Role+">\n";}catch (e){console.log(e)}
  632. }
  633. channel.send(embed.setDescription(buffer)).then(msg=>{
  634. for(let i = 0; i< objet.Parameters.length; i++){
  635. try{msg.react(objet.Parameters[i].Emoji).catch(e=>console.log(e))}catch (e){ console.log(e)}
  636. }
  637. objet.MESSAGE_ID = msg.id;
  638. client.reactionrole.push(message.guild.id, objet, "reactionroles");
  639. message.reply("YOUR REACTION ROLE IS FINISHED AND READY TO USE! <#" + msg.channel.id + ">")
  640. })
  641.  
  642. }
  643. else{
  644. message.reply('You didn\'t Ping a CHANNEL, CANCELLED!');
  645. return;
  646. }
  647. }).catch(e=>console.log(e))
  648. })
  649. }).catch(e=>console.log(e))
  650. })
  651. }).catch(e=>console.log(e))
  652. })
  653. }
  654. break;
  655. case "2":
  656. client.reactionrole.set(message.guild.id,
  657. {
  658. reactionroles: [
  659. ]
  660. }
  661. );
  662. return message.reply("Successfully resetted, ReactionRole Setup!")
  663.  
  664. break;
  665. default:
  666. message.reply(String("SORRY, that Number does not exists :(\n Your Input:\n> " + collected.first().content).substr(0,1999))
  667. break;
  668.  
  669. }
  670.  
  671.  
  672. }).catch(e=>console.log(e))
  673.  
  674. });
  675. }
  676. /**
  677. * @welcomesystem FINISHED
  678. */
  679. function welcomesystem(){
  680.  
  681. let rembed = new MessageEmbed()
  682. .setColor(config.colors.yes)
  683. .setTitle("What do u want to do?")
  684. .setDescription(`
  685. **1.** \`Welcome System\` - *Creates ONE Welcome System*
  686. **2.** \`Leave System\` - *Creates ONE Leave System*
  687. **3.** \`Reset-Both\` - *Resets settings for Welcome & Leave Setup*
  688. `)
  689. .setFooter("Pick the INDEX NUMBER", config.AVATARURL)
  690. .setThumbnail(config.AVATARURL)
  691.  
  692. message.reply(rembed).then(msg => {
  693. let parent = false;
  694. if(msg.channel.parent) parent = msg.channel.parent.id;
  695. msg.channel.awaitMessages(m=>m.author.id===message.author.id,{max:1,time:30000,errors:['time']}).then(collected=>{
  696. switch(collected.first().content.toString()){
  697. case "1":
  698. _welcome();
  699. break;
  700. case "2":
  701. _leave();
  702. break;
  703. case "3":
  704. client.setups.set(message.guild.id, {
  705. enabled: true,
  706. channel: "",
  707. message: `We hope that you enjoy it in here! :v: :heart:`,
  708. roles: [],
  709. background: {
  710. enable: true,
  711. colors: {
  712. "border": config.colors.yes,
  713. "username-box": config.colors.yes,
  714. "discriminator-box": config.colors.yes,
  715. "message-box": config.colors.yes,
  716. "title": config.colors.yes,
  717. "avatar": config.colors.yes
  718. },
  719. image: "https://images.hdqwalls.com/download/gfx-nerds-uz-2560x1440.jpg"
  720. }
  721. }, "welcome")
  722. client.setups.set(message.guild.id, {
  723. enabled: true,
  724. channel: "",
  725. message: `Good bye from: ${message.guild.name}`,
  726. background: {
  727. enable: true,
  728. colors: {
  729. "border": config.colors.no,
  730. "username-box": config.colors.no,
  731. "discriminator-box": config.colors.no,
  732. "message-box": config.colors.no,
  733. "title": config.colors.no,
  734. "avatar": config.colors.no
  735. },
  736. image: "https://cdn.wallpapersafari.com/29/54/7zcTjw.jpg"
  737. }
  738. }, "leave")
  739. return message.reply("Successfully, resetted WELCOME and LEAVE Setup")
  740. break;
  741. default:
  742. message.reply(String("SORRY, that Number does not exists :(\n Your Input:\n> " + collected.first().content).substr(0,1999))
  743. break;
  744. }
  745. }).catch(error=>{
  746. console.log(error)
  747. return message.reply("SORRY BUT YOUR TIME RAN OUT!")
  748. })
  749. })
  750.  
  751. function _welcome(){
  752. let rembed = new MessageEmbed()
  753. .setColor(config.colors.yes)
  754. .setTitle("What do u want to do?")
  755. .setDescription(`
  756. **0.** \`Create Setup\` - *Creates an Welcome channel setup!*
  757. **1.** \`Manage Message\` - *Let's you edit the Welcome Message*
  758. **2.** \`Manage Roles\` - *Let's you add/remove Roles from the Welcome Roles*
  759. **3.** \`Manage Image\` - *Let's you manage the settings for the background Image*
  760. **4.** \`Reset\` - *Resets settings for Welcome Setup*
  761. ${!client.setups.get(message.guild.id, "welcome.enabled") ?
  762. `**5.** \`Enable Welcome\` - *Enables Welcome*` :
  763. `**5.** \`Disable Welcome\` - *Disables Welcome*`}
  764. `)
  765. .setFooter("Pick the INDEX NUMBER", config.AVATARURL)
  766. .setThumbnail(config.AVATARURL)
  767.  
  768. message.reply(rembed).then(msg => {
  769. msg.channel.awaitMessages(m=>m.author.id===message.author.id,{max:1,time:30000,errors:['time']}).then(async collected=>{
  770. switch(collected.first().content.toString()){
  771. case "0":
  772. let avatar = message.author.displayAvatarURL({format: "png"});
  773. let username = message.author.username
  774. let hash = message.author.discriminator;
  775. let membercount = message.guild.memberCount;
  776. let Servername = message.guild.name;
  777. let bg = client.setups.get(message.guild.id, "welcome.background.image")
  778.  
  779. let image = new Canvacord.Welcomer()
  780. .setUsername(username)
  781. .setDiscriminator(hash)
  782. .setMemberCount(membercount)
  783. .setGuildName(Servername)
  784. .setAvatar(avatar)
  785. .setColor("border", client.setups.get(message.guild.id, "welcome.background.colors.border"))
  786. .setColor("username-box", client.setups.get(message.guild.id, "welcome.background.colors.username-box"))
  787. .setColor("discriminator-box", client.setups.get(message.guild.id, "welcome.background.colors.discriminator-box"))
  788. .setColor("message-box", client.setups.get(message.guild.id, "welcome.background.colors.message-box"))
  789. .setColor("title", client.setups.get(message.guild.id, "welcome.background.colors.title"))
  790. .setColor("avatar", client.setups.get(message.guild.id, "welcome.background.colors.avatar"))
  791. .setBackground(bg);
  792. let attachment = new MessageAttachment(await image.build(), "welcome-image.png");
  793.  
  794.  
  795. message.guild.channels.create("👋welcome", {
  796. type: 'text',
  797. permissionOverwrites: [
  798. {
  799. id: message.guild.id,
  800. allow: ['READ_MESSAGE_HISTORY'],
  801. deny: ['SEND_MESSAGES'],
  802. },
  803. ],
  804. })
  805. .then((channel) => {
  806.  
  807. let embed = new MessageEmbed()
  808. .setColor(config.colors.yes)
  809. .setTitle("Welcome to: `" + message.guild.name + "`")
  810. .setDescription(client.setups.get(message.guild.id, "welcome.message"))
  811. .setFooter(message.author.tag+ " | " + message.author.id, message.author.displayAvatarURL({dynamic:true}))
  812. .attachFiles(attachment)
  813. .setImage("attachment://welcome-image.png").setTimestamp()
  814. channel.send(embed);
  815. client.setups.set(message.guild.id, true, "welcome.enabled")
  816. client.setups.set(message.guild.id, channel.id, "welcome.channel")
  817. return message.reply("<#"+channel.id+ "> | Your Welcome Setup is completed now! Run the `//setup` cmd again to adjust the Roles, Welcome Message, and the Background Image!")
  818. })
  819. break;
  820. case "1":
  821. message.channel.send("Enter your message now!").then(msg=>{
  822. msg.channel.awaitMessages(m=>m.author.id === message.author.id, {max: 1, time: 60000, errors: ["TIME"]}).then(collected=>{
  823. client.setups.set(message.guild.id, collected.first().content, "welcome.message")
  824. return message.reply("Successfully set the welcome message!")
  825. }).catch(error=>{
  826. console.log(error)
  827. return message.reply("SORRY BUT YOUR TIME RAN OUT!")
  828. })
  829. })
  830. break;
  831. case "2":
  832. let rrembed = new MessageEmbed()
  833. .setColor(config.colors.yes)
  834. .setTitle("What do u want to do?")
  835. .setDescription(`
  836. **1.** \`Add Role\` - *Adds a Role for the Welcome Setup*
  837. **2.** \`Remove Role\` - *Removes a Role from the Welcome Setup*
  838. `)
  839. .setFooter("Pick the INDEX NUMBER", config.AVATARURL)
  840. .setThumbnail(config.AVATARURL)
  841. message.channel.send(rrembed).then(msg=>{
  842. msg.channel.awaitMessages(m=>m.author.id === message.author.id, {max: 1, time: 60000, errors: ["TIME"]}).then(collected=>{
  843. switch(collected.first().content.toString()){
  844. case "1":
  845. message.channel.send("Ping your Role now!").then(msg=>{
  846. msg.channel.awaitMessages(m=>m.author.id === message.author.id, {max: 1, time: 60000, errors: ["TIME"]}).then(collected=>{
  847. let role = collected.first().mentions.roles.map(role => role.id).join(" ");
  848. if(!role) return message.reply(`COULD NOT FIND THE ROLE! Please retry Setup`)
  849. let guildrole = message.guild.roles.cache.get(role)
  850. let botrole = message.guild.roles.cache.get(message.guild.me.roles.highest.id)
  851.  
  852. if(guildrole.position >= botrole.position){
  853. return message.channel.send("I can't access that role, place \"me\" / \"my highest Role\" above other roles that you want me to manage.\n\n Please retry Setup")
  854. }
  855. client.setups.push(message.guild.id, role, "welcome.roles")
  856. return message.reply(`Successfully added Role to the Welcome Setup!`)
  857. })
  858. })
  859. break;
  860. case "2":
  861. message.channel.send("Ping your Role now!").then(msg=>{
  862. msg.channel.awaitMessages(m=>m.author.id === message.author.id, {max: 1, time: 60000, errors: ["TIME"]}).then(collected=>{
  863. let role = collected.first().mentions.roles.map(role => role.id).join(" ");
  864. if(!role) return message.reply(`COULD NOT FIND THE ROLE! Please retry Setup`)
  865. try{
  866. client.setups.remove(message.guild.id, role, "welcome.roles")
  867. return message.reply(`Successfully added Role to the Welcome Setup!`)
  868. }catch{
  869. return message.reply(`Something went wrong!`)
  870. }
  871. })
  872. })
  873. break;
  874. default:
  875. message.reply(String("SORRY, that Number does not exists :(\n Your Input:\n> " + collected.first().content).substr(0,1999))
  876. break;
  877. }
  878. }).catch(error=>{
  879. console.log(error)
  880. return message.reply("SORRY BUT YOUR TIME RAN OUT!")
  881. })
  882. })
  883. break;
  884. case "3":
  885. let rrrembed = new MessageEmbed()
  886. .setColor(config.colors.yes)
  887. .setTitle("What do u want to do?")
  888. .setDescription(`
  889. ${!client.setups.get(message.guild.id, "welcome.background.enabled") ?
  890. `**1.** \`Disable Background\` - *Disable Background*` :
  891. `**1.** \`Enable Background\` - *Enables Background*`}
  892. **2.** \`Change Background\` - *Changes the Background*
  893. **3.** \`Change border Color\` - *Changes the Color of the border*
  894. **4.** \`Change username-box Color\` - *Changes the Color of the Username-box*
  895. **5.** \`Change discriminator-box Color\` - *Changes the Color of the discriminator-box*
  896. **6.** \`Change message-box Color\` - *Changes the Color of the message-box*
  897. **7.** \`Change title Color\` - *Changes the Color of the Title*
  898. **8.** \`Change avatar Color\` - *Changes the Color of the Avatar*
  899. **9.** \`Reset Image\` - *Resets the Image of the Welcome*
  900. `)
  901. .setFooter("Pick the INDEX NUMBER", config.AVATARURL)
  902. .setThumbnail(config.AVATARURL)
  903. message.channel.send(rrrembed).then(msg=>{
  904. msg.channel.awaitMessages(m=>m.author.id === message.author.id, {max: 1, time: 60000, errors: ["TIME"]}).then(async collected=>{
  905. switch(collected.first().content.toString()){
  906. case "1":
  907. if(!client.setups.get(message.guild.id, "welcome.background.enabled")) {
  908. client.setups.set(message.guild.id, true, "welcome.background.enabled");
  909. message.reply("Succesfully enabled the Background-Welcome-Setup")
  910. }
  911. else if(client.setups.get(message.guild.id, "welcome.background.enabled")) {
  912. client.setups.set(message.guild.id, false, "welcome.background.enabled");
  913. message.reply("Succesfully disabled the Background-Welcome-Setup")
  914. }
  915. else{
  916. message.reply("Something went wrong")
  917. }
  918. break;
  919.  
  920. case "2":
  921. message.reply("Enter your Background now!").then(msg => {
  922. msg.channel.awaitMessages(m=>m.author.id===message.author.id,{max:1,time:30000,errors:['time']}).then(collected=>{
  923. switch(collected.first().content.toString()){
  924. case "1":
  925. client.setups.set(message.guild.id, "null", "welcome.background.image")
  926. break;
  927. default:
  928. if (collected.first().attachments.size > 0) {
  929. if (collected.first().attachments.every(attachIsImage)){
  930.  
  931. message.reply("Successfully, set your Background Image! Please make sure to **not** delete your Image from the Channel!")
  932. client.setups.set(message.guild.id, url, "welcome.background.image")
  933. }
  934. else{
  935. message.reply("Could not your message as a backgroundimage")
  936. }
  937. }
  938. else if (collected.first().content.includes("https")||collected.first().content.includes("http")){
  939. message.reply("Successfully, set your Background Image! Please make sure to **not** delete your Image from the Channel!")
  940. client.setups.set(message.guild.id, collected.first().content, "welcome.background.image")
  941. }
  942. else{
  943. message.reply("Could not your message as a backgroundimage")
  944. }
  945.  
  946. break;
  947. }
  948. function attachIsImage(msgAttach) {
  949. url = msgAttach.url;
  950.  
  951. //True if this url is a png image.
  952. return url.indexOf("png", url.length - "png".length /*or 3*/) !== -1 ||
  953. url.indexOf("jpeg", url.length - "jpeg".length /*or 3*/) !== -1 ||
  954. url.indexOf("jpg", url.length - "jpg".length /*or 3*/) !== -1;
  955. }
  956. }).catch(error=>{
  957. console.log(error)
  958. return message.reply("SORRY BUT YOUR TIME RAN OUT!")
  959. })
  960. })
  961. break;
  962.  
  963. case "3":
  964. message.channel.send("Enter your color now!\n\nIt MUST be an HEX CODE 7 letters long, **with** the `#` (e.g: #ffee55)").then(msg =>{
  965. msg.channel.awaitMessages(m => m.author.id === message.author.id, {max: 1, time: 60000, errors: ["TIME"]}).then(collected=>{
  966. let content = collected.first().content;
  967. if(!content.startsWith("#") && content.length !== 7){
  968. message.reply("WRONG COLOR! USING `GREEN`")
  969. }
  970. else {
  971. if(isValidColor(content)){
  972. client.setups.set(message.guild.id, content, "welcome.background.colors.border");
  973. message.reply("Succesfully changed the border color")
  974. finise();
  975. }
  976. else{
  977. message.reply("WRONG COLOR! USING `GREEN`")
  978. }
  979. }
  980. function isValidColor(str) {
  981. return str.match(/^#[a-f0-9]{6}$/i) !== null;
  982. }
  983. }).catch(error=>{
  984. console.log(error)
  985. return message.reply("SORRY BUT YOUR TIME RAN OUT!")
  986. })
  987. })
  988. break;
  989.  
  990. case "4":
  991. message.channel.send("Enter your color now!\n\nIt MUST be an HEX CODE 7 letters long, **with** the `#` (e.g: #ffee55)").then(msg =>{
  992. msg.channel.awaitMessages(m => m.author.id === message.author.id, {max: 1, time: 60000, errors: ["TIME"]}).then(collected=>{
  993. let content = collected.first().content;
  994. if(!content.startsWith("#") && content.length !== 7){
  995. message.reply("WRONG COLOR! USING `GREEN`")
  996. }
  997. else {
  998. if(isValidColor(content)){
  999. client.setups.set(message.guild.id, content, "welcome.background.colors.username-box");
  1000. message.reply("Succesfully changed the username-box color")
  1001. finise();
  1002. }
  1003. else{
  1004. message.reply("WRONG COLOR! USING `GREEN`")
  1005. }
  1006. }
  1007. function isValidColor(str) {
  1008. return str.match(/^#[a-f0-9]{6}$/i) !== null;
  1009. }
  1010. }).catch(error=>{
  1011. console.log(error)
  1012. return message.reply("SORRY BUT YOUR TIME RAN OUT!")
  1013. })
  1014. })
  1015. break;
  1016. case "5":
  1017. message.channel.send("Enter your color now!\n\nIt MUST be an HEX CODE 7 letters long, **with** the `#` (e.g: #ffee55)").then(msg =>{
  1018. msg.channel.awaitMessages(m => m.author.id === message.author.id, {max: 1, time: 60000, errors: ["TIME"]}).then(collected=>{
  1019. let content = collected.first().content;
  1020. if(!content.startsWith("#") && content.length !== 7){
  1021. message.reply("WRONG COLOR! USING `GREEN`")
  1022. }
  1023. else {
  1024. if(isValidColor(content)){
  1025. client.setups.set(message.guild.id, content, "welcome.background.colors.discriminator-box");
  1026. message.reply("Succesfully changed the discriminator-box color")
  1027. finise();
  1028. }
  1029. else{
  1030. message.reply("WRONG COLOR! USING `GREEN`")
  1031. }
  1032. }
  1033. function isValidColor(str) {
  1034. return str.match(/^#[a-f0-9]{6}$/i) !== null;
  1035. }
  1036. }).catch(error=>{
  1037. console.log(error)
  1038. return message.reply("SORRY BUT YOUR TIME RAN OUT!")
  1039. })
  1040. })
  1041. break;
  1042. case "6":
  1043. message.channel.send("Enter your color now!\n\nIt MUST be an HEX CODE 7 letters long, **with** the `#` (e.g: #ffee55)").then(msg =>{
  1044. msg.channel.awaitMessages(m => m.author.id === message.author.id, {max: 1, time: 60000, errors: ["TIME"]}).then(collected=>{
  1045. let content = collected.first().content;
  1046. if(!content.startsWith("#") && content.length !== 7){
  1047. message.reply("WRONG COLOR! USING `GREEN`")
  1048. }
  1049. else {
  1050. if(isValidColor(content)){
  1051. client.setups.set(message.guild.id, content, "welcome.background.colors.message-box");
  1052. message.reply("Succesfully changed the message-box color")
  1053. finise();
  1054. }
  1055. else{
  1056. message.reply("WRONG COLOR! USING `GREEN`")
  1057. }
  1058. }
  1059. function isValidColor(str) {
  1060. return str.match(/^#[a-f0-9]{6}$/i) !== null;
  1061. }
  1062. }).catch(error=>{
  1063. console.log(error)
  1064. return message.reply("SORRY BUT YOUR TIME RAN OUT!")
  1065. })
  1066. })
  1067. break;
  1068. case "7":
  1069. message.channel.send("Enter your color now!\n\nIt MUST be an HEX CODE 7 letters long, **with** the `#` (e.g: #ffee55)").then(msg =>{
  1070. msg.channel.awaitMessages(m => m.author.id === message.author.id, {max: 1, time: 60000, errors: ["TIME"]}).then(collected=>{
  1071. let content = collected.first().content;
  1072. if(!content.startsWith("#") && content.length !== 7){
  1073. message.reply("WRONG COLOR! USING `GREEN`")
  1074. }
  1075. else {
  1076. if(isValidColor(content)){
  1077. client.setups.set(message.guild.id, content, "welcome.background.colors.title");
  1078. message.reply("Succesfully changed the title color")
  1079. finise();
  1080. }
  1081. else{
  1082. message.reply("WRONG COLOR! USING `GREEN`")
  1083. }
  1084. }
  1085. function isValidColor(str) {
  1086. return str.match(/^#[a-f0-9]{6}$/i) !== null;
  1087. }
  1088. }).catch(error=>{
  1089. console.log(error)
  1090. return message.reply("SORRY BUT YOUR TIME RAN OUT!")
  1091. })
  1092. })
  1093. break;
  1094. case "8":
  1095. message.channel.send("Enter your color now!\n\nIt MUST be an HEX CODE 7 letters long, **with** the `#` (e.g: #ffee55)").then(msg =>{
  1096. msg.channel.awaitMessages(m => m.author.id === message.author.id, {max: 1, time: 60000, errors: ["TIME"]}).then(collected=>{
  1097. let content = collected.first().content;
  1098. if(!content.startsWith("#") && content.length !== 7){
  1099. message.reply("WRONG COLOR! USING `GREEN`")
  1100. }
  1101. else {
  1102. if(isValidColor(content)){
  1103. client.setups.set(message.guild.id, content, "welcome.background.colors.avatar");
  1104. message.reply("Succesfully changed the avatar color")
  1105. finise();
  1106. }
  1107. else{
  1108. message.reply("WRONG COLOR! USING `GREEN`")
  1109. }
  1110. }
  1111. function isValidColor(str) {
  1112. return str.match(/^#[a-f0-9]{6}$/i) !== null;
  1113. }
  1114. }).catch(error=>{
  1115. console.log(error)
  1116. return message.reply("SORRY BUT YOUR TIME RAN OUT!")
  1117. })
  1118. })
  1119. break;
  1120.  
  1121. case "9":
  1122. client.setups.set(message.guild.id, {
  1123. enable: true,
  1124. image: "https://images.hdqwalls.com/download/gfx-nerds-uz-2560x1440.jpg",
  1125. colors: {
  1126. "border": config.colors.yes,
  1127. "username-box": config.colors.yes,
  1128. "discriminator-box": config.colors.yes,
  1129. "message-box": config.colors.yes,
  1130. "title": config.colors.yes,
  1131. "avatar": config.colors.yes
  1132. },
  1133. }, "welcome.background")
  1134. return message.reply("Successfully resetted the Leave Image!")
  1135. break;
  1136. default:
  1137. message.reply(String("SORRY, that Number does not exists :(\n Your Input:\n> " + collected.first().content).substr(0,1999))
  1138. break;
  1139. }
  1140. async function finise(){
  1141. let avatar = message.author.displayAvatarURL({format: "png"});
  1142. let username = message.author.username
  1143. let hash = message.author.discriminator;
  1144. let membercount = message.guild.memberCount;
  1145. let Servername = message.guild.name;
  1146. let bg = client.setups.get(message.guild.id, "welcome.background.image");
  1147.  
  1148. let image = new Canvacord.Welcomer()
  1149. .setUsername(username)
  1150. .setDiscriminator(hash)
  1151. .setMemberCount(membercount)
  1152. .setGuildName(Servername)
  1153. .setAvatar(avatar)
  1154. .setColor("border", client.setups.get(message.guild.id, "welcome.background.colors.border"))
  1155. .setColor("username-box", client.setups.get(message.guild.id, "welcome.background.colors.username-box"))
  1156. .setColor("discriminator-box", client.setups.get(message.guild.id, "welcome.background.colors.discriminator-box"))
  1157. .setColor("message-box", client.setups.get(message.guild.id, "welcome.background.colors.message-box"))
  1158. .setColor("title", client.setups.get(message.guild.id, "welcome.background.colors.title"))
  1159. .setColor("avatar", client.setups.get(message.guild.id, "welcome.background.colors.avatar"))
  1160. .setBackground(bg);
  1161.  
  1162. let attachment = new MessageAttachment((await image.build()), "welcome-image.png");
  1163. let embeds = new MessageEmbed()
  1164. .setColor(config.colors.yes)
  1165. .setTitle("Welcome to: `" + message.guild.name + "`")
  1166. .setDescription(client.setups.get(message.guild.id, "welcome.message"))
  1167. .setFooter(message.author.tag+ " | " + message.author.id, message.author.displayAvatarURL({dynamic:true}))
  1168. .attachFiles(attachment)
  1169. .setImage("attachment://welcome-image.png").setTimestamp()
  1170. message.channel.send(embeds)
  1171. }
  1172. }).catch(error=>{
  1173. console.log(error)
  1174. return message.reply("SORRY BUT YOUR TIME RAN OUT!")
  1175. })
  1176. })
  1177.  
  1178. break;
  1179. case "4":
  1180. client.setups.set(message.guild.id, {
  1181. enabled: true,
  1182. channel: "",
  1183. message: `We hope that you enjoy it in here! :v: :heart:`,
  1184. roles: [],
  1185. background: {
  1186. enable: true,
  1187. image: "https://images.hdqwalls.com/download/gfx-nerds-uz-2560x1440.jpg",
  1188. colors: {
  1189. "border": config.colors.yes,
  1190. "username-box": config.colors.yes,
  1191. "discriminator-box": config.colors.yes,
  1192. "message-box": config.colors.yes,
  1193. "title": config.colors.yes,
  1194. "avatar": config.colors.yes
  1195. },
  1196. }
  1197. }, "welcome")
  1198. return message.reply("Successfully, resetted WELCOME Setup")
  1199. break;
  1200. case "5":
  1201. if(!client.setups.get(message.guild.id, "welcome.enabled")) {
  1202. client.setups.set(message.guild.id, true, "welcome.enabled");
  1203. message.reply("Succesfully enabled the Welcome-Setup")
  1204. }
  1205. else if(client.setups.get(message.guild.id, "welcome.enabled")) {
  1206. client.setups.set(message.guild.id, false, "welcome.enabled");
  1207. message.reply("Succesfully disabled the Welcome-Setup")
  1208. }
  1209. else{
  1210. message.reply("Something went wrong")
  1211. }
  1212. break;
  1213. default:
  1214. message.reply(String("SORRY, that Number does not exists :(\n Your Input:\n> " + collected.first().content).substr(0,1999))
  1215. break;
  1216. }
  1217. }).catch(error=>{
  1218. console.log(error)
  1219. return message.reply("SORRY BUT YOUR TIME RAN OUT!")
  1220. })
  1221. })
  1222. }
  1223. function _leave(){
  1224.  
  1225. let rembed = new MessageEmbed()
  1226. .setColor(config.colors.yes)
  1227. .setTitle("What do u want to do?")
  1228. .setDescription(`
  1229. **0.** \`Create Setup\` - *Creates an Leave channel setup!*
  1230. **1.** \`Manage Message\` - *Let's you edit the Leave Message*
  1231. **2.** \`Manage Image\` - *Let's you manage the settings for the background Image*
  1232. **3.** \`Reset\` - *Resets settings for Leave Setup*
  1233. ${!client.setups.get(message.guild.id, "leave.enabled") ?
  1234. `**4.** \`Enable Leave\` - *Enables Leave*` :
  1235. `**4.** \`Disable Leave\` - *Disables Leave*`}
  1236. `)
  1237. .setFooter("Pick the INDEX NUMBER", config.AVATARURL)
  1238. .setThumbnail(config.AVATARURL)
  1239.  
  1240. message.reply(rembed).then(msg => {
  1241. msg.channel.awaitMessages(m=>m.author.id===message.author.id,{max:1,time:30000,errors:['time']}).then(async collected=>{
  1242. switch(collected.first().content.toString()){
  1243. case "0":
  1244. let avatar = message.author.displayAvatarURL({format: "png"});
  1245. let username = message.author.username
  1246. let hash = message.author.discriminator;
  1247. let membercount = message.guild.memberCount;
  1248. let Servername = message.guild.name;
  1249. let bg = client.setups.get(message.guild.id, "leave.background.image")
  1250. let image = new Canvacord.Leaver()
  1251. .setUsername(username)
  1252. .setDiscriminator(hash)
  1253. .setMemberCount(membercount)
  1254. .setGuildName(Servername)
  1255. .setAvatar(avatar)
  1256. .setColor("border", client.setups.get(message.guild.id, "leave.background.colors.border"))
  1257. .setColor("username-box", client.setups.get(message.guild.id, "leave.background.colors.username-box"))
  1258. .setColor("discriminator-box", client.setups.get(message.guild.id, "leave.background.colors.discriminator-box"))
  1259. .setColor("message-box", client.setups.get(message.guild.id, "leave.background.colors.message-box"))
  1260. .setColor("title", client.setups.get(message.guild.id, "leave.background.colors.title"))
  1261. .setColor("avatar", client.setups.get(message.guild.id, "leave.background.colors.avatar"))
  1262. .setBackground(bg);
  1263. let attachment = new MessageAttachment(await image.build(), "Leave-image.png");
  1264.  
  1265.  
  1266. message.guild.channels.create("👋Good Bye", {
  1267. type: 'text',
  1268. permissionOverwrites: [
  1269. {
  1270. id: message.guild.id,
  1271. allow: ['READ_MESSAGE_HISTORY'],
  1272. deny: ['SEND_MESSAGES'],
  1273. },
  1274. ],
  1275. })
  1276. .then((channel) => {
  1277.  
  1278. let embed = new MessageEmbed()
  1279. .setColor(config.colors.no)
  1280. .setTitle("Good bye from: `" + message.guild.name + "`")
  1281. .setDescription(client.setups.get(message.guild.id, "leave.message"))
  1282. .setFooter(message.author.tag+ " | " + message.author.id, message.author.displayAvatarURL({dynamic:true}))
  1283. .attachFiles(attachment)
  1284. .setImage("attachment://Leave-image.png").setTimestamp()
  1285. channel.send(embed);
  1286. client.setups.set(message.guild.id, true, "leave.enabled")
  1287. client.setups.set(message.guild.id, channel.id, "leave.channel")
  1288. return message.reply("<#"+channel.id+ "> | Your Leave Setup is completed now! Run the `//setup` cmd again to adjust the Roles, Leave Message, and the Background Image!")
  1289. })
  1290. break;
  1291. case "1":
  1292. message.channel.send("Enter your message now!").then(msg=>{
  1293. msg.channel.awaitMessages(m=>m.author.id === message.author.id, {max: 1, time: 60000, errors: ["TIME"]}).then(collected=>{
  1294. client.setups.set(message.guild.id, collected.first().content, "leave.message")
  1295. return message.reply("Successfully set the Leave message!")
  1296. }).catch(error=>{
  1297. console.log(error)
  1298. return message.reply("SORRY BUT YOUR TIME RAN OUT!")
  1299. })
  1300. })
  1301. break;
  1302. case "2":
  1303. let rrrembed = new MessageEmbed()
  1304. .setColor(config.colors.yes)
  1305. .setTitle("What do u want to do?")
  1306. .setDescription(`
  1307. ${!client.setups.get(message.guild.id, "leave.background.enabled") ?
  1308. `**1.** \`Enable Background\` - *Enables Background*` :
  1309. `**1.** \`Disable Background\` - *Disables Background*`}
  1310. **2.** \`Change Background\` - *Changes the Background*
  1311. **4.** \`Change border Color\` - *Changes the Color of the border*
  1312. **3.** \`Change username-box Color\` - *Changes the Color of the Username-box*
  1313. **5.** \`Change discriminator-box Color\` - *Changes the Color of the discriminator-box*
  1314. **6.** \`Change message-box Color\` - *Changes the Color of the message-box*
  1315. **7.** \`Change title Color\` - *Changes the Color of the Title*
  1316. **8.** \`Change avatar Color\` - *Changes the Color of the Avatar*
  1317. **9.** \`Reset Image\` - *Resets the Image*
  1318. `)
  1319. .setFooter("Pick the INDEX NUMBER", config.AVATARURL)
  1320. .setThumbnail(config.AVATARURL)
  1321. message.channel.send(rrrembed).then(msg=>{
  1322. msg.channel.awaitMessages(m=>m.author.id === message.author.id, {max: 1, time: 60000, errors: ["TIME"]}).then(async collected=>{
  1323. switch(collected.first().content.toString()){
  1324. case "1":
  1325. if(!client.setups.get(message.guild.id, "leave.background.enabled")) {
  1326. client.setups.set(message.guild.id, true, "leave.background.enabled");
  1327. message.reply("Succesfully enabled the Background-Leave-Setup")
  1328. }
  1329. else if(client.setups.get(message.guild.id, "leave.background.enabled")) {
  1330. client.setups.set(message.guild.id, false, "leave.background.enabled");
  1331. message.reply("Succesfully disabled the Background-Leave-Setup")
  1332. }
  1333. else{
  1334. message.reply("Something went wrong")
  1335. }
  1336. break;
  1337.  
  1338. case "2":
  1339. message.reply("Enter your Background now!").then(msg => {
  1340. msg.channel.awaitMessages(m=>m.author.id===message.author.id,{max:1,time:30000,errors:['time']}).then(collected=>{
  1341. switch(collected.first().content.toString()){
  1342. case "1":
  1343. client.setups.set(message.guild.id, "null", "leave.background.image")
  1344. break;
  1345. default:
  1346. if (collected.first().attachments.size > 0) {
  1347. if (collected.first().attachments.every(attachIsImage)){
  1348.  
  1349. message.reply("Successfully, set your Background Image! Please make sure to **not** delete your Image from the Channel!")
  1350. client.setups.set(message.guild.id, url, "leave.background.image")
  1351. }
  1352. else{
  1353. message.reply("Could not your message as a backgroundimage")
  1354. }
  1355. }
  1356. else if (collected.first().content.includes("https")||collected.first().content.includes("http")){
  1357. message.reply("Successfully, set your Background Image! Please make sure to **not** delete your Image from the Channel!")
  1358. client.setups.set(message.guild.id, collected.first().content, "leave.background.image")
  1359. }
  1360. else{
  1361. message.reply("Could not your message as a backgroundimage")
  1362. }
  1363.  
  1364. break;
  1365. }
  1366. function attachIsImage(msgAttach) {
  1367. url = msgAttach.url;
  1368.  
  1369. //True if this url is a png image.
  1370. return url.indexOf("png", url.length - "png".length /*or 3*/) !== -1 ||
  1371. url.indexOf("jpeg", url.length - "jpeg".length /*or 3*/) !== -1 ||
  1372. url.indexOf("jpg", url.length - "jpg".length /*or 3*/) !== -1;
  1373. }
  1374. }).catch(error=>{
  1375. console.log(error)
  1376. return message.reply("SORRY BUT YOUR TIME RAN OUT!")
  1377. })
  1378. })
  1379. break;
  1380.  
  1381. case "3":
  1382. message.channel.send("Enter your color now!\n\nIt MUST be an HEX CODE 7 letters long, **with** the `#` (e.g: #ffee55)").then(msg =>{
  1383. msg.channel.awaitMessages(m => m.author.id === message.author.id, {max: 1, time: 60000, errors: ["TIME"]}).then(collected=>{
  1384. let content = collected.first().content;
  1385. if(!content.startsWith("#") && content.length !== 7){
  1386. message.reply("WRONG COLOR! USING `GREEN`")
  1387. }
  1388. else {
  1389. if(isValidColor(content)){
  1390. client.setups.set(message.guild.id, content, "leave.background.colors.border");
  1391. message.reply("Succesfully changed the border color")
  1392. finise();
  1393. }
  1394. else{
  1395. message.reply("WRONG COLOR! USING `GREEN`")
  1396. }
  1397. }
  1398. function isValidColor(str) {
  1399. return str.match(/^#[a-f0-9]{6}$/i) !== null;
  1400. }
  1401. }).catch(error=>{
  1402. console.log(error)
  1403. return message.reply("SORRY BUT YOUR TIME RAN OUT!")
  1404. })
  1405. })
  1406. break;
  1407.  
  1408. case "4":
  1409. message.channel.send("Enter your color now!\n\nIt MUST be an HEX CODE 7 letters long, **with** the `#` (e.g: #ffee55)").then(msg =>{
  1410. msg.channel.awaitMessages(m => m.author.id === message.author.id, {max: 1, time: 60000, errors: ["TIME"]}).then(collected=>{
  1411. let content = collected.first().content;
  1412. if(!content.startsWith("#") && content.length !== 7){
  1413. message.reply("WRONG COLOR! USING `GREEN`")
  1414. }
  1415. else {
  1416. if(isValidColor(content)){
  1417. client.setups.set(message.guild.id, content, "leave.background.colors.username-box");
  1418. message.reply("Succesfully changed the username-box color")
  1419. finise();
  1420. }
  1421. else{
  1422. message.reply("WRONG COLOR! USING `GREEN`")
  1423. }
  1424. }
  1425. function isValidColor(str) {
  1426. return str.match(/^#[a-f0-9]{6}$/i) !== null;
  1427. }
  1428. }).catch(error=>{
  1429. console.log(error)
  1430. return message.reply("SORRY BUT YOUR TIME RAN OUT!")
  1431. })
  1432. })
  1433. break;
  1434. case "5":
  1435. message.channel.send("Enter your color now!\n\nIt MUST be an HEX CODE 7 letters long, **with** the `#` (e.g: #ffee55)").then(msg =>{
  1436. msg.channel.awaitMessages(m => m.author.id === message.author.id, {max: 1, time: 60000, errors: ["TIME"]}).then(collected=>{
  1437. let content = collected.first().content;
  1438. if(!content.startsWith("#") && content.length !== 7){
  1439. message.reply("WRONG COLOR! USING `GREEN`")
  1440. }
  1441. else {
  1442. if(isValidColor(content)){
  1443. client.setups.set(message.guild.id, content, "leave.background.colors.discriminator-box");
  1444. message.reply("Succesfully changed the discriminator-box color")
  1445. finise();
  1446. }
  1447. else{
  1448. message.reply("WRONG COLOR! USING `GREEN`")
  1449. }
  1450. }
  1451. function isValidColor(str) {
  1452. return str.match(/^#[a-f0-9]{6}$/i) !== null;
  1453. }
  1454. }).catch(error=>{
  1455. console.log(error)
  1456. return message.reply("SORRY BUT YOUR TIME RAN OUT!")
  1457. })
  1458. })
  1459. break;
  1460. case "6":
  1461. message.channel.send("Enter your color now!\n\nIt MUST be an HEX CODE 7 letters long, **with** the `#` (e.g: #ffee55)").then(msg =>{
  1462. msg.channel.awaitMessages(m => m.author.id === message.author.id, {max: 1, time: 60000, errors: ["TIME"]}).then(collected=>{
  1463. let content = collected.first().content;
  1464. if(!content.startsWith("#") && content.length !== 7){
  1465. message.reply("WRONG COLOR! USING `GREEN`")
  1466. }
  1467. else {
  1468. if(isValidColor(content)){
  1469. client.setups.set(message.guild.id, content, "leave.background.colors.message-box");
  1470. message.reply("Succesfully changed the message-box color")
  1471. finise();
  1472. }
  1473. else{
  1474. message.reply("WRONG COLOR! USING `GREEN`")
  1475. }
  1476. }
  1477. function isValidColor(str) {
  1478. return str.match(/^#[a-f0-9]{6}$/i) !== null;
  1479. }
  1480. }).catch(error=>{
  1481. console.log(error)
  1482. return message.reply("SORRY BUT YOUR TIME RAN OUT!")
  1483. })
  1484. })
  1485. break;
  1486. case "7":
  1487. message.channel.send("Enter your color now!\n\nIt MUST be an HEX CODE 7 letters long, **with** the `#` (e.g: #ffee55)").then(msg =>{
  1488. msg.channel.awaitMessages(m => m.author.id === message.author.id, {max: 1, time: 60000, errors: ["TIME"]}).then(collected=>{
  1489. let content = collected.first().content;
  1490. if(!content.startsWith("#") && content.length !== 7){
  1491. message.reply("WRONG COLOR! USING `GREEN`")
  1492. }
  1493. else {
  1494. if(isValidColor(content)){
  1495. client.setups.set(message.guild.id, content, "leave.background.colors.title");
  1496. message.reply("Succesfully changed the title color")
  1497. finise();
  1498. }
  1499. else{
  1500. message.reply("WRONG COLOR! USING `GREEN`")
  1501. }
  1502. }
  1503. function isValidColor(str) {
  1504. return str.match(/^#[a-f0-9]{6}$/i) !== null;
  1505. }
  1506. }).catch(error=>{
  1507. console.log(error)
  1508. return message.reply("SORRY BUT YOUR TIME RAN OUT!")
  1509. })
  1510. })
  1511. break;
  1512. case "8":
  1513. message.channel.send("Enter your color now!\n\nIt MUST be an HEX CODE 7 letters long, **with** the `#` (e.g: #ffee55)").then(msg =>{
  1514. msg.channel.awaitMessages(m => m.author.id === message.author.id, {max: 1, time: 60000, errors: ["TIME"]}).then(collected=>{
  1515. let content = collected.first().content;
  1516. if(!content.startsWith("#") && content.length !== 7){
  1517. message.reply("WRONG COLOR! USING `GREEN`")
  1518. }
  1519. else {
  1520. if(isValidColor(content)){
  1521. client.setups.set(message.guild.id, content, "leave.background.colors.avatar");
  1522. message.reply("Succesfully changed the avatar color")
  1523. finise();
  1524. }
  1525. else{
  1526. message.reply("WRONG COLOR! USING `GREEN`")
  1527. }
  1528. }
  1529. function isValidColor(str) {
  1530. return str.match(/^#[a-f0-9]{6}$/i) !== null;
  1531. }
  1532. }).catch(error=>{
  1533. console.log(error)
  1534. return message.reply("SORRY BUT YOUR TIME RAN OUT!")
  1535. })
  1536. })
  1537. break;
  1538.  
  1539. case "9":
  1540. client.setups.set(message.guild.id, {
  1541. enable: true,
  1542. image: "https://cdn.wallpapersafari.com/29/54/7zcTjw.jpg",
  1543. colors: {
  1544. "border": config.colors.no,
  1545. "username-box": config.colors.no,
  1546. "discriminator-box": config.colors.no,
  1547. "message-box": config.colors.no,
  1548. "title": config.colors.no,
  1549. "avatar": config.colors.no
  1550. },
  1551. }, "leave.background")
  1552. return message.reply("Successfully resetted the Leave Image!")
  1553. break;
  1554. default:
  1555. message.reply(String("SORRY, that Number does not exists :(\n Your Input:\n> " + collected.first().content).substr(0,1999))
  1556. break;
  1557. }
  1558. async function finise(){
  1559. let avatar = message.author.displayAvatarURL({format: "png"});
  1560. let username = message.author.username
  1561. let hash = message.author.discriminator;
  1562. let membercount = message.guild.memberCount;
  1563. let Servername = message.guild.name;
  1564. let bg = client.setups.get(message.guild.id, "leave.background.image");
  1565.  
  1566. let image = new Canvacord.Leaver()
  1567. .setUsername(username)
  1568. .setDiscriminator(hash)
  1569. .setMemberCount(membercount)
  1570. .setGuildName(Servername)
  1571. .setAvatar(avatar)
  1572. .setColor("border", client.setups.get(message.guild.id, "leave.background.colors.border"))
  1573. .setColor("username-box", client.setups.get(message.guild.id, "leave.background.colors.username-box"))
  1574. .setColor("discriminator-box", client.setups.get(message.guild.id, "leave.background.colors.discriminator-box"))
  1575. .setColor("message-box", client.setups.get(message.guild.id, "leave.background.colors.message-box"))
  1576. .setColor("title", client.setups.get(message.guild.id, "leave.background.colors.title"))
  1577. .setColor("avatar", client.setups.get(message.guild.id, "leave.background.colors.avatar"))
  1578. .setBackground(bg);
  1579.  
  1580. let attachment = new MessageAttachment((await image.build()), "Leave-image.png");
  1581. let embeds = new MessageEmbed()
  1582. .setColor(config.colors.yes)
  1583. .setTitle("Welcome to: `" + message.guild.name + "`")
  1584. .setDescription(client.setups.get(message.guild.id, "welcome.message"))
  1585. .setFooter(message.author.tag+ " | " + message.author.id, message.author.displayAvatarURL({dynamic:true}))
  1586. .attachFiles(attachment)
  1587. .setImage("attachment://Leave-image.png").setTimestamp()
  1588. message.channel.send(embeds)
  1589. }
  1590. }).catch(error=>{
  1591. console.log(error)
  1592. return message.reply("SORRY BUT YOUR TIME RAN OUT!")
  1593. })
  1594. })
  1595.  
  1596. break;
  1597. case "3":
  1598. client.setups.set(message.guild.id, {
  1599. enabled: true,
  1600. channel: "",
  1601. message: `We hope that you enjoy it in here! :v: :heart:`,
  1602. roles: [""],
  1603. background: {
  1604. enable: true,
  1605. image: "https://cdn.wallpapersafari.com/29/54/7zcTjw.jpg",
  1606. colors: {
  1607. "border": config.colors.yes,
  1608. "username-box": config.colors.yes,
  1609. "discriminator-box": config.colors.yes,
  1610. "message-box": config.colors.yes,
  1611. "title": config.colors.yes,
  1612. "avatar": config.colors.yes
  1613. },
  1614. }
  1615. }, "leave")
  1616. return message.reply("Successfully, resetted Leave Setup")
  1617. break;
  1618. case "4":
  1619. if(!client.setups.get(message.guild.id, "leave.enabled")) {
  1620. client.setups.set(message.guild.id, true, "leave.enabled");
  1621. message.reply("Succesfully enabled the Leave-Setup")
  1622. }
  1623. else if(client.setups.get(message.guild.id, "leave.enabled")) {
  1624. client.setups.set(message.guild.id, false, "leave.enabled");
  1625. message.reply("Succesfully disabled the Leave-Setup")
  1626. }
  1627. else{
  1628. message.reply("Something went wrong")
  1629. }
  1630. break;
  1631. default:
  1632. message.reply(String("SORRY, that Number does not exists :(\n Your Input:\n> " + collected.first().content).substr(0,1999))
  1633. break;
  1634. }
  1635. }).catch(error=>{
  1636. console.log(error)
  1637. return message.reply("SORRY BUT YOUR TIME RAN OUT!")
  1638. })
  1639. })
  1640.  
  1641. }
  1642. }
  1643. /**
  1644. * @JOINTOCREATE FINISHED
  1645. */
  1646. function jointocreatesystem(){
  1647.  
  1648. let rembed = new MessageEmbed()
  1649. .setColor(config.colors.yes)
  1650. .setTitle("What do u want to do?")
  1651. .setDescription(`
  1652. **1.** \`Create Join to Create Channel\` - *Creates a Channel for Join to Create (you can have more then 1)*
  1653. ${!client.setups.get(message.guild.id, "jointocreate.enabled") ?
  1654. `**2.** \`Enable all Join to Creates\` - *Enables all Join to Creates*` :
  1655. `**2.** \`Disable all Join to Creates\` - *Disables all Join to Creates*`}
  1656. **3.** \`Reset all Join to Create Settings\` - *Resets all Join to Create Setups & Settings*
  1657. *You don't need to disable Join to Create, simply delete the Channel if you don't want it anymore*
  1658. *Disabling the Join to Create, means that it will not create a Channel, when some1 joins it*
  1659. `)
  1660. .setFooter("Pick the INDEX NUMBER", config.AVATARURL)
  1661. .setThumbnail(config.AVATARURL)
  1662.  
  1663. message.reply(rembed).then(msg => {
  1664. msg.channel.awaitMessages(m=>m.author.id===message.author.id,{max:1,time:30000,errors:['time']}).then(collected=>{
  1665. switch(collected.first().content.toString()){
  1666. case "1":
  1667. message.guild.channels.create("-JOIN TO CREATE-", {
  1668. type: 'category',
  1669. permissionOverwrites: [
  1670. {
  1671. id: message.guild.id,
  1672. allow: ['VIEW_CHANNEL'],
  1673. },
  1674. ],
  1675. })
  1676. .then((channel) => {
  1677. message.guild.channels.create(`Create a Room`, {
  1678. type: 'voice',
  1679. parent: channel.id, //ADMINISTRATOR
  1680. permissionOverwrites: [
  1681. {
  1682. id: message.guild.id,
  1683. allow: ['VIEW_CHANNEL', "CONNECT"],
  1684. },
  1685. ],
  1686. })
  1687. .then((channel) => {
  1688. //channel id in db
  1689. client.setups.set(message.guild.id, true, "jointocreate.enabled");
  1690. client.setups.push(message.guild.id, channel.id, "jointocreate.channels");
  1691. let themebd = new MessageEmbed()
  1692. .setColor(config.colors.yes)
  1693. .setTitle("Your Join to Create Setup was Successfully!")
  1694. .setDescription(`You can now connect to: \`${channel.name}\`\n\nIf you want another one, then simply create another one.\nIf you don't want it any more, then just delete the channel!`)
  1695. .setFooter("Milrato", config.AVATARURL)
  1696. .setThumbnail(config.AVATARURL)
  1697. message.reply(themebd)
  1698. })
  1699. })
  1700. break;
  1701. case "2":
  1702. if(!client.setups.get(message.guild.id, "jointocreate.enabled")) {
  1703. client.setups.set(message.guild.id, true, "jointocreate.enabled");
  1704. message.reply("Succesfully enabled all Join to Creates")
  1705. }
  1706. else if(client.setups.get(message.guild.id, "jointocreate.enabled")) {
  1707. client.setups.set(message.guild.id, false, "jointocreate.enabled");
  1708. message.reply("Succesfully disabled all Join to Creates")
  1709. }
  1710. else{
  1711. message.reply("Something went wrong")
  1712. }
  1713.  
  1714. break;
  1715. case "3":
  1716. client.setups.set(message.guild.id, {
  1717. enabled: true,
  1718. channels: [],
  1719. tempchannels: [],
  1720. }, "jointocreate");
  1721. message.reply("Succesfully resetted Join to Create Setup")
  1722. break;
  1723. default:
  1724. message.reply(String("SORRY, that Number does not exists :(\n Your Input:\n> " + collected.first().content).substr(0,1999))
  1725. break;
  1726. }
  1727. }).catch(error=>{
  1728. console.log(error)
  1729. return message.reply("SORRY BUT YOUR TIME RAN OUT!")
  1730. })
  1731. })
  1732. }
  1733. /**
  1734. * @LOGGER FINISHED
  1735. */
  1736. function loggersystem(){
  1737.  
  1738. let rembed = new MessageEmbed()
  1739. .setColor(config.colors.yes)
  1740. .setTitle("What do u want to do?")
  1741. .setDescription(`
  1742. **1.** \`Create Logger\` - *Creates ONE Logger-System*
  1743. ${!client.setups.get(message.guild.id, "logger.enabled") ?
  1744. `**2.** \`Enable Logger\` - *Enables the Log for this Guild*` :
  1745. `**2.** \`Disable Logger\` - *Disables the Logger*`}
  1746. **3.** \`Reset\` - *Resets settings for Logger Setup*
  1747. *You don't need to disable Logger, simply delete the Channel if you don't want it anymore*
  1748. *Disabling the Logger, means that I will no longer Log for you.*
  1749. `)
  1750. .setFooter("Pick the INDEX NUMBER", config.AVATARURL)
  1751. .setThumbnail(config.AVATARURL)
  1752.  
  1753. message.reply(rembed).then(msg => {
  1754. let parent = false;
  1755. if(msg.channel.parent) parent = msg.channel.parent.id;
  1756. msg.channel.awaitMessages(m=>m.author.id===message.author.id,{max:1,time:30000,errors:['time']}).then(collected=>{
  1757. switch(collected.first().content.toString()){
  1758. case "1":
  1759. message.guild.channels.create("MILRATO-LOGGER", {
  1760. type: 'text',
  1761. permissionOverwrites: [
  1762. {
  1763. id: message.guild.id,
  1764. allow: ['VIEW_CHANNEL', "CONNECT"],
  1765. },
  1766. ],
  1767. })
  1768. .then((channel) => {
  1769. client.setups.set(message.guild.id, {
  1770. enabled: true,
  1771. channel: "",
  1772. }, "logger");
  1773. client.setups.set(message.guild.id, channel.id, "logger.channel")
  1774. if(parent) channel.setParent(parent);
  1775. //channel id in db
  1776. let themebd = new MessageEmbed()
  1777. .setColor(config.colors.yes)
  1778. .setTitle("Your Logger Setup has been successfully created!")
  1779. .setDescription(`You can now see logs in: ${channel}\n\nIf you don't want it any more, then just delete the channel!`)
  1780. .setFooter("Milrato", config.AVATARURL)
  1781. .setThumbnail(config.AVATARURL)
  1782. message.reply(themebd)
  1783.  
  1784. channel.send(`${message.author}, Here you can see your Logs now!`)
  1785. })
  1786. break;
  1787. case "2":
  1788. if(!client.setups.get(message.guild.id, "logger.enabled")) {
  1789. client.setups.set(message.guild.id, true, "logger.enabled");
  1790. message.reply("Succesfully enabled the Logger")
  1791. }
  1792. else if(client.setups.get(message.guild.id, "logger.enabled")) {
  1793. client.setups.set(message.guild.id, false, "logger.enabled");
  1794. message.reply("Succesfully disabled the Logger")
  1795. }
  1796. else{
  1797. message.reply("Something went wrong")
  1798. }
  1799. break;
  1800. case "3":
  1801. client.setups.set(message.guild.id, {
  1802. enabled: true,
  1803. channel: "",
  1804. }, "logger");
  1805. message.reply("Succesfully resetted Logger Setup")
  1806. break;
  1807. default:
  1808. message.reply(String("SORRY, that Number does not exists :(\n Your Input:\n> " + collected.first().content).substr(0,1999))
  1809. break;
  1810. }
  1811. }).catch(error=>{
  1812. console.log(error)
  1813. return message.reply("SORRY BUT YOUR TIME RAN OUT!")
  1814. })
  1815. })
  1816. }
  1817. /**
  1818. * @AICHAT FINISHED
  1819. */
  1820. function aichat(){
  1821.  
  1822. let rembed = new MessageEmbed()
  1823. .setColor(config.colors.yes)
  1824. .setTitle("What do u want to do?")
  1825. .setDescription(`
  1826. **1.** \`Create Ai-Chat\` - *Creates ONE Ai-Chat*
  1827. ${!client.setups.get(message.guild.id, "aichatsystem.enabled") ?
  1828. `**2.** \`Enable Ai-Chat\` - *Allows you to Chat with the AI*` :
  1829. `**2.** \`Disable Ai-Chat\` - *Disables the AI Chat*`}
  1830. **3.** \`Reset\` - *Resets settings for Ai-Chat Setup*
  1831. *You don't need to disable Ai-Chat, simply delete the Channel if you don't want it anymore*
  1832. *Disabling the Ai-Chat, means that it will not respond to your messages.*
  1833. `)
  1834. .setFooter("Pick the INDEX NUMBER", config.AVATARURL)
  1835. .setThumbnail(config.AVATARURL)
  1836.  
  1837. message.reply(rembed).then(msg => {
  1838. let parent = false;
  1839. if(msg.channel.parent) parent = msg.channel.parent.id;
  1840. msg.channel.awaitMessages(m=>m.author.id===message.author.id,{max:1,time:30000,errors:['time']}).then(collected=>{
  1841. switch(collected.first().content.toString()){
  1842. case "1":
  1843. message.guild.channels.create("MILRATO-AI-CHAT", {
  1844. type: 'text',
  1845. permissionOverwrites: [
  1846. {
  1847. id: message.guild.id,
  1848. allow: ['VIEW_CHANNEL', "CONNECT"],
  1849. },
  1850. ],
  1851. })
  1852. .then((channel) => {
  1853. client.setups.set(message.guild.id, {
  1854. enabled: true,
  1855. channel: "",
  1856. }, "aichatsystem");
  1857. client.setups.set(message.guild.id, channel.id, "aichatsystem.channel")
  1858. if(parent) channel.setParent(parent);
  1859. //channel id in db
  1860. let themebd = new MessageEmbed()
  1861. .setColor(config.colors.yes)
  1862. .setTitle("Your Ai Chat Setup has been successfully created!")
  1863. .setDescription(`You can chat with me in: ${channel}\n\nIf you don't want it any more, then just delete the channel!`)
  1864. .setFooter("Milrato", config.AVATARURL)
  1865. .setThumbnail(config.AVATARURL)
  1866. message.reply(themebd)
  1867. channel.send(`${message.author} You can now Chat with me ;)`)
  1868. })
  1869. break;
  1870. case "2":
  1871. if(!client.setups.get(message.guild.id, "aichatsystem.enabled")) {
  1872. client.setups.set(message.guild.id, true, "aichatsystem.enabled");
  1873. message.reply("Succesfully enabled the Ai-Chat")
  1874. }
  1875. else if(client.setups.get(message.guild.id, "aichatsystem.enabled")) {
  1876. client.setups.set(message.guild.id, false, "aichatsystem.enabled");
  1877. message.reply("Succesfully disabled the Ai-Chat")
  1878. }
  1879. else{
  1880. message.reply("Something went wrong")
  1881. }
  1882. break;
  1883. case "3":
  1884. client.setups.set(message.guild.id, {
  1885. enabled: true,
  1886. channel: "",
  1887. }, "aichatsystem");
  1888. message.reply("Succesfully resetted Ai Chat Setup")
  1889. break;
  1890. default:
  1891. message.reply(String("SORRY, that Number does not exists :(\n Your Input:\n> " + collected.first().content).substr(0,1999))
  1892. break;
  1893. }
  1894. }).catch(error=>{
  1895. console.log(error)
  1896. return message.reply("SORRY BUT YOUR TIME RAN OUT!")
  1897. })
  1898. })
  1899. }
  1900. /**
  1901. * @COUNTER FINISHED
  1902. */
  1903. function counter(){
  1904.  
  1905. let rembed = new MessageEmbed()
  1906. .setColor(config.colors.yes)
  1907. .setTitle("What do u want to do?")
  1908. .setDescription(`
  1909. **1.** \`Create Counter-Chat\` - *Creates ONE Counter-Chat*
  1910. ${!client.setups.get(message.guild.id, "counter.enabled") ?
  1911. `**2.** \`Enable Counter-Chat\` - *Allows you to Chat with the Counter*` :
  1912. `**2.** \`Disable Counter-Chat\` - *Disables the Counter Chat*`}
  1913. **3.** \`Reset Counter\` - *Resets the current Count Value to 0*
  1914. **4.** \`Reset\` - *Resets settings for Counter-Chat Setup*
  1915. *You don't need to disable Counter-Chat, simply delete the Channel if you don't want it anymore*
  1916. *Disabling the Counter-Chat, means that it will not respond to your messages.*
  1917. `)
  1918. .setFooter("Pick the INDEX NUMBER", config.AVATARURL)
  1919. .setThumbnail(config.AVATARURL)
  1920.  
  1921. message.reply(rembed).then(msg => {
  1922. let parent = false;
  1923. if(msg.channel.parent) parent = msg.channel.parent.id;
  1924. msg.channel.awaitMessages(m=>m.author.id===message.author.id,{max:1,time:30000,errors:['time']}).then(collected=>{
  1925. switch(collected.first().content.toString()){
  1926. case "1":
  1927. message.guild.channels.create("MILRATO-Counter-CHAT", {
  1928. type: 'text',
  1929. permissionOverwrites: [
  1930. {
  1931. id: message.guild.id,
  1932. allow: ['VIEW_CHANNEL', "CONNECT"],
  1933. },
  1934. ],
  1935. })
  1936. .then((channel) => {
  1937. client.setups.set(message.guild.id, {
  1938. enabled: true,
  1939. channel: "",
  1940. number: 0,
  1941. author: client.user.id
  1942. }, "counter");
  1943. client.setups.set(message.guild.id, channel.id, "counter.channel")
  1944. if(parent) channel.setParent(parent);
  1945. //channel id in db
  1946. let themebd = new MessageEmbed()
  1947. .setColor(config.colors.yes)
  1948. .setTitle("Your Counter Chat Setup has been successfully created!")
  1949. .setDescription(`You can now count with me in: ${channel}\n\nIf you don't want it any more, then just delete the channel!`)
  1950. .setFooter("Milrato", config.AVATARURL)
  1951. .setThumbnail(config.AVATARURL)
  1952. message.reply(themebd)
  1953. channel.send(`${message.author} You can now Count with me ;)`)
  1954. channel.send("0")
  1955. })
  1956. break;
  1957. case "2":
  1958. if(!client.setups.get(message.guild.id, "counter.enabled")) {
  1959. client.setups.set(message.guild.id, true, "counter.enabled");
  1960. message.reply("Succesfully enabled the Counter-Chat")
  1961. }
  1962. else if(client.setups.get(message.guild.id, "counter.enabled")) {
  1963. client.setups.set(message.guild.id, false, "counter.enabled");
  1964. message.reply("Succesfully disabled the Counter-Chat")
  1965. }
  1966. else{
  1967. message.reply("Something went wrong")
  1968. }
  1969. break;
  1970. case "3":
  1971. client.setups.set(message.guild.id, 0, "counter.number");
  1972. message.reply("Succesfully resetted the Counter Value")
  1973. break;
  1974. case "3":
  1975. client.setups.set(message.guild.id, {
  1976. enabled: true,
  1977. channel: "",
  1978. number: 0,
  1979. author: client.user.id
  1980. }, "counter");
  1981. message.reply("Succesfully resetted Counter Chat Setup")
  1982. break;
  1983. default:
  1984. message.reply(String("SORRY, that Number does not exists :(\n Your Input:\n> " + collected.first().content).substr(0,1999))
  1985. break;
  1986. }
  1987. }).catch(error=>{
  1988. console.log(error)
  1989. return message.reply("SORRY BUT YOUR TIME RAN OUT!")
  1990. })
  1991. })
  1992. }
  1993. /**
  1994. * @membercountsystem NOT FINISHED
  1995. */
  1996. function membercountsystem(){
  1997.  
  1998. let rembed = new MessageEmbed()
  1999. .setColor(config.colors.yes)
  2000. .setTitle("What do u want to do?")
  2001. .setDescription(`
  2002. **1.** \`Create Member-Counter\` - *Creates ONE Member-Counter*
  2003. ${!client.setups.get(message.guild.id, "counter.enabled") ?
  2004. `**2.** \`Enable Member-Counter\` - *Continues counting your Members!*` :
  2005. `**2.** \`Disable Member-Counter\` - *Disables the Member Counter*`}
  2006. **3.** \`Edit Message\` - *Edits the message of the MemberCount (Channel Name)*
  2007. **4.** \`Reset\` - *Resets settings for Member-Counter Setup*
  2008. *You don't need to disable Member-Counter, simply delete the Channel if you don't want it anymore*
  2009. *Disabling the Member-Counter, means that it will not respond to your messages.*
  2010. `)
  2011. .setFooter("Pick the INDEX NUMBER", config.AVATARURL)
  2012. .setThumbnail(config.AVATARURL)
  2013.  
  2014. message.reply(rembed).then(msg => {
  2015. let parent = false;
  2016. if(msg.channel.parent) parent = msg.channel.parent.id;
  2017. msg.channel.awaitMessages(m=>m.author.id===message.author.id,{max:1,time:30000,errors:['time']}).then(collected=>{
  2018. switch(collected.first().content.toString()){
  2019. case "1":
  2020. message.guild.channels.create("🗣 All Members: " + message.guild.memberCount, {
  2021. type: 'voice',
  2022. permissionOverwrites: [
  2023. {
  2024. id: message.guild.id,
  2025. allow: ['VIEW_CHANNEL'],
  2026. deny: ["CONNECT"],
  2027. },
  2028. ],
  2029. })
  2030. .then((channel) => {
  2031. client.setups.set(message.guild.id, {
  2032. enabled: true,
  2033. channel: channel.id,
  2034. tempnum: 5,
  2035. message: "🗣 All Members: {member}"
  2036. }, "membercount");
  2037. //channel id in db
  2038. let themebd = new MessageEmbed()
  2039. .setColor(config.colors.yes)
  2040. .setTitle("Your Member-Counter Setup has been successfully created!")
  2041. .setDescription(`You can edit the message by rerunning the \`//setup\` cmd\nI will change the number, for every 10 Members Joins/Leaves\n\nIf you don't want it any more, then just delete the channel!`)
  2042. .setFooter("Milrato", config.AVATARURL)
  2043. .setThumbnail(config.AVATARURL)
  2044. message.reply(themebd)
  2045. })
  2046. break;
  2047. case "2":
  2048. if(!client.setups.get(message.guild.id, "counter.enabled")) {
  2049. client.setups.set(message.guild.id, true, "counter.enabled");
  2050. message.reply("Succesfully enabled the Counter-Chat")
  2051. }
  2052. else if(client.setups.get(message.guild.id, "counter.enabled")) {
  2053. client.setups.set(message.guild.id, false, "counter.enabled");
  2054. message.reply("Succesfully disabled the Counter-Chat")
  2055. }
  2056. else{
  2057. message.reply("Something went wrong")
  2058. }
  2059. break;
  2060. case "3":
  2061. let rembed = new MessageEmbed()
  2062. .setColor(config.colors.yes)
  2063. .setTitle("Enter the Channel Name!")
  2064. .setDescription(`
  2065. Make sure that there is somewhere {member}, thats the only way on HOW I could count!
  2066. Examples:
  2067. \`🗣 All Members: {member}\` --> \`🗣 All Members: ${message.guild.memberCount}\`
  2068. \`Members: {member}\` --> \`Members: ${message.guild.memberCount}\`
  2069. \`People: {member}\` --> \`People: ${message.guild.memberCount}\`
  2070. \`Server-Members: {member}\` --> \`Server-Members: ${message.guild.memberCount}\`
  2071. \`{member} User\` --> \`${message.guild.memberCount} User\`
  2072. `)
  2073. .setFooter("Send the Text!", config.AVATARURL)
  2074. .setThumbnail(config.AVATARURL)
  2075.  
  2076. message.reply(rembed).then(msg => {
  2077. let parent = false;
  2078. if(msg.channel.parent) parent = msg.channel.parent.id;
  2079. msg.channel.awaitMessages(m=>m.author.id===message.author.id,{max:1,time:30000,errors:['time']}).then(async collected=>{
  2080. let chname = collected.first().content.toString();
  2081. if(!chname.substr(0, 32).includes("{member}")) {
  2082. message.reply("CANCELLED, you did not included `{member}`")
  2083. return;
  2084. }
  2085. message.reply("Succesfully changed the Channel-Name")
  2086.  
  2087. client.setups.set(message.guild.id, chname.substr(0, 32), "membercount.message");
  2088. let membercount = client.setups.get(message.guild.id, "membercount");
  2089.  
  2090. try{
  2091. let channelid = membercount.channel;
  2092. let channel = await client.channels.fetch(channelid);
  2093. channel.setName(membercount.message.replace("{member}", message.guild.memberCount))
  2094. }catch (e) {
  2095. console.log(e);
  2096. }
  2097. }).catch(error=>{
  2098. console.log(error)
  2099. return message.reply("SORRY BUT YOUR TIME RAN OUT!")
  2100. })
  2101. })
  2102. break;
  2103. case "3":
  2104. client.setups.set(message.guild.id, {
  2105. enabled: true,
  2106. channel: channel.id,
  2107. tempnum: 0,
  2108. message: "🗣 All Members: {member}"
  2109. }, "membercount");
  2110. message.reply("Succesfully resetted Member-Counter Chat Setup")
  2111. break;
  2112. default:
  2113. message.reply(String("SORRY, that Number does not exists :(\n Your Input:\n> " + collected.first().content).substr(0,1999))
  2114. break;
  2115. }
  2116. }).catch(error=>{
  2117. console.log(error)
  2118. return message.reply("SORRY BUT YOUR TIME RAN OUT!")
  2119. })
  2120. })
  2121. }
  2122. /**
  2123. * @TICKETSYSTEM NOT FINISHED
  2124. */
  2125. function ticketsystem(){
  2126.  
  2127. let ticket = client.setups.get(message.guild.id, "ticketsystem");
  2128.  
  2129. let rembed = new MessageEmbed()
  2130. .setColor(config.colors.yes)
  2131. .setTitle("What do u want to do?")
  2132. .setDescription(`
  2133. **1.** \`Create Ticket-System\` - *Create ONE Ticket System for your Server*
  2134. **2.** \`Edit Messages\` - *Edit the Message at the ticket open*
  2135. **3.** \`Add AdminRole\`- *Adds a Role for Ticket Permissions*
  2136. **4.** \`Remove AdminRole\`- *Removes a Role for Ticket Permissions*
  2137. ${!ticket.enabled ?
  2138. `**5.** \`Enable Ticket-System\` - *Enable the Ticket-Syste,*` :
  2139. `**5.** \`Disable Ticket-System\` - *Disables the Ticket-System: no more tickets can be opened*`}
  2140. **6.** \`Delete & Reset\` - *deletes current setup, which allows you to resetup*
  2141. `)
  2142. .setFooter("Pick the INDEX NUMBER", config.AVATARURL)
  2143. .setThumbnail(config.AVATARURL)
  2144.  
  2145. message.reply(rembed).then(msg => {
  2146. msg.channel.awaitMessages(m=>m.author.id===message.author.id,{max:1,time:30000,errors:['time']}).then(collected=>{
  2147. switch(collected.first().content.toString()){
  2148. case "1":
  2149. let msg6 = new MessageEmbed()
  2150. .setTitle(`**Hey ${message.author.username}!**`)
  2151. .setDescription(`Please input the message of the ticket setup (React with 🔓 to open a ticket | is always provided)`)
  2152. .setFooter("Milrato", config.AVATARURL)
  2153. .setThumbnail(config.AVATARURL)
  2154. .setColor(config.colors.yes)
  2155. message.reply(msg6).then(msg => {
  2156. msg.channel.awaitMessages(m => m.author.id == message.author.id,
  2157. { max: 1, time: 180000, errors: ['time'], }).then(collected => {
  2158. ticketmsg = collected.first().content;
  2159. message.guild.channels.create("Support - Tickets", {
  2160. type: 'category',
  2161. permissionOverwrites: [
  2162. {
  2163. id: message.guild.id,
  2164. allow: ['READ_MESSAGE_HISTORY'],
  2165. deny: ['SEND_MESSAGES'],
  2166. },
  2167. ],
  2168. })
  2169. .then((channel) => {
  2170. //PARENT ID IN DB
  2171. client.setups.set(message.guild.id, channel.id, "ticketsystem.parentid");
  2172. //PARENT ID IN DB
  2173. var lol = message.guild.channels
  2174. .create("Create a ticket", {
  2175. type: 'text',
  2176. topic: "React with 🔓 to open a Ticket",
  2177. parent: channel.id,
  2178. permissionOverwrites: [
  2179. {
  2180. id: message.guild.id,
  2181. allow: ['READ_MESSAGE_HISTORY'],
  2182. deny: ['SEND_MESSAGES'],
  2183. },
  2184. ],
  2185. })
  2186. .then((channel) => {
  2187. //channel id in db
  2188. client.setups.set(message.guild.id, channel.id, "ticketsystem.channelid");
  2189. //channel id in db
  2190. channel.send(new MessageEmbed()
  2191. .setTitle(`**Create a Ticket**`)
  2192. .setDescription(`${ticketmsg}\n\nReact with 🔓 to open a ticket`)
  2193. .setFooter("Milrato", config.AVATARURL)
  2194. .setThumbnail(config.AVATARURL)
  2195. .setColor(config.colors.yes)
  2196. ).then(msg=>{
  2197. //message id in db
  2198. client.setups.set(message.guild.id, msg.id, "ticketsystem.messageid");
  2199. client.setups.set(message.guild.id, true, "ticketsystem.enabled");
  2200. msg.react("🔓")
  2201. let themebd = new MessageEmbed()
  2202. .setColor(config.colors.yes)
  2203. .setTitle("Your Ticket Setup is created, you can edit everything by running `//setup` again")
  2204. .setDescription(`<#${channel.id}>`)
  2205. .setFooter("Milrato", config.AVATARURL)
  2206. .setThumbnail(config.AVATARURL)
  2207. message.reply(themebd)
  2208. })
  2209. })
  2210. })
  2211. }).catch(error=>{
  2212. console.log(error)
  2213. return message.reply("SORRY BUT YOUR TIME RAN OUT!")
  2214. })
  2215. });
  2216. break;
  2217. case "6":
  2218. try{
  2219. let channel = message.guild.channels.cache.get(ticket.channelid)
  2220. channel.delete();
  2221. }catch{}
  2222. try{
  2223. let parent = message.guild.channels.cache.get(ticket.parentid)
  2224. parent.delete();
  2225. }catch{}
  2226. message.reply("Successfully resetted the current Ticket Setup!")
  2227. client.setups.set(message.guild.id, {
  2228. enabled: true,
  2229. guildid: message.guild.id,
  2230. messageid: "",
  2231. channelid: "",
  2232. parentid: "",
  2233. message: "Hey {user}, thanks for opening an ticket! Someone will help you soon!",
  2234. adminroles: []
  2235. }, "ticketsystem");
  2236. break;
  2237. case "2":
  2238. let rembed = new MessageEmbed()
  2239. .setColor(config.colors.yes)
  2240. .setFooter("Pick the INDEX NUMBER", config.AVATARURL)
  2241. .setThumbnail(config.AVATARURL)
  2242. .setTitle("Enter the message now!")
  2243. .setDescription(`{user} == the user whoe opens the ticket`)
  2244. message.reply(rembed).then(msg => {
  2245. msg.channel.awaitMessages(m=>m.author.id === message.author.id,{max:1,time:30000,errors:['time']}).then(collected=>{
  2246. message.reply("Successfully changed the Message")
  2247. client.setups.set(message.guild.id, collected.first().content, "ticketsystem.message");
  2248. }).catch(error=>{
  2249. console.log(error)
  2250. return message.reply("SORRY BUT YOUR TIME RAN OUT!")
  2251. })
  2252. })
  2253. break;
  2254. case "3":
  2255. let rrembed = new MessageEmbed()
  2256. .setColor(config.colors.yes)
  2257. .setFooter("Pick the INDEX NUMBER", config.AVATARURL)
  2258. .setThumbnail(config.AVATARURL)
  2259. .setTitle("Ping a Role now!")
  2260. .setDescription(`Just Ping the Role`)
  2261. message.reply(rrembed).then(msg => {
  2262. msg.channel.awaitMessages(m=>m.author.id===message.author.id,{max:1,time:30000,errors:['time']}).then(collected=>{
  2263. let role = collected.first().mentions.roles.first();
  2264. if(!role) message.reply("CANCELLED, u didn't Pingged a valid Role")
  2265. console.log(role)
  2266. message.reply("Successfully **added**: `" + role.name + "` to the Admin-Roles");
  2267. client.setups.push(message.guild.id, role.id, "ticketsystem.adminroles");
  2268. console.log(client.setups.get(message.guild.id, "ticketsystem"));
  2269. }).catch(error=>{
  2270. console.log(error)
  2271. return message.reply("SORRY BUT YOUR TIME RAN OUT!")
  2272. })
  2273. })
  2274. break;
  2275. case "4":
  2276. let rrrembed = new MessageEmbed()
  2277. .setColor(config.colors.yes)
  2278. .setFooter("Pick the INDEX NUMBER", config.AVATARURL)
  2279. .setThumbnail(config.AVATARURL)
  2280. .setTitle("Ping a Role now!")
  2281. .setDescription(`Just Ping the Role`)
  2282. message.reply(rrrembed).then(msg => {
  2283. msg.channel.awaitMessages(m=>m.author.id===message.author.id,{max:1,time:30000,errors:['time']}).then(collected=>{
  2284. let role = collected.first().mentions.roles.first();
  2285. if(!role) message.reply("CANCELLED, u didn't Pingged a valid Role")
  2286. console.log(role)
  2287. try{
  2288. client.setups.remove(message.guild.id, role.id, "ticketsystem.adminroles");
  2289. message.reply("Successfully **removed**: `" + role.name + "` from the Admin-Roles");
  2290. }catch{
  2291. message.reply("ERROR -> Resetted all Admin roles")
  2292. client.setups.set(message.guild.id, [], "ticketsystem.adminroles");
  2293. }
  2294.  
  2295. console.log(client.setups.get(message.guild.id, "ticketsystem"));
  2296. }).catch(error=>{
  2297. console.log(error)
  2298. return message.reply("SORRY BUT YOUR TIME RAN OUT!")
  2299. })
  2300. })
  2301. break;
  2302. case "5":
  2303. if(!client.setups.get(message.guild.id, "ticketsystem.enabled")) {
  2304. client.setups.set(message.guild.id, true, "ticketsystem.enabled");
  2305. message.reply("Succesfully enabled the Ticket-System")
  2306. }
  2307. else if(client.setups.get(message.guild.id, "ticketsystem.enabled")) {
  2308. client.setups.set(message.guild.id, false, "ticketsystem.enabled");
  2309. message.reply("Succesfully disabled the Ticket-System")
  2310. }
  2311. else{
  2312. message.reply("Something went wrong")
  2313. }
  2314. break;
  2315. default:
  2316. message.reply(String("SORRY, that Number does not exists :(\n Your Input:\n> " + collected.first().content).substr(0,1999))
  2317. break;
  2318. }
  2319. }).catch(error=>{
  2320. console.log(error)
  2321. return message.reply("SORRY BUT YOUR TIME RAN OUT!")
  2322. })
  2323. })
  2324. }
  2325.  
  2326. /**
  2327. * @RANKINGSYSTEM FINISHED
  2328. */
  2329. function rankingsystem(){
  2330. let rembed = new MessageEmbed()
  2331. .setColor(config.colors.yes)
  2332. .setTitle("What do u want to do?")
  2333. .setDescription(`
  2334. ${!client.setups.get(message.guild.id, "ranking.enabled") ?
  2335. `**1.** \`Enable Ranking\` - *Enables the Ranking system for this Server*` :
  2336. `**1.** \`Disable Ranking\` - *Disables the Ranking system for this Server*`}
  2337. **2.** \`Change Background\` - *Changes the Background of the Rankcard*
  2338. **3.** \`Reset\` - *Resets settings for Ranking System*
  2339. `)
  2340. .setFooter("Pick the INDEX NUMBER", config.AVATARURL)
  2341. .setThumbnail(config.AVATARURL)
  2342.  
  2343. message.reply(rembed).then(msg => {
  2344. msg.channel.awaitMessages(m=>m.author.id===message.author.id,{max:1,time:30000,errors:['time']}).then(collected=>{
  2345. switch(collected.first().content.toString()){
  2346. case "1":
  2347. if(!client.setups.get(message.guild.id, "ranking.enabled")) {
  2348. client.setups.set(message.guild.id, true, "ranking.enabled");
  2349. message.reply("Succesfully enabled the Ranking System")
  2350. }
  2351. else if(client.setups.get(message.guild.id, "ranking.enabled")) {
  2352. client.setups.set(message.guild.id, false, "ranking.enabled");
  2353. message.reply("Succesfully disabled the Ranking System")
  2354. }
  2355. else{
  2356. message.reply("Something went wrong")
  2357. }
  2358. break;
  2359. case "2":
  2360. let rembed = new MessageEmbed()
  2361. .setColor(config.colors.yes)
  2362. .setTitle("What do u want to do?")
  2363. .setDescription(`
  2364. **1.** \`Disable\` - *Send 1 to disable it*
  2365. **2.** \`Enter Url\` - *Just Send the Url*
  2366. `)
  2367. .setFooter("Pick the INDEX NUMBER / send the IMAGE URl", config.AVATARURL)
  2368. .setThumbnail(config.AVATARURL)
  2369. var url;
  2370.  
  2371. message.reply(rembed).then(msg => {
  2372. msg.channel.awaitMessages(m=>m.author.id===message.author.id,{max:1,time:30000,errors:['time']}).then(collected=>{
  2373. switch(collected.first().content.toString()){
  2374. case "1":
  2375. client.setups.set(message.guild.id, "null", "ranking.backgroundimage")
  2376. break;
  2377. default:
  2378. if (collected.first().attachments.size > 0) {
  2379. if (collected.first().attachments.every(attachIsImage)){
  2380.  
  2381. message.reply("Successfully, set your Background Image! Please make sure to **not** delete your Image from the Channel!")
  2382. client.setups.set(message.guild.id, url, "ranking.backgroundimage")
  2383. }
  2384. else{
  2385. message.reply("Could not your message as a backgroundimage")
  2386. }
  2387. }
  2388. else if (collected.first().content.includes("https")||collected.first().content.includes("http")){
  2389. message.reply("Successfully, set your Background Image! Please make sure to **not** delete your Image from the Channel!")
  2390. client.setups.set(message.guild.id, collected.first().content, "ranking.backgroundimage")
  2391. }
  2392. else{
  2393. message.reply("Could not your message as a backgroundimage")
  2394. }
  2395.  
  2396. break;
  2397. }
  2398. function attachIsImage(msgAttach) {
  2399. url = msgAttach.url;
  2400.  
  2401. //True if this url is a png image.
  2402. return url.indexOf("png", url.length - "png".length /*or 3*/) !== -1 ||
  2403. url.indexOf("jpeg", url.length - "jpeg".length /*or 3*/) !== -1 ||
  2404. url.indexOf("jpg", url.length - "jpg".length /*or 3*/) !== -1;
  2405. }
  2406. });
  2407. })
  2408. break;
  2409. case "3":
  2410. client.setups.set(message.guild.id, {
  2411. enabled: true,
  2412. backgroundimage: "null",
  2413. }, "ranking");
  2414. let allmembers = message.guild.members.cache.keyArray();
  2415. for (let i = 0; i < allmembers.length; i++) {
  2416. try{
  2417. let rankuser = message.guild.members.cache.get(allmembers[i]).user;
  2418. const key = `${message.guild.id}-${rankuser.id}`;
  2419. client.points.set(key, 1, `level`); //set level to 0
  2420. client.points.set(key, 0, `points`); //set the points to 0
  2421. client.points.set(key, 400, `neededpoints`) //set neededpoints to 0 for beeing sure
  2422. client.points.set(key, "", `oldmessage`); //set old message to 0
  2423. }catch{}
  2424. }
  2425. message.reply("Succesfully resetted the Ranking System")
  2426. break;
  2427. default:
  2428. message.reply(String("SORRY, that Number does not exists :(\n Your Input:\n> " + collected.first().content).substr(0,1999))
  2429. break;
  2430. }
  2431. }).catch(error=>{
  2432. console.log(error)
  2433. return message.reply("SORRY BUT YOUR TIME RAN OUT!")
  2434. })
  2435.  
  2436. })
  2437. }
  2438.  
  2439. }
  2440. };
Advertisement
Add Comment
Please, Sign In to add comment