/* * Copyright (C) 2016+ AzerothCore , released under GNU GPL v2 license, you may redistribute it * and/or modify it under version 2 of the License, or (at your option), any later version. */ #ifndef _PLAYERBOT_EVENT_H #define _PLAYERBOT_EVENT_H #include "WorldPacket.h" class ObjectGuid; class Player; class Event { public: Event(Event const& other) : source(other.source), param(other.param), packet(other.packet), owner(other.owner) {} Event() {} Event(std::string const source) : source(source) {} Event(std::string const source, std::string const param, Player* owner = nullptr) : source(source), param(param), owner(owner) { } Event(std::string const source, WorldPacket& packet, Player* owner = nullptr) : source(source), packet(packet), owner(owner) { } Event(std::string const source, ObjectGuid object, Player* owner = nullptr); virtual ~Event() {} std::string const GetSource() { return source; } std::string const getParam() { return param; } WorldPacket& getPacket() { return packet; } ObjectGuid getObject(); Player* getOwner() { return owner; } bool operator!() const { return source.empty(); } protected: std::string source; std::string param; WorldPacket packet; Player* owner = nullptr; }; #endif