diff --git a/commands/me.js b/commands/me.js new file mode 100644 index 0000000..0e08407 --- /dev/null +++ b/commands/me.js @@ -0,0 +1,55 @@ +const { MessageEmbed } = require('discord.js'); + +module.exports = { + name: "me", + description: "Send a message stating your characters action", + usage: "[action]", + permissions: { + channel: ["VIEW_CHANNEL", "SEND_MESSAGES", "EMBED_LINKS"], + member: [], + }, + aliases: ["action", "do"], + /** + * + * @param {require("../structures/LinesPoliceCadBot")} client + * @param {import("discord.js").MessageCreate} message + * @param {string[]} args + * @param {*} param3 + */ + SlashCommand: { + options: [ + { + name: "action", + description: "Message to state your action", + value: "action", + type: 3, + required: true, + }, + ], + /** + * + * @param {require("../structures/LinesPoliceCadBot")} client + * @param {import("discord.js").MessageCreate} message + * @param {string[]} args + * @param {*} param3 + */ + run: async (client, interaction, args, { GuildDB }) => { + if (GuildDB.customChannelStatus==true&&!GuildDB.allowedChannels.includes(interaction.channel_id)) { + return interaction.send(`You are not allowed to use the bot in this channel.`); + } + + const actionEmbed = new MessageEmbed() + .setColor(client.config.EmbedColor) + .setTitle('Action Performed') + .setDescription(`<@${interaction.member.user.id}> - *${args[0].value}*`) + .setTimestamp() + + if (client.exists(GuildDB.actionChannel)) { + const channel = interaction.guild.channels.cache.find(channel => channel.id === GuildDB.actionChannel); + return channel.send({ embeds: [actionEmbed] }); + } else { + return interaction.send({ embeds: [actionEmbed] }); + } + }, + }, +} \ No newline at end of file diff --git a/structures/QuarksBot.js b/structures/QuarksBot.js index 346d027..7370604 100644 --- a/structures/QuarksBot.js +++ b/structures/QuarksBot.js @@ -116,8 +116,8 @@ class QuarksBot extends Client { } async GetGuild(GuildId) { - let customChannelStatus; - let allowedChannels; + let customChannelStatus, allowedChannels; + let actionChannel, tweetChannel; let guild = await this.dbo.collection("guilds").findOne({"server.serverID":GuildId}).then(guild => guild); // If guild not found, generate guild default @@ -126,6 +126,8 @@ class QuarksBot extends Client { server: { serverID: GuildId, hasCustomChannels: false, + actionChannel: null, + tweetChannel: null } } this.dbo.collection("guilds").insertOne(newGuild, function(err, res) { @@ -133,15 +135,21 @@ class QuarksBot extends Client { }); customChannelStatus = newGuild.server.hasCustomChannels; allowedChannels = null; + actionChannel = null; + tweetChannel = null; } else { customChannelStatus = guild.server.hasCustomChannels; - if (guild.server.allowedChannels!=undefined||guild.server.allowedChannels!=null&&guild.server.allowedChannels.length>0) { + actionChannel = guild.server.actionChannel; + tweetChannel = guild.server.tweetChannel; + if (this.exists(guild.server.allowedChannels) && guild.server.allowedChannels.length>0) { allowedChannels = guild.server.allowedChannels; } else allowedChannels = null; } let guildData = { allowedChannels: allowedChannels, customChannelStatus: customChannelStatus, + actionChannel: actionChannel, + tweetChannel: tweetChannel, serverID: GuildId } return guildData;