Move Settings to their own group

This commit is contained in:
Daniel Odendahl Jr
2017-05-19 13:43:56 +00:00
parent dcf95ec01a
commit 5440580027
8 changed files with 8 additions and 7 deletions
+34
View File
@@ -0,0 +1,34 @@
const { Command } = require('discord.js-commando');
module.exports = class ClearSettingCommand extends Command {
constructor(client) {
super(client, {
name: 'clear-setting',
group: 'settings',
memberName: 'clear-setting',
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? `guard`, `modLog`, `memberLog`, `joinMsg`, `leaveMsg`, `staffRole`, or `singleRole`?',
type: 'string',
validate: setting => {
if (['guard', 'modLog', 'memberLog', 'joinMsg', 'leaveMsg', 'staffRole', 'singleRole'].includes(setting)) return true;
return 'Please enter either `guard`, `modLog`, `memberLog`, `joinMsg`, `leaveMsg`, `staffRole`, or `singleRole`.';
}
}
]
});
}
hasPermission(msg) {
return msg.member.hasPermission('ADMINISTRATOR');
}
run(msg, args) {
const { setting } = args;
msg.guild.settings.remove(setting);
return msg.say(`${setting} has been removed from your server settings.`);
}
};
+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: 'settings',
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.');
}
};
+30
View File
@@ -0,0 +1,30 @@
const { Command } = require('discord.js-commando');
module.exports = class MemberLogCommand extends Command {
constructor(client) {
super(client, {
name: 'member-channel',
group: 'settings',
memberName: 'member-channel',
description: 'Sets the channel for the member logs to be sent.',
guildOnly: true,
args: [
{
key: 'channel',
prompt: 'What is the channel you want to send logs to?',
type: 'channel'
}
]
});
}
hasPermission(msg) {
return msg.member.hasPermission('ADMINISTRATOR');
}
run(msg, args) {
const { channel } = args;
msg.guild.settings.set('memberLog', channel.id);
return msg.say(`Member Log channel set to ${channel.name}.`);
}
};
+50
View File
@@ -0,0 +1,50 @@
const { Command } = require('discord.js-commando');
module.exports = class MemberMsgCommand extends Command {
constructor(client) {
super(client, {
name: 'member-message',
aliases: ['member-msg'],
group: 'settings',
memberName: 'member-message',
description: 'Sets the message for either join/leave logs to use.',
details: '**Placeholders:** <user>: Username, <server>: Server Name, <mention>: A Mention of the User',
guildOnly: true,
args: [
{
key: 'type',
prompt: 'Which message would you like to change? Please enter either `joinMsg` or `leaveMsg`.',
type: 'string',
validate: type => {
if (['joinMsg', 'leaveMsg'].includes(type)) return true;
return 'Please enter either `joinMsg` or `leaveMsg`.';
}
},
{
key: 'message',
prompt: 'What should be sent to the channel? Use <user>, <server>, and <mention> as placeholders.',
type: 'string',
validate: message => {
if (message.length < 150) return true;
return 'Invalid Message. Message must be under 150 characters.';
}
}
]
});
}
hasPermission(msg) {
return msg.member.hasPermission('ADMINISTRATOR');
}
run(msg, args) {
const { type, message } = args;
if (type === 'joinMsg') {
msg.guild.settings.set('joinMsg', message);
return msg.say(`Join Message set to "${message}".`);
} else if (type === 'leaveMsg') {
msg.guild.settings.set('leaveMsg', message);
return msg.say(`Leave Message set to "${message}".`);
}
}
};
+30
View File
@@ -0,0 +1,30 @@
const { Command } = require('discord.js-commando');
module.exports = class ModChannelCommand extends Command {
constructor(client) {
super(client, {
name: 'mod-channel',
group: 'settings',
memberName: 'mod-channel',
description: 'Sets the channel for the mod logs to be sent.',
guildOnly: true,
args: [
{
key: 'channel',
prompt: 'What is the channel you want to send logs to?',
type: 'channel'
}
]
});
}
hasPermission(msg) {
return msg.member.hasPermission('ADMINISTRATOR');
}
run(msg, args) {
const { channel } = args;
msg.guild.settings.set('modLog', channel.id);
return msg.say(`Mod Log channel set to ${channel.name}.`);
}
};
+30
View File
@@ -0,0 +1,30 @@
const { Command } = require('discord.js-commando');
module.exports = class SingleRoleCommand extends Command {
constructor(client) {
super(client, {
name: 'single-role',
group: 'settings',
memberName: 'single-role',
description: 'Sets a single role that is able to use commands.',
guildOnly: true,
args: [
{
key: 'role',
prompt: 'What role should be able to use commands?',
type: 'role'
}
]
});
}
hasPermission(msg) {
return msg.member.hasPermission('ADMINISTRATOR');
}
run(msg, args) {
const { role } = args;
msg.guild.settings.set('singleRole', role.id);
return msg.say(`Single role mode has been enabled with the role ${role.name}.`);
}
};
+30
View File
@@ -0,0 +1,30 @@
const { Command } = require('discord.js-commando');
module.exports = class StaffRoleCommand extends Command {
constructor(client) {
super(client, {
name: 'staff-role',
group: 'settings',
memberName: 'staff-role',
description: 'Sets the role that can use Mod Commands without perms.',
guildOnly: true,
args: [
{
key: 'role',
prompt: 'What role should be staff?',
type: 'role'
}
]
});
}
hasPermission(msg) {
return msg.member.hasPermission('ADMINISTRATOR');
}
run(msg, args) {
const { role } = args;
msg.guild.settings.set('staffRole', role.id);
return msg.say(`Server Staff role set to ${role.name}.`);
}
};