Added more restrictions.

Only work in guilds.
Server need to be 1 month old.
Bot need to be in server for 1 week.
This commit is contained in:
Supositware 2023-04-15 19:32:35 +02:00
parent 780aef27c5
commit 633f0a6fec

View file

@ -28,6 +28,7 @@ export default {
category: 'fun', category: 'fun',
ratelimit: 3, ratelimit: 3,
cooldown: 86400, cooldown: 86400,
guildOnly: true,
async execute(interaction, args, client) { async execute(interaction, args, client) {
const content = args.content; const content = args.content;
const attachment = args.image; const attachment = args.image;
@ -39,13 +40,31 @@ export default {
await interaction.deferReply({ ephemeral: false }); await interaction.deferReply({ ephemeral: false });
let tweet = content; let tweet = content;
const date = new Date(); const date = new Date();
// If guild is less than 1 month old don't accept the tweet
if (interaction.guild.createdAt > date.setMonth(date.getMonth() - 1)) {
await interaction.editReply({ content: 'The server need to be 1 month old to be able to use this command!' });
return;
}
// Reset the date for the next check
date.setTime(Date.now());
// If the bot has been in the guild for less than 1 week don't accept the tweet.
if (interaction.guild.createdAt > date.setDate(date.getDate() - 7)) {
await interaction.editReply({ content: 'I need to be in this server for a week to be able to use this command!' });
}
// Reset the date for the next check
date.setTime(Date.now());
// If account is less than 6 months old don't accept the tweet ( alt prevention ) // If account is less than 6 months old don't accept the tweet ( alt prevention )
if (interaction.user.createdAt > date.setMonth(date.getMonth() - 6)) { if (interaction.user.createdAt > date.setMonth(date.getMonth() - 6)) {
await interaction.editReply({ content: 'Your account is too new to be able to use this command!' }); await interaction.editReply({ content: 'Your account is too new to be able to use this command!' });
return; return;
} }
// Reset the current date so it checks correctly for the 1 year requirement. // Reset the date for the next check
date.setTime(Date.now()); date.setTime(Date.now());
// If account is less than 1 year old don't accept attachment // If account is less than 1 year old don't accept attachment
@ -54,12 +73,14 @@ export default {
return; return;
} }
// remove zero width space
if (tweet) { if (tweet) {
// remove zero width space
tweet = tweet.replace('', ''); tweet = tweet.replace('', '');
// This should only happen if someone tweets a zero width space
if (tweet.length === 0) {
return interaction.reply({ content: 'Uh oh! You are missing any content for me to tweet!', ephemeral: true });
} }
if (tweet) {
wordToCensor.forEach(async word => { wordToCensor.forEach(async word => {
if (tweet.toLowerCase().includes(word.toLowerCase())) { if (tweet.toLowerCase().includes(word.toLowerCase())) {
const body = { type:'tweet', uid: interaction.user.id, reason: 'Automatic ban from banned word.' }; const body = { type:'tweet', uid: interaction.user.id, reason: 'Automatic ban from banned word.' };