gaber-elsayed

monitors

Jun 7th, 2020
163
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 7.25 KB | None | 0 0
  1. كود مراقبة الرومات مثل ما وعدتكم
  2. مشان تشغلو اول شي لازم تسوي ملف اسمو monitors.json
  3. وتحط فيه
  4. {}
  5. ودا شرح الاوامر
  6. 1 - info-server-channels
  7. هاذ يجبلك شرح مختصر عن الرومات الكتابية في سيرفر معين , يجب كتابت اي دي السيرفر بعد الامر
  8. 2 - info-channel
  9. يجبلك معلومات مفصلة عن الروم الكتابي مثل الاسم الاي دي والبرمشان يلي به للرتب او الاشخاص ولو بدك تعدله وتخليه لكل انواع الرومات برحتك
  10. 3 - monitor
  11. وهاذ به 3 method
  12. وهم info
  13. set
  14. delete
  15. هاذ الامر يتم استخدام في الروم يلي بدك تراقب فيه روم تاني
  16. اول وظيفة وهي لمعرفة لو الروم يراقب روم معين ولو ما يراقب راح يقولك هاذ الروم ما يراقب اي روم تاني
  17. تاني واحدة مشان تخلي الروم يلي انكتب به الامر يراقب روم تاني , لازم تحط اي دي الروم التاني وراخ مثل هيك
  18. -monitor set <channel-id>
  19.  
  20. لو حطيت اي دي نفس الروم ما راح يقبل مشان ما يصير سبام
  21. تالت واحد وهو لو بدك تشيل نظام المراقبة يلي بيجري في هاذ الروم
  22.  
  23. هيك خلصنا من شرح الكودز ولو عندك اي مشكلة به تقدر تروح لروم #javascript-support تلاقي هناك مساعدة
  24. طبعا هاذ الكود شغال ع اخر اصدار من المكتبة 12
  25. استمتعو بالكودز وشكرا
  26.  
  27.  
  28.  
  29.  
  30.  
  31. const { Client, MessageEmbed, ...Discord }= require('discord.js');
  32. const client = new Client({ fetchAllMembers: true });
  33. const fs = require('fs')
  34. const prefix = '-';
  35. const dev = ['', ''] // تحط اي دي الادارة هون تاعت البوت
  36. client.on('ready',() => {
  37. console.log(`My name\'s ${client.user.username}`)
  38. })
  39. client.on('message', async msg => {
  40. const monitors = require('./monitors.json')
  41. for(let [m, c] of Object.entries(monitors))
  42. {
  43. let monitor = client.channels.resolve(m)
  44. if(c != msg.channel.id || !monitor) return;
  45. if(!msg.content && !msg.attachments.first()) return;
  46. let embed = new MessageEmbed()
  47. .addField('**Channel Name**',msg.channel.name)
  48. .addField('**Channel id**',msg.channel.id)
  49. .addField('**Sender**',msg.author.tag)
  50. .addField('**Sender ID**',msg.author.id);
  51. msg.content && embed.addField('**Message**',msg.content)
  52. monitor.send({embed, files:[msg.attachments.first()].filter(Boolean)}).catch(() => void 0 )
  53. }
  54. if(!msg.content.startsWith(prefix)) return;
  55. if(!msg.guild) return;
  56. if(msg.author.bot) return;
  57. const args = msg.content.slice(prefix.length).trim().split(/ +/);
  58. const command = args.shift().toLowerCase();
  59. if(dev.every(id => id != msg.author.id)) return;
  60. if(command == 'info-server-channels')
  61. {
  62. if(!args[0]) return msg.channel.send('**Type server id after command**');
  63. let guild = client.guilds.resolve(args[0])
  64. if(!guild) return msg.channel.send('**I\'m not in this server**');
  65. let messages = [];
  66. let channels = guild.channels.cache.filter(c => c.type == 'text');
  67. let channels_map = channels.map(c => {
  68. return {
  69. name : c.name,
  70. value : `**ID**: ${c.id}\n**Topic**: ${channel.topic || 'No Topic'}\n**NSFW**:${channel.nsfw}\n**Can View**: ${c.viewable}`,
  71. inline : true
  72. }
  73. });
  74. for (let i = 0; i < channels.size; i += 30) {
  75. let channels_slice_map = channels_map.slice(i, i + 30);
  76. let embed = new MessageEmbed()
  77. .setTitle(`**Channels (${(i + 30) / 30})**`)
  78. .addFields(channels_slice_map)
  79. messages.push(embed)
  80. }
  81. messages.map(m => msg.channel.send(m))
  82.  
  83. }
  84. else if(command == 'info-channel')
  85. {
  86. if(!args[0]) return msg.channel.send('**Type channel id after command**');
  87. let channel = client.channels.resolve(args[0])
  88. if(!channel) return msg.channel.send('**I can\'t find this channel**');
  89. if(channel.type != 'text') return msg.channel.send('**Type channel not text**');
  90. let messages = []
  91. let info = new MessageEmbed()
  92. .setTitle('**Info**')
  93. .setDescription(`**Name** :${channel.name}\n**ID**: ${channel.id}\n**Topic**: ${channel.topic || 'No Topic'}\n**NSFW**:${channel.nsfw}\n**Can View**: ${channel.viewable}`)
  94. messages.push(info)
  95.  
  96. let permissions = channel.permissionOverwrites;
  97. let permissions_map = permissions.map( permission => {
  98. let roleOrUser = permission.type == 'member' ? client.users.resolve(permission.id) : channel.guild.roles.resolve(permission.id)
  99. return {
  100. name : '\u200B',
  101. value : `**Name**: ${!roleOrUser ? 'Can\'t get name ': permission.type == 'member' ? '@' + roleOrUser.username + roleOrUser.discriminator : '@' + roleOrUser.name }\n**ID**:${permission.id}\n**Type**: ${permission.type}\n**Allow**:\n${permission.allow.toArray().join('\n')}\n**Deny**:\n${permission.deny.toArray().join('\n')}`
  102. }
  103. });
  104. for (let i = 0; i < permissions.size; i += 30) {
  105. let permissions_slice_map = permissions_map.slice(i, i + 30);
  106. let embed = new MessageEmbed()
  107. .setTitle(`**Permissions (${(i + 30) / 30})**`)
  108. .addFields(permissions_slice_map)
  109. messages.push(embed)
  110. }
  111. messages.map(m => msg.channel.send(m))
  112.  
  113. }
  114. else if(command == 'monitor')
  115. {
  116. let method = args[0]
  117. if(method == 'info')
  118. {
  119. if(!monitors[msg.channel.id]) return msg.channel.send('This channel not monitor any channel')
  120. msg.channel.send(`**monitor channel ID**: ${monitors[msg.channel.id]}`)
  121. }
  122. else if(method == 'delete')
  123. {
  124. if(!monitors[msg.channel.id]) return msg.channel.send('**This channel not monitor any channel**')
  125. delete monitors[msg.channel.id]
  126. msg.channel.send('**Done delete the monitor from channel**')
  127. fs.writeFileSync('./monitor.json',JSON.stringify(monitors))
  128. }
  129. else if(method == 'set')
  130. {
  131. let channel = args[1];
  132. if(!channel) return msg.channel.send('**Type channel id after command**');
  133. let c = client.channels.resolve(channel);
  134. if(!c) return msg.channel.send('**I can\'t find this channel**');
  135. if(channel == msg.channel.id) return msg.channel.send('I can\'t monitor this channel');
  136. if(c.type != 'text') return msg.channel.send('**Type channel not text**');
  137. monitors[msg.channel.id] = channel;
  138. msg.channel.send('**1 - Done set the monitor to channel\n2 - If i don\'t have permissions to see message in the channel so i can\'t monitor the channel**');
  139. fs.writeFileSync('./monitors.json',JSON.stringify(monitors));
  140. }
  141. }
  142. })
  143.  
  144. client.login('')
Add Comment
Please, Sign In to add comment