gaber-elsayed

Top Like Probot%70 (JS)

Jun 7th, 2020
217
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 4.79 KB | None | 0 0
  1. var top = require("./top.json");
  2. function save() {
  3. fs.writeFileSync("./top.json", JSON.stringify(top, null, 4));
  4. }
  5. client.on("voiceStateUpdate", async function(oldMember, newMember) {
  6. if (newMember.user.bot) return;
  7. if (!top[newMember.guild.id]) top[newMember.guild.id] = {};
  8. if (!top[newMember.guild.id][newMember.user.id]) top[newMember.guild.id][newMember.user.id] = {
  9. "text": 0,
  10. "voice": parseInt(Math.random()*10),
  11. "msgs": 0,
  12. "id": newMember.user.id
  13. }
  14. save();
  15. if (!oldMember.voiceChannel && newMember.voiceChannel) {
  16. var addXP = setInterval(async function () {
  17. top[newMember.guild.id][newMember.user.id].voice+=parseInt(Math.random()*4);
  18. save();
  19. if (!newMember.voiceChannel) {
  20. clearInterval(addXP);
  21. }
  22. }, 60000);
  23. }
  24. });
  25. client.on("message", async function (message) {
  26. if (message.author.bot) return;
  27. if (!message.guild) return;
  28. if (!top[message.guild.id]) top[message.guild.id] = {};
  29. if (!top[message.guild.id][message.author.id]) top[message.guild.id][message.author.id] = {
  30. "text": parseInt(Math.random()*10),
  31. "voice": 0,
  32. "msgs": 0,
  33. "id": message.author.id
  34. }
  35. if (top[message.guild.id][message.author.id].msgs > 10) {
  36. top[message.guild.id][message.author.id].text += parseInt(Math.random()*4);
  37. top[message.guild.id][message.author.id].msgs = 0;
  38. }
  39. save();
  40. var args = message.content.split(" ");
  41. var cmd = args[0].slice(prefix.length).toLowerCase();
  42. if (!message.content.startsWith(prefix)) return;
  43. switch (cmd) {
  44. case ".top":
  45. var topArray = Object.values(top[message.guild.id]);
  46. var num = 0;
  47. var textStr = `${topArray.sort((a, b) => b.text - a.text).slice(0, 10).filter(user => user.text > 0 && message.guild.members.get(user.id)).map(function (user) {
  48. if (user.text > 0) {
  49. return `**\`#${++num}\` | <@${user.id}> XP: \`(${user.text})\` **`
  50. }
  51. }).join("\n")}`;
  52. num = 0;
  53. var voiceStr = `${topArray.sort((a, b) => b.voice - a.voice).slice(0, 10).filter(user => user.voice > 0 && message.guild.members.get(user.id)).map(function (user) {
  54. if (user.voice > 0) {
  55. return `**\`#${++num}\` | <@${user.id}> XP: \`(${user.voice})\` **`
  56. }
  57. }).join("\n")}`;
  58. var embed = new Discord.RichEmbed()
  59. .setAuthor(message.author.tag, message.author.displayAvatarURL)
  60. .addField(`» TOP 10 TEXT`, textStr.length > 1 ? textStr : "» NO TOP TEXT", true)
  61. .addField(`» TOP 10 VOICE`, voiceStr.length > 1 ? voiceStr : "» NO TOP VOICE", true)
  62. .setFooter(client.user.tag, client.user.displayAvatarURL)
  63. .setColor("BLUE");
  64. message.channel.send({
  65. embed: embed
  66. });
  67. break;
  68. case ".topvoice":
  69. var topArray = Object.values(top[message.guild.id]);
  70. var num = 0;
  71. var voiceStr = `${topArray.sort((a, b) => b.voice - a.voice).slice(0, 5).filter(user => user.voice > 0 && message.guild.members.get(user.id)).map(function (user) {
  72. if (user.voice > 0) {
  73. return `**\`#${++num}\` | <@${user.id}> XP: \`(${user.voice})\` **`
  74. }
  75. }).join("\n")}`;
  76. var embed = new Discord.RichEmbed()
  77. .setTitle("» TOP 5 VOICE")
  78. .setAuthor(message.author.tag, message.author.displayAvatarURL)
  79. .setDescription(voiceStr.length > 1 ? voiceStr : "» NO TOP VOICE")
  80. .setFooter(client.user.tag, client.user.displayAvatarURL)
  81. .setColor("BLUE");
  82. message.channel.send({
  83. embed: embed
  84. });
  85. break;
  86. case ".toptext":
  87. var topArray = Object.values(top[message.guild.id]);
  88. var num = 0;
  89. var textStr = `${topArray.sort((a, b) => b.text - a.text).slice(0, 5).filter(user => user.text > 0 && message.guild.members.get(user.id)).map(function (user) {
  90. if (user.text > 0) {
  91. return `**\`#${++num}\` | <@${user.id}> XP: \`(${user.text})\` **`
  92. }
  93. }).join("\n")}`;
  94. var embed = new Discord.RichEmbed()
  95. .setTitle("» TOP 5 TEXT")
  96. .setAuthor(message.author.tag, message.author.displayAvatarURL)
  97. .setDescription(textStr.length > 1 ? textStr : "» NO TOP TEXT")
  98. .setFooter(client.user.tag, client.user.displayAvatarURL)
  99. .setColor("BLUE");
  100. message.channel.send({
  101. embed: embed
  102. });
  103. break;
  104. }
  105. });
Add Comment
Please, Sign In to add comment