www.pudn.com > wow.rar > ChatHandler.h


//////////////////////////////////////////////////////////////////////
//  ChatHandler
//
//  Receives all messages with a chat-related opcode.
//////////////////////////////////////////////////////////////////////
#ifndef WOWPYTHONSERVER_CHAT_H
#define WOWPYTHONSERVER_CHAT_H

#include "MsgHandler.h"

class ChatHandler;
class GameClient;
class Character;
class Unit; 
class ChatHandler; 

class ChatCommand 
{ 
 
public: 
	const char *       Name; 
    uint16             SecurityLevel; 
    bool (ChatHandler::*Handler)(uint8* args) ; 
    std::string        Help; 
    ChatCommand *      ChildCommands; 
 
	ChatCommand(){}; 
	~ChatCommand(){}; 
 
	void setValues(const char * nme,  
		           uint16 sl,  
				   bool (ChatHandler::*hnd)(uint8* args),  
				   std::string hlp,  
				   ChatCommand * cc) 
	{  
		Name=nme;	 
		SecurityLevel=sl;  
		Handler=hnd; Help=hlp;  
		ChildCommands=cc;  
	}; 
 
 
}; 

class ChatHandler : public MsgHandler
{ 

public:
    ChatHandler(){};
    ~ChatHandler(){};

    void HandleMsg( wowWData & recv_data, GameClient *pClient );

    void FillMessageData( wowWData *data, uint8 type, GameClient *pClient, uint8 *text );
    void SpawnCreature(GameClient *pClient, char* pName, uint32 display_id, uint32 npcFlags, uint32 faction_id, uint32 level);
    void smsg_NewWorld(GameClient *pClient, uint16 c, float x, float y, float z);
    void MovePlayer(GameClient *pClient, float x, float y, float z); 
     
	ChatCommand * ChatHandler::LoadHelp(bool load); 
	
protected: 
 
    bool hasStringAbbr(const char* s1, const char* s2);
    void SendMultilineMessage(const char *str);

    int ParseCommands(uint8* textCompare, uint16 text_length);
    bool ExecuteCommandInTable(ChatCommand *table, uint8* text);
    bool ShowHelpForCommand(ChatCommand *table, const char* cmd);

    // Level 0 commands
    bool HandleHelpCommand(uint8* args);
    bool HandleCommandsCommand(uint8* args);
    bool HandleNYICommand(uint8* args);
    bool HandleAcctCommand(uint8* args);
    bool HandleGMLoginCommand(uint8* args);
    bool HandleStartCommand(uint8* args);
    bool HandleInfoCommand(uint8* args);
    bool HandleMountCommand(uint8* args);
    bool HandleDismountCommand(uint8* args);
    bool HandleSaveCommand(uint8* args);
    bool HandleGMListCommand(uint8* args); 
	bool HandleGMPassCommand(uint8* args);				//LINA

    // Level 1 commands
    bool HandleSummonCommand(uint8* args);
    bool HandleAppearCommand(uint8* args);
    bool HandleRecallCommand(uint8* args);
    bool HandleAnnounceCommand(uint8* args);
    bool HandleKickCommand(uint8* args);
    bool HandleGMOnCommand(uint8* args);
    bool HandleGMOffCommand(uint8* args);
    bool HandleGPSCommand(uint8* args); 
	bool HandleSaveAllCommand(uint8* args); //LINA
    bool HandleModifyHPCommand(uint8* args);
    bool HandleModifyManaCommand(uint8* args);
    bool HandleModifyLevelCommand(uint8* args);
    bool HandleModifyGoldCommand(uint8* args);
    bool HandleModifySpeedCommand(uint8* args);
    bool HandleModifyScaleCommand(uint8* args);
    bool HandleModifyMountCommand(uint8* args); 
	bool HandleModifyWaterSpeedCommand(uint8* args);

   /* // Level 2 commands
    bool HandleGUIDCommand(uint8* args);
    bool HandleNameCommand(uint8* args);
    bool HandleProgCommand(uint8* args);
    bool HandleItemMoveCommand(uint8* args);
    bool HandleSpawnCommand(uint8* args);
    bool HandleDeleteCommand(uint8* args);
    bool HandleSpellCommand(uint8* args);
    bool HandleSpawnTaxiCommand(uint8* args);
    bool HandleItemCommand(uint8* args);
    bool HandleAddMoveCommand(uint8* args);
    bool HandleRandomCommand(uint8* args);
    bool HandleRunCommand(uint8* args);
    bool HandleChangeLevelCommand(uint8* args);
    bool HandleNPCFlagCommand(uint8* args);
    bool HandleDisplayIdCommand(uint8* args);
    bool HandleFactionIdCommand(uint8* args); 
	bool HandleRemoveSpellCommand(uint8* args); 
	bool HandleRemoveItemCommand(uint8* args); 
	bool HandleAggressiveCommand(uint8* args); */ 
 
