#pragma once namespace big { class player; using player_ptr = std::shared_ptr; class reaction { protected: void process_common(player_ptr player); public: bool announce_in_chat = false; bool notify = true; bool log = true; bool add_to_player_db = false; bool block_joins = false; bool kick = false; const char* m_event_name; const char* m_notify_message; const char* m_announce_message; NLOHMANN_DEFINE_TYPE_INTRUSIVE(reaction, announce_in_chat, notify, log, add_to_player_db, block_joins, kick) reaction(const char* event_name, const char* notify_message, const char* announce_message); virtual void process(player_ptr player); }; }