Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- كود مراقبة الرومات مثل ما وعدتكم
- مشان تشغلو اول شي لازم تسوي ملف اسمو monitors.json
- وتحط فيه
- {}
- ودا شرح الاوامر
- 1 - info-server-channels
- هاذ يجبلك شرح مختصر عن الرومات الكتابية في سيرفر معين , يجب كتابت اي دي السيرفر بعد الامر
- 2 - info-channel
- يجبلك معلومات مفصلة عن الروم الكتابي مثل الاسم الاي دي والبرمشان يلي به للرتب او الاشخاص ولو بدك تعدله وتخليه لكل انواع الرومات برحتك
- 3 - monitor
- وهاذ به 3 method
- وهم info
- set
- delete
- هاذ الامر يتم استخدام في الروم يلي بدك تراقب فيه روم تاني
- اول وظيفة وهي لمعرفة لو الروم يراقب روم معين ولو ما يراقب راح يقولك هاذ الروم ما يراقب اي روم تاني
- تاني واحدة مشان تخلي الروم يلي انكتب به الامر يراقب روم تاني , لازم تحط اي دي الروم التاني وراخ مثل هيك
- -monitor set <channel-id>
- لو حطيت اي دي نفس الروم ما راح يقبل مشان ما يصير سبام
- تالت واحد وهو لو بدك تشيل نظام المراقبة يلي بيجري في هاذ الروم
- هيك خلصنا من شرح الكودز ولو عندك اي مشكلة به تقدر تروح لروم #javascript-support تلاقي هناك مساعدة
- طبعا هاذ الكود شغال ع اخر اصدار من المكتبة 12
- استمتعو بالكودز وشكرا
- const { Client, MessageEmbed, ...Discord }= require('discord.js');
- const client = new Client({ fetchAllMembers: true });
- const fs = require('fs')
- const prefix = '-';
- const dev = ['', ''] // تحط اي دي الادارة هون تاعت البوت
- client.on('ready',() => {
- console.log(`My name\'s ${client.user.username}`)
- })
- client.on('message', async msg => {
- const monitors = require('./monitors.json')
- for(let [m, c] of Object.entries(monitors))
- {
- let monitor = client.channels.resolve(m)
- if(c != msg.channel.id || !monitor) return;
- if(!msg.content && !msg.attachments.first()) return;
- let embed = new MessageEmbed()
- .addField('**Channel Name**',msg.channel.name)
- .addField('**Channel id**',msg.channel.id)
- .addField('**Sender**',msg.author.tag)
- .addField('**Sender ID**',msg.author.id);
- msg.content && embed.addField('**Message**',msg.content)
- monitor.send({embed, files:[msg.attachments.first()].filter(Boolean)}).catch(() => void 0 )
- }
- if(!msg.content.startsWith(prefix)) return;
- if(!msg.guild) return;
- if(msg.author.bot) return;
- const args = msg.content.slice(prefix.length).trim().split(/ +/);
- const command = args.shift().toLowerCase();
- if(dev.every(id => id != msg.author.id)) return;
- if(command == 'info-server-channels')
- {
- if(!args[0]) return msg.channel.send('**Type server id after command**');
- let guild = client.guilds.resolve(args[0])
- if(!guild) return msg.channel.send('**I\'m not in this server**');
- let messages = [];
- let channels = guild.channels.cache.filter(c => c.type == 'text');
- let channels_map = channels.map(c => {
- return {
- name : c.name,
- value : `**ID**: ${c.id}\n**Topic**: ${channel.topic || 'No Topic'}\n**NSFW**:${channel.nsfw}\n**Can View**: ${c.viewable}`,
- inline : true
- }
- });
- for (let i = 0; i < channels.size; i += 30) {
- let channels_slice_map = channels_map.slice(i, i + 30);
- let embed = new MessageEmbed()
- .setTitle(`**Channels (${(i + 30) / 30})**`)
- .addFields(channels_slice_map)
- messages.push(embed)
- }
- messages.map(m => msg.channel.send(m))
- }
- else if(command == 'info-channel')
- {
- if(!args[0]) return msg.channel.send('**Type channel id after command**');
- let channel = client.channels.resolve(args[0])
- if(!channel) return msg.channel.send('**I can\'t find this channel**');
- if(channel.type != 'text') return msg.channel.send('**Type channel not text**');
- let messages = []
- let info = new MessageEmbed()
- .setTitle('**Info**')
- .setDescription(`**Name** :${channel.name}\n**ID**: ${channel.id}\n**Topic**: ${channel.topic || 'No Topic'}\n**NSFW**:${channel.nsfw}\n**Can View**: ${channel.viewable}`)
- messages.push(info)
- let permissions = channel.permissionOverwrites;
- let permissions_map = permissions.map( permission => {
- let roleOrUser = permission.type == 'member' ? client.users.resolve(permission.id) : channel.guild.roles.resolve(permission.id)
- return {
- name : '\u200B',
- 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')}`
- }
- });
- for (let i = 0; i < permissions.size; i += 30) {
- let permissions_slice_map = permissions_map.slice(i, i + 30);
- let embed = new MessageEmbed()
- .setTitle(`**Permissions (${(i + 30) / 30})**`)
- .addFields(permissions_slice_map)
- messages.push(embed)
- }
- messages.map(m => msg.channel.send(m))
- }
- else if(command == 'monitor')
- {
- let method = args[0]
- if(method == 'info')
- {
- if(!monitors[msg.channel.id]) return msg.channel.send('This channel not monitor any channel')
- msg.channel.send(`**monitor channel ID**: ${monitors[msg.channel.id]}`)
- }
- else if(method == 'delete')
- {
- if(!monitors[msg.channel.id]) return msg.channel.send('**This channel not monitor any channel**')
- delete monitors[msg.channel.id]
- msg.channel.send('**Done delete the monitor from channel**')
- fs.writeFileSync('./monitor.json',JSON.stringify(monitors))
- }
- else if(method == 'set')
- {
- let channel = args[1];
- if(!channel) return msg.channel.send('**Type channel id after command**');
- let c = client.channels.resolve(channel);
- if(!c) return msg.channel.send('**I can\'t find this channel**');
- if(channel == msg.channel.id) return msg.channel.send('I can\'t monitor this channel');
- if(c.type != 'text') return msg.channel.send('**Type channel not text**');
- monitors[msg.channel.id] = channel;
- 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**');
- fs.writeFileSync('./monitors.json',JSON.stringify(monitors));
- }
- }
- })
- client.login('')
Add Comment
Please, Sign In to add comment