From 8233fc4bcffc82907e82b31072cb8129aa200ae5 Mon Sep 17 00:00:00 2001 From: Cara Salter Date: Thu, 30 Mar 2023 15:09:52 -0400 Subject: reactions module --- modules/reactions/reactions.cpp | 43 +++++++++++++++++++++++++++++++++++++++++ 1 file changed, 43 insertions(+) create mode 100644 modules/reactions/reactions.cpp (limited to 'modules/reactions/reactions.cpp') diff --git a/modules/reactions/reactions.cpp b/modules/reactions/reactions.cpp new file mode 100644 index 0000000..3818d0d --- /dev/null +++ b/modules/reactions/reactions.cpp @@ -0,0 +1,43 @@ +#include +#include +#include +#include <142bot/modules.hpp> +#include + +using std::to_string; +class ReactionsModule : public Module { + std::map reactionMap; +public: + ReactionsModule(Bot* creator, ModuleLoader* ml): Module(creator, ml) { + ml->attach({I_OnMessage}, this); + + std::ifstream f("resources/reactions.json"); + json reactions = json::parse(f); + + for(auto it = reactions.begin(); it != reactions.end(); it++) { + reactionMap.insert_or_assign(it.key(), reactions.value(it.key(), "")); + } + } + + virtual std::string version() { + return "0.1.0"; + } + + virtual std::string description() { + return "Auto-reactions based on keyword"; + } + virtual bool OnMessage(const dpp::message_create_t &message, const std::string& clean_message, bool mentioned, const std::vector &stringmentions) { + for (auto i = reactionMap.begin(); i != reactionMap.end(); i++) { + if (clean_message.find(i->first) != std::string::npos) { + bot->core->message_add_reaction(message.msg, i->second); + bot->core->log(dpp::ll_debug, "Adding reaction based on keyword"); + } + } + + return true; + } + +}; + + +ENTRYPOINT(ReactionsModule) \ No newline at end of file -- cgit v1.2.3