Skip to content

Commit

Permalink
added starboard channel to settings, added setstarboardchannel command
Browse files Browse the repository at this point in the history
  • Loading branch information
sabattle committed Sep 3, 2020
1 parent 4051aea commit 70e14ea
Show file tree
Hide file tree
Showing 3 changed files with 105 additions and 43 deletions.
51 changes: 51 additions & 0 deletions src/commands/admin/setstarboardchannel.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,51 @@
const Command = require('../Command.js');
const { MessageEmbed } = require('discord.js');
const { success } = require('../../utils/emojis.json');
const { oneLine, stripIndent } = require('common-tags');

module.exports = class SetStarboardChannelCommand extends Command {
constructor(client) {
super(client, {
name: 'setstarboardchannel',
aliases: ['setstc', 'sstc'],
usage: 'setstarboardchannel <channel mention/ID>',
description: oneLine`
Sets the starboard text channel for your server.
Provide no channel to clear the current \`starboard channel\`.
`,
type: client.types.ADMIN,
userPermissions: ['MANAGE_GUILD'],
examples: ['setstarboardchannel #starboard']
});
}
run(message, args) {
const starboardChannelId = message.client.db.settings.selectStarboardChannelId.pluck().get(message.guild.id);
const oldStarboardChannel = message.guild.channels.cache.get(starboardChannelId) || '`None`';
const embed = new MessageEmbed()
.setTitle('Settings: `Starboard`')
.setThumbnail(message.guild.iconURL({ dynamic: true }))
.setDescription(`The \`starboard channel\` was successfully updated. ${success}`)
.setFooter(message.member.displayName, message.author.displayAvatarURL({ dynamic: true }))
.setTimestamp()
.setColor(message.guild.me.displayHexColor);

// Clear if no args provided
if (args.length === 0) {
message.client.db.settings.updateStarboardChannelId.run(null, message.guild.id);
return message.channel.send(embed.addField('Starboard Channel', `${oldStarboardChannel} ➔ \`None\``));
}

const starboardChannel = this.getChannelFromMention(message, args[0]) || message.guild.channels.cache.get(args[0]);
if (
!starboardChannel ||
(starboardChannel.type != 'text' && starboardChannel.type != 'news') ||
!starboardChannel.viewable
) {
return this.sendErrorMessage(message, 0, stripIndent`
Please mention an accessible text or announcement channel or provide a valid text or announcement channel ID
`);
}
message.client.db.settings.updateStarboardChannelId.run(starboardChannel.id, message.guild.id);
message.channel.send(embed.addField('Starboard Channel', `${oldStarboardChannel}${starboardChannel}`));
}
};
12 changes: 11 additions & 1 deletion src/commands/admin/settings.js
Original file line number Diff line number Diff line change
Expand Up @@ -25,6 +25,7 @@ module.exports = class SettingsCommand extends Command {
const row = message.client.db.settings.selectRow.get(message.guild.id);
const prefix = `\`${row.prefix}\``;
const systemChannel = message.guild.channels.cache.get(row.system_channel_id) || '`None`';
const starboardChannel = message.guild.channels.cache.get(row.starboard_channel_id) || '`None`';
const modLog = message.guild.channels.cache.get(row.mod_log_id) || '`None`';
const memberLog = message.guild.channels.cache.get(row.member_log_id) || '`None`';
const nicknameLog = message.guild.channels.cache.get(row.nickname_log_id) || '`None`';
Expand Down Expand Up @@ -89,12 +90,14 @@ module.exports = class SettingsCommand extends Command {
.setTimestamp()
.setColor(message.guild.me.displayHexColor);
switch (setting) {
case 's':
case 'sys':
case 'system':
return message.channel.send(embed
.setTitle('Settings: `System`')
.addField('Prefix', prefix, true)
.addField('System Channel', systemChannel, true)
.addField('Starboard Channel', starboardChannel, true)
.addField('Admin Role', adminRole, true)
.addField('Mod Role', modRole, true)
.addField('Mute Role', muteRole, true)
Expand All @@ -104,6 +107,7 @@ module.exports = class SettingsCommand extends Command {
.addField('Mod Channels', modChannels)
.addField('Disabled Commands', disabledCommands)
);
case 'l':
case 'log':
case 'logs':
case 'logging':
Expand All @@ -116,6 +120,8 @@ module.exports = class SettingsCommand extends Command {
.addField('Message Edit Log', messageEditLog, true)
.addField('Message Delete Log', messageDeleteLog, true)
);
case 'v':
case 'ver':
case 'verif':
case 'verification':
embed
Expand All @@ -125,6 +131,7 @@ module.exports = class SettingsCommand extends Command {
.addField('Status', verificationStatus, true)
.addField('Message', verificationMessage);
return message.channel.send(embed);
case 'w':
case 'welcome':
case 'welcomes':
embed
Expand All @@ -133,6 +140,7 @@ module.exports = class SettingsCommand extends Command {
.addField('Status', welcomeStatus, true)
.addField('Message', welcomeMessage);
return message.channel.send(embed);
case 'f':
case 'farewell':
case 'farewells':
embed
Expand All @@ -141,6 +149,7 @@ module.exports = class SettingsCommand extends Command {
.addField('Status', farewellStatus, true)
.addField('Message', farewellMessage);
return message.channel.send(embed);
case 'p':
case 'point':
case 'points':
return message.channel.send(embed
Expand All @@ -150,6 +159,7 @@ module.exports = class SettingsCommand extends Command {
.addField('Voice Points', voicePoints, true)
.addField('Status', pointsStatus)
);
case 'c':
case 'crown':
embed
.setTitle('Settings: `Crown`')
Expand All @@ -172,7 +182,7 @@ module.exports = class SettingsCommand extends Command {
embed
.setTitle('Settings')
.setDescription(`**More Information:** \`${row.prefix}settings [category]\``)
.addField('System', '`10` settings', true)
.addField('System', '`11` settings', true)
.addField('Logging', '`6` settings', true)
.addField('Verification', '`3` settings', true)
.addField('Welcomes', '`2` settings', true)
Expand Down
85 changes: 43 additions & 42 deletions src/utils/db.js
Original file line number Diff line number Diff line change
Expand Up @@ -20,34 +20,35 @@ db.prepare(`
guild_name TEXT,
prefix TEXT DEFAULT "c!" NOT NULL,
system_channel_id TEXT,
starboard_channel_id TEXT,
admin_role_id TEXT,
mod_role_id TEXT,
mute_role_id TEXT,
auto_role_id TEXT,
auto_kick INTEGER,
random_color INTEGER DEFAULT 0 NOT NULL,
mod_channel_ids TEXT,
disabled_commands TEXT,
mod_log_id TEXT,
member_log_id TEXT,
nickname_log_id TEXT,
role_log_id TEXT,
message_edit_log_id TEXT,
message_delete_log_id TEXT,
verification_role_id TEXT,
verification_channel_id TEXT,
mod_channel_ids TEXT,
disabled_commands TEXT,
verification_message TEXT,
verification_message_id TEXT,
welcome_channel_id TEXT,
welcome_message TEXT DEFAULT "?member (**?tag**) has joined the server!",
farewell_channel_id TEXT,
crown_channel_id TEXT,
admin_role_id TEXT,
mod_role_id TEXT,
mute_role_id TEXT,
auto_role_id TEXT,
verification_role_id TEXT,
crown_role_id TEXT,
random_color INTEGER DEFAULT 0 NOT NULL,
auto_kick INTEGER,
farewell_message TEXT DEFAULT "?member (**?tag**) has left the server.",
point_tracking INTEGER DEFAULT 1 NOT NULL,
message_points INTEGER DEFAULT 1 NOT NULL,
command_points INTEGER DEFAULT 1 NOT NULL,
voice_points INTEGER DEFAULT 1 NOT NULL,
verification_message TEXT,
verification_message_id TEXT,
welcome_message TEXT DEFAULT "?member (**?tag**) has joined the server!",
farewell_message TEXT DEFAULT "?member (**?tag**) has left the server.",
crown_channel_id TEXT,
crown_role_id TEXT,
crown_message TEXT DEFAULT "?member has won ?role this week! Points have been reset, better luck next time!",
crown_schedule TEXT DEFAULT "0 21 * * 5"
);
Expand Down Expand Up @@ -98,6 +99,15 @@ const settings = {
selectGuilds: db.prepare('SELECT guild_name, guild_id FROM settings'),
selectPrefix: db.prepare('SELECT prefix FROM settings WHERE guild_id = ?;'),
selectSystemChannelId: db.prepare('SELECT system_channel_id FROM settings WHERE guild_id = ?;'),
selectStarboardChannelId: db.prepare('SELECT starboard_channel_id FROM settings WHERE guild_id = ?;'),
selectAdminRoleId: db.prepare('SELECT admin_role_id FROM settings WHERE guild_id = ?;'),
selectModRoleId: db.prepare('SELECT mod_role_id FROM settings WHERE guild_id = ?;'),
selectMuteRoleId: db.prepare('SELECT mute_role_id FROM settings WHERE guild_id = ?;'),
selectAutoRoleId: db.prepare('SELECT auto_role_id FROM settings WHERE guild_id = ?;'),
selectAutoKick: db.prepare('SELECT auto_kick FROM settings WHERE guild_id = ?;'),
selectRandomColor: db.prepare('SELECT random_color FROM settings WHERE guild_id = ?;'),
selectModChannelIds: db.prepare('SELECT mod_channel_ids FROM settings WHERE guild_id = ?;'),
selectDisabledCommands: db.prepare('SELECT disabled_commands FROM settings WHERE guild_id = ?;'),
selectModLogId: db.prepare('SELECT mod_log_id FROM settings WHERE guild_id = ?;'),
selectMemberLogId: db.prepare('SELECT member_log_id FROM settings WHERE guild_id = ?;'),
selectNicknameLogId: db.prepare('SELECT nickname_log_id FROM settings WHERE guild_id = ?;'),
Expand All @@ -109,23 +119,15 @@ const settings = {
FROM settings
WHERE guild_id = ?;
`),
selectModChannelIds: db.prepare('SELECT mod_channel_ids FROM settings WHERE guild_id = ?;'),
selectDisabledCommands: db.prepare('SELECT disabled_commands FROM settings WHERE guild_id = ?;'),
selectWelcomes: db.prepare('SELECT welcome_channel_id, welcome_message FROM settings WHERE guild_id = ?;'),
selectFarewells: db.prepare('SELECT farewell_channel_id, farewell_message FROM settings WHERE guild_id = ?;'),
selectAdminRoleId: db.prepare('SELECT admin_role_id FROM settings WHERE guild_id = ?;'),
selectModRoleId: db.prepare('SELECT mod_role_id FROM settings WHERE guild_id = ?;'),
selectMuteRoleId: db.prepare('SELECT mute_role_id FROM settings WHERE guild_id = ?;'),
selectAutoRoleId: db.prepare('SELECT auto_role_id FROM settings WHERE guild_id = ?;'),
selectRandomColor: db.prepare('SELECT random_color FROM settings WHERE guild_id = ?;'),
selectAutoKick: db.prepare('SELECT auto_kick FROM settings WHERE guild_id = ?;'),
selectPoints: db.prepare(`
SELECT point_tracking, message_points, command_points, voice_points
FROM settings
WHERE guild_id = ?;
`),
selectCrown: db.prepare(`
SELECT crown_channel_id, crown_role_id, crown_message, crown_schedule
SELECT crown_role_id, crown_channel_id, crown_message, crown_schedule
FROM settings
WHERE guild_id = ?;
`),
Expand All @@ -134,36 +136,35 @@ const settings = {
updatePrefix: db.prepare('UPDATE settings SET prefix = ? WHERE guild_id = ?;'),
updateGuildName: db.prepare('UPDATE settings SET guild_name = ? WHERE guild_id = ?;'),
updateSystemChannelId: db.prepare('UPDATE settings SET system_channel_id = ? WHERE guild_id = ?;'),
updateStarboardChannelId: db.prepare('UPDATE settings SET starboard_channel_id = ? WHERE guild_id = ?;'),
updateAdminRoleId: db.prepare('UPDATE settings SET admin_role_id = ? WHERE guild_id = ?;'),
updateModRoleId: db.prepare('UPDATE settings SET mod_role_id = ? WHERE guild_id = ?;'),
updateMuteRoleId: db.prepare('UPDATE settings SET mute_role_id = ? WHERE guild_id = ?;'),
updateAutoRoleId: db.prepare('UPDATE settings SET auto_role_id = ? WHERE guild_id = ?;'),
updateAutoKick: db.prepare('UPDATE settings SET auto_kick = ? WHERE guild_id = ?;'),
updateRandomColor: db.prepare('UPDATE settings SET random_color = ? WHERE guild_id = ?;'),
updateModChannelIds: db.prepare('UPDATE settings SET mod_channel_ids = ? WHERE guild_id = ?;'),
updateDisabledCommands: db.prepare('UPDATE settings SET disabled_commands = ? WHERE guild_id = ?;'),
updateModLogId: db.prepare('UPDATE settings SET mod_log_id = ? WHERE guild_id = ?;'),
updateMemberLogId: db.prepare('UPDATE settings SET member_log_id = ? WHERE guild_id = ?;'),
updateNicknameLogId: db.prepare('UPDATE settings SET nickname_log_id = ? WHERE guild_id = ?;'),
updateRoleLogId: db.prepare('UPDATE settings SET role_log_id = ? WHERE guild_id = ?;'),
updateMessageEditLogId: db.prepare('UPDATE settings SET message_edit_log_id = ? WHERE guild_id = ?;'),
updateMessageDeleteLogId: db.prepare(`
UPDATE settings SET message_delete_log_id = ? WHERE guild_id = ?;
`),
updateMessageDeleteLogId: db.prepare('UPDATE settings SET message_delete_log_id = ? WHERE guild_id = ?;'),
updateVerificationRoleId: db.prepare('UPDATE settings SET verification_role_id = ? WHERE guild_id = ?;'),
updateVerificationChannelId: db.prepare('UPDATE settings SET verification_channel_id = ? WHERE guild_id = ?;'),
updateModChannelIds: db.prepare('UPDATE settings SET mod_channel_ids = ? WHERE guild_id = ?;'),
updateDisabledCommands: db.prepare('UPDATE settings SET disabled_commands = ? WHERE guild_id = ?;'),
updateVerificationMessage: db.prepare('UPDATE settings SET verification_message = ? WHERE guild_id = ?;'),
updateVerificationMessageId: db.prepare('UPDATE settings SET verification_message_id = ? WHERE guild_id = ?;'),
updateWelcomeChannelId: db.prepare('UPDATE settings SET welcome_channel_id = ? WHERE guild_id = ?;'),
updateWelcomeMessage: db.prepare('UPDATE settings SET welcome_message = ? WHERE guild_id = ?;'),
updateFarewellChannelId: db.prepare('UPDATE settings SET farewell_channel_id = ? WHERE guild_id = ?;'),
updateCrownChannelId: db.prepare('UPDATE settings SET crown_channel_id = ? WHERE guild_id = ?;'),
updateAdminRoleId: db.prepare('UPDATE settings SET admin_role_id = ? WHERE guild_id = ?;'),
updateModRoleId: db.prepare('UPDATE settings SET mod_role_id = ? WHERE guild_id = ?;'),
updateMuteRoleId: db.prepare('UPDATE settings SET mute_role_id = ? WHERE guild_id = ?;'),
updateAutoRoleId: db.prepare('UPDATE settings SET auto_role_id = ? WHERE guild_id = ?;'),
updateVerificationRoleId: db.prepare('UPDATE settings SET verification_role_id = ? WHERE guild_id = ?;'),
updateCrownRoleId: db.prepare('UPDATE settings SET crown_role_id = ? WHERE guild_id = ?;'),
updateRandomColor: db.prepare('UPDATE settings SET random_color = ? WHERE guild_id = ?;'),
updateAutoKick: db.prepare('UPDATE settings SET auto_kick = ? WHERE guild_id = ?;'),
updateFarewellMessage: db.prepare('UPDATE settings SET farewell_message = ? WHERE guild_id = ?;'),
updatePointTracking: db.prepare('UPDATE settings SET point_tracking = ? WHERE guild_id = ?;'),
updateMessagePoints: db.prepare('UPDATE settings SET message_points = ? WHERE guild_id = ?;'),
updateCommandPoints: db.prepare('UPDATE settings SET command_points = ? WHERE guild_id = ?;'),
updateVoicePoints: db.prepare('UPDATE settings SET voice_points = ? WHERE guild_id = ?;'),
updateVerificationMessage: db.prepare('UPDATE settings SET verification_message = ? WHERE guild_id = ?;'),
updateVerificationMessageId: db.prepare('UPDATE settings SET verification_message_id = ? WHERE guild_id = ?;'),
updateWelcomeMessage: db.prepare('UPDATE settings SET welcome_message = ? WHERE guild_id = ?;'),
updateFarewellMessage: db.prepare('UPDATE settings SET farewell_message = ? WHERE guild_id = ?;'),
updateCrownRoleId: db.prepare('UPDATE settings SET crown_role_id = ? WHERE guild_id = ?;'),
updateCrownChannelId: db.prepare('UPDATE settings SET crown_channel_id = ? WHERE guild_id = ?;'),
updateCrownMessage: db.prepare('UPDATE settings SET crown_message = ? WHERE guild_id = ?;'),
updateCrownSchedule: db.prepare('UPDATE settings SET crown_schedule = ? WHERE guild_id = ?;'),
deleteGuild: db.prepare('DELETE FROM settings WHERE guild_id = ?;')
Expand Down

0 comments on commit 70e14ea

Please sign in to comment.