1
0
mirror of https://github.com/toast-ts/Daggerbot-TS.git synced 2024-09-29 12:30:58 -04:00
This commit is contained in:
toast-ts 2023-04-24 20:10:11 +10:00
parent 1f81194111
commit 828024894e
17 changed files with 65 additions and 60 deletions

View File

@ -7,14 +7,14 @@ export default {
data: new SlashCommandBuilder() data: new SlashCommandBuilder()
.setName('ban') .setName('ban')
.setDescription('Ban a member from the server') .setDescription('Ban a member from the server')
.addUserOption((opt)=>opt .addUserOption(opt=>opt
.setName('member') .setName('member')
.setDescription('Which member to ban?') .setDescription('Which member to ban?')
.setRequired(true)) .setRequired(true))
.addStringOption((opt)=>opt .addStringOption(opt=>opt
.setName('time') .setName('time')
.setDescription('How long the ban will be?')) .setDescription('How long the ban will be?'))
.addStringOption((opt)=>opt .addStringOption(opt=>opt
.setName('reason') .setName('reason')
.setDescription('Reason for the ban')) .setDescription('Reason for the ban'))
} }

View File

@ -28,20 +28,20 @@ export default {
data: new SlashCommandBuilder() data: new SlashCommandBuilder()
.setName('bannedwords') .setName('bannedwords')
.setDescription('description placeholder') .setDescription('description placeholder')
.addSubcommand((opt)=>opt .addSubcommand(opt=>opt
.setName('view') .setName('view')
.setDescription('View the list of currently banned words')) .setDescription('View the list of currently banned words'))
.addSubcommand((opt)=>opt .addSubcommand(opt=>opt
.setName('add') .setName('add')
.setDescription('Add the word to the list') .setDescription('Add the word to the list')
.addStringOption((optt)=>optt .addStringOption(optt=>optt
.setName('word') .setName('word')
.setDescription('Add the specific word to automod\'s bannedWords database') .setDescription('Add the specific word to automod\'s bannedWords database')
.setRequired(true))) .setRequired(true)))
.addSubcommand((opt)=>opt .addSubcommand(opt=>opt
.setName('remove') .setName('remove')
.setDescription('Remove the word from the list') .setDescription('Remove the word from the list')
.addStringOption((optt)=>optt .addStringOption(optt=>optt
.setName('word') .setName('word')
.setDescription('Remove the specific word from automod\'s bannedWords list') .setDescription('Remove the specific word from automod\'s bannedWords list')
.setRequired(true))) .setRequired(true)))

View File

@ -18,11 +18,11 @@ export default {
data: new SlashCommandBuilder() data: new SlashCommandBuilder()
.setName('bonk') .setName('bonk')
.setDescription('Bonk a member') .setDescription('Bonk a member')
.addUserOption((opt)=>opt .addUserOption(opt=>opt
.setName('member') .setName('member')
.setDescription('Which member to bonk?') .setDescription('Which member to bonk?')
.setRequired(true)) .setRequired(true))
.addStringOption((opt)=>opt .addStringOption(opt=>opt
.setName('reason') .setName('reason')
.setDescription('Reason for the bonk')) .setDescription('Reason for the bonk'))
} }

View File

