This commit is contained in:
Daniel Odendahl Jr
2017-05-19 13:41:15 +00:00
parent 6888d05c0b
commit dcf95ec01a
4 changed files with 36 additions and 5 deletions
+4 -4
View File
@@ -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`.';
}
}
]
+23
View File
@@ -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.');
}
};
+8
View File
@@ -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
View File
@@ -1,6 +1,6 @@
{
"name": "xiaobot",
"version": "19.8.3",
"version": "19.9.0",
"description": "A Discord Bot",
"main": "shardingmanager.js",
"scripts": {