From c7edb070bfa847dff305e7e604135e619f972db8 Mon Sep 17 00:00:00 2001 From: "Ean Milligan (Bastion)" Date: Sun, 4 Sep 2022 18:23:21 -0400 Subject: [PATCH] WIP on addreaction detection --- deps.ts | 2 +- mod.ts | 2 +- src/events/messageCreate.ts | 14 ++++++++++++-- src/events/reactionAdd.ts | 16 ++++++++++++++-- src/functions/_index.ts | 2 ++ src/functions/onlyOneReaction.ts | 6 ++++++ 6 files changed, 36 insertions(+), 6 deletions(-) create mode 100644 src/functions/onlyOneReaction.ts diff --git a/deps.ts b/deps.ts index 0932426..9286bae 100644 --- a/deps.ts +++ b/deps.ts @@ -4,7 +4,7 @@ import config from './config.ts'; import { LOCALMODE } from './flags.ts'; export const botId = getBotIdFromToken(LOCALMODE ? config.localtoken : config.token); -export { ActivityTypes, createBot, editBotNickname, editBotStatus, Intents, sendMessage, startBot } from 'https://deno.land/x/discordeno@13.0.0/mod.ts'; +export { ActivityTypes, createBot, editBotNickname, editBotStatus, Intents, sendMessage, startBot, getReactions } from 'https://deno.land/x/discordeno@13.0.0/mod.ts'; export type { Bot, CreateMessage, Emoji, EventHandlers, Guild, Member, Message, User } from 'https://deno.land/x/discordeno@13.0.0/mod.ts'; diff --git a/mod.ts b/mod.ts index 7fd01a6..bcb9bbf 100644 --- a/mod.ts +++ b/mod.ts @@ -22,7 +22,7 @@ initLog('logs', DEBUG); // Start up the Discord Bot const bot = createBot({ token: LOCALMODE ? config.localtoken : config.token, - intents: Intents.MessageContent | Intents.GuildMessages | Intents.DirectMessages | Intents.Guilds, + intents: Intents.MessageContent | Intents.GuildMessages | Intents.DirectMessages | Intents.Guilds | Intents.GuildMessageReactions, events, }); diff --git a/src/events/messageCreate.ts b/src/events/messageCreate.ts index 88bfb14..4d2cff5 100644 --- a/src/events/messageCreate.ts +++ b/src/events/messageCreate.ts @@ -7,10 +7,9 @@ import { log, LT, // Discordeno deps - Message, + Message,getReactions, } from '../../deps.ts'; import commands from '../commands/_index.ts'; -import { pollReactions } from '../functions/pollReactions.ts'; import functions from '../functions/_index.ts'; import utils from '../utils.ts'; @@ -78,6 +77,17 @@ export const messageCreate = async (bot: Bot, message: Message) => { commands.sendMessage(bot, message, args); } break; + case 'test': + const test = await bot.helpers.getMessage(413640605491658754n, 1016090989816987701n); + console.log(test) + if (test.reactions && test.reactions.length) { + console.log(test.reactions[0]) + const what = `${test.reactions[0].emoji.name}${test.reactions[0].emoji.id ? `:${test.reactions[0].emoji.id}` : ''}`; + console.log(what) + await getReactions(bot, 413640605491658754n, 1016090989816987701n, what) + } + // bot.helpers + break; default: // Non-standard commands console.log(`${command} WIP`); diff --git a/src/events/reactionAdd.ts b/src/events/reactionAdd.ts index 4d0d570..6a32eb5 100644 --- a/src/events/reactionAdd.ts +++ b/src/events/reactionAdd.ts @@ -4,9 +4,21 @@ import { Bot, } from '../../deps.ts'; import { ReactionAdd } from '../types/eventTypes.ts'; +import utils from '../utils.ts'; +import functions from '../functions/_index.ts'; -export const reactionAdd = (bot: Bot, payload: ReactionAdd) => { +export const reactionAdd = async (bot: Bot, payload: ReactionAdd) => { if (config.pollChannels.includes(payload.channelId)) { - console.log(payload); + try { + const message = await bot.helpers.getMessage(payload.channelId, payload.messageId); + const onlyOneWordRX = /(only one)/g + if (message.content.toLowerCase().includes('clan poll') && message.content.toLowerCase().match(onlyOneWordRX)?.length) { + functions.onlyOneReaction(bot, message); + + // bot.helpers.getReactions() + } + } catch (e) { + utils.commonLoggers.messageGetError('reactionAdd.ts:14', `failed to get message ${payload.channelId}-${payload.messageId}`, e); + } } }; diff --git a/src/functions/_index.ts b/src/functions/_index.ts index c9cc05b..5dbc5f9 100644 --- a/src/functions/_index.ts +++ b/src/functions/_index.ts @@ -1,5 +1,7 @@ import { pollReactions } from './pollReactions.ts'; +import { onlyOneReaction } from './onlyOneReaction.ts'; export default { pollReactions, + onlyOneReaction, }; diff --git a/src/functions/onlyOneReaction.ts b/src/functions/onlyOneReaction.ts new file mode 100644 index 0000000..f32ac8e --- /dev/null +++ b/src/functions/onlyOneReaction.ts @@ -0,0 +1,6 @@ +import { + // Discordeno deps + Bot, +} from "../../deps.ts"; + +export const onlyOneReaction = (bot: Bot) => { };