mirror of
https://github.com/arthur-pbty/xiao.git
synced 2026-06-03 23:36:43 +02:00
Guard
This commit is contained in:
@@ -6,16 +6,16 @@ module.exports = class ClearSettingCommand extends Command {
|
||||
name: 'clear-setting',
|
||||
group: 'util',
|
||||
memberName: 'clear-setting',
|
||||
description: 'Removes a custom-set Mod Channel, Member Channel, Member Message, Staff Role, or Single Role.',
|
||||
description: 'Removes a custom-set Guard Mode, Mod Channel, Member Channel, Member Message, Staff Role, or Single Role.',
|
||||
guildOnly: true,
|
||||
args: [
|
||||
{
|
||||
key: 'setting',
|
||||
prompt: 'What setting do you want to clear? `modLog`, `memberLog`, `joinMsg`, `leaveMsg`, `staffRole`, or `singleRole`?',
|
||||
prompt: 'What setting do you want to clear? `guard`, `modLog`, `memberLog`, `joinMsg`, `leaveMsg`, `staffRole`, or `singleRole`?',
|
||||
type: 'string',
|
||||
validate: setting => {
|
||||
if (['modLog', 'memberLog', 'joinMsg', 'leaveMsg', 'staffRole', 'singleRole'].includes(setting)) return true;
|
||||
return 'Please enter either `modLog`, `memberLog`, `joinMsg`, `leaveMsg`, `staffRole`, or `singleRole`.';
|
||||
if (['guard', 'modLog', 'memberLog', 'joinMsg', 'leaveMsg', 'staffRole', 'singleRole'].includes(setting)) return true;
|
||||
return 'Please enter either `guard`, `modLog`, `memberLog`, `joinMsg`, `leaveMsg`, `staffRole`, or `singleRole`.';
|
||||
}
|
||||
}
|
||||
]
|
||||
|
||||
@@ -0,0 +1,23 @@
|
||||
const { Command } = require('discord.js-commando');
|
||||
|
||||
module.exports = class GuardCommand extends Command {
|
||||
constructor(client) {
|
||||
super(client, {
|
||||
name: 'invite-guard',
|
||||
aliases: ['guard'],
|
||||
group: 'util',
|
||||
memberName: 'invite-guard',
|
||||
description: 'Configures auto-delete for invites.',
|
||||
guildOnly: true
|
||||
});
|
||||
}
|
||||
|
||||
hasPermission(msg) {
|
||||
return msg.member.hasPermission('ADMINISTRATOR');
|
||||
}
|
||||
|
||||
run(msg) {
|
||||
msg.guild.settings.set('guard', true);
|
||||
return msg.say('Invite Guard is now active.');
|
||||
}
|
||||
};
|
||||
@@ -66,6 +66,14 @@ client.on('commandError', (command, err) => {
|
||||
});
|
||||
|
||||
client.on('message', async (msg) => {
|
||||
if (msg.guild && msg.guild.settings.get('guard') && /(discord(.gg\/|app.com\/invite\/))/g.test(msg.content)) {
|
||||
if (msg.channel.permissionsFor(client.user).has('ADMINISTRATOR')) return;
|
||||
if (msg.member.roles.has(msg.guild.settings.get('staffRole'))) return;
|
||||
if (!msg.channel.permissionsFor(client.user).has('SEND_MESSAGES')) return;
|
||||
if (msg.channel.permissionsFor(client.user).has('MANAGE_MESSAGES')) msg.delete();
|
||||
else msg.channel.send('Message could not be deleted, missing the `Manage Messages` permission.');
|
||||
return msg.reply('Invites are prohibited from being posted here.');
|
||||
} else
|
||||
if (msg.isMentioned(client.user)) {
|
||||
if (msg.author.bot) return;
|
||||
if (msg.channel.type !== 'dm') {
|
||||
|
||||
+1
-1
@@ -1,6 +1,6 @@
|
||||
{
|
||||
"name": "xiaobot",
|
||||
"version": "19.8.3",
|
||||
"version": "19.9.0",
|
||||
"description": "A Discord Bot",
|
||||
"main": "shardingmanager.js",
|
||||
"scripts": {
|
||||
|
||||
Reference in New Issue
Block a user