mirror of
https://github.com/toast-ts/Daggerbot-TS.git
synced 2024-11-17 12:21:00 -05:00
add softban cmd and moderation improvements
This commit is contained in:
parent
357c9228a2
commit
418a2ae8ee
@ -230,7 +230,6 @@ export class TClient extends Client {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
//class
|
//class
|
||||||
class bannedWords extends Database {
|
class bannedWords extends Database {
|
||||||
client: TClient;
|
client: TClient;
|
||||||
@ -283,7 +282,7 @@ class punishments extends Database {
|
|||||||
const guild = member.guild;
|
const guild = member.guild;
|
||||||
const softbanData:Punishment={type, id: this.createId(), member: member.user.id, moderator, time: now};
|
const softbanData:Punishment={type, id: this.createId(), member: member.user.id, moderator, time: now};
|
||||||
const dm2 = Discord.Message = await member.send(`You've been softbanned from ${member.guild.name} ${timeInMillis ? `for ${this.client.formatTime(timeInMillis, 4, {longNames: true, commas: true})}` : 'forever'} for reason \`${reason || 'Reason unspecified'}\` (Case #${softbanData.id})`).catch(()=>{return interaction.channel.send('Failed to DM user.')})
|
const dm2 = Discord.Message = await member.send(`You've been softbanned from ${member.guild.name} ${timeInMillis ? `for ${this.client.formatTime(timeInMillis, 4, {longNames: true, commas: true})}` : 'forever'} for reason \`${reason || 'Reason unspecified'}\` (Case #${softbanData.id})`).catch(()=>{return interaction.channel.send('Failed to DM user.')})
|
||||||
const softbanResult = await member.ban({deleteMessageDays: 3, reason: `${reason || 'Reason unspecified'} | Case #${softbanData.id}`}).catch((err:Error)=>err.message);
|
const softbanResult = await member.ban({deleteMessageSeconds: 345600, reason: `${reason || 'Reason unspecified'} | Case #${softbanData.id}`}).catch((err:Error)=>err.message);
|
||||||
if (typeof softbanResult === 'string') {
|
if (typeof softbanResult === 'string') {
|
||||||
dm2.delete();
|
dm2.delete();
|
||||||
return `Softban was unsuccessful: ${softbanResult}`;
|
return `Softban was unsuccessful: ${softbanResult}`;
|
||||||
|
@ -13,10 +13,8 @@ export default {
|
|||||||
.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?'))
|
||||||
.setRequired(false))
|
|
||||||
.addStringOption((opt)=>opt
|
.addStringOption((opt)=>opt
|
||||||
.setName('reason')
|
.setName('reason')
|
||||||
.setDescription('Reason for the ban')
|
.setDescription('Reason for the ban'))
|
||||||
.setRequired(false))
|
|
||||||
}
|
}
|
@ -13,6 +13,5 @@ export default {
|
|||||||
.setRequired(true))
|
.setRequired(true))
|
||||||
.addStringOption((opt)=>opt
|
.addStringOption((opt)=>opt
|
||||||
.setName('reason')
|
.setName('reason')
|
||||||
.setDescription('Reason for the kick')
|
.setDescription('Reason for the kick'))
|
||||||
.setRequired(false))
|
|
||||||
}
|
}
|
17
src/commands/softban.ts
Normal file
17
src/commands/softban.ts
Normal file
@ -0,0 +1,17 @@
|
|||||||
|
import Discord,{SlashCommandBuilder} from 'discord.js';
|
||||||
|
import { TClient } from 'src/client';
|
||||||
|
export default {
|
||||||
|
async run(client: TClient, interaction: Discord.ChatInputCommandInteraction<'cached'>){
|
||||||
|
client.punish(client, interaction, 'softban');
|
||||||
|
},
|
||||||
|
data: new SlashCommandBuilder()
|
||||||
|
.setName('softban')
|
||||||
|
.setDescription('Softban a member from the server')
|
||||||
|
.addUserOption((opt)=>opt
|
||||||
|
.setName('member')
|
||||||
|
.setDescription('Which member to softban?')
|
||||||
|
.setRequired(true))
|
||||||
|
.addStringOption((opt)=>opt
|
||||||
|
.setName('reason')
|
||||||
|
.setDescription('Reason for the softban'))
|
||||||
|
}
|
@ -13,6 +13,5 @@ export default {
|
|||||||
.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'))
|
||||||
.setRequired(false))
|
|
||||||
}
|
}
|
@ -7,7 +7,7 @@ export default {
|
|||||||
if (!client.config.botSwitches.logs) return;
|
if (!client.config.botSwitches.logs) return;
|
||||||
let msgArray: Array<string> = [];
|
let msgArray: Array<string> = [];
|
||||||
messages.forEach((m)=>{
|
messages.forEach((m)=>{
|
||||||
msgArray.push(`${m.author.username}: ${m.content}`);
|
msgArray.push(`${m.author?.username}: ${m.content}`);
|
||||||
});
|
});
|
||||||
const embed = new client.embed().setColor(client.config.embedColorRed).setTimestamp().setTitle(`${messages.size} messages were purged`).setDescription(`\`\`\`${msgArray.reverse().join('\n')}\`\`\``.slice(0,3900)).addFields({name: 'Channel', value: `<#${(messages.first() as Discord.Message).channel.id}>`});
|
const embed = new client.embed().setColor(client.config.embedColorRed).setTimestamp().setTitle(`${messages.size} messages were purged`).setDescription(`\`\`\`${msgArray.reverse().join('\n')}\`\`\``.slice(0,3900)).addFields({name: 'Channel', value: `<#${(messages.first() as Discord.Message).channel.id}>`});
|
||||||
channel.send({embeds: [embed]})
|
channel.send({embeds: [embed]})
|
||||||
|
@ -23,7 +23,7 @@ client.on('ready', async()=>{
|
|||||||
}, 500000);
|
}, 500000);
|
||||||
console.log(`${client.user.tag} has logged into Discord API and now ready for operation`);
|
console.log(`${client.user.tag} has logged into Discord API and now ready for operation`);
|
||||||
console.log(client.config.botSwitches);
|
console.log(client.config.botSwitches);
|
||||||
(client.channels.resolve(client.config.mainServer.channels.bot_status) as Discord.TextChannel).send(`${client.user.username} is active\n\`\`\`json\n${Object.entries(client.config.botSwitches).map((hi)=>`${hi[0]}: ${hi[1]}`).join('\n')}\`\`\``);
|
//(client.channels.resolve(client.config.mainServer.channels.bot_status) as Discord.TextChannel).send(`${client.user.username} is active\n\`\`\`json\n${Object.entries(client.config.botSwitches).map((hi)=>`${hi[0]}: ${hi[1]}`).join('\n')}\`\`\``);
|
||||||
|
|
||||||
// Event handler
|
// Event handler
|
||||||
const eventFiles = fs.readdirSync('src/events').filter(file=>file.endsWith('.ts'));
|
const eventFiles = fs.readdirSync('src/events').filter(file=>file.endsWith('.ts'));
|
||||||
@ -210,7 +210,7 @@ Object.assign(client.punishments,{
|
|||||||
const guild = member.guild;
|
const guild = member.guild;
|
||||||
const softbanData: Punishment = {type, id: this.createId(), member: member.user.id, moderator, time: now};
|
const softbanData: Punishment = {type, id: this.createId(), member: member.user.id, moderator, time: now};
|
||||||
const dm2 = await member.send(`You've been softbanned from ${member.guild.name} for reason \`${reason || 'Reason unspecified'}\` (Case #${softbanData.id})`).catch(err=>setTimeout(()=>interaction.channel.send(`Failed to DM <@${member.user.id}>.`), 500));
|
const dm2 = await member.send(`You've been softbanned from ${member.guild.name} for reason \`${reason || 'Reason unspecified'}\` (Case #${softbanData.id})`).catch(err=>setTimeout(()=>interaction.channel.send(`Failed to DM <@${member.user.id}>.`), 500));
|
||||||
const softbanResult = await member.ban({deleteMessageDays: 7, reason: `${reason || 'Reason unspecified'} | Case #${softbanData.id}`}).catch((err: Error)=>err.message);
|
const softbanResult = await member.ban({deleteMessageSeconds: 345600, reason: `${reason || 'Reason unspecified'} | Case #${softbanData.id}`}).catch((err: Error)=>err.message);
|
||||||
if (typeof softbanResult === 'string'){
|
if (typeof softbanResult === 'string'){
|
||||||
dm2.delete();
|
dm2.delete();
|
||||||
return `Softban was unsuccessful: ${softbanResult}`;
|
return `Softban was unsuccessful: ${softbanResult}`;
|
||||||
|
Loading…
Reference in New Issue
Block a user