mirror of https://github.com/kry008/Bot-2.0.git
in out user
parent
81b2cbb8a2
commit
f0e96dac7e
|
@ -3,3 +3,4 @@ templates.file
|
||||||
node_modules
|
node_modules
|
||||||
package-lock.json
|
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`;
|
const guildPath = `./guilds-${new Date().toISOString().split('T')[0]}.txt`;
|
||||||
//save name - id - time of joining
|
//save name - id - time of joining
|
||||||
fs.appendFileSync(guildPath, `JOIN: \`${guild.name}\` - ${guild.id} - ${new Date().toLocaleString()}\n`);
|
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 { Events, EmbedBuilder } = require('discord.js');
|
||||||
|
const fs = require('fs');
|
||||||
function randomColor() {
|
function randomColor() {
|
||||||
const r = Math.floor(Math.random() * 200) + 50;
|
const r = Math.floor(Math.random() * 200) + 50;
|
||||||
const g = Math.floor(Math.random() * 200) + 50;
|
const g = Math.floor(Math.random() * 200) + 50;
|
||||||
const b = Math.floor(Math.random() * 200) + 50;
|
const b = Math.floor(Math.random() * 200) + 50;
|
||||||
return `#${r.toString(16)}${g.toString(16)}${b.toString(16)}`;
|
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 { Events } = require('discord.js');
|
||||||
const { ActivityType } = require('discord.js');
|
const { ActivityType } = require('discord.js');
|
||||||
|
const { prefix } = require('../config.json');
|
||||||
|
const fs = require('fs');
|
||||||
module.exports = {
|
module.exports = {
|
||||||
name: Events.ClientReady,
|
name: Events.ClientReady,
|
||||||
once: true,
|
once: true,
|
||||||
execute(client) {
|
execute(client) {
|
||||||
console.log(`Ready! Logged in as ${client.user.tag}`);
|
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 { Events, EmbedBuilder } = require('discord.js');
|
||||||
|
const fs = require('fs');
|
||||||
|
|
||||||
module.exports = {
|
module.exports = {
|
||||||
name: Events.GuildMemberRemove,
|
name: Events.GuildMemberRemove,
|
||||||
once: false,
|
once: false,
|
||||||
execute(args) {
|
execute(member) {
|
||||||
const { guild, user } = args;
|
const { guild, user } = member;
|
||||||
const channel = guild.channels.cache.find(channel => ['goodbye', 'bye', 'left', 'leaving', 'wyjścia'].includes(channel.name));
|
const filePath = `./guilds/guilds-${guild.id}.json`;
|
||||||
if (!channel) return;
|
|
||||||
const embed = new EmbedBuilder()
|
if (fs.existsSync(filePath)) {
|
||||||
.setTitle(`Goodbye ${user.username}!`)
|
const data = JSON.parse(fs.readFileSync(filePath));
|
||||||
.setDescription(`Goodbye ${user.username}!`)
|
|
||||||
.setColor('#ff0000')
|
if (!data.goodbye || !data.goodbyeChannel) return;
|
||||||
.setThumbnail(user.avatarURL())
|
|
||||||
.setTimestamp();
|
let title = data.goodbyeMessage.title;
|
||||||
channel.send({ embeds: [embed] });
|
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