	// Level 2 commands  
    bool HandleGUIDCommand(uint8* args);  
    bool HandleNameCommand(uint8* args);  
    bool HandleProgCommand(uint8* args);  
    bool HandleItemMoveCommand(uint8* args);  
    bool HandleSpawnCommand(uint8* args);  
    bool HandleDeleteCommand(uint8* args);  
    bool HandleSpellCommand(uint8* args);  
    bool HandleSpawnTaxiCommand(uint8* args);  
    bool HandleItemCommand(uint8* args);  
    bool HandleAddMoveCommand(uint8* args);  
    bool HandleRandomCommand(uint8* args);  
    bool HandleRunCommand(uint8* args);  
    bool HandleChangeLevelCommand(uint8* args);  
    bool HandleNPCFlagCommand(uint8* args);  
    bool HandleDisplayIdCommand(uint8* args);  
    bool HandleFactionIdCommand(uint8* args);  
    bool HandleRemoveSpellCommand(uint8* args);  
    bool HandleRemoveItemCommand(uint8* args);  
    bool HandleAggressiveCommand(uint8* args);  
    bool HandleNPCScaleCommand(uint8* args);//THE_WIZARD  
    bool HandleNPChpminCommand(uint8* args);//THE_WIZARD  
    bool HandleNPChpmaxCommand(uint8* args);//THE_WIZARD
	bool HandleTalantPointsCommand(uint8* args);//THE_WIZARD 

    // Level 3 commands
    bool HandleSecurityCommand(uint8* args);
    bool HandleWorldPortCommand(uint8* args);
    bool HandleAddSpiritCommand(uint8* args);
    bool HandleMoveCommand(uint8* args);
    bool HandleLearnCommand(uint8* args);
    bool HandleAnimFreqCommand(uint8* args);
    bool HandleStandStateCommand(uint8* args);
    bool HandleDieCommand(uint8* args);
	bool HandleReviveCommand(uint8* args); 
    bool HandleMorphCommand(uint8* args);
    bool HandleAuraCommand(uint8* args); 
	bool HandleUnBanCommand(uint8* args); //LINA 
	bool HandleBanCommand(uint8* args); //LINA 
	bool HandleUpdateCommand(uint8* args); 
	bool HandleIsleCommand(uint8* args);//LINA

 
	//START OF LINA COMMAND BY PTR PATCH 1.3 
	int32 ChatHandler::TestValue(const float Value, const float max, const float min); 
	int32 ChatHandler::TestValue(const uint32 Value, const uint32 max, const uint32 min); 
	void ChatHandler::ChangeSelectedChar(const uint16 &index, const uint32 Value, const uint32 max, const uint32 min, char * nom); 
	void ChatHandler::ChangeSelectedChar(const uint16 &index, const float Value, const float max, const float min, char * nom); 
	void ChatHandler::ChangeSelectedCharMsg(const uint16 &index, const float Value, const float max, const float min, char * nom); 
	void ChatHandler::ChangeSelectedCharMsg(const uint16 &index, const uint32 Value, const uint32 max, const uint32 min, char * nom); 
	void ChatHandler::Message(Character * pChar, char * nom, const float Value); 
	void ChatHandler::Message(Character * pChar, char * nom, const uint32 Value); 
	void ChatHandler::Message(Character * pChar, char * nom); 
 
	Character * ChatHandler::getCurrentCharByName(uint8 * pName); 
	Character * ChatHandler::getSelectedChar(); 
	 
	Unit * ChatHandler::getSelectedNPC(); 
	void ChatHandler::ChangeSelectedNPC(const uint16 &index, const uint32 Value, const uint32 max, const uint32 min); 
	//END OF LINA COMMAND BY PTR PATCH 1.3

    void GenCreature(GameClient *pClient, uint32 StartId, uint32 EndId , uint32 StepId ); //ELECTRIX ADD
    GameClient *m_pClient;
};


#endif