mirror of https://github.com/kry008/Bot-2.0.git
				
				
				
			in out user
							parent
							
								
									81b2cbb8a2
								
							
						
					
					
						commit
						f0e96dac7e
					
				| 
						 | 
				
			
			@ -2,4 +2,5 @@ config.json
 | 
			
		|||
templates.file
 | 
			
		||||
node_modules
 | 
			
		||||
package-lock.json
 | 
			
		||||
guilds-*.txt
 | 
			
		||||
guilds-*.txt
 | 
			
		||||
guilds/*.json
 | 
			
		||||
| 
						 | 
				
			
			@ -0,0 +1,95 @@
 | 
			
		|||
const fs = require('fs');
 | 
			
		||||
module.exports = {
 | 
			
		||||
    name: 'exitmsg',
 | 
			
		||||
    description: 'Enable or disable the exit message and edit the exit message. To mention the user, use {{USER}}.',
 | 
			
		||||
    help: 'Function to edit the message that is sent when a user leaves the server, use {{USER}} to mention the user.',
 | 
			
		||||
    options: [
 | 
			
		||||
        {
 | 
			
		||||
            name: 'enabled',
 | 
			
		||||
            description: 'Enable or disable the exit message',
 | 
			
		||||
            type: 5,
 | 
			
		||||
            required: true,
 | 
			
		||||
        },
 | 
			
		||||
        {
 | 
			
		||||
            name: 'title',
 | 
			
		||||
            description: 'Title of the exit message',
 | 
			
		||||
            type: 3,
 | 
			
		||||
            required: false,
 | 
			
		||||
        },
 | 
			
		||||
        {
 | 
			
		||||
            name: 'description',
 | 
			
		||||
            description: 'Description of the exit message, use {{USER}} to mention the user',
 | 
			
		||||
            type: 3,
 | 
			
		||||
            required: false,
 | 
			
		||||
        },
 | 
			
		||||
        {
 | 
			
		||||
            name: 'channel',
 | 
			
		||||
            description: 'Channel to send the exit message',
 | 
			
		||||
            type: 7,
 | 
			
		||||
            required: false,
 | 
			
		||||
        }
 | 
			
		||||
    ],
 | 
			
		||||
    slash: true,
 | 
			
		||||
    text: true,
 | 
			
		||||
    admin: true,
 | 
			
		||||
    requireKick: false,
 | 
			
		||||
    requireBan: false,
 | 
			
		||||
    canBeUsedInDm: true,
 | 
			
		||||
    contexts: ['GUILD_TEXT'],
 | 
			
		||||
    integration_types: [0],
 | 
			
		||||
    execute(message, args) {
 | 
			
		||||
        message.channel.send('This command can only be used as a slash command.');
 | 
			
		||||
    },
 | 
			
		||||
    executeSlash(interaction) {
 | 
			
		||||
        //check if the user has the required permissions
 | 
			
		||||
        if (!interaction.member.permissions.has('ADMINISTRATOR')) {
 | 
			
		||||
            interaction.reply('You need to have the administrator permission to use this command.');
 | 
			
		||||
            return;
 | 
			
		||||
        }
 | 
			
		||||
        //check if all the required arguments are provided
 | 
			
		||||
        if(!interaction.options.getBoolean('enabled') || !interaction.options.getString('title') || !interaction.options.getString('description') || !interaction.options.getChannel('channel')) {
 | 
			
		||||
            interaction.reply('Please provide all the required information.');
 | 
			
		||||
            return;
 | 
			
		||||
        }
 | 
			
		||||
        const enabled = interaction.options.getBoolean('enabled');
 | 
			
		||||
        const title = interaction.options.getString('title');
 | 
			
		||||
        const description = interaction.options.getString('description');
 | 
			
		||||
        const channel = interaction.options.getChannel('channel');
 | 
			
		||||
        const filePath = `./guilds/guilds-${interaction.guild.id}.json`;
 | 
			
		||||
        
 | 
			
		||||
        if(enabled === null || title === null || description === null || channel === null) {
 | 
			
		||||
            interaction.reply('Please provide all the required information.');
 | 
			
		||||
            return;
 | 
			
		||||
        }
 | 
			
		||||
        
 | 
			
		||||
        if(channel.type !== 0) {
 | 
			
		||||
            interaction.reply('Please provide a text channel.');
 | 
			
		||||
            return;
 | 
			
		||||
        }
 | 
			
		||||
        
 | 
			
		||||
        
 | 
			
		||||
        if(enabled === false) {
 | 
			
		||||
            //get data from file
 | 
			
		||||
            const data = JSON.parse(fs.readFileSync(filePath));
 | 
			
		||||
            data.goodbyeMessage.title = null;
 | 
			
		||||
            data.goodbyeMessage.content = null;
 | 
			
		||||
            data.goodbyeChannel = null;
 | 
			
		||||
            data.goodbye = false;
 | 
			
		||||
            fs.writeFileSync(filePath, JSON.stringify(data));
 | 
			
		||||
            interaction.reply('Exit message disabled.');
 | 
			
		||||
            return;
 | 
			
		||||
        }
 | 
			
		||||
        else
 | 
			
		||||
        {
 | 
			
		||||
            const data = JSON.parse(fs.readFileSync(filePath));
 | 
			
		||||
            data.goodbyeMessage.title = title;
 | 
			
		||||
            data.goodbyeMessage.content = description;
 | 
			
		||||
            data.goodbyeChannel = channel.id;
 | 
			
		||||
            data.goodbye = true;
 | 
			
		||||
            
 | 
			
		||||
            fs.writeFileSync(filePath, JSON.stringify(data));
 | 
			
		||||
            interaction.reply('Exit message updated successfully.');
 | 
			
		||||
            return;
 | 
			
		||||
        }
 | 
			
		||||
    },
 | 
			
		||||
};
 | 
			
		||||
| 
						 | 
				
			
			@ -0,0 +1,101 @@
 | 
			
		|||
const fs = require('fs');
 | 
			
		||||
module.exports = {
 | 
			
		||||
    name: 'newusermsg',
 | 
			
		||||
    description: 'Edit the message that is sent when a new user joins the server, use {{USER}} to mention the user.',
 | 
			
		||||
    help: 'Function to edit the message that is sent when a new user joins the server, use {{USER}} to mention the user.',
 | 
			
		||||
    //enabled/disabled, title, description, channel
 | 
			
		||||
    options: [
 | 
			
		||||
        {
 | 
			
		||||
            name: 'enabled',
 | 
			
		||||
            description: 'Enable or disable the welcome message',
 | 
			
		||||
            type: 5,
 | 
			
		||||
            required: true,
 | 
			
		||||
        },
 | 
			
		||||
        {
 | 
			
		||||
            name: 'title',
 | 
			
		||||
            description: 'Title of the welcome message',
 | 
			
		||||
            type: 3,
 | 
			
		||||
            required: false,
 | 
			
		||||
        },
 | 
			
		||||
        {
 | 
			
		||||
            name: 'description',
 | 
			
		||||
            description: 'Description of the welcome message, use {{USER}} to mention the user',
 | 
			
		||||
            type: 3,
 | 
			
		||||
            required: false,
 | 
			
		||||
        },
 | 
			
		||||
        {
 | 
			
		||||
            name: 'channel',
 | 
			
		||||
            description: 'Channel to send the welcome message',
 | 
			
		||||
            type: 7,
 | 
			
		||||
            required: false,
 | 
			
		||||
        }
 | 
			
		||||
    ],
 | 
			
		||||
    slash: true,
 | 
			
		||||
    text: true,
 | 
			
		||||
    admin: true,
 | 
			
		||||
    requireKick: true,
 | 
			
		||||
    requireBan: true,
 | 
			
		||||
    canBeUsedInDm: false,
 | 
			
		||||
    contexts: ['GUILD_TEXT'],
 | 
			
		||||
    integration_types: [0, 1],
 | 
			
		||||
    execute(message, args) {
 | 
			
		||||
        message.channel.send('This command can only be used as a slash command.');
 | 
			
		||||
    },
 | 
			
		||||
    executeSlash(interaction) {
 | 
			
		||||
        //check if the user has the required permissions
 | 
			
		||||
        if (!interaction.member.permissions.has('ADMINISTRATOR')) {
 | 
			
		||||
            interaction.reply('You need to have the administrator permission to use this command.');
 | 
			
		||||
            return;
 | 
			
		||||
        }
 | 
			
		||||
        //check if all the required arguments are provided
 | 
			
		||||
        if(!interaction.options.getBoolean('enabled') || !interaction.options.getString('title') || !interaction.options.getString('description') || !interaction.options.getChannel('channel')) {
 | 
			
		||||
            interaction.reply('Please provide all the required information.');
 | 
			
		||||
            return;
 | 
			
		||||
        }
 | 
			
		||||
        const enabled = interaction.options.getBoolean('enabled');
 | 
			
		||||
        const title = interaction.options.getString('title');
 | 
			
		||||
        const description = interaction.options.getString('description');
 | 
			
		||||
        const channel = interaction.options.getChannel('channel');
 | 
			
		||||
        const filePath = `./guilds/guilds-${interaction.guild.id}.json`;
 | 
			
		||||
        
 | 
			
		||||
        if(enabled === null || title === null || description === null || channel === null) {
 | 
			
		||||
            interaction.reply('Please provide all the required information.');
 | 
			
		||||
            return;
 | 
			
		||||
        }
 | 
			
		||||
        //check if the channel is a text channel
 | 
			
		||||
        if(channel.type !== 0) {
 | 
			
		||||
            interaction.reply('Please provide a text channel.');
 | 
			
		||||
            return;
 | 
			
		||||
        }
 | 
			
		||||
        
 | 
			
		||||
        if(enabled === false) {
 | 
			
		||||
            //get data from file
 | 
			
		||||
            if (fs.existsSync(filePath)) {
 | 
			
		||||
                const data = JSON.parse(fs.readFileSync(filePath));
 | 
			
		||||
                data.hello = false;
 | 
			
		||||
                data.helloChannel = null;
 | 
			
		||||
                data.welcomeMessage.title = null;
 | 
			
		||||
                data.welcomeMessage.content = null;
 | 
			
		||||
                fs.writeFileSync(filePath, JSON.stringify(data));
 | 
			
		||||
            }
 | 
			
		||||
            interaction.reply('Welcome message disabled.');
 | 
			
		||||
            return;
 | 
			
		||||
        }
 | 
			
		||||
        else
 | 
			
		||||
        {
 | 
			
		||||
            //get data from file
 | 
			
		||||
            if (fs.existsSync(filePath)) {
 | 
			
		||||
                const data = JSON.parse(fs.readFileSync(filePath));
 | 
			
		||||
                data.hello = true;
 | 
			
		||||
                data.helloChannel = channel.id;
 | 
			
		||||
                data.welcomeMessage.title = title;
 | 
			
		||||
                data.welcomeMessage.content = description;
 | 
			
		||||
                fs.writeFileSync(filePath, JSON.stringify(data));
 | 
			
		||||
            }
 | 
			
		||||
            interaction.reply('Welcome message enabled.');
 | 
			
		||||
            return;
 | 
			
		||||
        }
 | 
			
		||||
 | 
			
		||||
        
 | 
			
		||||
    },
 | 
			
		||||
};
 | 
			
		||||
| 
						 | 
				
			
			@ -0,0 +1,76 @@
 | 
			
		|||
const fs = require('fs');
 | 
			
		||||
module.exports = {
 | 
			
		||||
    name: 'rulesmsg',
 | 
			
		||||
    description: 'Enable or disable the rules message and edit the rules message.',
 | 
			
		||||
    help: 'Use {{RULES}} to mention the rules channel',
 | 
			
		||||
    options: [
 | 
			
		||||
        {
 | 
			
		||||
            name: 'enabled',
 | 
			
		||||
            description: 'Enable or disable the rules message',
 | 
			
		||||
            type: 5,
 | 
			
		||||
            required: true,
 | 
			
		||||
        },
 | 
			
		||||
        {
 | 
			
		||||
            name: 'ruleline',
 | 
			
		||||
            description: 'Description of the rules message, use {{RULES}} to mention the rules channel',
 | 
			
		||||
            type: 3,
 | 
			
		||||
            required: false,
 | 
			
		||||
        },
 | 
			
		||||
        {
 | 
			
		||||
            name: 'channel',
 | 
			
		||||
            description: 'Channel to send the rules message',
 | 
			
		||||
            type: 7,
 | 
			
		||||
            required: false,
 | 
			
		||||
        }
 | 
			
		||||
    ],
 | 
			
		||||
    slash: true,
 | 
			
		||||
    text: true,
 | 
			
		||||
    admin: true,
 | 
			
		||||
    requireKick: false,
 | 
			
		||||
    requireBan: false,
 | 
			
		||||
    canBeUsedInDm: false,
 | 
			
		||||
    contexts: ['GUILD_TEXT'],
 | 
			
		||||
    integration_types: [0],
 | 
			
		||||
    execute(message, args) {
 | 
			
		||||
        message.channel.send('This command can only be used as a slash command.');
 | 
			
		||||
    },
 | 
			
		||||
    executeSlash(interaction) {
 | 
			
		||||
        //check if the user has the required permissions
 | 
			
		||||
        if (!interaction.member.permissions.has('ADMINISTRATOR')) {
 | 
			
		||||
            interaction.reply('You need to have the administrator permission to use this command.');
 | 
			
		||||
            return;
 | 
			
		||||
        }
 | 
			
		||||
        //check if all the required arguments are provided
 | 
			
		||||
        if(!interaction.options.getBoolean('enabled') || !interaction.options.getString('ruleline') || !interaction.options.getChannel('channel')) {
 | 
			
		||||
            interaction.reply('Please provide all the required information.');
 | 
			
		||||
            return;
 | 
			
		||||
        }
 | 
			
		||||
        const enabled = interaction.options.getBoolean('enabled');
 | 
			
		||||
        const ruleline = interaction.options.getString('ruleline');
 | 
			
		||||
        const channel = interaction.options.getChannel('channel');
 | 
			
		||||
        const filePath = `./guilds/guilds-${interaction.guild.id}.json`;
 | 
			
		||||
        
 | 
			
		||||
        if(enabled === null || ruleline === null || channel === null) {
 | 
			
		||||
            interaction.reply('Please provide all the required information.');
 | 
			
		||||
            return;
 | 
			
		||||
        }
 | 
			
		||||
        
 | 
			
		||||
        if(channel.type !== 0) {
 | 
			
		||||
            interaction.reply('Please provide a text channel.');
 | 
			
		||||
            return;
 | 
			
		||||
        }
 | 
			
		||||
        if (enabled) {
 | 
			
		||||
            const data = JSON.parse(fs.readFileSync(filePath));
 | 
			
		||||
            data.rulesMessage = ruleline;
 | 
			
		||||
            data.rulesChannel = channel.id;
 | 
			
		||||
            fs.writeFileSync(filePath, JSON.stringify(data, null, 4));
 | 
			
		||||
        }
 | 
			
		||||
        else {
 | 
			
		||||
            const data = JSON.parse(fs.readFileSync(filePath));
 | 
			
		||||
            data.rulesMessage = null;
 | 
			
		||||
            data.rulesChannel = null;
 | 
			
		||||
            fs.writeFileSync(filePath, JSON.stringify(data, null, 4));
 | 
			
		||||
        }
 | 
			
		||||
        interaction.reply('Rules message updated successfully.');
 | 
			
		||||
    },
 | 
			
		||||
};
 | 
			
		||||
| 
						 | 
				
			
			@ -9,5 +9,18 @@ module.exports = {
 | 
			
		|||
        const guildPath = `./guilds-${new Date().toISOString().split('T')[0]}.txt`;
 | 
			
		||||
        //save name - id - time of joining
 | 
			
		||||
        fs.appendFileSync(guildPath, `JOIN: \`${guild.name}\` - ${guild.id} - ${new Date().toLocaleString()}\n`);
 | 
			
		||||
        const guildPath2 = `./guilds/guilds-${guild.id}.json`;
 | 
			
		||||
			if (!fs.existsSync(guildPath2)) {
 | 
			
		||||
                fs.writeFileSync(guildPath2, JSON.stringify({ id: guild.id, name: [guild.name], premium: false, prefix: prefix, premium:false, prefix:"^", hello: false, goodbye: true, helloChannel: null, goodbyeChannel: null, rulesChannel: null, welcomeMessage: { title: "Say hello", content: "Hello {{USER}}"}, goodbyeMessage: { title: "Say goodbye", content: "Goodbye {{USER}}"}, rulesMessage: null}));
 | 
			
		||||
            }
 | 
			
		||||
            else
 | 
			
		||||
            {
 | 
			
		||||
                const data = JSON.parse(fs.readFileSync(guildPath2));
 | 
			
		||||
                if (!data.name.includes(guild.name))
 | 
			
		||||
                {
 | 
			
		||||
                    data.name.push(guild.name);
 | 
			
		||||
                    fs.writeFileSync(guildPath2, JSON.stringify(data));
 | 
			
		||||
                }
 | 
			
		||||
            }
 | 
			
		||||
    }
 | 
			
		||||
};
 | 
			
		||||
| 
						 | 
				
			
			@ -1,28 +1,57 @@
 | 
			
		|||
const { Events, EmbedBuilder } = require('discord.js');
 | 
			
		||||
const fs = require('fs');
 | 
			
		||||
function randomColor() {
 | 
			
		||||
    const r = Math.floor(Math.random() * 200) + 50;
 | 
			
		||||
    const g = Math.floor(Math.random() * 200) + 50;
 | 
			
		||||
    const b = Math.floor(Math.random() * 200) + 50;
 | 
			
		||||
    return `#${r.toString(16)}${g.toString(16)}${b.toString(16)}`;
 | 
			
		||||
}
 | 
			
		||||
module.exports = {
 | 
			
		||||
	name: Events.GuildMemberAdd,
 | 
			
		||||
    once: false,
 | 
			
		||||
    execute(args) {
 | 
			
		||||
        const { guild, user } = args;
 | 
			
		||||
        const channel = guild.channels.cache.find(channel => ['new-member', 'new-users', 'hello', 'welcome'].includes(channel.name));
 | 
			
		||||
        //find rules channel
 | 
			
		||||
        const rulesChannel = guild.channels.cache.find(channel => ['rules', 'regulations', 'regulamin'].includes(channel.name));
 | 
			
		||||
        if (!channel) return;
 | 
			
		||||
        if(!rulesChannel) var text = 'Please read the rules in rules channel.';
 | 
			
		||||
        else var text = `Please read the rules in ${rulesChannel} channel.`;
 | 
			
		||||
        const embed = new EmbedBuilder()
 | 
			
		||||
            .setTitle(`Welcome ${user.username}!`)
 | 
			
		||||
            .setDescription(`Welcome to ${guild.name}! \n${text}`)
 | 
			
		||||
            .setColor(randomColor())
 | 
			
		||||
            .setThumbnail(user.avatarURL())
 | 
			
		||||
            .setTimestamp();
 | 
			
		||||
        channel.send({ embeds: [embed] });
 | 
			
		||||
 | 
			
		||||
module.exports = {
 | 
			
		||||
    name: Events.GuildMemberAdd,
 | 
			
		||||
    once: false,
 | 
			
		||||
    execute(member) {
 | 
			
		||||
        const { guild, user } = member;
 | 
			
		||||
        const filePath = `./guilds/guilds-${guild.id}.json`;
 | 
			
		||||
 | 
			
		||||
        if (fs.existsSync(filePath)) {
 | 
			
		||||
            const data = JSON.parse(fs.readFileSync(filePath));
 | 
			
		||||
 | 
			
		||||
            if (!data.hello || !data.helloChannel) return;
 | 
			
		||||
 | 
			
		||||
            let title = data.welcomeMessage && data.welcomeMessage.title ? data.welcomeMessage.title : "👋 Welcome!";
 | 
			
		||||
            let description = data.welcomeMessage && data.welcomeMessage.content ? data.welcomeMessage.content.replace("{{USER}}", user.username) : `Welcome to the server, ${user.username}!`;
 | 
			
		||||
            if(data.rulesChannel == null || data.rulesMessage == null)
 | 
			
		||||
            {   
 | 
			
		||||
                
 | 
			
		||||
            }
 | 
			
		||||
            else
 | 
			
		||||
            {
 | 
			
		||||
                //data.rulesMessage + #data.rulesChannel
 | 
			
		||||
                description += "\n" + data.rulesMessage;
 | 
			
		||||
                //replace {{RULES}} with the rules channel
 | 
			
		||||
                description = description.replace("{{RULES}}", `<#${data.rulesChannel}>`);
 | 
			
		||||
            }
 | 
			
		||||
 | 
			
		||||
            const embed = new EmbedBuilder()
 | 
			
		||||
                .setTitle(title)
 | 
			
		||||
                .setDescription(description)
 | 
			
		||||
                .setColor(randomColor())
 | 
			
		||||
                .setThumbnail(user.avatarURL())
 | 
			
		||||
                .setTimestamp();
 | 
			
		||||
 | 
			
		||||
            guild.channels.fetch(data.helloChannel)
 | 
			
		||||
                .then(channel => {
 | 
			
		||||
                    if (channel) {
 | 
			
		||||
                        channel.send({ embeds: [embed] })
 | 
			
		||||
                            .catch(console.error);
 | 
			
		||||
                    } else {
 | 
			
		||||
                        console.error("Welcome channel not found.");
 | 
			
		||||
                    }
 | 
			
		||||
                })
 | 
			
		||||
                .catch(console.error);
 | 
			
		||||
        } else {
 | 
			
		||||
            return;
 | 
			
		||||
        }
 | 
			
		||||
    }
 | 
			
		||||
};
 | 
			
		||||
};
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -1,11 +1,66 @@
 | 
			
		|||
const { Events } = require('discord.js');
 | 
			
		||||
const { ActivityType } = require('discord.js');
 | 
			
		||||
 | 
			
		||||
const { prefix } = require('../config.json');
 | 
			
		||||
const fs = require('fs');
 | 
			
		||||
module.exports = {
 | 
			
		||||
	name: Events.ClientReady,
 | 
			
		||||
	once: true,
 | 
			
		||||
	execute(client) {
 | 
			
		||||
		console.log(`Ready! Logged in as ${client.user.tag}`);
 | 
			
		||||
		client.user.setActivity('kry008.xyz/bot/i | To see how to support type /supportbot', { type: ActivityType.PLAYING });
 | 
			
		||||
		client.user.setActivity('kry008.xyz/bot/i | To see how to support type /supportbot | Type /help to get all commands', { type: ActivityType.PLAYING });
 | 
			
		||||
		//read all guilds, create files with guildid.json if not exists
 | 
			
		||||
		client.guilds.cache.forEach(guild => {
 | 
			
		||||
			const guildPath = `./guilds/guilds-${guild.id}.json`;
 | 
			
		||||
			if (!fs.existsSync(guildPath)) {
 | 
			
		||||
				fs.writeFileSync(guildPath, JSON.stringify(({ id: guild.id, name: [guild.name], premium: false, prefix: prefix, premium:false, prefix:"^", modChannel: null, hello: false, goodbye: true, helloChannel: null, goodbyeChannel: null, rulesChannel: null, welcomeMessage: { title: "Say hello", content: "Hello {{USER}}"}, goodbyeMessage: { title: "Say goodbye", content: "Goodbye {{USER}}"}, rulesMessage: null})));
 | 
			
		||||
			}
 | 
			
		||||
			else
 | 
			
		||||
			{
 | 
			
		||||
				const data = JSON.parse(fs.readFileSync(guildPath));
 | 
			
		||||
				if (!data.name.includes(guild.name))
 | 
			
		||||
				{
 | 
			
		||||
					data.name.push(guild.name);
 | 
			
		||||
					fs.writeFileSync(guildPath, JSON.stringify(data));
 | 
			
		||||
				}
 | 
			
		||||
				if(!data.hello)
 | 
			
		||||
				{
 | 
			
		||||
					data.hello = false;
 | 
			
		||||
				}
 | 
			
		||||
				if(!data.goodbye)
 | 
			
		||||
				{
 | 
			
		||||
					data.goodbye = false;
 | 
			
		||||
				}
 | 
			
		||||
				if(!data.helloChannel)
 | 
			
		||||
				{
 | 
			
		||||
					data.helloChannel = null;
 | 
			
		||||
				}
 | 
			
		||||
				if(!data.goodbyeChannel)
 | 
			
		||||
				{
 | 
			
		||||
					data.goodbyeChannel = null;
 | 
			
		||||
				}
 | 
			
		||||
				if(!data.rulesChannel)
 | 
			
		||||
				{
 | 
			
		||||
					data.rulesChannel = null;
 | 
			
		||||
				}
 | 
			
		||||
				if(!data.welcomeMessage)
 | 
			
		||||
				{
 | 
			
		||||
					data.welcomeMessage = null;
 | 
			
		||||
				}
 | 
			
		||||
				if(!data.goodbyeMessage)
 | 
			
		||||
				{
 | 
			
		||||
					data.goodbyeMessage = null;
 | 
			
		||||
				}
 | 
			
		||||
				if(!data.rulesMessage)
 | 
			
		||||
				{
 | 
			
		||||
					data.rulesMessage = null;
 | 
			
		||||
				}
 | 
			
		||||
				if(!data.modChannel)
 | 
			
		||||
				{
 | 
			
		||||
					data.modChannel = null;
 | 
			
		||||
				}
 | 
			
		||||
				fs.writeFileSync(guildPath, JSON.stringify(data));
 | 
			
		||||
			}
 | 
			
		||||
		});
 | 
			
		||||
 | 
			
		||||
	},
 | 
			
		||||
};
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -1,19 +1,42 @@
 | 
			
		|||
//guildMemberRemove
 | 
			
		||||
const { Events, EmbedBuilder } = require('discord.js');
 | 
			
		||||
const fs = require('fs');
 | 
			
		||||
 | 
			
		||||
module.exports = {
 | 
			
		||||
	name: Events.GuildMemberRemove,
 | 
			
		||||
    name: Events.GuildMemberRemove,
 | 
			
		||||
    once: false,
 | 
			
		||||
    execute(args) {
 | 
			
		||||
        const { guild, user } = args;
 | 
			
		||||
        const channel = guild.channels.cache.find(channel => ['goodbye', 'bye', 'left', 'leaving', 'wyjścia'].includes(channel.name));
 | 
			
		||||
        if (!channel) return;
 | 
			
		||||
        const embed = new EmbedBuilder()
 | 
			
		||||
            .setTitle(`Goodbye ${user.username}!`)
 | 
			
		||||
            .setDescription(`Goodbye ${user.username}!`)
 | 
			
		||||
            .setColor('#ff0000')
 | 
			
		||||
            .setThumbnail(user.avatarURL())
 | 
			
		||||
            .setTimestamp();
 | 
			
		||||
        channel.send({ embeds: [embed] });
 | 
			
		||||
    execute(member) {
 | 
			
		||||
        const { guild, user } = member;
 | 
			
		||||
        const filePath = `./guilds/guilds-${guild.id}.json`;
 | 
			
		||||
 | 
			
		||||
        if (fs.existsSync(filePath)) {
 | 
			
		||||
            const data = JSON.parse(fs.readFileSync(filePath));
 | 
			
		||||
 | 
			
		||||
            if (!data.goodbye || !data.goodbyeChannel) return;
 | 
			
		||||
 | 
			
		||||
            let title = data.goodbyeMessage.title;
 | 
			
		||||
            let description = data.goodbyeMessage.content ? data.goodbyeMessage.content.replace("{{USER}}", user.username) : `Goodbye ${user.username}!`;
 | 
			
		||||
 | 
			
		||||
            const embed = new EmbedBuilder()
 | 
			
		||||
                .setTitle(title)
 | 
			
		||||
                .setDescription(description)
 | 
			
		||||
                .setColor("#ff0000")
 | 
			
		||||
                .setThumbnail(user.avatarURL())
 | 
			
		||||
                .setTimestamp();
 | 
			
		||||
            
 | 
			
		||||
            guild.channels.fetch(data.goodbyeChannel)
 | 
			
		||||
                .then(channel => {
 | 
			
		||||
                    if (channel) {
 | 
			
		||||
                        channel.send({ embeds: [embed] })
 | 
			
		||||
                            .catch(console.error);
 | 
			
		||||
                    } else {
 | 
			
		||||
                        console.error("Goodbye channel not found.");
 | 
			
		||||
                    }
 | 
			
		||||
                })
 | 
			
		||||
                .catch(console.error);
 | 
			
		||||
        }
 | 
			
		||||
        else
 | 
			
		||||
        {
 | 
			
		||||
            return;
 | 
			
		||||
        }
 | 
			
		||||
    }
 | 
			
		||||
};
 | 
			
		||||
		Loading…
	
		Reference in New Issue