gaber-elsayed

invite manger

Sep 7th, 2021 (edited)
71
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 15.91 KB | None | 0 0
  1. config.yml
  2. mainprefix: "!"
  3. defaultjoinmessage: "**{user} Joined Invited By {Inviter} (Invites: {inv})**"
  4. defaultleavemessage: "**{user} Left, Invited by {inviter}**"
  5. token: "NzY4NTAyODY3NDcxNjMwMzg3.X5BaEQ.VRJ673TD-P-xpNkIy7T_YCNWE1Y"
  6. color: "BLUE"
  7.  
  8.  
  9.  
  10. ------------------
  11.  
  12. require("http").createServer((req, res) => {
  13. res.writeHead(200, { "Content-Type": "text/plain" });
  14. res.end("Hello World\n");
  15. }).listen(process.env.PORT, "0.0.0.0");
  16.  
  17. const Discord = require('discord.js');
  18. const client = new Discord.Client();
  19. const fs = require('fs');
  20. const db = require('quick.db');
  21. const yaml = require("js-yaml");
  22. const { mainprefix, token, color } = yaml.load(fs.readFileSync("./config.yml"));
  23. client.on('ready', async () => console.log(`ready!`))
  24. const guildInvites = new Map();
  25.  
  26. client.on("inviteCreate", async invite =>
  27. guildInvites.set(invite.guild.id, await invite.guild.fetchInvites())
  28. );
  29. client.on("ready", () => {
  30. client.guilds.cache.forEach(guild => {
  31. guild
  32. .fetchInvites()
  33. .then(invites => guildInvites.set(guild.id, invites))
  34. .catch(err => console.log(err));
  35. });
  36. });
  37. const { defaultjoinmessage, defaultleavemessage } = yaml.load(
  38. fs.readFileSync("./config.yml")
  39. );
  40. client.on("guildMemberAdd", async member => {
  41. let joinchannelmessage = db.get(`joinchannelmessage_${member.guild.id}`);
  42. if (!joinchannelmessage === null) {
  43. return console.log(`None`);
  44. }
  45. let joinmessage = db.get(`joinchannelmessage_${member.guild.id}`);
  46. if (joinmessage === null) joinmessage = defaultjoinmessage;
  47.  
  48. const catchedInvites = guildInvites.get(member.guild.id);
  49. const newInvites = await member.guild.fetchInvites();
  50. guildInvites.set(member.guild.id, newInvites);
  51. try {
  52. const usedInvite = newInvites.find(
  53. inv => catchedInvites.get(inv.code).uses < inv.uses
  54. );
  55. db.add(`invites_${member.guild.id}_${usedInvite.inviter.id}`, 1);
  56. db.set(`inviter_${member.id}`, usedInvite.inviter.id);
  57. let inv = db.fetch(`invites_${member.guild.id}_${usedInvite.inviter.id}`);
  58. let joinmessage2 = defaultjoinmessage
  59. .toLowerCase()
  60. .replace("{user}", member.user.tag)
  61. .replace("{user}", member.user.tag)
  62. .replace("{user}", member.user.tag)
  63. .replace("{user}", member.user.tag)
  64. .replace("{user}", member.user.tag)
  65. .replace("{user}", member.user.tag)
  66. .replace("{user}", member.user.tag)
  67. .replace("{inviter}", usedInvite.inviter.tag)
  68. .replace("{inviter}", usedInvite.inviter.tag)
  69. .replace("{inviter}", usedInvite.inviter.tag)
  70. .replace("{inviter}", usedInvite.inviter.tag)
  71. .replace("{inv}", inv)
  72. .replace("{inv}", inv)
  73. .replace("{inv}", inv)
  74. .replace("{inv}", inv)
  75. .replace("{inv}", inv)
  76. .replace("{inv}", inv);
  77.  
  78.  
  79. db.add(`jointimes_${member.guild.id}_${member.id}`, 1);
  80. db.add(`Regular_${member.guild.id}_${usedInvite.inviter.id}`, 1);
  81. client.channels.cache.get(joinchannelmessage).send(joinmessage2);
  82. } catch (err) {
  83. console.log(err);
  84. }
  85. });
  86.  
  87. client.on("guildMemberRemove", member => {
  88. let leavechannel = db.get(`leavechannelmessage_${member.guild.id}`);
  89. if (leavechannel === null) {
  90. return console.log(`nope!`);
  91. }
  92. let leavemssage = db.get(`leavemessage_${member.guild.id}`);
  93. if (leavemssage === null) leavemssage = defaultleavemessage;
  94.  
  95. let inviter2 = db.fetch(`inviter_${member.id}`);
  96. const iv2 = client.users.cache.get(inviter2);
  97. const mi = member.guild.members.cache.get(inviter2);
  98. db.subtract(`invites_${member.guild.id}_${inviter2}`, 1);
  99. if (!inviter2) {
  100. client.channels.cache
  101. .get(leavechannel)
  102. .send(`${member} User Left But i cloudnt find who invited him!`);
  103. return;
  104. }
  105. let leavemssage2 = leavemssage
  106. .toLowerCase()
  107. .replace("{user}", member.user.tag)
  108. .replace("{user}", member.user.tag)
  109. .replace("{user}", member.user.tag)
  110. .replace("{user}", member.user.tag)
  111. .replace("{inviter}", `<@${inviter2}>`)
  112. .replace("{inviter}", `<@${inviter2}>`)
  113. .replace("{inviter}", `<@${inviter2}>`)
  114. .replace("{inviter}", `<@${inviter2}>`)
  115. .replace("{inviter}", `<@${inviter2}>`);
  116.  
  117. db.add(`leaves_${member.guild.id}_${inviter2}`, 1);
  118. client.channels.cache.get(leavechannel).send(leavemssage2);
  119. });
  120.  
  121.  
  122. client.on('message', async message => {
  123. if (message.author.bot) return;
  124. let prefix = await db.get(`guildprefix_${message.guild.id}`);
  125. if (prefix === null) prefix = mainprefix;
  126. if (message.content === prefix + "help") {
  127.  
  128. message.channel.send(`**
  129. ~~#~~ 1 - \`${prefix}invites\` : invitate
  130. ~~#~~ 2 - \`${prefix}config joinMessageChannel\` : invite room
  131. ~~#~~ 3 - \`${prefix}config leaveMessageChannel\` : leave room
  132. ~~#~~ 4 - \`${prefix}config show \` : seeting dyalak
  133. ~~#~~ 5 - \`${prefix}config reset-invites\` : tasifire invitate
  134. ~~#~~ 8 - \`${prefix}config prefix\` : changer prefix
  135. **
  136. \`By : Metix\``);
  137.  
  138.  
  139. }
  140. })
  141.  
  142.  
  143. client.on('message', async message => {
  144. let prefix = await db.get(`guildprefix_${message.guild.id}`);
  145. if (prefix === null) prefix = mainprefix;
  146. if(message.content.startsWith(prefix + 'config')) {
  147. let args = message.content.split(' ');
  148. if (!message.member.hasPermission("MANAGE_GUILD"))
  149. return message.channel.send(
  150. "You need `MANAGE GUILD` to configure the server settings!"
  151. );
  152. let content = args[1];
  153. if (!content) {
  154. let kk = new Discord.MessageEmbed()
  155. .setColor(`${color}`)
  156. .setTitle(`${message.guild.name} Settings`)
  157. .setDescription(`
  158. \`\`\`${prefix}config [key] [value]\`\`\`
  159. \`joinMessageChannel\`,\`leaveMessageChannel\`,\`prefix\`,\`show\`,\`reset-invites <@User>\`,\`resetall-invites\`,\`add-invites\``
  160. )
  161. .setFooter(message.guild.name, client.user.displayAvatarURL());
  162. return message.channel.send(kk);
  163. }
  164. if (content.toLowerCase() === "prefix") {
  165. let prefixembed = new Discord.MessageEmbed()
  166. .setColor(`${color}`)
  167. .setTitle(`**SetPrefix**`)
  168. .setDescription(
  169. `This Config is Currently Set.
  170. Use \`\`\`${prefix}config prefix <value>\`\`\` to change it.
  171. **Current Value**
  172. \`\`\`${prefix}\`\`\`
  173. `
  174. )
  175. .setFooter(message.guild.name, client.user.displayAvatarURL());
  176. let newprefix = args[2];
  177.  
  178. if (!newprefix) {
  179. return message.channel.send(prefixembed);
  180. }
  181. let changedprefix = new Discord.MessageEmbed()
  182. .setTitle(`**Prefix Updated**`)
  183. .setColor(`${color}`)
  184. .setDescription(
  185. `** Old Value **\n${prefix}\n** New Value **\n${newprefix}`
  186. )
  187. .setFooter(message.guild.name, client.user.displayAvatarURL());
  188. db.delete(`guildprefix_${message.guild.id}`);
  189. db.set(`guildprefix_${message.guild.id}`, newprefix);
  190. return message.channel.send(changedprefix);
  191. } if (content.toLowerCase() === "joinmessagechannel") {
  192. let joinchannelmessagedata = db.get(
  193. `joinchannelmessage_${message.guild.id}`
  194. );
  195. if (joinchannelmessagedata === null) joinchannelmessagedata = "none";
  196. let joinchannel = message.mentions.channels.first();
  197. let joinchannelmessage = new Discord.MessageEmbed()
  198. .setTitle(`** joinMessageChannel **`)
  199. .setColor(`${color}`)
  200. .setDescription(
  201. `This config is currently set.
  202. Use \`\`\`${prefix}config joinMessageChannel #channel\`\`\` to change it.
  203. **Current Value**
  204. <#${joinchannelmessagedata}>
  205. `
  206. )
  207. .setFooter(message.guild.name, client.user.displayAvatarURL());
  208. if (!joinchannel) {
  209. return message.channel.send(joinchannelmessage);
  210. }
  211. const joinmessageupdated = new Discord.MessageEmbed()
  212. .setTitle(`**JoinMessageChannel Updated**`)
  213. .setColor(`${color}`)
  214. .setDescription(
  215. `** Old Value **\n<#${joinchannelmessagedata}>\n** New Value **\n<#${joinchannel.id}>`
  216. )
  217. .setFooter(message.guild.name, client.user.displayAvatarURL());
  218. db.delete(`joinchannelmessage_${message.guild.id}`);
  219. db.set(`joinchannelmessage_${message.guild.id}`, joinchannel.id);
  220. return message.channel.send(joinmessageupdated);
  221. }
  222. if (content.toLowerCase() === "leavemessagechannel") {
  223. let leavechanneldata = db.get(`leavechannelmessage_${message.guild.id}`);
  224. if (leavechanneldata === null) leavechanneldata = "none";
  225.  
  226. let leavechannel = message.mentions.channels.first();
  227. let leavemessageembed = new Discord.MessageEmbed()
  228. .setTitle(`** LeaveMessageChannel **`)
  229. .setColor(`${color}`)
  230. .setDescription(
  231. `This config is currently set.
  232. Use \`\`\`${prefix}config LeaveMessageChannel #channel\`\`\` to change it.
  233. **Current Value**
  234. <#${leavechanneldata}>
  235. `
  236. )
  237. .setFooter(message.guild.name, client.user.displayAvatarURL());
  238. if (!leavechannel) {
  239. return message.channel.send(leavemessageembed);
  240. }
  241. const leavemessageupdated = new Discord.MessageEmbed()
  242. .setTitle(`**LeaveChannelMessage Updated**`)
  243. .setColor(`${color}`)
  244. .setDescription(
  245. `** Old Value **\n<#${leavechanneldata}>\n** New Value **\n<#${leavechanneldata.id}>`
  246. )
  247. .setFooter(message.guild.name, client.user.displayAvatarURL());
  248. db.delete(`leavechannelmessage_${message.guild.id}`);
  249. db.set(`leavechannelmessage_${message.guild.id}`, leavechannel.id);
  250. return message.channel.send(leavemessageupdated);
  251. }
  252. if (content.toLowerCase() === "show") {
  253. let joinmessage = db.get(`joinmessage_${message.guild.id}`);
  254. if (joinmessage === null) joinmessage = defaultjoinmessage;
  255. let leavemessage = db.get(`leavemessage_${message.guild.id}`);
  256. if (leavemessage === null) leavemessage = defaultleavemessage;
  257. let joinchannelmessage = db.get(`joinchannelmessage_${message.guild.id}`);
  258. let joinchannelmessage2 = db.get(
  259. `joinchannelmessage_${message.guild.id}`
  260. );
  261. if (joinchannelmessage === null) joinchannelmessage = "None";
  262. else joinchannelmessage = `<#${joinchannelmessage2}>`;
  263. let leavechannelmessage = db.get(
  264. `leavechannelmessage_${message.guild.id}`
  265. );
  266. let leavechannelmessage2 = db.get(
  267. `leavechannelmessage_${message.guild.id}`
  268. );
  269. if (leavechannelmessage === null) leavechannelmessage = "None";
  270. else leavechannelmessage = `<#${leavechannelmessage2}>`;
  271. let guildconfig = new Discord.MessageEmbed()
  272. .setAuthor(
  273. `${message.guild.name} Server Settings.`,
  274. message.author.displayAvatarURL()
  275. )
  276. .setColor(`${color}`)
  277. .addField(`Prefix`, `\`${prefix}\``, true)
  278. .addField(`JoinMessage`, `\`${joinmessage}\``, true)
  279. .addField(`LeaveMessage`, `\`${leavemessage}\``, true)
  280. .addField(`JoinMessageChannel`, `${joinchannelmessage}`, true)
  281. .addField(`LeaveMessageChannel`, `${leavechannelmessage}`, true)
  282. .setFooter(client.user.username, client.user.displayAvatarURL());
  283.  
  284. return message.channel.send(guildconfig);
  285. }
  286. }
  287. });
  288. client.on('message', async message => {
  289. let prefix = db.get(`prefix_${message.guild.id}`)
  290. if(prefix === null) prefix = mainprefix;
  291. if(message.content.startsWith(prefix + 'invites')) {
  292. let user = message.mentions.users.first() || message.author;
  293.  
  294. if (!user) return message.channel.send(`**Usage CMD: ${prefix}invites \`<@User>\`**`)
  295. let inv = db.fetch(`invites_${message.guild.id}_${user.id}`);
  296. let leaves = db.fetch(`leaves_${message.guild.id}_${user.id}`);
  297. let Regular = db.fetch(`Regular_${message.guild.id}_${user.id}`);
  298. let bonus = db.fetch(`bouns_${message.guild.id}_${user.id}`);
  299.  
  300. const embeds = new Discord.MessageEmbed()
  301. .setColor(`${color}`)
  302. .setDescription(`**You Have **\`${inv || 0}\`** Invites (**\`${Regular || 0}\`** Regular **\`${bonus || 0}\`** Bonus **\`${leaves || 0}\`**Leaves )**`)
  303. .setFooter(user.tag, user.avatarURL({ dynamic: true }));
  304.  
  305. message.channel.send(embeds);
  306. }
  307. });
  308.  
  309. client.on('message', async message => {
  310. let prefix = db.get(`prefix_${message.guild.id}`)
  311. if(prefix === null) prefix = mainprefix;
  312. if(message.content.startsWith(prefix + 'config')){
  313. let args = message.content.split(' ');
  314. let content = args[1];
  315. if (content.toLowerCase() === "add-invites") {
  316. if (!message.member.hasPermission("MANAGE_GUILD")) return message.channel.send("You need `MANAGE GUILD` to add invites!");
  317.  
  318. let amount = args[3];
  319.  
  320. if (!amount) return message.channel.send(`**Usage CMD: ${prefix}add-invites \`<@User>\` \`<Numberinvites>\`**`);
  321.  
  322. let user = message.mentions.users.first();
  323.  
  324. if (!user) return message.channel.send(`**Usage CMD: ${prefix}add-invites \`<@User>\` \`<Numberinvites>\`**`);
  325.  
  326. db.add(`invites_${message.guild.id}_${user.id}`, amount);
  327.  
  328. db.add(`bouns_${message.guild.id}_${user.id}`, amount);
  329. return message.channel.send(`**Done Added \`${amount}\` To ${user}**`);
  330. }
  331. }
  332. })
  333. client.on('message', async message => {
  334. let prefix = db.get(`prefix_${message.guild.id}`);
  335. if(prefix === null) prefix = mainprefix
  336. if(message.content.startsWith(prefix + 'config')){
  337. let args = message.content.split(' ')
  338. let content = args[1];
  339. if (content.toLowerCase() === "resetall-invites") {
  340. let inv = db.fetch(`invites_${message.guild.id}_${message.author.id}`);
  341. let leaves = db.fetch(`leaves_${message.guild.id}_${message.author.id}`);
  342. let Regular = db.fetch(`Regular_${message.guild.id}_${message.author.id}`);
  343. let bonus = db.fetch(`bouns_${message.guild.id}_${message.author.id}`);
  344. if (!message.member.hasPermission("MANAGE_GUILD")) return message.channel.send("You need `MANAGE GUILD` to remove invites!");
  345.  
  346. message.guild.members.cache.forEach(user => {
  347. db.delete(`invites_${message.guild.id}_${user.user.id}`);
  348. db.delete(`leaves_${message.guild.id}_${user.user.id}`);
  349. db.delete(`Regular_${message.guild.id}_${user.user.id}`);
  350. db.delete(`bouns_${message.guild.id}_${user.user.id}`);
  351. })
  352. return message.channel.send(`**Done Has Been Reset invites**`)
  353. }
  354. }
  355. });
  356.  
  357. client.on('message', async message => {
  358. let prefix = db.get(`prefix_${message.guild.id}`)
  359. if(prefix === null) prefix = mainprefix
  360. if(message.content.startsWith(prefix + 'config')){
  361. let args = message.content.split(' ')
  362. let content = args[1];
  363. if (content.toLowerCase() === "reset-invites") {
  364. if (!message.member.hasPermission("MANAGE_GUILD")) return message.channel.send("You need `MANAGE GUILD` to remove invites!");
  365. let user = message.mentions.users.first();
  366.  
  367. let inv = db.fetch(`invites_${message.guild.id}_${message.author.id}`);
  368. let leaves = db.fetch(`leaves_${message.guild.id}_${message.author.id}`);
  369. let Regular = db.fetch(`Regular_${message.guild.id}_${message.author.id}`);
  370. let bonus = db.fetch(`bouns_${message.guild.id}_${message.author.id}`);
  371.  
  372. if(!user) return message.channel.send(`**Usage CMD: ${prefix}reset-invites \`<@user>\`**`);
  373.  
  374. db.delete(`invites_${message.guild.id}_${user.id}`);
  375. db.delete(`leaves_${message.guild.id}_${user.id}`);
  376. db.delete(`Regular_${message.guild.id}_${user.id}`);
  377. db.delete(`bouns_${message.guild.id}_${user.id}`);
  378. return message.channel.send(`**Done Has Been Reset invites This User**`)
  379. }
  380. }
  381. });
  382.  
  383.  
  384.  
  385. client.login(token)
Add Comment
Please, Sign In to add comment