#pragma once // 4J Stu - Based loosely on the Java versions #include "CommandsEnum.h" #include "ChatPacket.h" class AdminLogCommand; class CommandSender; class ServerPlayer; class Command { private: static AdminLogCommand *logger; public: virtual EGameCommand getId() = 0; virtual void execute(shared_ptr source, byteArray commandData) = 0; virtual bool canExecute(shared_ptr source); static void logAdminAction(shared_ptr source, ChatPacket::EChatPacketMessage messageType, const wstring& message = L"", int customData = -1, const wstring& additionalMessage = L""); static void logAdminAction(shared_ptr source, int type, ChatPacket::EChatPacketMessage messageType, const wstring& message = L"", int customData = -1, const wstring& additionalMessage = L""); static void setLogger(AdminLogCommand *logger); protected: shared_ptr getPlayer(PlayerUID playerId); };