@ -49,31 +49,31 @@ export default {
data: new SlashCommandBuilder() data: new SlashCommandBuilder()
.setName('case') .setName('case')
.setDescription('Retrieve case information or user\'s punishment history') .setDescription('Retrieve case information or user\'s punishment history')
.addSubcommand((opt)=>opt .addSubcommand(opt=>opt
.setName('view') .setName('view')
.setDescription('View a multiple or single case') .setDescription('View a multiple or single case')
.addIntegerOption((optt)=>optt .addIntegerOption((optt)=>optt
.setName('id') .setName('id')
.setDescription('Case ID') .setDescription('Case ID')
.setRequired(true))) .setRequired(true)))
.addSubcommand((opt)=>opt .addSubcommand(opt=>opt
.setName('member') .setName('member')
.setDescription('View member\'s punishment history') .setDescription('View member\'s punishment history')
.addUserOption((optt)=>optt .addUserOption(optt=>optt
.setName('user') .setName('user')
.setDescription('Which user do you want to view their punishment history?') .setDescription('Which user do you want to view their punishment history?')
.setRequired(true)) .setRequired(true))
.addIntegerOption((optt)=>optt .addIntegerOption(optt=>optt
.setName('page') .setName('page')
.setDescription('Select the page number'))) .setDescription('Select the page number')))
.addSubcommand((opt)=>opt .addSubcommand(opt=>opt
.setName('update') .setName('update')
.setDescription('Update the case with new reason') .setDescription('Update the case with new reason')
.addIntegerOption((optt)=>optt .addIntegerOption(optt=>optt
.setName('id') .setName('id')
.setDescription('Case ID to be updated') .setDescription('Case ID to be updated')
.setRequired(true)) .setRequired(true))
.addStringOption((optt)=>optt .addStringOption(optt=>optt
.setName('reason') .setName('reason')
.setDescription('New reason for the case') .setDescription('New reason for the case')
.setRequired(true))) .setRequired(true)))

View File

@ -126,33 +126,33 @@ export default {
data: new SlashCommandBuilder() data: new SlashCommandBuilder()
.setName('dev') .setName('dev')
.setDescription('Developer commands') .setDescription('Developer commands')
.addSubcommand((optt)=>optt .addSubcommand(optt=>optt
.setName('eval') .setName('eval')
.setDescription('Execute the code to the bot') .setDescription('Execute the code to the bot')
.addStringOption((opt)=>opt .addStringOption((opt)=>opt
.setName('code') .setName('code')
.setDescription('Execute your code') .setDescription('Execute your code')
.setRequired(true))) .setRequired(true)))
.addSubcommand((optt)=>optt .addSubcommand(optt=>optt
.setName('logs') .setName('logs')
.setDescription('Retrieve the logs from host and sends it to dev server')) .setDescription('Retrieve the logs from host and sends it to dev server'))
.addSubcommand((optt)=>optt .addSubcommand(optt=>optt
.setName('restart') .setName('restart')
.setDescription('Restart the bot for technical reasons')) .setDescription('Restart the bot for technical reasons'))
.addSubcommand((optt)=>optt .addSubcommand(optt=>optt
.setName('update') .setName('update')
.setDescription('Pull from repository and restart')) .setDescription('Pull from repository and restart'))
.addSubcommand((optt)=>optt .addSubcommand(optt=>optt
.setName('statsgraph') .setName('statsgraph')
.setDescription('Edit the number of data points to pull') .setDescription('Edit the number of data points to pull')
.addIntegerOption((hiTae)=>hiTae .addIntegerOption(hiTae=>hiTae
.setName('number') .setName('number')
.setDescription('Number of data points to pull') .setDescription('Number of data points to pull')
.setRequired(true))) .setRequired(true)))
.addSubcommand((optt)=>optt .addSubcommand(optt=>optt
.setName('presence') .setName('presence')
.setDescription('Update the bot\'s presence') .setDescription('Update the bot\'s presence')
.addIntegerOption((hiTae)=>hiTae .addIntegerOption(hiTae=>hiTae
.setName('type') .setName('type')
.setDescription('Set an activity type') .setDescription('Set an activity type')
.addChoices( .addChoices(
@ -162,13 +162,13 @@ export default {
{name: 'Watching', value: Discord.ActivityType.Watching}, {name: 'Watching', value: Discord.ActivityType.Watching},
{name: 'Competing in', value: Discord.ActivityType.Competing} {name: 'Competing in', value: Discord.ActivityType.Competing}
)) ))
.addStringOption((hiAgain)=>hiAgain .addStringOption(hiAgain=>hiAgain
.setName('name') .setName('name')
.setDescription('Set a message for the activity status')) .setDescription('Set a message for the activity status'))
.addStringOption((hiAgainx2)=>hiAgainx2 .addStringOption(hiAgainx2=>hiAgainx2
.setName('url') .setName('url')
.setDescription('Set an url for streaming status')) .setDescription('Set an url for streaming status'))
.addStringOption((hiAgainx3)=>hiAgainx3 .addStringOption(hiAgainx3=>hiAgainx3
.setName('status') .setName('status')
.setDescription('Set a status indicator for the bot') .setDescription('Set a status indicator for the bot')
.setChoices( .setChoices(

View File

@ -15,7 +15,7 @@ export default {
data: new SlashCommandBuilder() data: new SlashCommandBuilder()
.setName('faq') .setName('faq')
.setDescription('List of questions, e.g; log file for FS, YT Scams and etc.') .setDescription('List of questions, e.g; log file for FS, YT Scams and etc.')
.addStringOption((opt)=>opt .addStringOption(opt=>opt
.setName('question') .setName('question')
.setDescription('What question do you want answered?') .setDescription('What question do you want answered?')
.setRequired(true) .setRequired(true)

View File

@ -7,11 +7,11 @@ export default {
data: new SlashCommandBuilder() data: new SlashCommandBuilder()
.setName('kick') .setName('kick')
.setDescription('Boot a member from the server') .setDescription('Boot a member from the server')
.addUserOption((opt)=>opt .addUserOption(opt=>opt
.setName('member') .setName('member')
.setDescription('Which member to kick?') .setDescription('Which member to kick?')
.setRequired(true)) .setRequired(true))
.addStringOption((opt)=>opt .addStringOption(opt=>opt
.setName('reason') .setName('reason')
.setDescription('Reason for the kick')) .setDescription('Reason for the kick'))
} }

View File

@ -267,22 +267,22 @@ export default {
data: new SlashCommandBuilder() data: new SlashCommandBuilder()
.setName('mp') .setName('mp')
.setDescription('Display MP status and other things') .setDescription('Display MP status and other things')
.addSubcommand((opt)=>opt .addSubcommand(opt=>opt
.setName('status') .setName('status')
.setDescription('Check server status and details')) .setDescription('Check server status and details'))
.addSubcommand((opt)=>opt .addSubcommand(opt=>opt
.setName('players') .setName('players')
.setDescription('Check who\'s playing on the server')) .setDescription('Check who\'s playing on the server'))
.addSubcommand((opt)=>opt .addSubcommand(opt=>opt
.setName('info') .setName('info')
.setDescription('Provides you with server information such as filters and so on')) .setDescription('Provides you with server information such as filters and so on'))
.addSubcommand((opt)=>opt .addSubcommand(opt=>opt
.setName('url') .setName('url')
.setDescription('View the URL for this server\'s FSMP server or update the URL') .setDescription('View the URL for this server\'s FSMP server or update the URL')
.addStringOption((opt)=>opt .addStringOption(opt=>opt
.setName('address') .setName('address')
.setDescription('Insert a \'dedicated-server-stats\' URL')))/* .setDescription('Insert a \'dedicated-server-stats\' URL')))/*
.addSubcommand((opt)=>opt .addSubcommand(opt=>opt
.setName('series') .setName('series')
.setDescription('Step-by-step on joining Daggerwin\'s MP series'))*/ .setDescription('Step-by-step on joining Daggerwin\'s MP series'))*/
} }

View File

@ -7,14 +7,14 @@ export default {
data: new SlashCommandBuilder() data: new SlashCommandBuilder()
.setName('mute') .setName('mute')
.setDescription('Mute a member') .setDescription('Mute a member')
.addUserOption((opt)=>opt .addUserOption(opt=>opt
.setName('member') .setName('member')
.setDescription('Which member to mute?') .setDescription('Which member to mute?')
.setRequired(true)) .setRequired(true))
.addStringOption((opt)=>opt .addStringOption(opt=>opt
.setName('time') .setName('time')
.setDescription('Mute duration')) .setDescription('Mute duration'))
.addStringOption((opt)=>opt .addStringOption(opt=>opt
.setName('reason') .setName('reason')
.setDescription('Reason for the mute')) .setDescription('Reason for the mute'))
} }

View File

@ -25,11 +25,11 @@ export default {
data: new SlashCommandBuilder() data: new SlashCommandBuilder()
.setName('purge') .setName('purge')
.setDescription('Purge the amount of messages in this channel') .setDescription('Purge the amount of messages in this channel')
.addIntegerOption((opt)=>opt .addIntegerOption(opt=>opt
.setName('amount') .setName('amount')
.setDescription('Amount of messages to be obliterated') .setDescription('Amount of messages to be obliterated')
.setRequired(true)) .setRequired(true))
.addUserOption((opt)=>opt .addUserOption(opt=>opt
.setName('user') .setName('user')
.setDescription('Which user to have their messages obliterated?')) .setDescription('Which user to have their messages obliterated?'))
} }

View File

@ -162,13 +162,13 @@ export default {
data: new SlashCommandBuilder() data: new SlashCommandBuilder()
.setName('rank') .setName('rank')
.setDescription('Level system') .setDescription('Level system')
.addSubcommand((optt)=>optt .addSubcommand(optt=>optt
.setName('view') .setName('view')
.setDescription('View your rank or someone else\'s rank') .setDescription('View your rank or someone else\'s rank')
.addUserOption((opt)=>opt .addUserOption(opt=>opt
.setName('member') .setName('member')
.setDescription('Which member do you want to view?'))) .setDescription('Which member do you want to view?')))
.addSubcommand((optt)=>optt .addSubcommand(optt=>optt
.setName('leaderboard') .setName('leaderboard')
.setDescription('View top 10 users on leaderboard')) .setDescription('View top 10 users on leaderboard'))
} }

View File

@ -16,7 +16,7 @@ export default {
data: new SlashCommandBuilder() data: new SlashCommandBuilder()
.setName('roleinfo') .setName('roleinfo')
.setDescription('View information about the selected role') .setDescription('View information about the selected role')
.addRoleOption((opt)=>opt .addRoleOption(opt=>opt
.setName('role') .setName('role')
.setDescription('Role name to view information') .setDescription('Role name to view information')
.setRequired(true)) .setRequired(true))

View File

@ -7,11 +7,11 @@ export default {
data: new SlashCommandBuilder() data: new SlashCommandBuilder()
.setName('softban') .setName('softban')
.setDescription('Softban a member from the server') .setDescription('Softban a member from the server')
.addUserOption((opt)=>opt .addUserOption(opt=>opt
.setName('member') .setName('member')
.setDescription('Which member to softban?') .setDescription('Which member to softban?')
.setRequired(true)) .setRequired(true))
.addStringOption((opt)=>opt .addStringOption(opt=>opt
.setName('reason') .setName('reason')
.setDescription('Reason for the softban')) .setDescription('Reason for the softban'))
} }

View File

@ -6,6 +6,7 @@ export default {
const suggestionIDReply = interaction.options.getString('id'); const suggestionIDReply = interaction.options.getString('id');
const suggestionID = (Math.random() + 1).toString(36).substring(5); const suggestionID = (Math.random() + 1).toString(36).substring(5);
const userid = (await client.suggestion._content.findById(suggestionIDReply))?.user._id; const userid = (await client.suggestion._content.findById(suggestionIDReply))?.user._id;
const theirIdea = (await client.suggestion._content.findById(suggestionIDReply))?.idea;
const timeFormatting = client.moment().format('DD/MM/YY h:mm A'); const timeFormatting = client.moment().format('DD/MM/YY h:mm A');
const stateChanged = 'Suggestion state has been successfully updated and DM is sent.'; const stateChanged = 'Suggestion state has been successfully updated and DM is sent.';
({ ({
@ -32,26 +33,30 @@ export default {
interaction.reply({content: `Suggestion sent, here is your suggestion ID to take note of it: \`${suggestionID}\``, ephemeral: true}) interaction.reply({content: `Suggestion sent, here is your suggestion ID to take note of it: \`${suggestionID}\``, ephemeral: true})
}, },
approve: async()=>{ approve: async()=>{
if (client.config.mainServer.id === interaction.guildId) {
if (!interaction.member.roles.cache.has(client.config.mainServer.roles.bottech)) return client.youNeedRole(interaction, 'bottech'); if (!interaction.member.roles.cache.has(client.config.mainServer.roles.bottech)) return client.youNeedRole(interaction, 'bottech');
}
if ((await client.suggestion._content.findById(suggestionIDReply)).state == 'Rejected') return interaction.reply({content: 'This suggestion\'s state is locked and cannot be modified.', ephemeral: true}); if ((await client.suggestion._content.findById(suggestionIDReply)).state == 'Rejected') return interaction.reply({content: 'This suggestion\'s state is locked and cannot be modified.', ephemeral: true});
(await client.users.fetch(userid)).send({embeds: [new client.embed() (await client.users.fetch(userid)).send({embeds: [new client.embed()
.setColor(client.config.embedColorGreen) .setColor(client.config.embedColorGreen)
.setAuthor({name: interaction.user.tag, iconURL: interaction.user.avatarURL({size: 256})}) .setAuthor({name: interaction.user.tag, iconURL: interaction.user.avatarURL({size: 256})})
.setTitle('Your suggestion has been approved.') .setTitle('Your suggestion has been approved.')
.setDescription(`> **Their message:**\n${replyInDM.length == null ? '*No message from them.*' : replyInDM}`) .setDescription(`> **Your suggestion:**\n${theirIdea}\n> **Their message:**\n${replyInDM.length == null ? '*No message from them.*' : replyInDM}`)
.setFooter({text: `Timestamp: ${timeFormatting} | Suggestion ID: ${suggestionIDReply}`}) .setFooter({text: `Timestamp: ${timeFormatting} | Suggestion ID: ${suggestionIDReply}`})
]}); ]});
await client.suggestion._content.findByIdAndUpdate(suggestionIDReply, {state: 'Approved'}); await client.suggestion._content.findByIdAndUpdate(suggestionIDReply, {state: 'Approved'});
return interaction.reply({embeds:[new client.embed().setColor(client.config.embedColorGreen).setTitle(`Suggestion approved | ${suggestionIDReply}`).setDescription(stateChanged)]}); return interaction.reply({embeds:[new client.embed().setColor(client.config.embedColorGreen).setTitle(`Suggestion approved | ${suggestionIDReply}`).setDescription(stateChanged)]});
}, },
reject: async()=>{ reject: async()=>{
if (client.config.mainServer.id === interaction.guildId) {
if (!interaction.member.roles.cache.has(client.config.mainServer.roles.bottech)) return client.youNeedRole(interaction, 'bottech'); if (!interaction.member.roles.cache.has(client.config.mainServer.roles.bottech)) return client.youNeedRole(interaction, 'bottech');
}
if ((await client.suggestion._content.findById(suggestionIDReply)).state == 'Approved') return interaction.reply({content: 'This suggestion\'s state is locked and cannot be modified.', ephemeral: true}); if ((await client.suggestion._content.findById(suggestionIDReply)).state == 'Approved') return interaction.reply({content: 'This suggestion\'s state is locked and cannot be modified.', ephemeral: true});
(await client.users.fetch(userid)).send({embeds: [new client.embed() (await client.users.fetch(userid)).send({embeds: [new client.embed()
.setColor(client.config.embedColorRed) .setColor(client.config.embedColorRed)
.setAuthor({name: interaction.user.tag, iconURL: interaction.user.avatarURL({size: 256})}) .setAuthor({name: interaction.user.tag, iconURL: interaction.user.avatarURL({size: 256})})
.setTitle('Your suggestion has been rejected.') .setTitle('Your suggestion has been rejected.')
.setDescription(`> **Their message:**\n${replyInDM?.length == null ? '*No message from them.*' : replyInDM}`) .setDescription(`> **Your suggestion:**\n${theirIdea}\n> **Their message:**\n${replyInDM.length == null ? '*No message from them.*' : replyInDM}`)
.setFooter({text: `Timestamp: ${timeFormatting} | Suggestion ID: ${suggestionIDReply}`}) .setFooter({text: `Timestamp: ${timeFormatting} | Suggestion ID: ${suggestionIDReply}`})
]}); ]});
await client.suggestion._content.findByIdAndUpdate(suggestionIDReply, {state: 'Rejected'}); await client.suggestion._content.findByIdAndUpdate(suggestionIDReply, {state: 'Rejected'});
@ -62,7 +67,7 @@ export default {
data: new SlashCommandBuilder() data: new SlashCommandBuilder()
.setName('suggest') .setName('suggest')
.setDescription('Want to suggest ideas/thoughts to bot techs? Suggest it here') .setDescription('Want to suggest ideas/thoughts to bot techs? Suggest it here')
.addSubcommand((opt)=>opt .addSubcommand(opt=>opt
.setName('your') .setName('your')
.setDescription('What do you want to suggest?') .setDescription('What do you want to suggest?')
.addStringOption(s=>s .addStringOption(s=>s
@ -73,7 +78,7 @@ export default {
.addAttachmentOption(i=>i .addAttachmentOption(i=>i
.setName('image') .setName('image')
.setDescription('If your idea seems complicated or prefer to show what your idea may look like then attach the image.'))) .setDescription('If your idea seems complicated or prefer to show what your idea may look like then attach the image.')))
.addSubcommand((opt)=>opt .addSubcommand(opt=>opt
.setName('approve') .setName('approve')
.setDescription('[Bot Tech] Approve the suggestion sent by the user') .setDescription('[Bot Tech] Approve the suggestion sent by the user')
.addStringOption(id=>id .addStringOption(id=>id
@ -84,7 +89,7 @@ export default {
.setName('message') .setName('message')
.setDescription('(Optional) Include a message with your approval') .setDescription('(Optional) Include a message with your approval')
.setMaxLength(256))) .setMaxLength(256)))
.addSubcommand((opt)=>opt .addSubcommand(opt=>opt
.setName('reject') .setName('reject')
.setDescription('[Bot Tech] Reject the suggestion sent by the user') .setDescription('[Bot Tech] Reject the suggestion sent by the user')
.addStringOption(id=>id .addStringOption(id=>id

View File

@ -12,11 +12,11 @@ export default {
data: new SlashCommandBuilder() data: new SlashCommandBuilder()
.setName('unpunish') .setName('unpunish')
.setDescription('Remove the active punishment from a member') .setDescription('Remove the active punishment from a member')
.addIntegerOption((opt)=>opt .addIntegerOption(opt=>opt
.setName('case_id') .setName('case_id')
.setDescription('Case ID of the punishment to be overwritten') .setDescription('Case ID of the punishment to be overwritten')
.setRequired(true)) .setRequired(true))
.addStringOption((opt)=>opt .addStringOption(opt=>opt
.setName('reason') .setName('reason')
.setDescription('Reason for removing the punishment')) .setDescription('Reason for removing the punishment'))
} }

View File

@ -7,11 +7,11 @@ export default {
data: new SlashCommandBuilder() data: new SlashCommandBuilder()
.setName('warn') .setName('warn')
.setDescription('Warn a member') .setDescription('Warn a member')
.addUserOption((opt)=>opt .addUserOption(opt=>opt
.setName('member') .setName('member')
.setDescription('Which member to warn?') .setDescription('Which member to warn?')
.setRequired(true)) .setRequired(true))
.addStringOption((opt)=>opt .addStringOption(opt=>opt
.setName('reason') .setName('reason')
.setDescription('Reason for the warning') .setDescription('Reason for the warning')
.setRequired(false)) .setRequired(false))

View File

@ -53,7 +53,7 @@ export default {
data: new SlashCommandBuilder() data: new SlashCommandBuilder()
.setName('whois') .setName('whois')
.setDescription('View your own or someone else\'s information') .setDescription('View your own or someone else\'s information')
.addUserOption((opt)=>opt .addUserOption(opt=>opt
.setName('member') .setName('member')
.setDescription('Member or user to view their information') .setDescription('Member or user to view their information')
.setRequired(true)) .setRequired(true))