mirror of
https://github.com/mangosfour/server.git
synced 2026-01-01 16:37:12 +00:00
* [2008_10_21_01_mangos_mangos_string.sql,2008_10_21_02_mangos_command.sql] Merge CLI command proccessing to chat command proccessing.
Now console/RA uas same commads as used in chat if selected command marked as safe for console. Some commands accessable only at console and have security level 4. See sql update for new command names. Not all commands that safe (or can be modified to safe) for console allowed currently for use in console input, this will be fixed later.
This commit is contained in:
parent
c9026395fc
commit
26dc8c07ab
19 changed files with 1216 additions and 1549 deletions
|
|
@ -36,436 +36,467 @@ bool ChatHandler::load_command_table = true;
|
|||
|
||||
ChatCommand * ChatHandler::getCommandTable()
|
||||
{
|
||||
static ChatCommand accountSetCommandTable[] =
|
||||
{
|
||||
{ "addon", SEC_ADMINISTRATOR, true, &ChatHandler::HandleAccountSetAddonCommand, "", NULL },
|
||||
{ "gmlevel", SEC_CONSOLE, true, &ChatHandler::HandleAccountSetGmLevelCommand, "", NULL },
|
||||
{ "password", SEC_CONSOLE, true, &ChatHandler::HandleAccountSetPasswordCommand, "", NULL },
|
||||
{ NULL, 0, false, NULL, "", NULL }
|
||||
};
|
||||
|
||||
static ChatCommand accountCommandTable[] =
|
||||
{
|
||||
{ "create", SEC_CONSOLE, true, &ChatHandler::HandleAccountCreateCommand, "", NULL },
|
||||
{ "delete", SEC_CONSOLE, true, &ChatHandler::HandleAccountDeleteCommand, "", NULL },
|
||||
{ "onlinelist", SEC_CONSOLE, true, &ChatHandler::HandleAccountOnlineListCommand, "", NULL },
|
||||
{ "set", SEC_ADMINISTRATOR, true, NULL, "", accountSetCommandTable },
|
||||
{ "", SEC_PLAYER, true, &ChatHandler::HandleAccountCommand, "", NULL },
|
||||
{ NULL, 0, false, NULL, "", NULL }
|
||||
};
|
||||
|
||||
static ChatCommand serverSetCommandTable[] =
|
||||
{
|
||||
{ "loglevel", SEC_CONSOLE, true, &ChatHandler::HandleServerSetLogLevelCommand, "", NULL },
|
||||
{ "motd", SEC_ADMINISTRATOR, true, &ChatHandler::HandleServerSetMotdCommand, "", NULL },
|
||||
{ NULL, 0, false, NULL, "", NULL }
|
||||
};
|
||||
|
||||
static ChatCommand serverCommandTable[] =
|
||||
{
|
||||
{ "idlerestart", SEC_ADMINISTRATOR, &ChatHandler::HandleIdleRestartCommand, "", NULL },
|
||||
{ "idleshutdown", SEC_ADMINISTRATOR, &ChatHandler::HandleIdleShutDownCommand, "", NULL },
|
||||
{ "info", SEC_PLAYER, &ChatHandler::HandleInfoCommand, "", NULL },
|
||||
{ "restart", SEC_ADMINISTRATOR, &ChatHandler::HandleRestartCommand, "", NULL },
|
||||
{ "shutdown", SEC_ADMINISTRATOR, &ChatHandler::HandleShutDownCommand, "", NULL },
|
||||
{ NULL, 0, NULL, "", NULL }
|
||||
{ "corpses", SEC_GAMEMASTER, true, &ChatHandler::HandleServerCorpsesCommand, "", NULL },
|
||||
{ "exit", SEC_CONSOLE, true, &ChatHandler::HandleServerExitCommand, "", NULL },
|
||||
{ "idlerestart", SEC_ADMINISTRATOR, true, &ChatHandler::HandleIdleRestartCommand, "", NULL },
|
||||
{ "idleshutdown", SEC_ADMINISTRATOR, true, &ChatHandler::HandleIdleShutDownCommand, "", NULL },
|
||||
{ "info", SEC_PLAYER, true, &ChatHandler::HandleInfoCommand, "", NULL },
|
||||
{ "motd", SEC_PLAYER, true, &ChatHandler::HandleServerMotdCommand, "", NULL },
|
||||
{ "restart", SEC_ADMINISTRATOR, true, &ChatHandler::HandleRestartCommand, "", NULL },
|
||||
{ "shutdown", SEC_ADMINISTRATOR, true, &ChatHandler::HandleShutDownCommand, "", NULL },
|
||||
{ "set", SEC_ADMINISTRATOR, true, NULL, "", serverSetCommandTable },
|
||||
{ NULL, 0, false, NULL, "", NULL }
|
||||
};
|
||||
|
||||
static ChatCommand modifyCommandTable[] =
|
||||
{
|
||||
{ "hp", SEC_MODERATOR, &ChatHandler::HandleModifyHPCommand, "", NULL },
|
||||
{ "mana", SEC_MODERATOR, &ChatHandler::HandleModifyManaCommand, "", NULL },
|
||||
{ "rage", SEC_MODERATOR, &ChatHandler::HandleModifyRageCommand, "", NULL },
|
||||
{ "energy", SEC_MODERATOR, &ChatHandler::HandleModifyEnergyCommand, "", NULL },
|
||||
{ "money", SEC_MODERATOR, &ChatHandler::HandleModifyMoneyCommand, "", NULL },
|
||||
{ "speed", SEC_MODERATOR, &ChatHandler::HandleModifySpeedCommand, "", NULL },
|
||||
{ "swim", SEC_MODERATOR, &ChatHandler::HandleModifySwimCommand, "", NULL },
|
||||
{ "scale", SEC_MODERATOR, &ChatHandler::HandleModifyScaleCommand, "", NULL },
|
||||
{ "bit", SEC_MODERATOR, &ChatHandler::HandleModifyBitCommand, "", NULL },
|
||||
{ "bwalk", SEC_MODERATOR, &ChatHandler::HandleModifyBWalkCommand, "", NULL },
|
||||
{ "fly", SEC_MODERATOR, &ChatHandler::HandleModifyFlyCommand, "", NULL },
|
||||
{ "aspeed", SEC_MODERATOR, &ChatHandler::HandleModifyASpeedCommand, "", NULL },
|
||||
{ "faction", SEC_MODERATOR, &ChatHandler::HandleModifyFactionCommand, "", NULL },
|
||||
{ "spell", SEC_MODERATOR, &ChatHandler::HandleModifySpellCommand, "", NULL },
|
||||
{ "tp", SEC_MODERATOR, &ChatHandler::HandleModifyTalentCommand, "", NULL },
|
||||
{ "titles", SEC_MODERATOR, &ChatHandler::HandleModifyKnownTitlesCommand, "", NULL },
|
||||
{ "mount", SEC_MODERATOR, &ChatHandler::HandleModifyMountCommand, "", NULL },
|
||||
{ "honor", SEC_MODERATOR, &ChatHandler::HandleModifyHonorCommand, "", NULL },
|
||||
{ "rep", SEC_MODERATOR, &ChatHandler::HandleModifyRepCommand, "", NULL },
|
||||
{ "arena", SEC_MODERATOR, &ChatHandler::HandleModifyArenaCommand, "", NULL },
|
||||
{ "drunk", SEC_MODERATOR, &ChatHandler::HandleDrunkCommand, "", NULL },
|
||||
{ "standstate", SEC_GAMEMASTER, &ChatHandler::HandleStandStateCommand, "", NULL },
|
||||
{ "morph", SEC_GAMEMASTER, &ChatHandler::HandleMorphCommand, "", NULL },
|
||||
{ NULL, 0, NULL, "", NULL }
|
||||
{ "hp", SEC_MODERATOR, false, &ChatHandler::HandleModifyHPCommand, "", NULL },
|
||||
{ "mana", SEC_MODERATOR, false, &ChatHandler::HandleModifyManaCommand, "", NULL },
|
||||
{ "rage", SEC_MODERATOR, false, &ChatHandler::HandleModifyRageCommand, "", NULL },
|
||||
{ "energy", SEC_MODERATOR, false, &ChatHandler::HandleModifyEnergyCommand, "", NULL },
|
||||
{ "money", SEC_MODERATOR, false, &ChatHandler::HandleModifyMoneyCommand, "", NULL },
|
||||
{ "speed", SEC_MODERATOR, false, &ChatHandler::HandleModifySpeedCommand, "", NULL },
|
||||
{ "swim", SEC_MODERATOR, false, &ChatHandler::HandleModifySwimCommand, "", NULL },
|
||||
{ "scale", SEC_MODERATOR, false, &ChatHandler::HandleModifyScaleCommand, "", NULL },
|
||||
{ "bit", SEC_MODERATOR, false, &ChatHandler::HandleModifyBitCommand, "", NULL },
|
||||
{ "bwalk", SEC_MODERATOR, false, &ChatHandler::HandleModifyBWalkCommand, "", NULL },
|
||||
{ "fly", SEC_MODERATOR, false, &ChatHandler::HandleModifyFlyCommand, "", NULL },
|
||||
{ "aspeed", SEC_MODERATOR, false, &ChatHandler::HandleModifyASpeedCommand, "", NULL },
|
||||
{ "faction", SEC_MODERATOR, false, &ChatHandler::HandleModifyFactionCommand, "", NULL },
|
||||
{ "spell", SEC_MODERATOR, false, &ChatHandler::HandleModifySpellCommand, "", NULL },
|
||||
{ "tp", SEC_MODERATOR, false, &ChatHandler::HandleModifyTalentCommand, "", NULL },
|
||||
{ "titles", SEC_MODERATOR, false, &ChatHandler::HandleModifyKnownTitlesCommand, "", NULL },
|
||||
{ "mount", SEC_MODERATOR, false, &ChatHandler::HandleModifyMountCommand, "", NULL },
|
||||
{ "honor", SEC_MODERATOR, false, &ChatHandler::HandleModifyHonorCommand, "", NULL },
|
||||
{ "rep", SEC_MODERATOR, false, &ChatHandler::HandleModifyRepCommand, "", NULL },
|
||||
{ "arena", SEC_MODERATOR, false, &ChatHandler::HandleModifyArenaCommand, "", NULL },
|
||||
{ "drunk", SEC_MODERATOR, false, &ChatHandler::HandleDrunkCommand, "", NULL },
|
||||
{ "standstate", SEC_GAMEMASTER, false, &ChatHandler::HandleStandStateCommand, "", NULL },
|
||||
{ "morph", SEC_GAMEMASTER, false, &ChatHandler::HandleMorphCommand, "", NULL },
|
||||
{ NULL, 0, false, NULL, "", NULL }
|
||||
};
|
||||
|
||||
static ChatCommand wpCommandTable[] =
|
||||
{
|
||||
{ "show", SEC_GAMEMASTER, &ChatHandler::HandleWpShowCommand, "", NULL },
|
||||
{ "add", SEC_GAMEMASTER, &ChatHandler::HandleWpAddCommand, "", NULL },
|
||||
{ "modify", SEC_GAMEMASTER, &ChatHandler::HandleWpModifyCommand, "", NULL },
|
||||
{ "export", SEC_ADMINISTRATOR, &ChatHandler::HandleWpExportCommand, "", NULL },
|
||||
{ "import", SEC_ADMINISTRATOR, &ChatHandler::HandleWpImportCommand, "", NULL },
|
||||
{ NULL, 0, NULL, "", NULL }
|
||||
{ "show", SEC_GAMEMASTER, false, &ChatHandler::HandleWpShowCommand, "", NULL },
|
||||
{ "add", SEC_GAMEMASTER, false, &ChatHandler::HandleWpAddCommand, "", NULL },
|
||||
{ "modify", SEC_GAMEMASTER, false, &ChatHandler::HandleWpModifyCommand, "", NULL },
|
||||
{ "export", SEC_ADMINISTRATOR, false, &ChatHandler::HandleWpExportCommand, "", NULL },
|
||||
{ "import", SEC_ADMINISTRATOR, false, &ChatHandler::HandleWpImportCommand, "", NULL },
|
||||
{ NULL, 0, false, NULL, "", NULL }
|
||||
};
|
||||
|
||||
static ChatCommand debugCommandTable[] =
|
||||
{
|
||||
{ "inarc", SEC_ADMINISTRATOR, &ChatHandler::HandleDebugInArcCommand, "", NULL },
|
||||
{ "spellfail", SEC_ADMINISTRATOR, &ChatHandler::HandleDebugSpellFailCommand, "", NULL },
|
||||
{ "setpoi", SEC_ADMINISTRATOR, &ChatHandler::HandleSetPoiCommand, "", NULL },
|
||||
{ "qpartymsg", SEC_ADMINISTRATOR, &ChatHandler::HandleSendQuestPartyMsgCommand, "", NULL },
|
||||
{ "qinvalidmsg", SEC_ADMINISTRATOR, &ChatHandler::HandleSendQuestInvalidMsgCommand, "", NULL },
|
||||
{ "equiperr", SEC_ADMINISTRATOR, &ChatHandler::HandleEquipErrorCommand, "", NULL },
|
||||
{ "sellerr", SEC_ADMINISTRATOR, &ChatHandler::HandleSellErrorCommand, "", NULL },
|
||||
{ "buyerr", SEC_ADMINISTRATOR, &ChatHandler::HandleBuyErrorCommand, "", NULL },
|
||||
{ "sendopcode", SEC_ADMINISTRATOR, &ChatHandler::HandleSendOpcodeCommand, "", NULL },
|
||||
{ "uws", SEC_ADMINISTRATOR, &ChatHandler::HandleUpdateWorldStateCommand, "", NULL },
|
||||
{ "ps", SEC_ADMINISTRATOR, &ChatHandler::HandlePlaySound2Command, "", NULL },
|
||||
{ "scn", SEC_ADMINISTRATOR, &ChatHandler::HandleSendChannelNotifyCommand, "", NULL },
|
||||
{ "scm", SEC_ADMINISTRATOR, &ChatHandler::HandleSendChatMsgCommand, "", NULL },
|
||||
{ "getitemstate", SEC_ADMINISTRATOR, &ChatHandler::HandleGetItemState, "", NULL },
|
||||
{ "playsound", SEC_MODERATOR, &ChatHandler::HandlePlaySoundCommand, "", NULL },
|
||||
{ "update", SEC_ADMINISTRATOR, &ChatHandler::HandleUpdate, "", NULL },
|
||||
{ "setvalue", SEC_ADMINISTRATOR, &ChatHandler::HandleSetValue, "", NULL },
|
||||
{ "getvalue", SEC_ADMINISTRATOR, &ChatHandler::HandleGetValue, "", NULL },
|
||||
{ "Mod32Value", SEC_ADMINISTRATOR, &ChatHandler::HandleMod32Value, "", NULL },
|
||||
{ "anim", SEC_GAMEMASTER, &ChatHandler::HandleAnimCommand, "", NULL },
|
||||
{ "lootrecipient", SEC_GAMEMASTER, &ChatHandler::HandleGetLootRecipient, "", NULL },
|
||||
{ NULL, 0, NULL, "", NULL }
|
||||
{ "inarc", SEC_ADMINISTRATOR, false, &ChatHandler::HandleDebugInArcCommand, "", NULL },
|
||||
{ "spellfail", SEC_ADMINISTRATOR, false, &ChatHandler::HandleDebugSpellFailCommand, "", NULL },
|
||||
{ "setpoi", SEC_ADMINISTRATOR, false, &ChatHandler::HandleSetPoiCommand, "", NULL },
|
||||
{ "qpartymsg", SEC_ADMINISTRATOR, false, &ChatHandler::HandleSendQuestPartyMsgCommand, "", NULL },
|
||||
{ "qinvalidmsg", SEC_ADMINISTRATOR, false, &ChatHandler::HandleSendQuestInvalidMsgCommand, "", NULL },
|
||||
{ "equiperr", SEC_ADMINISTRATOR, false, &ChatHandler::HandleEquipErrorCommand, "", NULL },
|
||||
{ "sellerr", SEC_ADMINISTRATOR, false, &ChatHandler::HandleSellErrorCommand, "", NULL },
|
||||
{ "buyerr", SEC_ADMINISTRATOR, false, &ChatHandler::HandleBuyErrorCommand, "", NULL },
|
||||
{ "sendopcode", SEC_ADMINISTRATOR, false, &ChatHandler::HandleSendOpcodeCommand, "", NULL },
|
||||
{ "uws", SEC_ADMINISTRATOR, false, &ChatHandler::HandleUpdateWorldStateCommand, "", NULL },
|
||||
{ "ps", SEC_ADMINISTRATOR, false, &ChatHandler::HandlePlaySound2Command, "", NULL },
|
||||
{ "scn", SEC_ADMINISTRATOR, false, &ChatHandler::HandleSendChannelNotifyCommand, "", NULL },
|
||||
{ "scm", SEC_ADMINISTRATOR, false, &ChatHandler::HandleSendChatMsgCommand, "", NULL },
|
||||
{ "getitemstate", SEC_ADMINISTRATOR, false, &ChatHandler::HandleGetItemState, "", NULL },
|
||||
{ "playsound", SEC_MODERATOR, false, &ChatHandler::HandlePlaySoundCommand, "", NULL },
|
||||
{ "update", SEC_ADMINISTRATOR, false, &ChatHandler::HandleUpdate, "", NULL },
|
||||
{ "setvalue", SEC_ADMINISTRATOR, false, &ChatHandler::HandleSetValue, "", NULL },
|
||||
{ "getvalue", SEC_ADMINISTRATOR, false, &ChatHandler::HandleGetValue, "", NULL },
|
||||
{ "Mod32Value", SEC_ADMINISTRATOR, false, &ChatHandler::HandleMod32Value, "", NULL },
|
||||
{ "anim", SEC_GAMEMASTER, false, &ChatHandler::HandleAnimCommand, "", NULL },
|
||||
{ "lootrecipient", SEC_GAMEMASTER, false, &ChatHandler::HandleGetLootRecipient, "", NULL },
|
||||
{ NULL, 0, false, NULL, "", NULL }
|
||||
};
|
||||
|
||||
static ChatCommand eventCommandTable[] =
|
||||
{
|
||||
{ "activelist", SEC_GAMEMASTER, &ChatHandler::HandleEventActiveListCommand, "", NULL },
|
||||
{ "start", SEC_GAMEMASTER, &ChatHandler::HandleEventStartCommand, "", NULL },
|
||||
{ "stop", SEC_GAMEMASTER, &ChatHandler::HandleEventStopCommand, "", NULL },
|
||||
{ "", SEC_GAMEMASTER, &ChatHandler::HandleEventInfoCommand, "", NULL },
|
||||
{ NULL, 0, NULL, "", NULL }
|
||||
{ "activelist", SEC_GAMEMASTER, false, &ChatHandler::HandleEventActiveListCommand, "", NULL },
|
||||
{ "start", SEC_GAMEMASTER, false, &ChatHandler::HandleEventStartCommand, "", NULL },
|
||||
{ "stop", SEC_GAMEMASTER, false, &ChatHandler::HandleEventStopCommand, "", NULL },
|
||||
{ "", SEC_GAMEMASTER, false, &ChatHandler::HandleEventInfoCommand, "", NULL },
|
||||
{ NULL, 0, false, NULL, "", NULL }
|
||||
};
|
||||
|
||||
static ChatCommand learnCommandTable[] =
|
||||
{
|
||||
{ "all", SEC_ADMINISTRATOR, &ChatHandler::HandleLearnAllCommand, "", NULL },
|
||||
{ "all_gm", SEC_GAMEMASTER, &ChatHandler::HandleLearnAllGMCommand, "", NULL },
|
||||
{ "all_crafts", SEC_GAMEMASTER, &ChatHandler::HandleLearnAllCraftsCommand, "", NULL },
|
||||
{ "all_default", SEC_MODERATOR, &ChatHandler::HandleLearnAllDefaultCommand, "", NULL },
|
||||
{ "all_lang", SEC_MODERATOR, &ChatHandler::HandleLearnAllLangCommand, "", NULL },
|
||||
{ "all_myclass", SEC_ADMINISTRATOR, &ChatHandler::HandleLearnAllMyClassCommand, "", NULL },
|
||||
{ "all_myspells", SEC_ADMINISTRATOR, &ChatHandler::HandleLearnAllMySpellsCommand, "", NULL },
|
||||
{ "all_mytalents", SEC_ADMINISTRATOR, &ChatHandler::HandleLearnAllMyTalentsCommand, "", NULL },
|
||||
{ "all_recipes", SEC_GAMEMASTER, &ChatHandler::HandleLearnAllRecipesCommand, "", NULL },
|
||||
{ "", SEC_ADMINISTRATOR, &ChatHandler::HandleLearnCommand, "", NULL },
|
||||
{ NULL, 0, NULL, "", NULL }
|
||||
{ "all", SEC_ADMINISTRATOR, false, &ChatHandler::HandleLearnAllCommand, "", NULL },
|
||||
{ "all_gm", SEC_GAMEMASTER, false, &ChatHandler::HandleLearnAllGMCommand, "", NULL },
|
||||
{ "all_crafts", SEC_GAMEMASTER, false, &ChatHandler::HandleLearnAllCraftsCommand, "", NULL },
|
||||
{ "all_default", SEC_MODERATOR, false, &ChatHandler::HandleLearnAllDefaultCommand, "", NULL },
|
||||
{ "all_lang", SEC_MODERATOR, false, &ChatHandler::HandleLearnAllLangCommand, "", NULL },
|
||||
{ "all_myclass", SEC_ADMINISTRATOR, false, &ChatHandler::HandleLearnAllMyClassCommand, "", NULL },
|
||||
{ "all_myspells", SEC_ADMINISTRATOR, false, &ChatHandler::HandleLearnAllMySpellsCommand, "", NULL },
|
||||
{ "all_mytalents", SEC_ADMINISTRATOR, false, &ChatHandler::HandleLearnAllMyTalentsCommand, "", NULL },
|
||||
{ "all_recipes", SEC_GAMEMASTER, false, &ChatHandler::HandleLearnAllRecipesCommand, "", NULL },
|
||||
{ "", SEC_ADMINISTRATOR, false, &ChatHandler::HandleLearnCommand, "", NULL },
|
||||
{ NULL, 0, false, NULL, "", NULL }
|
||||
};
|
||||
|
||||
static ChatCommand reloadCommandTable[] =
|
||||
{
|
||||
{ "all", SEC_ADMINISTRATOR, &ChatHandler::HandleReloadAllCommand, "", NULL },
|
||||
{ "all_loot", SEC_ADMINISTRATOR, &ChatHandler::HandleReloadAllLootCommand, "", NULL },
|
||||
{ "all_npc", SEC_ADMINISTRATOR, &ChatHandler::HandleReloadAllNpcCommand, "", NULL },
|
||||
{ "all_quest", SEC_ADMINISTRATOR, &ChatHandler::HandleReloadAllQuestCommand, "", NULL },
|
||||
{ "all_scripts", SEC_ADMINISTRATOR, &ChatHandler::HandleReloadAllScriptsCommand, "", NULL },
|
||||
{ "all_spell", SEC_ADMINISTRATOR, &ChatHandler::HandleReloadAllSpellCommand, "", NULL },
|
||||
{ "all_item", SEC_ADMINISTRATOR, &ChatHandler::HandleReloadAllItemCommand, "", NULL },
|
||||
{ "all_locales", SEC_ADMINISTRATOR, &ChatHandler::HandleReloadAllLocalesCommand, "", NULL },
|
||||
{ "all", SEC_ADMINISTRATOR, false, &ChatHandler::HandleReloadAllCommand, "", NULL },
|
||||
{ "all_loot", SEC_ADMINISTRATOR, false, &ChatHandler::HandleReloadAllLootCommand, "", NULL },
|
||||
{ "all_npc", SEC_ADMINISTRATOR, false, &ChatHandler::HandleReloadAllNpcCommand, "", NULL },
|
||||
{ "all_quest", SEC_ADMINISTRATOR, false, &ChatHandler::HandleReloadAllQuestCommand, "", NULL },
|
||||
{ "all_scripts", SEC_ADMINISTRATOR, false, &ChatHandler::HandleReloadAllScriptsCommand, "", NULL },
|
||||
{ "all_spell", SEC_ADMINISTRATOR, false, &ChatHandler::HandleReloadAllSpellCommand, "", NULL },
|
||||
{ "all_item", SEC_ADMINISTRATOR, false, &ChatHandler::HandleReloadAllItemCommand, "", NULL },
|
||||
{ "all_locales", SEC_ADMINISTRATOR, false, &ChatHandler::HandleReloadAllLocalesCommand, "", NULL },
|
||||
|
||||
{ "config", SEC_ADMINISTRATOR, &ChatHandler::HandleReloadConfigCommand, "", NULL },
|
||||
{ "config", SEC_ADMINISTRATOR, false, &ChatHandler::HandleReloadConfigCommand, "", NULL },
|
||||
|
||||
{ "areatrigger_tavern", SEC_ADMINISTRATOR, &ChatHandler::HandleReloadAreaTriggerTavernCommand, "", NULL },
|
||||
{ "areatrigger_teleport", SEC_ADMINISTRATOR, &ChatHandler::HandleReloadAreaTriggerTeleportCommand, "", NULL },
|
||||
{ "areatrigger_involvedrelation",SEC_ADMINISTRATOR, &ChatHandler::HandleReloadQuestAreaTriggersCommand, "", NULL },
|
||||
{ "event_scripts", SEC_ADMINISTRATOR, &ChatHandler::HandleReloadEventScriptsCommand, "", NULL },
|
||||
{ "command", SEC_ADMINISTRATOR, &ChatHandler::HandleReloadCommandCommand, "", NULL },
|
||||
{ "creature_involvedrelation", SEC_ADMINISTRATOR, &ChatHandler::HandleReloadCreatureQuestInvRelationsCommand,"",NULL },
|
||||
{ "creature_loot_template", SEC_ADMINISTRATOR, &ChatHandler::HandleReloadLootTemplatesCreatureCommand, "", NULL },
|
||||
{ "creature_questrelation", SEC_ADMINISTRATOR, &ChatHandler::HandleReloadCreatureQuestRelationsCommand, "", NULL },
|
||||
{ "disenchant_loot_template", SEC_ADMINISTRATOR, &ChatHandler::HandleReloadLootTemplatesDisenchantCommand, "", NULL },
|
||||
{ "fishing_loot_template", SEC_ADMINISTRATOR, &ChatHandler::HandleReloadLootTemplatesFishingCommand, "", NULL },
|
||||
{ "game_graveyard_zone", SEC_ADMINISTRATOR, &ChatHandler::HandleReloadGameGraveyardZoneCommand, "", NULL },
|
||||
{ "game_tele", SEC_ADMINISTRATOR, &ChatHandler::HandleReloadGameTeleCommand, "", NULL },
|
||||
{ "gameobject_involvedrelation", SEC_ADMINISTRATOR, &ChatHandler::HandleReloadGOQuestInvRelationsCommand, "", NULL },
|
||||
{ "gameobject_loot_template", SEC_ADMINISTRATOR, &ChatHandler::HandleReloadLootTemplatesGameobjectCommand, "", NULL },
|
||||
{ "gameobject_questrelation", SEC_ADMINISTRATOR, &ChatHandler::HandleReloadGOQuestRelationsCommand, "", NULL },
|
||||
{ "gameobject_scripts", SEC_ADMINISTRATOR, &ChatHandler::HandleReloadGameObjectScriptsCommand, "", NULL },
|
||||
{ "item_enchantment_template", SEC_ADMINISTRATOR, &ChatHandler::HandleReloadItemEnchantementsCommand, "", NULL },
|
||||
{ "item_loot_template", SEC_ADMINISTRATOR, &ChatHandler::HandleReloadLootTemplatesItemCommand, "", NULL },
|
||||
{ "mangos_string", SEC_ADMINISTRATOR, &ChatHandler::HandleReloadMangosStringCommand, "", NULL },
|
||||
{ "npc_gossip", SEC_ADMINISTRATOR, &ChatHandler::HandleReloadNpcGossipCommand, "", NULL },
|
||||
{ "npc_trainer", SEC_ADMINISTRATOR, &ChatHandler::HandleReloadNpcTrainerCommand, "", NULL },
|
||||
{ "npc_vendor", SEC_ADMINISTRATOR, &ChatHandler::HandleReloadNpcVendorCommand, "", NULL },
|
||||
{ "page_text", SEC_ADMINISTRATOR, &ChatHandler::HandleReloadPageTextsCommand, "", NULL },
|
||||
{ "pickpocketing_loot_template", SEC_ADMINISTRATOR, &ChatHandler::HandleReloadLootTemplatesPickpocketingCommand,"",NULL},
|
||||
{ "prospecting_loot_template", SEC_ADMINISTRATOR, &ChatHandler::HandleReloadLootTemplatesProspectingCommand,"", NULL },
|
||||
{ "quest_mail_loot_template", SEC_ADMINISTRATOR, &ChatHandler::HandleReloadLootTemplatesQuestMailCommand, "", NULL },
|
||||
{ "quest_end_scripts", SEC_ADMINISTRATOR, &ChatHandler::HandleReloadQuestEndScriptsCommand, "", NULL },
|
||||
{ "quest_start_scripts", SEC_ADMINISTRATOR, &ChatHandler::HandleReloadQuestStartScriptsCommand, "", NULL },
|
||||
{ "quest_template", SEC_ADMINISTRATOR, &ChatHandler::HandleReloadQuestTemplateCommand, "", NULL },
|
||||
{ "reference_loot_template", SEC_ADMINISTRATOR, &ChatHandler::HandleReloadLootTemplatesReferenceCommand, "", NULL },
|
||||
{ "reserved_name", SEC_ADMINISTRATOR, &ChatHandler::HandleReloadReservedNameCommand, "", NULL },
|
||||
{ "skill_discovery_template", SEC_ADMINISTRATOR, &ChatHandler::HandleReloadSkillDiscoveryTemplateCommand, "", NULL },
|
||||
{ "skill_extra_item_template", SEC_ADMINISTRATOR, &ChatHandler::HandleReloadSkillExtraItemTemplateCommand, "", NULL },
|
||||
{ "skill_fishing_base_level", SEC_ADMINISTRATOR, &ChatHandler::HandleReloadSkillFishingBaseLevelCommand, "", NULL },
|
||||
{ "skinning_loot_template", SEC_ADMINISTRATOR, &ChatHandler::HandleReloadLootTemplatesSkinningCommand, "", NULL },
|
||||
{ "spell_affect", SEC_ADMINISTRATOR, &ChatHandler::HandleReloadSpellAffectCommand, "", NULL },
|
||||
{ "spell_chain", SEC_ADMINISTRATOR, &ChatHandler::HandleReloadSpellChainCommand, "", NULL },
|
||||
{ "spell_elixir", SEC_ADMINISTRATOR, &ChatHandler::HandleReloadSpellElixirCommand, "", NULL },
|
||||
{ "spell_learn_spell", SEC_ADMINISTRATOR, &ChatHandler::HandleReloadSpellLearnSpellCommand, "", NULL },
|
||||
{ "spell_pet_auras", SEC_ADMINISTRATOR, &ChatHandler::HandleReloadSpellPetAurasCommand, "", NULL },
|
||||
{ "spell_proc_event", SEC_ADMINISTRATOR, &ChatHandler::HandleReloadSpellProcEventCommand, "", NULL },
|
||||
{ "spell_script_target", SEC_ADMINISTRATOR, &ChatHandler::HandleReloadSpellScriptTargetCommand, "", NULL },
|
||||
{ "spell_scripts", SEC_ADMINISTRATOR, &ChatHandler::HandleReloadSpellScriptsCommand, "", NULL },
|
||||
{ "spell_target_position", SEC_ADMINISTRATOR, &ChatHandler::HandleReloadSpellTargetPositionCommand, "", NULL },
|
||||
{ "spell_threats", SEC_ADMINISTRATOR, &ChatHandler::HandleReloadSpellThreatsCommand, "", NULL },
|
||||
{ "locales_creature", SEC_ADMINISTRATOR, &ChatHandler::HandleReloadLocalesCreatureCommand, "", NULL },
|
||||
{ "locales_gameobject", SEC_ADMINISTRATOR, &ChatHandler::HandleReloadLocalesGameobjectCommand, "", NULL },
|
||||
{ "locales_item", SEC_ADMINISTRATOR, &ChatHandler::HandleReloadLocalesItemCommand, "", NULL },
|
||||
{ "locales_npc_text", SEC_ADMINISTRATOR, &ChatHandler::HandleReloadLocalesNpcTextCommand, "", NULL },
|
||||
{ "locales_page_text", SEC_ADMINISTRATOR, &ChatHandler::HandleReloadLocalesPageTextCommand, "", NULL },
|
||||
{ "locales_quest", SEC_ADMINISTRATOR, &ChatHandler::HandleReloadLocalesQuestCommand, "", NULL },
|
||||
{ "areatrigger_tavern", SEC_ADMINISTRATOR, false, &ChatHandler::HandleReloadAreaTriggerTavernCommand, "", NULL },
|
||||
{ "areatrigger_teleport", SEC_ADMINISTRATOR, false, &ChatHandler::HandleReloadAreaTriggerTeleportCommand, "", NULL },
|
||||
{ "areatrigger_involvedrelation",SEC_ADMINISTRATOR, false, &ChatHandler::HandleReloadQuestAreaTriggersCommand, "", NULL },
|
||||
{ "event_scripts", SEC_ADMINISTRATOR, false, &ChatHandler::HandleReloadEventScriptsCommand, "", NULL },
|
||||
{ "command", SEC_ADMINISTRATOR, false, &ChatHandler::HandleReloadCommandCommand, "", NULL },
|
||||
{ "creature_involvedrelation", SEC_ADMINISTRATOR, false, &ChatHandler::HandleReloadCreatureQuestInvRelationsCommand,"",NULL },
|
||||
{ "creature_loot_template", SEC_ADMINISTRATOR, false, &ChatHandler::HandleReloadLootTemplatesCreatureCommand, "", NULL },
|
||||
{ "creature_questrelation", SEC_ADMINISTRATOR, false, &ChatHandler::HandleReloadCreatureQuestRelationsCommand, "", NULL },
|
||||
{ "disenchant_loot_template", SEC_ADMINISTRATOR, false, &ChatHandler::HandleReloadLootTemplatesDisenchantCommand, "", NULL },
|
||||
{ "fishing_loot_template", SEC_ADMINISTRATOR, false, &ChatHandler::HandleReloadLootTemplatesFishingCommand, "", NULL },
|
||||
{ "game_graveyard_zone", SEC_ADMINISTRATOR, false, &ChatHandler::HandleReloadGameGraveyardZoneCommand, "", NULL },
|
||||
{ "game_tele", SEC_ADMINISTRATOR, false, &ChatHandler::HandleReloadGameTeleCommand, "", NULL },
|
||||
{ "gameobject_involvedrelation", SEC_ADMINISTRATOR, false, &ChatHandler::HandleReloadGOQuestInvRelationsCommand, "", NULL },
|
||||
{ "gameobject_loot_template", SEC_ADMINISTRATOR, false, &ChatHandler::HandleReloadLootTemplatesGameobjectCommand, "", NULL },
|
||||
{ "gameobject_questrelation", SEC_ADMINISTRATOR, false, &ChatHandler::HandleReloadGOQuestRelationsCommand, "", NULL },
|
||||
{ "gameobject_scripts", SEC_ADMINISTRATOR, false, &ChatHandler::HandleReloadGameObjectScriptsCommand, "", NULL },
|
||||
{ "item_enchantment_template", SEC_ADMINISTRATOR, false, &ChatHandler::HandleReloadItemEnchantementsCommand, "", NULL },
|
||||
{ "item_loot_template", SEC_ADMINISTRATOR, false, &ChatHandler::HandleReloadLootTemplatesItemCommand, "", NULL },
|
||||
{ "mangos_string", SEC_ADMINISTRATOR, false, &ChatHandler::HandleReloadMangosStringCommand, "", NULL },
|
||||
{ "npc_gossip", SEC_ADMINISTRATOR, false, &ChatHandler::HandleReloadNpcGossipCommand, "", NULL },
|
||||
{ "npc_trainer", SEC_ADMINISTRATOR, false, &ChatHandler::HandleReloadNpcTrainerCommand, "", NULL },
|
||||
{ "npc_vendor", SEC_ADMINISTRATOR, false, &ChatHandler::HandleReloadNpcVendorCommand, "", NULL },
|
||||
{ "page_text", SEC_ADMINISTRATOR, false, &ChatHandler::HandleReloadPageTextsCommand, "", NULL },
|
||||
{ "pickpocketing_loot_template", SEC_ADMINISTRATOR, false, &ChatHandler::HandleReloadLootTemplatesPickpocketingCommand,"",NULL},
|
||||
{ "prospecting_loot_template", SEC_ADMINISTRATOR, false, &ChatHandler::HandleReloadLootTemplatesProspectingCommand,"", NULL },
|
||||
{ "quest_mail_loot_template", SEC_ADMINISTRATOR, false, &ChatHandler::HandleReloadLootTemplatesQuestMailCommand, "", NULL },
|
||||
{ "quest_end_scripts", SEC_ADMINISTRATOR, false, &ChatHandler::HandleReloadQuestEndScriptsCommand, "", NULL },
|
||||
{ "quest_start_scripts", SEC_ADMINISTRATOR, false, &ChatHandler::HandleReloadQuestStartScriptsCommand, "", NULL },
|
||||
{ "quest_template", SEC_ADMINISTRATOR, false, &ChatHandler::HandleReloadQuestTemplateCommand, "", NULL },
|
||||
{ "reference_loot_template", SEC_ADMINISTRATOR, false, &ChatHandler::HandleReloadLootTemplatesReferenceCommand, "", NULL },
|
||||
{ "reserved_name", SEC_ADMINISTRATOR, false, &ChatHandler::HandleReloadReservedNameCommand, "", NULL },
|
||||
{ "skill_discovery_template", SEC_ADMINISTRATOR, false, &ChatHandler::HandleReloadSkillDiscoveryTemplateCommand, "", NULL },
|
||||
{ "skill_extra_item_template", SEC_ADMINISTRATOR, false, &ChatHandler::HandleReloadSkillExtraItemTemplateCommand, "", NULL },
|
||||
{ "skill_fishing_base_level", SEC_ADMINISTRATOR, false, &ChatHandler::HandleReloadSkillFishingBaseLevelCommand, "", NULL },
|
||||
{ "skinning_loot_template", SEC_ADMINISTRATOR, false, &ChatHandler::HandleReloadLootTemplatesSkinningCommand, "", NULL },
|
||||
{ "spell_affect", SEC_ADMINISTRATOR, false, &ChatHandler::HandleReloadSpellAffectCommand, "", NULL },
|
||||
{ "spell_chain", SEC_ADMINISTRATOR, false, &ChatHandler::HandleReloadSpellChainCommand, "", NULL },
|
||||
{ "spell_elixir", SEC_ADMINISTRATOR, false, &ChatHandler::HandleReloadSpellElixirCommand, "", NULL },
|
||||
{ "spell_learn_spell", SEC_ADMINISTRATOR, false, &ChatHandler::HandleReloadSpellLearnSpellCommand, "", NULL },
|
||||
{ "spell_pet_auras", SEC_ADMINISTRATOR, false, &ChatHandler::HandleReloadSpellPetAurasCommand, "", NULL },
|
||||
{ "spell_proc_event", SEC_ADMINISTRATOR, false, &ChatHandler::HandleReloadSpellProcEventCommand, "", NULL },
|
||||
{ "spell_script_target", SEC_ADMINISTRATOR, false, &ChatHandler::HandleReloadSpellScriptTargetCommand, "", NULL },
|
||||
{ "spell_scripts", SEC_ADMINISTRATOR, false, &ChatHandler::HandleReloadSpellScriptsCommand, "", NULL },
|
||||
{ "spell_target_position", SEC_ADMINISTRATOR, false, &ChatHandler::HandleReloadSpellTargetPositionCommand, "", NULL },
|
||||
{ "spell_threats", SEC_ADMINISTRATOR, false, &ChatHandler::HandleReloadSpellThreatsCommand, "", NULL },
|
||||
{ "locales_creature", SEC_ADMINISTRATOR, false, &ChatHandler::HandleReloadLocalesCreatureCommand, "", NULL },
|
||||
{ "locales_gameobject", SEC_ADMINISTRATOR, false, &ChatHandler::HandleReloadLocalesGameobjectCommand, "", NULL },
|
||||
{ "locales_item", SEC_ADMINISTRATOR, false, &ChatHandler::HandleReloadLocalesItemCommand, "", NULL },
|
||||
{ "locales_npc_text", SEC_ADMINISTRATOR, false, &ChatHandler::HandleReloadLocalesNpcTextCommand, "", NULL },
|
||||
{ "locales_page_text", SEC_ADMINISTRATOR, false, &ChatHandler::HandleReloadLocalesPageTextCommand, "", NULL },
|
||||
{ "locales_quest", SEC_ADMINISTRATOR, false, &ChatHandler::HandleReloadLocalesQuestCommand, "", NULL },
|
||||
|
||||
{ "", SEC_ADMINISTRATOR, &ChatHandler::HandleReloadCommand, "", NULL },
|
||||
{ NULL, 0, NULL, "", NULL }
|
||||
{ "", SEC_ADMINISTRATOR, false, &ChatHandler::HandleReloadCommand, "", NULL },
|
||||
{ NULL, 0, false, NULL, "", NULL }
|
||||
};
|
||||
|
||||
static ChatCommand honorCommandTable[] =
|
||||
{
|
||||
{ "add", SEC_GAMEMASTER, &ChatHandler::HandleAddHonorCommand, "", NULL },
|
||||
{ "addkill", SEC_GAMEMASTER, &ChatHandler::HandleHonorAddKillCommand, "", NULL },
|
||||
{ "update", SEC_GAMEMASTER, &ChatHandler::HandleUpdateHonorFieldsCommand, "", NULL },
|
||||
{ NULL, 0, NULL, "", NULL }
|
||||
{ "add", SEC_GAMEMASTER, false, &ChatHandler::HandleAddHonorCommand, "", NULL },
|
||||
{ "addkill", SEC_GAMEMASTER, false, &ChatHandler::HandleHonorAddKillCommand, "", NULL },
|
||||
{ "update", SEC_GAMEMASTER, false, &ChatHandler::HandleUpdateHonorFieldsCommand, "", NULL },
|
||||
{ NULL, 0, false, NULL, "", NULL }
|
||||
};
|
||||
|
||||
static ChatCommand guildCommandTable[] =
|
||||
{
|
||||
{ "create", SEC_GAMEMASTER, &ChatHandler::HandleGuildCreateCommand, "", NULL },
|
||||
{ "delete", SEC_GAMEMASTER, &ChatHandler::HandleGuildDeleteCommand, "", NULL },
|
||||
{ "invite", SEC_GAMEMASTER, &ChatHandler::HandleGuildInviteCommand, "", NULL },
|
||||
{ "uninvite", SEC_GAMEMASTER, &ChatHandler::HandleGuildUninviteCommand, "", NULL },
|
||||
{ "rank", SEC_GAMEMASTER, &ChatHandler::HandleGuildRankCommand, "", NULL },
|
||||
{ NULL, 0, NULL, "", NULL }
|
||||
{ "create", SEC_GAMEMASTER, false, &ChatHandler::HandleGuildCreateCommand, "", NULL },
|
||||
{ "delete", SEC_GAMEMASTER, false, &ChatHandler::HandleGuildDeleteCommand, "", NULL },
|
||||
{ "invite", SEC_GAMEMASTER, false, &ChatHandler::HandleGuildInviteCommand, "", NULL },
|
||||
{ "uninvite", SEC_GAMEMASTER, false, &ChatHandler::HandleGuildUninviteCommand, "", NULL },
|
||||
{ "rank", SEC_GAMEMASTER, false, &ChatHandler::HandleGuildRankCommand, "", NULL },
|
||||
{ NULL, 0, false, NULL, "", NULL }
|
||||
};
|
||||
|
||||
static ChatCommand lookupPlayerCommandTable[] =
|
||||
{
|
||||
{ "ip", SEC_GAMEMASTER, &ChatHandler::HandleLookupPlayerIpCommand, "", NULL },
|
||||
{ "account", SEC_GAMEMASTER, &ChatHandler::HandleLookupPlayerAccountCommand, "", NULL },
|
||||
{ "email", SEC_GAMEMASTER, &ChatHandler::HandleLookupPlayerEmailCommand, "", NULL },
|
||||
{ NULL, 0, NULL, "", NULL }
|
||||
{ "ip", SEC_GAMEMASTER, false, &ChatHandler::HandleLookupPlayerIpCommand, "", NULL },
|
||||
{ "account", SEC_GAMEMASTER, false, &ChatHandler::HandleLookupPlayerAccountCommand, "", NULL },
|
||||
{ "email", SEC_GAMEMASTER, false, &ChatHandler::HandleLookupPlayerEmailCommand, "", NULL },
|
||||
{ NULL, 0, false, NULL, "", NULL }
|
||||
};
|
||||
|
||||
static ChatCommand lookupCommandTable[] =
|
||||
{
|
||||
{ "area", SEC_MODERATOR, &ChatHandler::HandleLookupAreaCommand, "", NULL },
|
||||
{ "creature", SEC_ADMINISTRATOR, &ChatHandler::HandleLookupCreatureCommand, "", NULL },
|
||||
{ "event", SEC_GAMEMASTER, &ChatHandler::HandleLookupEventCommand, "", NULL },
|
||||
{ "faction", SEC_ADMINISTRATOR, &ChatHandler::HandleLookupFactionCommand, "", NULL },
|
||||
{ "item", SEC_ADMINISTRATOR, &ChatHandler::HandleLookupItemCommand, "", NULL },
|
||||
{ "itemset", SEC_ADMINISTRATOR, &ChatHandler::HandleLookupItemSetCommand, "", NULL },
|
||||
{ "object", SEC_ADMINISTRATOR, &ChatHandler::HandleLookupObjectCommand, "", NULL },
|
||||
{ "quest", SEC_ADMINISTRATOR, &ChatHandler::HandleLookupQuestCommand, "", NULL },
|
||||
{ "player", SEC_GAMEMASTER, NULL, "", lookupPlayerCommandTable },
|
||||
{ "skill", SEC_ADMINISTRATOR, &ChatHandler::HandleLookupSkillCommand, "", NULL },
|
||||
{ "spell", SEC_ADMINISTRATOR, &ChatHandler::HandleLookupSpellCommand, "", NULL },
|
||||
{ "tele", SEC_MODERATOR, &ChatHandler::HandleLookupTeleCommand, "", NULL },
|
||||
{ NULL, 0, NULL, "", NULL }
|
||||
{ "area", SEC_MODERATOR, false, &ChatHandler::HandleLookupAreaCommand, "", NULL },
|
||||
{ "creature", SEC_ADMINISTRATOR, false, &ChatHandler::HandleLookupCreatureCommand, "", NULL },
|
||||
{ "event", SEC_GAMEMASTER, false, &ChatHandler::HandleLookupEventCommand, "", NULL },
|
||||
{ "faction", SEC_ADMINISTRATOR, false, &ChatHandler::HandleLookupFactionCommand, "", NULL },
|
||||
{ "item", SEC_ADMINISTRATOR, false, &ChatHandler::HandleLookupItemCommand, "", NULL },
|
||||
{ "itemset", SEC_ADMINISTRATOR, false, &ChatHandler::HandleLookupItemSetCommand, "", NULL },
|
||||
{ "object", SEC_ADMINISTRATOR, false, &ChatHandler::HandleLookupObjectCommand, "", NULL },
|
||||
{ "quest", SEC_ADMINISTRATOR, false, &ChatHandler::HandleLookupQuestCommand, "", NULL },
|
||||
{ "player", SEC_GAMEMASTER, false, NULL, "", lookupPlayerCommandTable },
|
||||
{ "skill", SEC_ADMINISTRATOR, false, &ChatHandler::HandleLookupSkillCommand, "", NULL },
|
||||
{ "spell", SEC_ADMINISTRATOR, false, &ChatHandler::HandleLookupSpellCommand, "", NULL },
|
||||
{ "tele", SEC_MODERATOR, false, &ChatHandler::HandleLookupTeleCommand, "", NULL },
|
||||
{ NULL, 0, false, NULL, "", NULL }
|
||||
};
|
||||
|
||||
static ChatCommand resetCommandTable[] =
|
||||
{
|
||||
{ "honor", SEC_ADMINISTRATOR, &ChatHandler::HandleResetHonorCommand, "", NULL },
|
||||
{ "level", SEC_ADMINISTRATOR, &ChatHandler::HandleResetLevelCommand, "", NULL },
|
||||
{ "spells", SEC_ADMINISTRATOR, &ChatHandler::HandleResetSpellsCommand, "", NULL },
|
||||
{ "stats", SEC_ADMINISTRATOR, &ChatHandler::HandleResetStatsCommand, "", NULL },
|
||||
{ "talents", SEC_ADMINISTRATOR, &ChatHandler::HandleResetTalentsCommand, "", NULL },
|
||||
{ "all", SEC_ADMINISTRATOR, &ChatHandler::HandleResetAllCommand, "", NULL },
|
||||
{ NULL, 0, NULL, "", NULL }
|
||||
{ "honor", SEC_ADMINISTRATOR, false, &ChatHandler::HandleResetHonorCommand, "", NULL },
|
||||
{ "level", SEC_ADMINISTRATOR, false, &ChatHandler::HandleResetLevelCommand, "", NULL },
|
||||
{ "spells", SEC_ADMINISTRATOR, false, &ChatHandler::HandleResetSpellsCommand, "", NULL },
|
||||
{ "stats", SEC_ADMINISTRATOR, false, &ChatHandler::HandleResetStatsCommand, "", NULL },
|
||||
{ "talents", SEC_ADMINISTRATOR, false, &ChatHandler::HandleResetTalentsCommand, "", NULL },
|
||||
{ "all", SEC_ADMINISTRATOR, false, &ChatHandler::HandleResetAllCommand, "", NULL },
|
||||
{ NULL, 0, false, NULL, "", NULL }
|
||||
};
|
||||
|
||||
static ChatCommand castCommandTable[] =
|
||||
{
|
||||
{ "back", SEC_ADMINISTRATOR, &ChatHandler::HandleCastBackCommand, "", NULL },
|
||||
{ "dist", SEC_ADMINISTRATOR, &ChatHandler::HandleCastDistCommand, "", NULL },
|
||||
{ "self", SEC_ADMINISTRATOR, &ChatHandler::HandleCastSelfCommand, "", NULL },
|
||||
{ "target", SEC_ADMINISTRATOR, &ChatHandler::HandleCastTargetCommand, "", NULL },
|
||||
{ "", SEC_ADMINISTRATOR, &ChatHandler::HandleCastCommand, "", NULL },
|
||||
{ NULL, 0, NULL, "", NULL }
|
||||
{ "back", SEC_ADMINISTRATOR, false, &ChatHandler::HandleCastBackCommand, "", NULL },
|
||||
{ "dist", SEC_ADMINISTRATOR, false, &ChatHandler::HandleCastDistCommand, "", NULL },
|
||||
{ "self", SEC_ADMINISTRATOR, false, &ChatHandler::HandleCastSelfCommand, "", NULL },
|
||||
{ "target", SEC_ADMINISTRATOR, false, &ChatHandler::HandleCastTargetCommand, "", NULL },
|
||||
{ "", SEC_ADMINISTRATOR, false, &ChatHandler::HandleCastCommand, "", NULL },
|
||||
{ NULL, 0, false, NULL, "", NULL }
|
||||
};
|
||||
|
||||
static ChatCommand pdumpCommandTable[] =
|
||||
{
|
||||
{ "load", SEC_ADMINISTRATOR, &ChatHandler::HandleLoadPDumpCommand, "", NULL },
|
||||
{ "write", SEC_ADMINISTRATOR, &ChatHandler::HandleWritePDumpCommand, "", NULL },
|
||||
{ NULL, 0, NULL, "", NULL }
|
||||
{ "load", SEC_ADMINISTRATOR, true, &ChatHandler::HandleLoadPDumpCommand, "", NULL },
|
||||
{ "write", SEC_ADMINISTRATOR, true, &ChatHandler::HandleWritePDumpCommand, "", NULL },
|
||||
{ NULL, 0, false, NULL, "", NULL }
|
||||
};
|
||||
|
||||
static ChatCommand listCommandTable[] =
|
||||
{
|
||||
{ "creature", SEC_ADMINISTRATOR, &ChatHandler::HandleListCreatureCommand, "", NULL },
|
||||
{ "item", SEC_ADMINISTRATOR, &ChatHandler::HandleListItemCommand, "", NULL },
|
||||
{ "object", SEC_ADMINISTRATOR, &ChatHandler::HandleListObjectCommand, "", NULL },
|
||||
{ "auras", SEC_ADMINISTRATOR, &ChatHandler::HandleListAurasCommand, "", NULL },
|
||||
{ NULL, 0, NULL, "", NULL }
|
||||
{ "creature", SEC_ADMINISTRATOR, false, &ChatHandler::HandleListCreatureCommand, "", NULL },
|
||||
{ "item", SEC_ADMINISTRATOR, false, &ChatHandler::HandleListItemCommand, "", NULL },
|
||||
{ "object", SEC_ADMINISTRATOR, false, &ChatHandler::HandleListObjectCommand, "", NULL },
|
||||
{ "auras", SEC_ADMINISTRATOR, false, &ChatHandler::HandleListAurasCommand, "", NULL },
|
||||
{ NULL, 0, false, NULL, "", NULL }
|
||||
};
|
||||
|
||||
static ChatCommand teleCommandTable[] =
|
||||
{
|
||||
{ "add", SEC_ADMINISTRATOR, &ChatHandler::HandleAddTeleCommand, "", NULL },
|
||||
{ "del", SEC_ADMINISTRATOR, &ChatHandler::HandleDelTeleCommand, "", NULL },
|
||||
{ "name", SEC_MODERATOR, &ChatHandler::HandleNameTeleCommand, "", NULL },
|
||||
{ "group", SEC_MODERATOR, &ChatHandler::HandleGroupTeleCommand, "", NULL },
|
||||
{ "", SEC_MODERATOR, &ChatHandler::HandleTeleCommand, "", NULL },
|
||||
{ NULL, 0, NULL, "", NULL }
|
||||
{ "add", SEC_ADMINISTRATOR, false, &ChatHandler::HandleAddTeleCommand, "", NULL },
|
||||
{ "del", SEC_ADMINISTRATOR, false, &ChatHandler::HandleDelTeleCommand, "", NULL },
|
||||
{ "name", SEC_MODERATOR, true, &ChatHandler::HandleNameTeleCommand, "", NULL },
|
||||
{ "group", SEC_MODERATOR, false, &ChatHandler::HandleGroupTeleCommand, "", NULL },
|
||||
{ "", SEC_MODERATOR, false, &ChatHandler::HandleTeleCommand, "", NULL },
|
||||
{ NULL, 0, false, NULL, "", NULL }
|
||||
};
|
||||
|
||||
static ChatCommand npcCommandTable[] =
|
||||
{
|
||||
{ "say", SEC_MODERATOR, &ChatHandler::HandleSayCommand, "", NULL },
|
||||
{ "whisper", SEC_MODERATOR, &ChatHandler::HandleNpcWhisperCommand, "", NULL },
|
||||
{ "yell", SEC_MODERATOR, &ChatHandler::HandleYellCommand, "", NULL },
|
||||
{ "textemote", SEC_MODERATOR, &ChatHandler::HandleTextEmoteCommand, "", NULL },
|
||||
{ "add", SEC_GAMEMASTER, &ChatHandler::HandleAddSpwCommand, "", NULL },
|
||||
{ "delete", SEC_GAMEMASTER, &ChatHandler::HandleDelCreatureCommand, "", NULL },
|
||||
{ "spawndist", SEC_GAMEMASTER, &ChatHandler::HandleSpawnDistCommand, "", NULL },
|
||||
{ "spawntime", SEC_GAMEMASTER, &ChatHandler::HandleSpawnTimeCommand, "", NULL },
|
||||
{ "factionid", SEC_GAMEMASTER, &ChatHandler::HandleFactionIdCommand, "", NULL },
|
||||
{ "addmove", SEC_GAMEMASTER, &ChatHandler::HandleAddMoveCommand, "", NULL },
|
||||
{ "setmovetype", SEC_GAMEMASTER, &ChatHandler::HandleSetMoveTypeCommand, "", NULL },
|
||||
{ "move", SEC_GAMEMASTER, &ChatHandler::HandleMoveCreatureCommand, "", NULL },
|
||||
{ "changelevel", SEC_GAMEMASTER, &ChatHandler::HandleChangeLevelCommand, "", NULL },
|
||||
{ "setmodel", SEC_GAMEMASTER, &ChatHandler::HandleSetModelCommand, "", NULL },
|
||||
{ "additem", SEC_GAMEMASTER, &ChatHandler::HandleAddVendorItemCommand, "", NULL },
|
||||
{ "delitem", SEC_GAMEMASTER, &ChatHandler::HandleDelVendorItemCommand, "", NULL },
|
||||
{ "flag", SEC_GAMEMASTER, &ChatHandler::HandleNPCFlagCommand, "", NULL },
|
||||
{ "changeentry", SEC_ADMINISTRATOR, &ChatHandler::HandleChangeEntryCommand, "", NULL },
|
||||
{ "info", SEC_ADMINISTRATOR, &ChatHandler::HandleNpcInfoCommand, "", NULL },
|
||||
{ "playemote", SEC_ADMINISTRATOR, &ChatHandler::HandlePlayEmoteCommand, "", NULL },
|
||||
{ "say", SEC_MODERATOR, false, &ChatHandler::HandleSayCommand, "", NULL },
|
||||
{ "whisper", SEC_MODERATOR, false, &ChatHandler::HandleNpcWhisperCommand, "", NULL },
|
||||
{ "yell", SEC_MODERATOR, false, &ChatHandler::HandleYellCommand, "", NULL },
|
||||
{ "textemote", SEC_MODERATOR, false, &ChatHandler::HandleTextEmoteCommand, "", NULL },
|
||||
{ "add", SEC_GAMEMASTER, false, &ChatHandler::HandleAddSpwCommand, "", NULL },
|
||||
{ "delete", SEC_GAMEMASTER, false, &ChatHandler::HandleDelCreatureCommand, "", NULL },
|
||||
{ "spawndist", SEC_GAMEMASTER, false, &ChatHandler::HandleSpawnDistCommand, "", NULL },
|
||||
{ "spawntime", SEC_GAMEMASTER, false, &ChatHandler::HandleSpawnTimeCommand, "", NULL },
|
||||
{ "factionid", SEC_GAMEMASTER, false, &ChatHandler::HandleFactionIdCommand, "", NULL },
|
||||
{ "addmove", SEC_GAMEMASTER, false, &ChatHandler::HandleAddMoveCommand, "", NULL },
|
||||
{ "setmovetype", SEC_GAMEMASTER, false, &ChatHandler::HandleSetMoveTypeCommand, "", NULL },
|
||||
{ "move", SEC_GAMEMASTER, false, &ChatHandler::HandleMoveCreatureCommand, "", NULL },
|
||||
{ "changelevel", SEC_GAMEMASTER, false, &ChatHandler::HandleChangeLevelCommand, "", NULL },
|
||||
{ "setmodel", SEC_GAMEMASTER, false, &ChatHandler::HandleSetModelCommand, "", NULL },
|
||||
{ "additem", SEC_GAMEMASTER, false, &ChatHandler::HandleAddVendorItemCommand, "", NULL },
|
||||
{ "delitem", SEC_GAMEMASTER, false, &ChatHandler::HandleDelVendorItemCommand, "", NULL },
|
||||
{ "flag", SEC_GAMEMASTER, false, &ChatHandler::HandleNPCFlagCommand, "", NULL },
|
||||
{ "changeentry", SEC_ADMINISTRATOR, false, &ChatHandler::HandleChangeEntryCommand, "", NULL },
|
||||
{ "info", SEC_ADMINISTRATOR, false, &ChatHandler::HandleNpcInfoCommand, "", NULL },
|
||||
{ "playemote", SEC_ADMINISTRATOR, false, &ChatHandler::HandlePlayEmoteCommand, "", NULL },
|
||||
|
||||
//{ TODO: fix or remove this commands
|
||||
{ "name", SEC_GAMEMASTER, &ChatHandler::HandleNameCommand, "", NULL },
|
||||
{ "subname", SEC_GAMEMASTER, &ChatHandler::HandleSubNameCommand, "", NULL },
|
||||
{ "addweapon", SEC_ADMINISTRATOR, &ChatHandler::HandleAddWeaponCommand, "", NULL },
|
||||
{ "name", SEC_GAMEMASTER, false, &ChatHandler::HandleNameCommand, "", NULL },
|
||||
{ "subname", SEC_GAMEMASTER, false, &ChatHandler::HandleSubNameCommand, "", NULL },
|
||||
{ "addweapon", SEC_ADMINISTRATOR, false, &ChatHandler::HandleAddWeaponCommand, "", NULL },
|
||||
//}
|
||||
|
||||
{ NULL, 0, NULL, "", NULL }
|
||||
{ NULL, 0, false, NULL, "", NULL }
|
||||
};
|
||||
|
||||
static ChatCommand goCommandTable[] =
|
||||
{
|
||||
{ "grid", SEC_MODERATOR, &ChatHandler::HandleGoGridCommand, "", NULL },
|
||||
{ "creature", SEC_GAMEMASTER, &ChatHandler::HandleGoCreatureCommand, "", NULL },
|
||||
{ "object", SEC_GAMEMASTER, &ChatHandler::HandleGoObjectCommand, "", NULL },
|
||||
{ "trigger", SEC_GAMEMASTER, &ChatHandler::HandleGoTriggerCommand, "", NULL },
|
||||
{ "graveyard", SEC_GAMEMASTER, &ChatHandler::HandleGoGraveyardCommand, "", NULL },
|
||||
{ "zonexy", SEC_MODERATOR, &ChatHandler::HandleGoZoneXYCommand, "", NULL },
|
||||
{ "xy", SEC_MODERATOR, &ChatHandler::HandleGoXYCommand, "", NULL },
|
||||
{ "xyz", SEC_MODERATOR, &ChatHandler::HandleGoXYZCommand, "", NULL },
|
||||
{ "", SEC_MODERATOR, &ChatHandler::HandleGoXYZCommand, "", NULL },
|
||||
{ NULL, 0, NULL, "", NULL }
|
||||
{ "grid", SEC_MODERATOR, false, &ChatHandler::HandleGoGridCommand, "", NULL },
|
||||
{ "creature", SEC_GAMEMASTER, false, &ChatHandler::HandleGoCreatureCommand, "", NULL },
|
||||
{ "object", SEC_GAMEMASTER, false, &ChatHandler::HandleGoObjectCommand, "", NULL },
|
||||
{ "trigger", SEC_GAMEMASTER, false, &ChatHandler::HandleGoTriggerCommand, "", NULL },
|
||||
{ "graveyard", SEC_GAMEMASTER, false, &ChatHandler::HandleGoGraveyardCommand, "", NULL },
|
||||
{ "zonexy", SEC_MODERATOR, false, &ChatHandler::HandleGoZoneXYCommand, "", NULL },
|
||||
{ "xy", SEC_MODERATOR, false, &ChatHandler::HandleGoXYCommand, "", NULL },
|
||||
{ "xyz", SEC_MODERATOR, false, &ChatHandler::HandleGoXYZCommand, "", NULL },
|
||||
{ "", SEC_MODERATOR, false, &ChatHandler::HandleGoXYZCommand, "", NULL },
|
||||
{ NULL, 0, false, NULL, "", NULL }
|
||||
};
|
||||
|
||||
static ChatCommand gobjectCommandTable[] =
|
||||
{
|
||||
{ "add", SEC_GAMEMASTER, &ChatHandler::HandleGameObjectCommand, "", NULL },
|
||||
{ "delete", SEC_GAMEMASTER, &ChatHandler::HandleDelObjectCommand, "", NULL },
|
||||
{ "target", SEC_GAMEMASTER, &ChatHandler::HandleTargetObjectCommand, "", NULL },
|
||||
{ "turn", SEC_GAMEMASTER, &ChatHandler::HandleTurnObjectCommand, "", NULL },
|
||||
{ "move", SEC_GAMEMASTER, &ChatHandler::HandleMoveObjectCommand, "", NULL },
|
||||
{ "near", SEC_ADMINISTRATOR, &ChatHandler::HandleNearObjectCommand, "", NULL },
|
||||
{ NULL, 0, NULL, "", NULL }
|
||||
{ "add", SEC_GAMEMASTER, false, &ChatHandler::HandleGameObjectCommand, "", NULL },
|
||||
{ "delete", SEC_GAMEMASTER, false, &ChatHandler::HandleDelObjectCommand, "", NULL },
|
||||
{ "target", SEC_GAMEMASTER, false, &ChatHandler::HandleTargetObjectCommand, "", NULL },
|
||||
{ "turn", SEC_GAMEMASTER, false, &ChatHandler::HandleTurnObjectCommand, "", NULL },
|
||||
{ "move", SEC_GAMEMASTER, false, &ChatHandler::HandleMoveObjectCommand, "", NULL },
|
||||
{ "near", SEC_ADMINISTRATOR, false, &ChatHandler::HandleNearObjectCommand, "", NULL },
|
||||
{ NULL, 0, false, NULL, "", NULL }
|
||||
};
|
||||
|
||||
static ChatCommand questCommandTable[] =
|
||||
{
|
||||
{ "add", SEC_ADMINISTRATOR, &ChatHandler::HandleAddQuest, "", NULL },
|
||||
{ "complete", SEC_ADMINISTRATOR, &ChatHandler::HandleCompleteQuest, "", NULL },
|
||||
{ "remove", SEC_ADMINISTRATOR, &ChatHandler::HandleRemoveQuest, "", NULL },
|
||||
{ NULL, 0, NULL, "", NULL }
|
||||
{ "add", SEC_ADMINISTRATOR, false, &ChatHandler::HandleAddQuest, "", NULL },
|
||||
{ "complete", SEC_ADMINISTRATOR, false, &ChatHandler::HandleCompleteQuest, "", NULL },
|
||||
{ "remove", SEC_ADMINISTRATOR, false, &ChatHandler::HandleRemoveQuest, "", NULL },
|
||||
{ NULL, 0, false, NULL, "", NULL }
|
||||
};
|
||||
|
||||
static ChatCommand gmCommandTable[] =
|
||||
{
|
||||
{ "chat", SEC_MODERATOR, &ChatHandler::HandleGMChatCommand, "", NULL },
|
||||
{ "list", SEC_PLAYER, &ChatHandler::HandleGMListCommand, "", NULL },
|
||||
{ "visible", SEC_MODERATOR, &ChatHandler::HandleVisibleCommand, "", NULL },
|
||||
{ "fly", SEC_ADMINISTRATOR, &ChatHandler::HandleFlyModeCommand, "", NULL },
|
||||
{ "", SEC_MODERATOR, &ChatHandler::HandleGMmodeCommand, "", NULL },
|
||||
{ NULL, 0, NULL, "", NULL }
|
||||
{ "chat", SEC_MODERATOR, false, &ChatHandler::HandleGMChatCommand, "", NULL },
|
||||
{ "online", SEC_PLAYER, true, &ChatHandler::HandleGMListOnlineCommand, "", NULL },
|
||||
{ "list", SEC_ADMINISTRATOR, true, &ChatHandler::HandleGMListFullCommand, "", NULL },
|
||||
{ "visible", SEC_MODERATOR, false, &ChatHandler::HandleVisibleCommand, "", NULL },
|
||||
{ "fly", SEC_ADMINISTRATOR, false, &ChatHandler::HandleFlyModeCommand, "", NULL },
|
||||
{ "", SEC_MODERATOR, false, &ChatHandler::HandleGMmodeCommand, "", NULL },
|
||||
{ NULL, 0, false, NULL, "", NULL }
|
||||
};
|
||||
|
||||
static ChatCommand instanceCommandTable[] =
|
||||
{
|
||||
{ "listbinds", SEC_MODERATOR, &ChatHandler::HandleInstanceListBindsCommand, "", NULL },
|
||||
{ "unbind", SEC_MODERATOR, &ChatHandler::HandleInstanceUnbindCommand, "", NULL },
|
||||
{ "stats", SEC_MODERATOR, &ChatHandler::HandleInstanceStatsCommand, "", NULL },
|
||||
{ "savedata", SEC_MODERATOR, &ChatHandler::HandleInstanceSaveDataCommand, "", NULL },
|
||||
{ NULL, 0, NULL, "", NULL }
|
||||
{ "listbinds", SEC_MODERATOR, false, &ChatHandler::HandleInstanceListBindsCommand, "", NULL },
|
||||
{ "unbind", SEC_MODERATOR, false, &ChatHandler::HandleInstanceUnbindCommand, "", NULL },
|
||||
{ "stats", SEC_MODERATOR, false, &ChatHandler::HandleInstanceStatsCommand, "", NULL },
|
||||
{ "savedata", SEC_MODERATOR, false, &ChatHandler::HandleInstanceSaveDataCommand, "", NULL },
|
||||
{ NULL, 0, false, NULL, "", NULL }
|
||||
};
|
||||
|
||||
static ChatCommand commandTable[] =
|
||||
{
|
||||
{ "gm", SEC_MODERATOR, NULL, "", gmCommandTable },
|
||||
{ "npc", SEC_MODERATOR, NULL, "", npcCommandTable },
|
||||
{ "go", SEC_MODERATOR, NULL, "", goCommandTable },
|
||||
{ "learn", SEC_MODERATOR, NULL, "", learnCommandTable },
|
||||
{ "modify", SEC_MODERATOR, NULL, "", modifyCommandTable },
|
||||
{ "debug", SEC_MODERATOR, NULL, "", debugCommandTable },
|
||||
{ "tele", SEC_MODERATOR, NULL, "", teleCommandTable },
|
||||
{ "event", SEC_GAMEMASTER, NULL, "", eventCommandTable },
|
||||
{ "gobject", SEC_GAMEMASTER, NULL, "", gobjectCommandTable },
|
||||
{ "honor", SEC_GAMEMASTER, NULL, "", honorCommandTable },
|
||||
{ "wp", SEC_GAMEMASTER, NULL, "", wpCommandTable },
|
||||
{ "quest", SEC_ADMINISTRATOR, NULL, "", questCommandTable },
|
||||
{ "reload", SEC_ADMINISTRATOR, NULL, "", reloadCommandTable },
|
||||
{ "list", SEC_ADMINISTRATOR, NULL, "", listCommandTable },
|
||||
{ "lookup", SEC_ADMINISTRATOR, NULL, "", lookupCommandTable },
|
||||
{ "pdump", SEC_ADMINISTRATOR, NULL, "", pdumpCommandTable },
|
||||
{ "guild", SEC_ADMINISTRATOR, NULL, "", guildCommandTable },
|
||||
{ "cast", SEC_ADMINISTRATOR, NULL, "", castCommandTable },
|
||||
{ "reset", SEC_ADMINISTRATOR, NULL, "", resetCommandTable },
|
||||
{ "instance", SEC_ADMINISTRATOR, NULL, "", instanceCommandTable },
|
||||
{ "server", SEC_ADMINISTRATOR, NULL, "", serverCommandTable },
|
||||
{ "account", SEC_PLAYER, true, NULL, "", accountCommandTable },
|
||||
{ "gm", SEC_MODERATOR, true, NULL, "", gmCommandTable },
|
||||
{ "npc", SEC_MODERATOR, false, NULL, "", npcCommandTable },
|
||||
{ "go", SEC_MODERATOR, false, NULL, "", goCommandTable },
|
||||
{ "learn", SEC_MODERATOR, false, NULL, "", learnCommandTable },
|
||||
{ "modify", SEC_MODERATOR, false, NULL, "", modifyCommandTable },
|
||||
{ "debug", SEC_MODERATOR, false, NULL, "", debugCommandTable },
|
||||
{ "tele", SEC_MODERATOR, true, NULL, "", teleCommandTable },
|
||||
{ "event", SEC_GAMEMASTER, false, NULL, "", eventCommandTable },
|
||||
{ "gobject", SEC_GAMEMASTER, false, NULL, "", gobjectCommandTable },
|
||||
{ "honor", SEC_GAMEMASTER, false, NULL, "", honorCommandTable },
|
||||
{ "wp", SEC_GAMEMASTER, false, NULL, "", wpCommandTable },
|
||||
{ "quest", SEC_ADMINISTRATOR, false, NULL, "", questCommandTable },
|
||||
{ "reload", SEC_ADMINISTRATOR, false, NULL, "", reloadCommandTable },
|
||||
{ "list", SEC_ADMINISTRATOR, false, NULL, "", listCommandTable },
|
||||
{ "lookup", SEC_ADMINISTRATOR, false, NULL, "", lookupCommandTable },
|
||||
{ "pdump", SEC_ADMINISTRATOR, true, NULL, "", pdumpCommandTable },
|
||||
{ "guild", SEC_ADMINISTRATOR, false, NULL, "", guildCommandTable },
|
||||
{ "cast", SEC_ADMINISTRATOR, false, NULL, "", castCommandTable },
|
||||
{ "reset", SEC_ADMINISTRATOR, false, NULL, "", resetCommandTable },
|
||||
{ "instance", SEC_ADMINISTRATOR, false, NULL, "", instanceCommandTable },
|
||||
{ "server", SEC_ADMINISTRATOR, true, NULL, "", serverCommandTable },
|
||||
|
||||
{ "aura", SEC_ADMINISTRATOR, &ChatHandler::HandleAuraCommand, "", NULL },
|
||||
{ "unaura", SEC_ADMINISTRATOR, &ChatHandler::HandleUnAuraCommand, "", NULL },
|
||||
{ "acct", SEC_PLAYER, &ChatHandler::HandleAcctCommand, "", NULL },
|
||||
{ "announce", SEC_MODERATOR, &ChatHandler::HandleAnnounceCommand, "", NULL },
|
||||
{ "notify", SEC_MODERATOR, &ChatHandler::HandleNotifyCommand, "", NULL },
|
||||
{ "goname", SEC_MODERATOR, &ChatHandler::HandleGonameCommand, "", NULL },
|
||||
{ "namego", SEC_MODERATOR, &ChatHandler::HandleNamegoCommand, "", NULL },
|
||||
{ "groupgo", SEC_MODERATOR, &ChatHandler::HandleGroupgoCommand, "", NULL },
|
||||
{ "commands", SEC_PLAYER, &ChatHandler::HandleCommandsCommand, "", NULL },
|
||||
{ "demorph", SEC_GAMEMASTER, &ChatHandler::HandleDeMorphCommand, "", NULL },
|
||||
{ "die", SEC_ADMINISTRATOR, &ChatHandler::HandleDieCommand, "", NULL },
|
||||
{ "revive", SEC_ADMINISTRATOR, &ChatHandler::HandleReviveCommand, "", NULL },
|
||||
{ "dismount", SEC_PLAYER, &ChatHandler::HandleDismountCommand, "", NULL },
|
||||
{ "gps", SEC_MODERATOR, &ChatHandler::HandleGPSCommand, "", NULL },
|
||||
{ "guid", SEC_GAMEMASTER, &ChatHandler::HandleGUIDCommand, "", NULL },
|
||||
{ "help", SEC_PLAYER, &ChatHandler::HandleHelpCommand, "", NULL },
|
||||
{ "itemmove", SEC_GAMEMASTER, &ChatHandler::HandleItemMoveCommand, "", NULL },
|
||||
{ "cooldown", SEC_ADMINISTRATOR, &ChatHandler::HandleCooldownCommand, "", NULL },
|
||||
{ "unlearn", SEC_ADMINISTRATOR, &ChatHandler::HandleUnLearnCommand, "", NULL },
|
||||
{ "distance", SEC_ADMINISTRATOR, &ChatHandler::HandleGetDistanceCommand, "", NULL },
|
||||
{ "recall", SEC_MODERATOR, &ChatHandler::HandleRecallCommand, "", NULL },
|
||||
{ "save", SEC_PLAYER, &ChatHandler::HandleSaveCommand, "", NULL },
|
||||
{ "saveall", SEC_MODERATOR, &ChatHandler::HandleSaveAllCommand, "", NULL },
|
||||
{ "kick", SEC_GAMEMASTER, &ChatHandler::HandleKickPlayerCommand, "", NULL },
|
||||
{ "security", SEC_ADMINISTRATOR, &ChatHandler::HandleSecurityCommand, "", NULL },
|
||||
{ "ban", SEC_ADMINISTRATOR, &ChatHandler::HandleBanCommand, "", NULL },
|
||||
{ "unban", SEC_ADMINISTRATOR, &ChatHandler::HandleUnBanCommand, "", NULL },
|
||||
{ "baninfo", SEC_ADMINISTRATOR, &ChatHandler::HandleBanInfoCommand, "", NULL },
|
||||
{ "banlist", SEC_ADMINISTRATOR, &ChatHandler::HandleBanListCommand, "", NULL },
|
||||
{ "plimit", SEC_ADMINISTRATOR, &ChatHandler::HandlePLimitCommand, "", NULL },
|
||||
{ "start", SEC_PLAYER, &ChatHandler::HandleStartCommand, "", NULL },
|
||||
{ "taxicheat", SEC_MODERATOR, &ChatHandler::HandleTaxiCheatCommand, "", NULL },
|
||||
{ "allowmove", SEC_ADMINISTRATOR, &ChatHandler::HandleAllowMovementCommand, "", NULL },
|
||||
{ "linkgrave", SEC_ADMINISTRATOR, &ChatHandler::HandleLinkGraveCommand, "", NULL },
|
||||
{ "neargrave", SEC_ADMINISTRATOR, &ChatHandler::HandleNearGraveCommand, "", NULL },
|
||||
{ "transport", SEC_ADMINISTRATOR, &ChatHandler::HandleSpawnTransportCommand, "", NULL },
|
||||
{ "explorecheat", SEC_ADMINISTRATOR, &ChatHandler::HandleExploreCheatCommand, "", NULL },
|
||||
{ "hover", SEC_ADMINISTRATOR, &ChatHandler::HandleHoverCommand, "", NULL },
|
||||
{ "levelup", SEC_ADMINISTRATOR, &ChatHandler::HandleLevelUpCommand, "", NULL },
|
||||
{ "showarea", SEC_ADMINISTRATOR, &ChatHandler::HandleShowAreaCommand, "", NULL },
|
||||
{ "hidearea", SEC_ADMINISTRATOR, &ChatHandler::HandleHideAreaCommand, "", NULL },
|
||||
{ "additem", SEC_ADMINISTRATOR, &ChatHandler::HandleAddItemCommand, "", NULL },
|
||||
{ "additemset", SEC_ADMINISTRATOR, &ChatHandler::HandleAddItemSetCommand, "", NULL },
|
||||
{ "bank", SEC_ADMINISTRATOR, &ChatHandler::HandleBankCommand, "", NULL },
|
||||
{ "wchange", SEC_ADMINISTRATOR, &ChatHandler::HandleChangeWeather, "", NULL },
|
||||
{ "ticket", SEC_GAMEMASTER, &ChatHandler::HandleTicketCommand, "", NULL },
|
||||
{ "delticket", SEC_GAMEMASTER, &ChatHandler::HandleDelTicketCommand, "", NULL },
|
||||
{ "maxskill", SEC_ADMINISTRATOR, &ChatHandler::HandleMaxSkillCommand, "", NULL },
|
||||
{ "setskill", SEC_ADMINISTRATOR, &ChatHandler::HandleSetSkillCommand, "", NULL },
|
||||
{ "whispers", SEC_MODERATOR, &ChatHandler::HandleWhispersCommand, "", NULL },
|
||||
{ "pinfo", SEC_GAMEMASTER, &ChatHandler::HandlePInfoCommand, "", NULL },
|
||||
{ "password", SEC_PLAYER, &ChatHandler::HandlePasswordCommand, "", NULL },
|
||||
{ "lockaccount", SEC_PLAYER, &ChatHandler::HandleLockAccountCommand, "", NULL },
|
||||
{ "respawn", SEC_ADMINISTRATOR, &ChatHandler::HandleRespawnCommand, "", NULL },
|
||||
{ "sendmail", SEC_MODERATOR, &ChatHandler::HandleSendMailCommand, "", NULL },
|
||||
{ "rename", SEC_GAMEMASTER, &ChatHandler::HandleRenameCommand, "", NULL },
|
||||
{ "loadscripts", SEC_ADMINISTRATOR, &ChatHandler::HandleLoadScriptsCommand, "", NULL },
|
||||
{ "mute", SEC_GAMEMASTER, &ChatHandler::HandleMuteCommand, "", NULL },
|
||||
{ "unmute", SEC_GAMEMASTER, &ChatHandler::HandleUnmuteCommand, "", NULL },
|
||||
{ "movegens", SEC_ADMINISTRATOR, &ChatHandler::HandleMovegensCommand, "", NULL },
|
||||
{ "cometome", SEC_ADMINISTRATOR, &ChatHandler::HandleComeToMeCommand, "", NULL },
|
||||
{ "damage", SEC_ADMINISTRATOR, &ChatHandler::HandleDamageCommand, "", NULL },
|
||||
{ "combatstop", SEC_GAMEMASTER, &ChatHandler::HandleCombatStopCommand, "", NULL },
|
||||
{ "aura", SEC_ADMINISTRATOR, false, &ChatHandler::HandleAuraCommand, "", NULL },
|
||||
{ "unaura", SEC_ADMINISTRATOR, false, &ChatHandler::HandleUnAuraCommand, "", NULL },
|
||||
{ "announce", SEC_MODERATOR, true, &ChatHandler::HandleAnnounceCommand, "", NULL },
|
||||
{ "notify", SEC_MODERATOR, false, &ChatHandler::HandleNotifyCommand, "", NULL },
|
||||
{ "goname", SEC_MODERATOR, false, &ChatHandler::HandleGonameCommand, "", NULL },
|
||||
{ "namego", SEC_MODERATOR, false, &ChatHandler::HandleNamegoCommand, "", NULL },
|
||||
{ "groupgo", SEC_MODERATOR, false, &ChatHandler::HandleGroupgoCommand, "", NULL },
|
||||
{ "commands", SEC_PLAYER, true, &ChatHandler::HandleCommandsCommand, "", NULL },
|
||||
{ "demorph", SEC_GAMEMASTER, false, &ChatHandler::HandleDeMorphCommand, "", NULL },
|
||||
{ "die", SEC_ADMINISTRATOR, false, &ChatHandler::HandleDieCommand, "", NULL },
|
||||
{ "revive", SEC_ADMINISTRATOR, false, &ChatHandler::HandleReviveCommand, "", NULL },
|
||||
{ "dismount", SEC_PLAYER, false, &ChatHandler::HandleDismountCommand, "", NULL },
|
||||
{ "gps", SEC_MODERATOR, false, &ChatHandler::HandleGPSCommand, "", NULL },
|
||||
{ "guid", SEC_GAMEMASTER, false, &ChatHandler::HandleGUIDCommand, "", NULL },
|
||||
{ "help", SEC_PLAYER, true, &ChatHandler::HandleHelpCommand, "", NULL },
|
||||
{ "itemmove", SEC_GAMEMASTER, false, &ChatHandler::HandleItemMoveCommand, "", NULL },
|
||||
{ "cooldown", SEC_ADMINISTRATOR, false, &ChatHandler::HandleCooldownCommand, "", NULL },
|
||||
{ "unlearn", SEC_ADMINISTRATOR, false, &ChatHandler::HandleUnLearnCommand, "", NULL },
|
||||
{ "distance", SEC_ADMINISTRATOR, false, &ChatHandler::HandleGetDistanceCommand, "", NULL },
|
||||
{ "recall", SEC_MODERATOR, false, &ChatHandler::HandleRecallCommand, "", NULL },
|
||||
{ "save", SEC_PLAYER, false, &ChatHandler::HandleSaveCommand, "", NULL },
|
||||
{ "saveall", SEC_MODERATOR, true, &ChatHandler::HandleSaveAllCommand, "", NULL },
|
||||
{ "kick", SEC_GAMEMASTER, true, &ChatHandler::HandleKickPlayerCommand, "", NULL },
|
||||
{ "ban", SEC_ADMINISTRATOR, true, &ChatHandler::HandleBanCommand, "", NULL },
|
||||
{ "unban", SEC_ADMINISTRATOR, true, &ChatHandler::HandleUnBanCommand, "", NULL },
|
||||
{ "baninfo", SEC_ADMINISTRATOR, false, &ChatHandler::HandleBanInfoCommand, "", NULL },
|
||||
{ "banlist", SEC_ADMINISTRATOR, true, &ChatHandler::HandleBanListCommand, "", NULL },
|
||||
{ "plimit", SEC_ADMINISTRATOR, true, &ChatHandler::HandlePLimitCommand, "", NULL },
|
||||
{ "start", SEC_PLAYER, false, &ChatHandler::HandleStartCommand, "", NULL },
|
||||
{ "taxicheat", SEC_MODERATOR, false, &ChatHandler::HandleTaxiCheatCommand, "", NULL },
|
||||
{ "allowmove", SEC_ADMINISTRATOR, false, &ChatHandler::HandleAllowMovementCommand, "", NULL },
|
||||
{ "linkgrave", SEC_ADMINISTRATOR, false, &ChatHandler::HandleLinkGraveCommand, "", NULL },
|
||||
{ "neargrave", SEC_ADMINISTRATOR, false, &ChatHandler::HandleNearGraveCommand, "", NULL },
|
||||
{ "transport", SEC_ADMINISTRATOR, false, &ChatHandler::HandleSpawnTransportCommand, "", NULL },
|
||||
{ "explorecheat", SEC_ADMINISTRATOR, false, &ChatHandler::HandleExploreCheatCommand, "", NULL },
|
||||
{ "hover", SEC_ADMINISTRATOR, false, &ChatHandler::HandleHoverCommand, "", NULL },
|
||||
{ "levelup", SEC_ADMINISTRATOR, false, &ChatHandler::HandleLevelUpCommand, "", NULL },
|
||||
{ "showarea", SEC_ADMINISTRATOR, false, &ChatHandler::HandleShowAreaCommand, "", NULL },
|
||||
{ "hidearea", SEC_ADMINISTRATOR, false, &ChatHandler::HandleHideAreaCommand, "", NULL },
|
||||
{ "additem", SEC_ADMINISTRATOR, false, &ChatHandler::HandleAddItemCommand, "", NULL },
|
||||
{ "additemset", SEC_ADMINISTRATOR, false, &ChatHandler::HandleAddItemSetCommand, "", NULL },
|
||||
{ "bank", SEC_ADMINISTRATOR, false, &ChatHandler::HandleBankCommand, "", NULL },
|
||||
{ "wchange", SEC_ADMINISTRATOR, false, &ChatHandler::HandleChangeWeather, "", NULL },
|
||||
{ "ticket", SEC_GAMEMASTER, false, &ChatHandler::HandleTicketCommand, "", NULL },
|
||||
{ "delticket", SEC_GAMEMASTER, false, &ChatHandler::HandleDelTicketCommand, "", NULL },
|
||||
{ "maxskill", SEC_ADMINISTRATOR, false, &ChatHandler::HandleMaxSkillCommand, "", NULL },
|
||||
{ "setskill", SEC_ADMINISTRATOR, false, &ChatHandler::HandleSetSkillCommand, "", NULL },
|
||||
{ "whispers", SEC_MODERATOR, false, &ChatHandler::HandleWhispersCommand, "", NULL },
|
||||
{ "pinfo", SEC_GAMEMASTER, false, &ChatHandler::HandlePInfoCommand, "", NULL },
|
||||
{ "password", SEC_PLAYER, false, &ChatHandler::HandlePasswordCommand, "", NULL },
|
||||
{ "lockaccount", SEC_PLAYER, false, &ChatHandler::HandleLockAccountCommand, "", NULL },
|
||||
{ "respawn", SEC_ADMINISTRATOR, false, &ChatHandler::HandleRespawnCommand, "", NULL },
|
||||
{ "sendmail", SEC_MODERATOR, false, &ChatHandler::HandleSendMailCommand, "", NULL },
|
||||
{ "rename", SEC_GAMEMASTER, false, &ChatHandler::HandleRenameCommand, "", NULL },
|
||||
{ "loadscripts", SEC_ADMINISTRATOR, true, &ChatHandler::HandleLoadScriptsCommand, "", NULL },
|
||||
{ "mute", SEC_GAMEMASTER, false, &ChatHandler::HandleMuteCommand, "", NULL },
|
||||
{ "unmute", SEC_GAMEMASTER, false, &ChatHandler::HandleUnmuteCommand, "", NULL },
|
||||
{ "movegens", SEC_ADMINISTRATOR, false, &ChatHandler::HandleMovegensCommand, "", NULL },
|
||||
{ "cometome", SEC_ADMINISTRATOR, false, &ChatHandler::HandleComeToMeCommand, "", NULL },
|
||||
{ "damage", SEC_ADMINISTRATOR, false, &ChatHandler::HandleDamageCommand, "", NULL },
|
||||
{ "combatstop", SEC_GAMEMASTER, false, &ChatHandler::HandleCombatStopCommand, "", NULL },
|
||||
{ "chardelete", SEC_CONSOLE, true, &ChatHandler::HandleCombatStopCommand, "", NULL },
|
||||
{ "sendmessage", SEC_ADMINISTRATOR, true, &ChatHandler::HandleSendMessageCommand, "", NULL },
|
||||
|
||||
{ NULL, 0, NULL, "", NULL }
|
||||
{ NULL, 0, false, NULL, "", NULL }
|
||||
};
|
||||
|
||||
if(load_command_table)
|
||||
|
|
@ -509,11 +540,17 @@ ChatCommand * ChatHandler::getCommandTable()
|
|||
return commandTable;
|
||||
}
|
||||
|
||||
const char *ChatHandler::GetMangosString(int32 entry)
|
||||
const char *ChatHandler::GetMangosString(int32 entry) const
|
||||
{
|
||||
return m_session->GetMangosString(entry);
|
||||
}
|
||||
|
||||
bool ChatHandler::isAvailable(ChatCommand const& cmd) const
|
||||
{
|
||||
// check security level only for simple command (without child commands)
|
||||
return cmd.Handler && m_session->GetSecurity() >= cmd.SecurityLevel;
|
||||
}
|
||||
|
||||
bool ChatHandler::hasStringAbbr(const char* name, const char* part)
|
||||
{
|
||||
// non "" command
|
||||
|
|
@ -558,6 +595,7 @@ void ChatHandler::SendSysMessage(const char *str)
|
|||
|
||||
void ChatHandler::SendGlobalSysMessage(const char *str)
|
||||
{
|
||||
// Chat output
|
||||
WorldPacket data;
|
||||
|
||||
// need copy to prevent corruption by strtok call in LineFromMessage original string
|
||||
|
|
@ -633,8 +671,7 @@ bool ChatHandler::ExecuteCommandInTable(ChatCommand *table, const char* text, st
|
|||
return true;
|
||||
}
|
||||
|
||||
// check security level only for simple command (without child commands)
|
||||
if(m_session->GetSecurity() < table[i].SecurityLevel)
|
||||
if(!isAvailable(table[i]))
|
||||
continue;
|
||||
|
||||
SetSentErrorMessage(false);
|
||||
|
|
@ -643,11 +680,15 @@ bool ChatHandler::ExecuteCommandInTable(ChatCommand *table, const char* text, st
|
|||
{
|
||||
if(table[i].SecurityLevel > SEC_PLAYER)
|
||||
{
|
||||
Player* p = m_session->GetPlayer();
|
||||
uint64 sel_guid = p->GetSelection();
|
||||
sLog.outCommand("Command: %s [Player: %s (Account: %u) X: %f Y: %f Z: %f Map: %u Selected: %s (GUID: %u)]",
|
||||
fullcmd.c_str(),p->GetName(),m_session->GetAccountId(),p->GetPositionX(),p->GetPositionY(),p->GetPositionZ(),p->GetMapId(),
|
||||
GetLogNameForGuid(sel_guid),GUID_LOPART(sel_guid));
|
||||
// chat case
|
||||
if(m_session)
|
||||
{
|
||||
Player* p = m_session->GetPlayer();
|
||||
uint64 sel_guid = p->GetSelection();
|
||||
sLog.outCommand("Command: %s [Player: %s (Account: %u) X: %f Y: %f Z: %f Map: %u Selected: %s (GUID: %u)]",
|
||||
fullcmd.c_str(),p->GetName(),m_session->GetAccountId(),p->GetPositionX(),p->GetPositionY(),p->GetPositionZ(),p->GetMapId(),
|
||||
GetLogNameForGuid(sel_guid),GUID_LOPART(sel_guid));
|
||||
}
|
||||
}
|
||||
}
|
||||
// some commands have custom error messages. Don't send the default one in these cases.
|
||||
|
|
@ -673,18 +714,24 @@ int ChatHandler::ParseCommands(const char* text)
|
|||
//if(m_session->GetSecurity() == 0)
|
||||
// return 0;
|
||||
|
||||
if(text[0] != '!' && text[0] != '.')
|
||||
return 0;
|
||||
/// chat case (.command or !command format)
|
||||
if(m_session)
|
||||
{
|
||||
if(text[0] != '!' && text[0] != '.')
|
||||
return 0;
|
||||
}
|
||||
|
||||
// ignore single . and ! in line
|
||||
/// ignore single . and ! in line
|
||||
if(strlen(text) < 2)
|
||||
return 0;
|
||||
|
||||
// ignore messages staring from many dots.
|
||||
/// ignore messages staring from many dots.
|
||||
if(text[0] == '.' && text[1] == '.' || text[0] == '!' && text[1] == '!')
|
||||
return 0;
|
||||
|
||||
++text;
|
||||
/// skip first . or ! (in console allowed use command with . and ! and without its)
|
||||
if(text[0] == '!' || text[0] == '.')
|
||||
++text;
|
||||
|
||||
std::string fullcmd = text; // original `text` can't be used. It content destroyed in command code processing.
|
||||
|
||||
|
|
@ -699,7 +746,7 @@ bool ChatHandler::ShowHelpForSubCommands(ChatCommand *table, char const* cmd, ch
|
|||
std::string list;
|
||||
for(uint32 i = 0; table[i].Name != NULL; ++i)
|
||||
{
|
||||
if(m_session->GetSecurity() < table[i].SecurityLevel)
|
||||
if(!isAvailable(table[i]))
|
||||
continue;
|
||||
|
||||
/// for empty subcmd show all available
|
||||
|
|
@ -729,7 +776,7 @@ bool ChatHandler::ShowHelpForCommand(ChatCommand *table, const char* cmd)
|
|||
{
|
||||
for(uint32 i = 0; table[i].Name != NULL; ++i)
|
||||
{
|
||||
if(m_session->GetSecurity() < table[i].SecurityLevel)
|
||||
if(!isAvailable(table[i]))
|
||||
continue;
|
||||
|
||||
if( !hasStringAbbr(table[i].Name, cmd) )
|
||||
|
|
@ -758,7 +805,7 @@ bool ChatHandler::ShowHelpForCommand(ChatCommand *table, const char* cmd)
|
|||
{
|
||||
for(uint32 i = 0; table[i].Name != NULL; ++i)
|
||||
{
|
||||
if(m_session->GetSecurity() < table[i].SecurityLevel)
|
||||
if(!isAvailable(table[i]))
|
||||
continue;
|
||||
|
||||
if(strlen(table[i].Name))
|
||||
|
|
@ -859,6 +906,9 @@ void ChatHandler::FillMessageData( WorldPacket *data, WorldSession* session, uin
|
|||
|
||||
Player * ChatHandler::getSelectedPlayer()
|
||||
{
|
||||
if(!m_session)
|
||||
return NULL;
|
||||
|
||||
uint64 guid = m_session->GetPlayer()->GetSelection();
|
||||
|
||||
if (guid == 0)
|
||||
|
|
@ -869,6 +919,9 @@ Player * ChatHandler::getSelectedPlayer()
|
|||
|
||||
Unit* ChatHandler::getSelectedUnit()
|
||||
{
|
||||
if(!m_session)
|
||||
return NULL;
|
||||
|
||||
uint64 guid = m_session->GetPlayer()->GetSelection();
|
||||
|
||||
if (guid == 0)
|
||||
|
|
@ -879,6 +932,9 @@ Unit* ChatHandler::getSelectedUnit()
|
|||
|
||||
Creature* ChatHandler::getSelectedCreature()
|
||||
{
|
||||
if(!m_session)
|
||||
return NULL;
|
||||
|
||||
return ObjectAccessor::GetCreatureOrPet(*m_session->GetPlayer(),m_session->GetPlayer()->GetSelection());
|
||||
}
|
||||
|
||||
|
|
@ -1017,6 +1073,9 @@ char const *fmtstring( char const *format, ... )
|
|||
|
||||
GameObject* ChatHandler::GetObjectGlobalyWithGuidOrNearWithDbGuid(uint32 lowguid,uint32 entry)
|
||||
{
|
||||
if(!m_session)
|
||||
return NULL;
|
||||
|
||||
Player* pl = m_session->GetPlayer();
|
||||
|
||||
GameObject* obj = ObjectAccessor::GetGameObject(*pl, MAKE_NEW_GUID(lowguid, entry, HIGHGUID_GAMEOBJECT));
|
||||
|
|
@ -1090,3 +1149,20 @@ GameTele const* ChatHandler::extractGameTeleFromLink(char* text)
|
|||
|
||||
return objmgr.GetGameTele(cId);
|
||||
}
|
||||
|
||||
const char *CliHandler::GetMangosString(int32 entry) const
|
||||
{
|
||||
return objmgr.GetMangosStringForDBCLocale(entry);
|
||||
}
|
||||
|
||||
bool CliHandler::isAvailable(ChatCommand const& cmd) const
|
||||
{
|
||||
// skip non-console commands in console case
|
||||
return cmd.Handler && cmd.AllowConsole;
|
||||
}
|
||||
|
||||
void CliHandler::SendSysMessage(const char *str)
|
||||
{
|
||||
m_print(str);
|
||||
m_print("\r\n");
|
||||
}
|
||||
|
|
|
|||
|
|
@ -33,6 +33,7 @@ class ChatCommand
|
|||
public:
|
||||
const char * Name;
|
||||
uint32 SecurityLevel; // function pointer required correct align (use uint32)
|
||||
bool AllowConsole;
|
||||
bool (ChatHandler::*Handler)(const char* args);
|
||||
std::string Help;
|
||||
ChatCommand * ChildCommands;
|
||||
|
|
@ -59,9 +60,9 @@ class ChatHandler
|
|||
|
||||
static char* LineFromMessage(char*& pos) { char* start = strtok(pos,"\n"); pos = NULL; return start; }
|
||||
|
||||
const char *GetMangosString(int32 entry);
|
||||
virtual const char *GetMangosString(int32 entry) const;
|
||||
|
||||
void SendSysMessage( const char *str);
|
||||
virtual void SendSysMessage( const char *str);
|
||||
void SendSysMessage( int32 entry);
|
||||
void PSendSysMessage( const char *format, ...) ATTR_PRINTF(2,3);
|
||||
void PSendSysMessage( int32 entry, ... );
|
||||
|
|
@ -69,7 +70,12 @@ class ChatHandler
|
|||
int ParseCommands(const char* text);
|
||||
|
||||
protected:
|
||||
explicit ChatHandler() : m_session(NULL) {} // for CLI subclass
|
||||
|
||||
bool hasStringAbbr(const char* name, const char* part);
|
||||
|
||||
virtual bool isAvailable(ChatCommand const& cmd) const;
|
||||
|
||||
void SendGlobalSysMessage(const char *str);
|
||||
|
||||
bool ExecuteCommandInTable(ChatCommand *table, const char* text, std::string fullcommand);
|
||||
|
|
@ -78,14 +84,22 @@ class ChatHandler
|
|||
|
||||
ChatCommand* getCommandTable();
|
||||
|
||||
bool HandleAccountCommand(const char* args);
|
||||
bool HandleAccountCreateCommand(const char* args);
|
||||
bool HandleAccountDeleteCommand(const char* args);
|
||||
bool HandleAccountOnlineListCommand(const char* args);
|
||||
bool HandleAccountSetAddonCommand(const char* args);
|
||||
bool HandleAccountSetGmLevelCommand(const char* args);
|
||||
bool HandleAccountSetPasswordCommand(const char* args);
|
||||
|
||||
bool HandleHelpCommand(const char* args);
|
||||
bool HandleCommandsCommand(const char* args);
|
||||
bool HandleAcctCommand(const char* args);
|
||||
bool HandleStartCommand(const char* args);
|
||||
bool HandleInfoCommand(const char* args);
|
||||
bool HandleDismountCommand(const char* args);
|
||||
bool HandleSaveCommand(const char* args);
|
||||
bool HandleGMListCommand(const char* args);
|
||||
bool HandleGMListOnlineCommand(const char* args);
|
||||
bool HandleGMListFullCommand(const char* args);
|
||||
|
||||
bool HandleNamegoCommand(const char* args);
|
||||
bool HandleGonameCommand(const char* args);
|
||||
|
|
@ -204,6 +218,12 @@ class ChatHandler
|
|||
bool HandleInstanceStatsCommand(const char* args);
|
||||
bool HandleInstanceSaveDataCommand(const char * args);
|
||||
|
||||
bool HandleServerCorpsesCommand(const char* args);
|
||||
bool HandleServerExitCommand(const char* args);
|
||||
bool HandleServerMotdCommand(const char* args);
|
||||
bool HandleServerSetMotdCommand(const char* args);
|
||||
bool HandleServerSetLogLevelCommand(const char* args);
|
||||
|
||||
bool HandleAddHonorCommand(const char* args);
|
||||
bool HandleHonorAddKillCommand(const char* args);
|
||||
bool HandleUpdateHonorFieldsCommand(const char* args);
|
||||
|
|
@ -249,6 +269,7 @@ class ChatHandler
|
|||
bool HandleUnmuteCommand(const char* args);
|
||||
bool HandleMovegensCommand(const char* args);
|
||||
|
||||
bool HandleCharacterDeleteCommand(const char* args);
|
||||
bool HandleBanCommand(const char* args);
|
||||
bool HandleUnBanCommand(const char* args);
|
||||
bool HandleBanInfoCommand(const char* args);
|
||||
|
|
@ -257,7 +278,6 @@ class ChatHandler
|
|||
bool HandleIdleShutDownCommand(const char* args);
|
||||
bool HandleShutDownCommand(const char* args);
|
||||
bool HandleRestartCommand(const char* args);
|
||||
bool HandleSecurityCommand(const char* args);
|
||||
bool HandleGoXYCommand(const char* args);
|
||||
bool HandleGoXYZCommand(const char* args);
|
||||
bool HandleGoZoneXYCommand(const char* args);
|
||||
|
|
@ -375,6 +395,7 @@ class ChatHandler
|
|||
bool HandleCastTargetCommand(const char *args);
|
||||
bool HandleComeToMeCommand(const char *args);
|
||||
bool HandleCombatStopCommand(const char *args);
|
||||
bool HandleSendMessageCommand(const char * args);
|
||||
|
||||
//! Development Commands
|
||||
bool HandleSetValue(const char* args);
|
||||
|
|
@ -398,8 +419,6 @@ class ChatHandler
|
|||
|
||||
GameObject* GetObjectGlobalyWithGuidOrNearWithDbGuid(uint32 lowguid,uint32 entry);
|
||||
|
||||
WorldSession * m_session;
|
||||
|
||||
// Utility methods for commands
|
||||
void ShowTicket(uint64 guid, char const* text, char const* time);
|
||||
uint32 GetTicketIDByNum(uint32 num);
|
||||
|
|
@ -407,10 +426,28 @@ class ChatHandler
|
|||
|
||||
void SetSentErrorMessage(bool val){ sentErrorMessage = val;};
|
||||
private:
|
||||
WorldSession * m_session; // != NULL for chat command call and NULL for CLI command
|
||||
|
||||
// common global flag
|
||||
static bool load_command_table;
|
||||
bool sentErrorMessage;
|
||||
};
|
||||
#endif
|
||||
|
||||
class CliHandler : public ChatHandler
|
||||
{
|
||||
public:
|
||||
typedef void Print(char const*);
|
||||
explicit CliHandler(Print* zprint) : m_print(zprint) {}
|
||||
|
||||
// overwrite functions
|
||||
const char *GetMangosString(int32 entry) const;
|
||||
bool isAvailable(ChatCommand const& cmd) const;
|
||||
void SendSysMessage(const char *str);
|
||||
|
||||
private:
|
||||
Print* m_print;
|
||||
};
|
||||
|
||||
char const *fmtstring( char const *format, ... );
|
||||
|
||||
#endif
|
||||
|
|
|
|||
|
|
@ -77,7 +77,10 @@ enum MangosStrings
|
|||
LANG_NPC_TAINER_HELLO = 51,
|
||||
LANG_COMMAND_INVALID_ITEM_COUNT = 52,
|
||||
LANG_COMMAND_MAIL_ITEMS_LIMIT = 53,
|
||||
// Room for more level 0 54-99 not used
|
||||
LANG_NEW_PASSWORDS_NOT_MATCH = 54,
|
||||
LANG_PASSWORD_TOO_LONG = 55,
|
||||
LANG_MOTD_CURRENT = 56,
|
||||
// Room for more level 0 57-99 not used
|
||||
|
||||
// level 1 chat
|
||||
LANG_GLOBAL_NOTIFY = 100,
|
||||
|
|
@ -161,7 +164,8 @@ enum MangosStrings
|
|||
|
||||
LANG_MAIL_SENT = 169,
|
||||
LANG_SOUND_NOT_EXIST = 170,
|
||||
// Room for more level 1 171-199 not used
|
||||
LANG_TELEPORTED_TO_BY_CONSOLE = 171,
|
||||
// Room for more level 1 172-199 not used
|
||||
|
||||
// level 2 chat
|
||||
LANG_NO_SELECTION = 200,
|
||||
|
|
@ -329,7 +333,8 @@ enum MangosStrings
|
|||
LANG_UNBAN_UNBANNED = 411,
|
||||
LANG_UNBAN_ERROR = 412,
|
||||
|
||||
LANG_BANINFO_NOACCOUNT = 413,
|
||||
LANG_ACCOUNT_NOT_EXIST = 413,
|
||||
|
||||
LANG_BANINFO_NOCHARACTER = 414,
|
||||
LANG_BANINFO_NOIP = 415,
|
||||
LANG_BANINFO_NOACCOUNTBAN = 416,
|
||||
|
|
@ -536,6 +541,14 @@ enum MangosStrings
|
|||
LANG_MOVEGENS_DISTRACT = 591,
|
||||
|
||||
LANG_COMMAND_LEARN_ALL_RECIPES = 592,
|
||||
LANG_BANLIST_ACCOUNTS = 593,
|
||||
LANG_BANLIST_ACCOUNTS_HEADER = 594,
|
||||
LANG_BANLIST_IPS = 595,
|
||||
LANG_BANLIST_IPS_HEADER = 596,
|
||||
LANG_GMLIST = 597,
|
||||
LANG_GMLIST_HEADER = 598,
|
||||
LANG_GMLIST_EMPTY = 599,
|
||||
// End Level 3 list, continued at 1100
|
||||
|
||||
// Battleground
|
||||
LANG_BG_A_WINS = 600,
|
||||
|
|
@ -635,7 +648,28 @@ enum MangosStrings
|
|||
LANG_ACCOUNT_FOR_PLAYER_NOT_FOUND = 809,
|
||||
// Room for in-game strings 810-999 not used
|
||||
|
||||
// FREE IDS 1000-9999
|
||||
// Level 4 (CLI only commands)
|
||||
LANG_COMMAND_EXIT = 1000,
|
||||
LANG_ACCOUNT_DELETED = 1001,
|
||||
LANG_ACCOUNT_NOT_DELETED_SQL_ERROR = 1002,
|
||||
LANG_ACCOUNT_NOT_DELETED = 1003,
|
||||
LANG_ACCOUNT_CREATED = 1004,
|
||||
LANG_ACCOUNT_TOO_LONG = 1005,
|
||||
LANG_ACCOUNT_ALREADY_EXIST = 1006,
|
||||
LANG_ACCOUNT_NOT_CREATED_SQL_ERROR = 1007,
|
||||
LANG_ACCOUNT_NOT_CREATED = 1008,
|
||||
LANG_CHARACTER_DELETED = 1009,
|
||||
LANG_ACCOUNT_LIST_HEADER = 1010,
|
||||
LANG_ACCOUNT_LIST_ERROR = 1011,
|
||||
// Room for more level 4 1012-1099 not used
|
||||
|
||||
// Level 3 (continue)
|
||||
LANG_MOTD_NEW = 1100,
|
||||
LANG_ACCOUNT_SETADDON = 1101,
|
||||
LANG_SENDMESSAGE = 1102,
|
||||
// Room for more level 3 1103-1199 not used
|
||||
|
||||
// FREE IDS 1200-9999
|
||||
|
||||
// Use for not-in-svn patches 10000-10999
|
||||
// Use for custom patches 11000-11999
|
||||
|
|
|
|||
|
|
@ -52,7 +52,7 @@ bool ChatHandler::HandleCommandsCommand(const char* args)
|
|||
return true;
|
||||
}
|
||||
|
||||
bool ChatHandler::HandleAcctCommand(const char* /*args*/)
|
||||
bool ChatHandler::HandleAccountCommand(const char* /*args*/)
|
||||
{
|
||||
uint32 gmlevel = m_session->GetSecurity();
|
||||
PSendSysMessage(LANG_ACCOUNT_LEVEL, gmlevel);
|
||||
|
|
@ -139,7 +139,7 @@ bool ChatHandler::HandleSaveCommand(const char* /*args*/)
|
|||
return true;
|
||||
}
|
||||
|
||||
bool ChatHandler::HandleGMListCommand(const char* /*args*/)
|
||||
bool ChatHandler::HandleGMListOnlineCommand(const char* /*args*/)
|
||||
{
|
||||
bool first = true;
|
||||
|
||||
|
|
@ -147,8 +147,9 @@ bool ChatHandler::HandleGMListCommand(const char* /*args*/)
|
|||
HashMapHolder<Player>::MapType::iterator itr = m.begin();
|
||||
for(; itr != m.end(); ++itr)
|
||||
{
|
||||
if( itr->second->GetSession()->GetSecurity() && (itr->second->isGameMaster() || sWorld.getConfig(CONFIG_GM_IN_GM_LIST) ) &&
|
||||
itr->second->IsVisibleGloballyFor(m_session->GetPlayer()) )
|
||||
if (itr->second->GetSession()->GetSecurity() &&
|
||||
(itr->second->isGameMaster() || sWorld.getConfig(CONFIG_GM_IN_GM_LIST)) &&
|
||||
(!m_session || itr->second->IsVisibleGloballyFor(m_session->GetPlayer())) )
|
||||
{
|
||||
if(first)
|
||||
{
|
||||
|
|
@ -175,17 +176,24 @@ bool ChatHandler::HandlePasswordCommand(const char* args)
|
|||
char *new_pass = strtok (NULL, " ");
|
||||
char *new_pass_c = strtok (NULL, " ");
|
||||
|
||||
if( !old_pass || !new_pass || !new_pass_c )
|
||||
if (!old_pass || !new_pass || !new_pass_c)
|
||||
return false;
|
||||
|
||||
std::string password_old = old_pass;
|
||||
std::string password_new = new_pass;
|
||||
std::string password_new_c = new_pass_c;
|
||||
|
||||
if(!accmgr.CheckPassword(m_session->GetAccountId(), password_old) || password_new != password_new_c)
|
||||
if (password_new != password_new_c)
|
||||
{
|
||||
SendSysMessage(LANG_COMMAND_WRONGOLDPASSWORD);
|
||||
SetSentErrorMessage(true);
|
||||
SendSysMessage (LANG_NEW_PASSWORDS_NOT_MATCH);
|
||||
SetSentErrorMessage (true);
|
||||
return false;
|
||||
}
|
||||
|
||||
if (!accmgr.CheckPassword (m_session->GetAccountId(), password_old))
|
||||
{
|
||||
SendSysMessage (LANG_COMMAND_WRONGOLDPASSWORD);
|
||||
SetSentErrorMessage (true);
|
||||
return false;
|
||||
}
|
||||
|
||||
|
|
@ -196,6 +204,11 @@ bool ChatHandler::HandlePasswordCommand(const char* args)
|
|||
case AOR_OK:
|
||||
SendSysMessage(LANG_COMMAND_PASSWORD);
|
||||
break;
|
||||
case AOR_PASS_TOO_LONG:
|
||||
SendSysMessage(LANG_PASSWORD_TOO_LONG);
|
||||
SetSentErrorMessage(true);
|
||||
return false;
|
||||
case AOR_NAME_NOT_EXIST: // not possible case, don't want get account name for output
|
||||
default:
|
||||
SendSysMessage(LANG_COMMAND_NOTCHANGEPASSWORD);
|
||||
SetSentErrorMessage(true);
|
||||
|
|
@ -231,3 +244,10 @@ bool ChatHandler::HandleLockAccountCommand(const char* args)
|
|||
SendSysMessage(LANG_USE_BOL);
|
||||
return true;
|
||||
}
|
||||
|
||||
/// Display the 'Message of the day' for the realm
|
||||
bool ChatHandler::HandleServerMotdCommand(const char* /*args*/)
|
||||
{
|
||||
PSendSysMessage(LANG_MOTD_CURRENT, sWorld.GetMotd());
|
||||
return true;
|
||||
}
|
||||
|
|
|
|||
|
|
@ -2016,8 +2016,13 @@ bool ChatHandler::HandleNameTeleCommand(const char * args)
|
|||
|
||||
PSendSysMessage(LANG_TELEPORTING_TO, chr->GetName(),"", tele->name.c_str());
|
||||
|
||||
if (m_session->GetPlayer()->IsVisibleGloballyFor(chr))
|
||||
ChatHandler(chr).PSendSysMessage(LANG_TELEPORTED_TO_BY, m_session->GetPlayer()->GetName());
|
||||
if (m_session)
|
||||
{
|
||||
if(m_session->GetPlayer()->IsVisibleGloballyFor(chr))
|
||||
ChatHandler(chr).PSendSysMessage(LANG_TELEPORTED_TO_BY, m_session->GetPlayer()->GetName());
|
||||
}
|
||||
else
|
||||
ChatHandler(chr).SendSysMessage(LANG_TELEPORTED_TO_BY_CONSOLE);
|
||||
|
||||
// stop flight if need
|
||||
if(chr->isInFlight())
|
||||
|
|
|
|||
|
|
@ -40,6 +40,7 @@
|
|||
#include <iostream>
|
||||
#include <fstream>
|
||||
#include <map>
|
||||
#include "GlobalEvents.h"
|
||||
|
||||
static uint32 ReputationRankStrIndex[MAX_REPUTATION_RANK] =
|
||||
{
|
||||
|
|
@ -1699,7 +1700,7 @@ bool ChatHandler::HandleKickPlayerCommand(const char *args)
|
|||
return false;
|
||||
}
|
||||
|
||||
if(name==m_session->GetPlayer()->GetName())
|
||||
if(m_session && name==m_session->GetPlayer()->GetName())
|
||||
{
|
||||
SendSysMessage(LANG_COMMAND_KICKSELF);
|
||||
SetSentErrorMessage(true);
|
||||
|
|
@ -4006,3 +4007,10 @@ bool ChatHandler::LookupPlayerSearchCommand(QueryResult* result, int32 limit)
|
|||
|
||||
return true;
|
||||
}
|
||||
|
||||
/// Triggering corpses expire check in world
|
||||
bool ChatHandler::HandleServerCorpsesCommand(const char* /*args*/)
|
||||
{
|
||||
CorpsesErase();
|
||||
return true;
|
||||
}
|
||||
|
|
|
|||
|
|
@ -49,6 +49,7 @@
|
|||
#include "ItemEnchantmentMgr.h"
|
||||
#include "InstanceSaveMgr.h"
|
||||
#include "InstanceData.h"
|
||||
#include "AccountMgr.h"
|
||||
|
||||
//reload commands
|
||||
bool ChatHandler::HandleReloadCommand(const char* arg)
|
||||
|
|
@ -666,56 +667,47 @@ bool ChatHandler::HandleLoadScriptsCommand(const char* args)
|
|||
return true;
|
||||
}
|
||||
|
||||
bool ChatHandler::HandleSecurityCommand(const char* args)
|
||||
bool ChatHandler::HandleAccountSetGmLevelCommand(const char* args)
|
||||
{
|
||||
char* arg1 = strtok((char*)args, " ");
|
||||
if( !arg1 )
|
||||
return false;
|
||||
|
||||
char* arg2 = 0;
|
||||
char* arg2 = strtok(NULL, " ");
|
||||
|
||||
std::string targetName;
|
||||
std::string targetAccountName;
|
||||
uint32 targetAccountId = 0;
|
||||
uint32 targetSecurity = 0;
|
||||
|
||||
/// only target player different from self allowed (if targetPlayer!=NULL then not console)
|
||||
Player* targetPlayer = getSelectedPlayer();
|
||||
if(targetPlayer)
|
||||
if(targetPlayer && m_session->GetPlayer()!=targetPlayer)
|
||||
{
|
||||
targetName = targetPlayer->GetName();
|
||||
/// wrong command syntax or unexpected targeting
|
||||
if(arg2)
|
||||
return false;
|
||||
|
||||
targetAccountId = targetPlayer->GetSession()->GetAccountId();
|
||||
targetSecurity = targetPlayer->GetSession()->GetSecurity();
|
||||
arg2 = arg1;
|
||||
if(!accmgr.GetName(targetAccountId,targetAccountName))
|
||||
{
|
||||
PSendSysMessage(LANG_ACCOUNT_NOT_EXIST,targetAccountName.c_str());
|
||||
SetSentErrorMessage(true);
|
||||
return false;
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
targetName = arg1;
|
||||
if(!normalizePlayerName(targetName))
|
||||
targetAccountName = arg1;
|
||||
if(!AccountMgr::normilizeString(targetAccountName))
|
||||
{
|
||||
SendSysMessage(LANG_PLAYER_NOT_FOUND);
|
||||
PSendSysMessage(LANG_ACCOUNT_NOT_EXIST,targetAccountName.c_str());
|
||||
SetSentErrorMessage(true);
|
||||
return false;
|
||||
}
|
||||
|
||||
targetPlayer = ObjectAccessor::Instance().FindPlayerByName(targetName.c_str());
|
||||
if(targetPlayer)
|
||||
{
|
||||
targetAccountId = targetPlayer->GetSession()->GetAccountId();
|
||||
targetSecurity = targetPlayer->GetSession()->GetSecurity();
|
||||
}
|
||||
else
|
||||
{
|
||||
uint64 targetGUID = objmgr.GetPlayerGUIDByName(targetName.c_str());
|
||||
if(!targetGUID)
|
||||
{
|
||||
SendSysMessage(LANG_PLAYER_NOT_FOUND);
|
||||
SetSentErrorMessage(true);
|
||||
return false;
|
||||
}
|
||||
targetAccountId = objmgr.GetPlayerAccountIdByGUID(targetGUID);
|
||||
targetSecurity = accmgr.GetSecurity(targetAccountId);
|
||||
}
|
||||
|
||||
arg2 = strtok(NULL, " ");
|
||||
targetAccountId = accmgr.GetId(targetAccountName);
|
||||
targetSecurity = accmgr.GetSecurity(targetAccountId);
|
||||
}
|
||||
|
||||
int32 gm = (int32)atoi(arg2);
|
||||
|
|
@ -726,8 +718,12 @@ bool ChatHandler::HandleSecurityCommand(const char* args)
|
|||
return false;
|
||||
}
|
||||
|
||||
// can set security level only for target with less security and to less security that we have
|
||||
if(targetSecurity >= m_session->GetSecurity() || uint32(gm) >= m_session->GetSecurity() )
|
||||
/// m_session==NULL only for console
|
||||
uint32 plSecurity = m_session ? m_session->GetSecurity() : SEC_CONSOLE;
|
||||
|
||||
/// can set security level only for target with less security and to less security that we have
|
||||
/// This is also reject self apply in fact
|
||||
if(targetSecurity >= plSecurity || uint32(gm) >= plSecurity )
|
||||
{
|
||||
SendSysMessage(LANG_YOURS_SECURITY_IS_LOW);
|
||||
SetSentErrorMessage(true);
|
||||
|
|
@ -736,18 +732,91 @@ bool ChatHandler::HandleSecurityCommand(const char* args)
|
|||
|
||||
if(targetPlayer)
|
||||
{
|
||||
if( targetPlayer != m_session->GetPlayer() )
|
||||
ChatHandler(targetPlayer).PSendSysMessage(LANG_YOURS_SECURITY_CHANGED,m_session->GetPlayer()->GetName(), gm);
|
||||
|
||||
ChatHandler(targetPlayer).PSendSysMessage(LANG_YOURS_SECURITY_CHANGED,m_session->GetPlayer()->GetName(), gm);
|
||||
targetPlayer->GetSession()->SetSecurity(gm);
|
||||
}
|
||||
|
||||
PSendSysMessage(LANG_YOU_CHANGE_SECURITY, targetName.c_str(), gm);
|
||||
PSendSysMessage(LANG_YOU_CHANGE_SECURITY, targetAccountName.c_str(), gm);
|
||||
loginDatabase.PExecute("UPDATE account SET gmlevel = '%i' WHERE id = '%u'", gm, targetAccountId);
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
/// Set password for account
|
||||
bool ChatHandler::HandleAccountSetPasswordCommand(const char* args)
|
||||
{
|
||||
if(!*args)
|
||||
return false;
|
||||
|
||||
///- Get the command line arguments
|
||||
char *szAccount = strtok ((char*)args," ");
|
||||
char *szPassword1 = strtok (NULL," ");
|
||||
char *szPassword2 = strtok (NULL," ");
|
||||
|
||||
if (!szAccount||!szPassword1 || !szPassword2)
|
||||
return false;
|
||||
|
||||
std::string account_name = szAccount;
|
||||
if(!AccountMgr::normilizeString(account_name))
|
||||
{
|
||||
PSendSysMessage(LANG_ACCOUNT_NOT_EXIST,account_name.c_str());
|
||||
SetSentErrorMessage(true);
|
||||
return false;
|
||||
}
|
||||
|
||||
uint32 targetAccountId = accmgr.GetId(account_name);
|
||||
if (!targetAccountId)
|
||||
{
|
||||
PSendSysMessage(LANG_ACCOUNT_NOT_EXIST,account_name.c_str());
|
||||
SetSentErrorMessage(true);
|
||||
return false;
|
||||
}
|
||||
|
||||
uint32 targetSecurity = accmgr.GetSecurity(targetAccountId);
|
||||
|
||||
/// m_session==NULL only for console
|
||||
uint32 plSecurity = m_session ? m_session->GetSecurity() : SEC_CONSOLE;
|
||||
|
||||
/// can set password only for target with less security
|
||||
/// This is also reject self apply in fact
|
||||
if (targetSecurity >= plSecurity)
|
||||
{
|
||||
SendSysMessage (LANG_YOURS_SECURITY_IS_LOW);
|
||||
SetSentErrorMessage (true);
|
||||
return false;
|
||||
}
|
||||
|
||||
if (strcmp(szPassword1,szPassword2))
|
||||
{
|
||||
SendSysMessage (LANG_NEW_PASSWORDS_NOT_MATCH);
|
||||
SetSentErrorMessage (true);
|
||||
return false;
|
||||
}
|
||||
|
||||
AccountOpResult result = accmgr.ChangePassword(targetAccountId, szPassword1);
|
||||
|
||||
switch(result)
|
||||
{
|
||||
case AOR_OK:
|
||||
SendSysMessage(LANG_COMMAND_PASSWORD);
|
||||
break;
|
||||
case AOR_NAME_NOT_EXIST:
|
||||
PSendSysMessage(LANG_ACCOUNT_NOT_EXIST,account_name.c_str());
|
||||
SetSentErrorMessage(true);
|
||||
return false;
|
||||
case AOR_PASS_TOO_LONG:
|
||||
SendSysMessage(LANG_PASSWORD_TOO_LONG);
|
||||
SetSentErrorMessage(true);
|
||||
return false;
|
||||
default:
|
||||
SendSysMessage(LANG_COMMAND_NOTCHANGEPASSWORD);
|
||||
SetSentErrorMessage(true);
|
||||
return false;
|
||||
}
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
bool ChatHandler::HandleAllowMovementCommand(const char* /*args*/)
|
||||
{
|
||||
if(sWorld.getAllowMovement())
|
||||
|
|
@ -4688,7 +4757,7 @@ bool ChatHandler::HandleBanCommand(const char* args)
|
|||
if(!reason)
|
||||
return false;
|
||||
|
||||
switch(sWorld.BanAccount(type, nameOrIP, duration, reason,m_session->GetPlayerName()))
|
||||
switch(sWorld.BanAccount(type, nameOrIP, duration, reason,m_session ? m_session->GetPlayerName() : ""))
|
||||
{
|
||||
case BAN_SUCCESS:
|
||||
if(atoi(duration)>0)
|
||||
|
|
@ -4749,17 +4818,20 @@ bool ChatHandler::HandleBanInfoCommand(const char* args)
|
|||
std::string accountname;
|
||||
if(type == "account")
|
||||
{
|
||||
loginDatabase.escape_string(nameOrIP);
|
||||
QueryResult *result = loginDatabase.PQuery("SELECT id, username FROM account WHERE username = '%s'",nameOrIP.c_str());
|
||||
if (!result)
|
||||
std::string account_name = nameOrIP;
|
||||
if(!AccountMgr::normilizeString(account_name))
|
||||
{
|
||||
PSendSysMessage(LANG_BANINFO_NOACCOUNT);
|
||||
PSendSysMessage(LANG_ACCOUNT_NOT_EXIST,account_name.c_str());
|
||||
SetSentErrorMessage(true);
|
||||
return false;
|
||||
}
|
||||
|
||||
accountid = accmgr.GetId(account_name);
|
||||
if(!accountid)
|
||||
{
|
||||
PSendSysMessage(LANG_ACCOUNT_NOT_EXIST,account_name.c_str());
|
||||
return true;
|
||||
}
|
||||
fields = result->Fetch();
|
||||
accountid = fields[0].GetUInt32();
|
||||
accountname = fields[1].GetCppString();
|
||||
delete result;
|
||||
}
|
||||
else if(type == "character")
|
||||
{
|
||||
|
|
@ -4841,16 +4913,17 @@ bool ChatHandler::HandleBanListCommand(const char* args)
|
|||
loginDatabase.Execute("DELETE FROM ip_banned WHERE unbandate<=UNIX_TIMESTAMP() AND unbandate<>bandate");
|
||||
if(!*args)
|
||||
return false;
|
||||
|
||||
char* cType = strtok((char*)args, " ");
|
||||
char* cFilter = strtok(NULL, "");
|
||||
if(!cType || !cFilter)
|
||||
return false;
|
||||
|
||||
std::string Filter = cFilter;
|
||||
std::string Type = cType;
|
||||
loginDatabase.escape_string(Filter);
|
||||
|
||||
QueryResult* result = NULL;
|
||||
Field *fields = NULL;
|
||||
if(Type == "ip")
|
||||
{
|
||||
result = loginDatabase.PQuery("SELECT ip FROM ip_banned WHERE ip "_LIKE_" "_CONCAT3_("'%%'","'%s'","'%%'"),Filter.c_str());
|
||||
|
|
@ -4862,7 +4935,7 @@ bool ChatHandler::HandleBanListCommand(const char* args)
|
|||
PSendSysMessage(LANG_BANLIST_MATCHINGIP);
|
||||
do
|
||||
{
|
||||
fields = result->Fetch();
|
||||
Field* fields = result->Fetch();
|
||||
PSendSysMessage("%s",fields[0].GetString());
|
||||
} while (result->NextRow());
|
||||
|
||||
|
|
@ -4872,7 +4945,7 @@ bool ChatHandler::HandleBanListCommand(const char* args)
|
|||
//lookup accountid
|
||||
if(Type == "account")
|
||||
{
|
||||
result = loginDatabase.PQuery("SELECT id FROM account WHERE username "_LIKE_" "_CONCAT3_("'%%'","'%s'","'%%'"),Filter.c_str());
|
||||
result = loginDatabase.PQuery("SELECT id, username FROM account WHERE username "_LIKE_" "_CONCAT3_("'%%'","'%s'","'%%'"),Filter.c_str());
|
||||
if (!result)
|
||||
{
|
||||
PSendSysMessage(LANG_BANLIST_NOACCOUNT);
|
||||
|
|
@ -4880,9 +4953,9 @@ bool ChatHandler::HandleBanListCommand(const char* args)
|
|||
}
|
||||
//do not delete result
|
||||
}
|
||||
else if(Type == "characters")
|
||||
else if(Type == "character")
|
||||
{
|
||||
result = CharacterDatabase.PQuery("SELECT account FROM characters, WHERE name "_LIKE_" "_CONCAT3_("'%%'","'%s'","'%%'"),Filter.c_str());
|
||||
result = CharacterDatabase.PQuery("SELECT account FROM characters WHERE name "_LIKE_" "_CONCAT3_("'%%'","'%s'","'%%'"),Filter.c_str());
|
||||
if (!result)
|
||||
{
|
||||
PSendSysMessage(LANG_BANLIST_NOCHARACTER);
|
||||
|
|
@ -4893,18 +4966,108 @@ bool ChatHandler::HandleBanListCommand(const char* args)
|
|||
return false;
|
||||
|
||||
PSendSysMessage(LANG_BANLIST_MATCHINGACCOUNT);
|
||||
do
|
||||
|
||||
// Chat short output
|
||||
if(m_session)
|
||||
{
|
||||
fields = result->Fetch();
|
||||
uint32 accountid = fields[0].GetUInt32();
|
||||
QueryResult* banresult = loginDatabase.PQuery("SELECT account.username FROM account,account_banned WHERE account_banned.id='%u' AND account_banned.active = '1' AND account_banned.id=account.id",accountid);
|
||||
if(banresult)
|
||||
do
|
||||
{
|
||||
Field* fields2 = banresult->Fetch();
|
||||
PSendSysMessage("%s",fields2[0].GetString());
|
||||
delete banresult;
|
||||
Field* fields = result->Fetch();
|
||||
uint32 accountid = fields[0].GetUInt32();
|
||||
|
||||
QueryResult* banresult = loginDatabase.PQuery("SELECT account.username FROM account,account_banned WHERE account_banned.id='%u' AND account_banned.active = '1' AND account_banned.id=account.id",accountid);
|
||||
if(banresult)
|
||||
{
|
||||
Field* fields2 = banresult->Fetch();
|
||||
PSendSysMessage("%s",fields2[0].GetString());
|
||||
delete banresult;
|
||||
}
|
||||
} while (result->NextRow());
|
||||
}
|
||||
// Console wide output
|
||||
else
|
||||
{
|
||||
if(Type != "ip")
|
||||
{
|
||||
SendSysMessage(LANG_BANLIST_ACCOUNTS);
|
||||
SendSysMessage("===============================================================================");
|
||||
SendSysMessage(LANG_BANLIST_ACCOUNTS_HEADER);
|
||||
do
|
||||
{
|
||||
SendSysMessage("-------------------------------------------------------------------------------");
|
||||
Field *fields = result->Fetch();
|
||||
uint32 account_id = fields[0].GetUInt32 ();
|
||||
|
||||
std::string account_name;
|
||||
|
||||
// "account" case, name can be get in same quary
|
||||
if(result->GetFieldCount() > 1)
|
||||
account_name = fields[1].GetCppString();
|
||||
// "character" case, name need extract from another DB
|
||||
else
|
||||
accmgr.GetName (account_id,account_name);
|
||||
|
||||
// No SQL injection. id is uint32.
|
||||
QueryResult *banInfo = loginDatabase.PQuery("SELECT bandate,unbandate,bannedby,banreason FROM account_banned WHERE id = %u AND active = 1 ORDER BY unbandate", account_id);
|
||||
if (banInfo)
|
||||
{
|
||||
Field *fields2 = banInfo->Fetch();
|
||||
do
|
||||
{
|
||||
time_t t_ban = fields2[0].GetUInt64();
|
||||
tm* aTm_ban = localtime(&t_ban);
|
||||
|
||||
if (fields2[0].GetUInt64() == fields2[1].GetUInt64())
|
||||
{
|
||||
PSendSysMessage("|%-15.15s|%02d-%02d-%02d %02d:%02d| permanent |%-15.15s|%-15.15s|",
|
||||
account_name.c_str(),aTm_ban->tm_year%100, aTm_ban->tm_mon+1, aTm_ban->tm_mday, aTm_ban->tm_hour, aTm_ban->tm_min,
|
||||
fields2[2].GetString(),fields2[3].GetString());
|
||||
}
|
||||
else
|
||||
{
|
||||
time_t t_unban = fields2[1].GetUInt64();
|
||||
tm* aTm_unban = localtime(&t_unban);
|
||||
PSendSysMessage("|%-15.15s|%02d-%02d-%02d %02d:%02d|%02d-%02d-%02d %02d:%02d|%-15.15s|%-15.15s|",
|
||||
account_name.c_str(),aTm_ban->tm_year%100, aTm_ban->tm_mon+1, aTm_ban->tm_mday, aTm_ban->tm_hour, aTm_ban->tm_min,
|
||||
aTm_unban->tm_year%100, aTm_unban->tm_mon+1, aTm_unban->tm_mday, aTm_unban->tm_hour, aTm_unban->tm_min,
|
||||
fields2[2].GetString(),fields2[3].GetString());
|
||||
}
|
||||
}while ( banInfo->NextRow() );
|
||||
delete banInfo;
|
||||
}
|
||||
}while( result->NextRow() );
|
||||
SendSysMessage("===============================================================================");
|
||||
}
|
||||
} while (result->NextRow());
|
||||
else
|
||||
{
|
||||
SendSysMessage(LANG_BANLIST_IPS);
|
||||
SendSysMessage("===============================================================================");
|
||||
SendSysMessage(LANG_BANLIST_IPS_HEADER);
|
||||
do
|
||||
{
|
||||
SendSysMessage("-------------------------------------------------------------------------------");
|
||||
Field *fields = result->Fetch();
|
||||
time_t t_ban = fields[1].GetUInt64();
|
||||
tm* aTm_ban = localtime(&t_ban);
|
||||
if ( fields[1].GetUInt64() == fields[2].GetUInt64() )
|
||||
{
|
||||
PSendSysMessage("|%-15.15s|%02d-%02d-%02d %02d:%02d| permanent |%-15.15s|%-15.15s|",
|
||||
fields[0].GetString(), aTm_ban->tm_year%100, aTm_ban->tm_mon+1, aTm_ban->tm_mday, aTm_ban->tm_hour, aTm_ban->tm_min,
|
||||
fields[3].GetString(), fields[4].GetString());
|
||||
}
|
||||
else
|
||||
{
|
||||
time_t t_unban = fields[2].GetUInt64();
|
||||
tm* aTm_unban = localtime(&t_unban);
|
||||
PSendSysMessage("|%-15.15s|%02d-%02d-%02d %02d:%02d|%02d-%02d-%02d %02d:%02d|%-15.15s|%-15.15s|",
|
||||
fields[0].GetString(), aTm_ban->tm_year%100, aTm_ban->tm_mon+1, aTm_ban->tm_mday, aTm_ban->tm_hour, aTm_ban->tm_min,
|
||||
aTm_unban->tm_year%100, aTm_unban->tm_mon+1, aTm_unban->tm_mday, aTm_unban->tm_hour, aTm_unban->tm_min,
|
||||
fields[3].GetString(), fields[4].GetString());
|
||||
}
|
||||
}while( result->NextRow() );
|
||||
SendSysMessage("===============================================================================");
|
||||
}
|
||||
}
|
||||
|
||||
delete result;
|
||||
return true;
|
||||
|
|
@ -4960,19 +5123,29 @@ bool ChatHandler::HandleLoadPDumpCommand(const char *args)
|
|||
if(!args)
|
||||
return false;
|
||||
|
||||
char * file = strtok((char*)args, " "); if(!file) return false;
|
||||
char * acc = strtok(NULL, " "); if(!acc) return false;
|
||||
if(!file || !acc)
|
||||
char * file = strtok((char*)args, " ");
|
||||
if(!file)
|
||||
return false;
|
||||
|
||||
uint32 account_id = accmgr.GetId(acc);
|
||||
char * account = strtok(NULL, " ");
|
||||
if(!account)
|
||||
return false;
|
||||
|
||||
std::string account_name = account;
|
||||
if(!AccountMgr::normilizeString(account_name))
|
||||
{
|
||||
PSendSysMessage(LANG_ACCOUNT_NOT_EXIST,account_name.c_str());
|
||||
SetSentErrorMessage(true);
|
||||
return false;
|
||||
}
|
||||
|
||||
uint32 account_id = accmgr.GetId(account_name);
|
||||
if(!account_id)
|
||||
{
|
||||
account_id = atoi(acc);
|
||||
account_id = atoi(account); // use original string
|
||||
if(account_id)
|
||||
{
|
||||
std::string acc_name;
|
||||
if(!accmgr.GetName(account_id,acc_name))
|
||||
if(!accmgr.GetName(account_id,account_name))
|
||||
return false;
|
||||
}
|
||||
else
|
||||
|
|
@ -5516,3 +5689,132 @@ bool ChatHandler::HandleInstanceSaveDataCommand(const char * /*args*/)
|
|||
((InstanceMap*)map)->GetInstanceData()->SaveToDB();
|
||||
return true;
|
||||
}
|
||||
|
||||
/// Display the list of GMs
|
||||
bool ChatHandler::HandleGMListFullCommand(const char* /*args*/)
|
||||
{
|
||||
///- Get the accounts with GM Level >0
|
||||
QueryResult *result = loginDatabase.Query( "SELECT username,gmlevel FROM account WHERE gmlevel > 0" );
|
||||
if(result)
|
||||
{
|
||||
SendSysMessage(LANG_GMLIST);
|
||||
SendSysMessage("========================");
|
||||
SendSysMessage(LANG_GMLIST_HEADER);
|
||||
SendSysMessage("========================");
|
||||
|
||||
///- Circle through them. Display username and GM level
|
||||
do
|
||||
{
|
||||
Field *fields = result->Fetch();
|
||||
PSendSysMessage("|%15s|%6s|", fields[0].GetString(),fields[1].GetString());
|
||||
}while( result->NextRow() );
|
||||
|
||||
PSendSysMessage("========================");
|
||||
delete result;
|
||||
}
|
||||
else
|
||||
PSendSysMessage(LANG_GMLIST_EMPTY);
|
||||
return true;
|
||||
}
|
||||
|
||||
/// Define the 'Message of the day' for the realm
|
||||
bool ChatHandler::HandleServerSetMotdCommand(const char* args)
|
||||
{
|
||||
sWorld.SetMotd(args);
|
||||
PSendSysMessage(LANG_MOTD_NEW, args);
|
||||
return true;
|
||||
}
|
||||
|
||||
/// Set/Unset the expansion level for an account
|
||||
bool ChatHandler::HandleAccountSetAddonCommand(const char* args)
|
||||
{
|
||||
///- Get the command line arguments
|
||||
char *szAcc = strtok((char*)args," ");
|
||||
char *szExp = strtok(NULL," ");
|
||||
|
||||
if(!szAcc)
|
||||
return false;
|
||||
|
||||
std::string account_name;
|
||||
uint32 account_id;
|
||||
|
||||
if(!szExp)
|
||||
{
|
||||
Player* player = getSelectedPlayer();
|
||||
if(!player)
|
||||
return false;
|
||||
|
||||
account_id = player->GetSession()->GetAccountId();
|
||||
accmgr.GetName(account_id,account_name);
|
||||
szExp = szAcc;
|
||||
}
|
||||
else
|
||||
{
|
||||
///- Convert Account name to Upper Format
|
||||
account_name = szAcc;
|
||||
if(!AccountMgr::normilizeString(account_name))
|
||||
{
|
||||
PSendSysMessage(LANG_ACCOUNT_NOT_EXIST,account_name.c_str());
|
||||
SetSentErrorMessage(true);
|
||||
return false;
|
||||
}
|
||||
|
||||
account_id = accmgr.GetId(account_name);
|
||||
if(!account_id)
|
||||
{
|
||||
PSendSysMessage(LANG_ACCOUNT_NOT_EXIST,account_name.c_str());
|
||||
SetSentErrorMessage(true);
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
||||
int lev=atoi(szExp); //get int anyway (0 if error)
|
||||
if(lev < 0)
|
||||
return false;
|
||||
|
||||
// No SQL injection
|
||||
loginDatabase.PExecute("UPDATE account SET expansion = '%d' WHERE id = '%u'",lev,account_id);
|
||||
PSendSysMessage(LANG_ACCOUNT_SETADDON,account_name.c_str(),account_id,lev);
|
||||
return true;
|
||||
}
|
||||
|
||||
/// Send a message to a player in game
|
||||
bool ChatHandler::HandleSendMessageCommand(const char* args)
|
||||
{
|
||||
///- Get the command line arguments
|
||||
char* name_str = strtok((char*)args, " ");
|
||||
char* msg_str = strtok(NULL, "");
|
||||
|
||||
if(!name_str || !msg_str)
|
||||
return false;
|
||||
|
||||
std::string name = name_str;
|
||||
|
||||
if(!normalizePlayerName(name))
|
||||
return false;
|
||||
|
||||
///- Find the player and check that he is not logging out.
|
||||
Player *rPlayer = objmgr.GetPlayer(name.c_str());
|
||||
if(!rPlayer)
|
||||
{
|
||||
SendSysMessage(LANG_PLAYER_NOT_FOUND);
|
||||
SetSentErrorMessage(true);
|
||||
return false;
|
||||
}
|
||||
|
||||
if(rPlayer->GetSession()->isLogingOut())
|
||||
{
|
||||
SendSysMessage(LANG_PLAYER_NOT_FOUND);
|
||||
SetSentErrorMessage(true);
|
||||
return false;
|
||||
}
|
||||
|
||||
///- Send the message
|
||||
//Use SendAreaTriggerMessage for fastest delivery.
|
||||
rPlayer->GetSession()->SendAreaTriggerMessage("%s", msg_str);
|
||||
rPlayer->GetSession()->SendAreaTriggerMessage("|cffff0000[Message from administrator]:|r");
|
||||
|
||||
//Confirmation message
|
||||
PSendSysMessage(LANG_SENDMESSAGE,name.c_str(),msg_str);
|
||||
return true;
|
||||
}
|
||||
|
|
|
|||
|
|
@ -2455,20 +2455,25 @@ void World::UpdateSessions( time_t diff )
|
|||
// This handles the issued and queued CLI commands
|
||||
void World::ProcessCliCommands()
|
||||
{
|
||||
if (cliCmdQueue.empty()) return;
|
||||
if (cliCmdQueue.empty())
|
||||
return;
|
||||
|
||||
CliCommandHolder::Print* zprint;
|
||||
|
||||
CliCommandHolder *command;
|
||||
pPrintf p_zprintf;
|
||||
while (!cliCmdQueue.empty())
|
||||
{
|
||||
sLog.outDebug("CLI command under processing...");
|
||||
command = cliCmdQueue.next();
|
||||
command->Execute();
|
||||
p_zprintf=command->GetOutputMethod();
|
||||
CliCommandHolder *command = cliCmdQueue.next();
|
||||
|
||||
zprint = command->m_print;
|
||||
|
||||
CliHandler(zprint).ParseCommands(command->m_command);
|
||||
|
||||
delete command;
|
||||
}
|
||||
|
||||
// print the console message here so it looks right
|
||||
p_zprintf("mangos>");
|
||||
zprint("mangos>");
|
||||
}
|
||||
|
||||
void World::InitResultQueue()
|
||||
|
|
|
|||
|
|
@ -38,7 +38,6 @@ class Player;
|
|||
class Weather;
|
||||
struct ScriptAction;
|
||||
struct ScriptInfo;
|
||||
class CliCommandHolder;
|
||||
class SqlResultQueue;
|
||||
class QueryResult;
|
||||
class WorldSocket;
|
||||
|
|
@ -295,37 +294,23 @@ enum BanReturn
|
|||
#define SCRIPT_COMMAND_REMOVE_AURA 14 // source (datalong2!=0) or target (datalong==0) unit, datalong = spell_id
|
||||
#define SCRIPT_COMMAND_CAST_SPELL 15 // source (datalong2!=0) or target (datalong==0) unit, datalong = spell_id
|
||||
|
||||
/// CLI related stuff, define here to prevent cyclic dependancies
|
||||
|
||||
typedef int(* pPrintf)(const char*,...);
|
||||
typedef void(* pCliFunc)(char *,pPrintf);
|
||||
|
||||
/// Command Template class
|
||||
struct CliCommand
|
||||
{
|
||||
char const * cmd;
|
||||
pCliFunc Func;
|
||||
char const * description;
|
||||
};
|
||||
|
||||
/// Storage class for commands issued for delayed execution
|
||||
class CliCommandHolder
|
||||
struct CliCommandHolder
|
||||
{
|
||||
private:
|
||||
const CliCommand *cmd;
|
||||
char *args;
|
||||
pPrintf m_zprintf;
|
||||
public:
|
||||
CliCommandHolder(const CliCommand *command, const char *arguments, pPrintf p_zprintf)
|
||||
: cmd(command), m_zprintf(p_zprintf)
|
||||
{
|
||||
size_t len = strlen(arguments)+1;
|
||||
args = new char[len];
|
||||
memcpy(args, arguments, len);
|
||||
}
|
||||
~CliCommandHolder() { delete[] args; }
|
||||
void Execute() const { cmd->Func(args, m_zprintf); }
|
||||
pPrintf GetOutputMethod() const {return (m_zprintf);}
|
||||
typedef void Print(const char*);
|
||||
|
||||
char *m_command;
|
||||
Print* m_print;
|
||||
|
||||
CliCommandHolder(const char *command, Print* zprint)
|
||||
: m_print(zprint)
|
||||
{
|
||||
size_t len = strlen(command)+1;
|
||||
m_command = new char[len];
|
||||
memcpy(m_command, command, len);
|
||||
}
|
||||
|
||||
~CliCommandHolder() { delete[] m_command; }
|
||||
};
|
||||
|
||||
/// The World
|
||||
|
|
@ -463,7 +448,7 @@ class World
|
|||
static float GetVisibleObjectGreyDistance() { return m_VisibleObjectGreyDistance; }
|
||||
|
||||
void ProcessCliCommands();
|
||||
void QueueCliCommand(CliCommandHolder* command) { cliCmdQueue.add(command); }
|
||||
void QueueCliCommand( CliCommandHolder::Print* zprintf, char const* input ) { cliCmdQueue.add(new CliCommandHolder(input, zprintf)); }
|
||||
|
||||
void UpdateResultQueue();
|
||||
void InitResultQueue();
|
||||
|
|
|
|||
|
|
@ -457,7 +457,7 @@ void WorldSession::SendNotification(int32 string_id,...)
|
|||
}
|
||||
}
|
||||
|
||||
const char * WorldSession::GetMangosString( int32 entry )
|
||||
const char * WorldSession::GetMangosString( int32 entry ) const
|
||||
{
|
||||
return objmgr.GetMangosString(entry,GetSessionDbLocaleIndex());
|
||||
}
|
||||
|
|
|
|||
|
|
@ -193,9 +193,9 @@ class MANGOS_DLL_SPEC WorldSession
|
|||
time_t m_muteTime;
|
||||
|
||||
// Locales
|
||||
LocaleConstant GetSessionDbcLocale() { return m_sessionDbcLocale; }
|
||||
int GetSessionDbLocaleIndex() { return m_sessionDbLocaleIndex; }
|
||||
const char *GetMangosString(int32 entry);
|
||||
LocaleConstant GetSessionDbcLocale() const { return m_sessionDbcLocale; }
|
||||
int GetSessionDbLocaleIndex() const { return m_sessionDbLocaleIndex; }
|
||||
const char *GetMangosString(int32 entry) const;
|
||||
|
||||
uint32 GetLatency() const { return m_latency; }
|
||||
void SetLatency(uint32 latency) { m_latency = latency; }
|
||||
|
|
|
|||
File diff suppressed because it is too large
Load diff
|
|
@ -42,7 +42,7 @@ unsigned int iUsers=0; ///< Number of activ
|
|||
|
||||
typedef int(* pPrintf)(const char*,...);
|
||||
|
||||
void ParseCommand(pPrintf zprintf, char*command);
|
||||
void ParseCommand(CliCommandHolder::Print*, char*command);
|
||||
|
||||
/// RASocket constructor
|
||||
RASocket::RASocket(ISocketHandler &h): TcpSocket(h)
|
||||
|
|
@ -220,7 +220,7 @@ void RASocket::OnRead()
|
|||
if(strlen(buff))
|
||||
{
|
||||
sLog.outRALog("Got '%s' cmd.\n",buff);
|
||||
ParseCommand(&RASocket::zprintf , buff);
|
||||
sWorld.QueueCliCommand(&RASocket::zprint , buff);
|
||||
}
|
||||
else
|
||||
Sendf("mangos>");
|
||||
|
|
@ -232,20 +232,23 @@ void RASocket::OnRead()
|
|||
}
|
||||
|
||||
/// Output function
|
||||
int RASocket::zprintf( const char * szText, ... )
|
||||
void RASocket::zprint( const char * szText )
|
||||
{
|
||||
if( !szText ) return 0;
|
||||
va_list ap;
|
||||
va_start(ap, szText);
|
||||
/// \todo Remove buffer length here. Can be >1024 (e.g. list of users)
|
||||
char *megabuffer=new char[1024];
|
||||
unsigned int sz=vsnprintf(megabuffer,1024,szText,ap);
|
||||
#ifdef RA_CRYPT
|
||||
Encrypt(megabuffer,sz);
|
||||
#endif
|
||||
if( !szText )
|
||||
return;
|
||||
|
||||
#ifdef RA_CRYPT
|
||||
|
||||
char *megabuffer=strdup(szText);
|
||||
unsigned int sz=strlen(megabuffer);
|
||||
Encrypt(megabuffer,sz);
|
||||
send(r,megabuffer,sz,0);
|
||||
delete [] megabuffer;
|
||||
va_end(ap);
|
||||
return 0;
|
||||
|
||||
#else
|
||||
|
||||
unsigned int sz=strlen(szText);
|
||||
send(r,szText,sz,0);
|
||||
|
||||
#endif
|
||||
}
|
||||
|
|
|
|||
|
|
@ -59,7 +59,7 @@ class RASocket: public TcpSocket
|
|||
OK, //both login and pass were given, and they are correct and user have enough priv.
|
||||
}stage;
|
||||
|
||||
static int zprintf( const char * szText, ... );
|
||||
static void zprint( const char * szText );
|
||||
};
|
||||
#endif
|
||||
/// @}
|
||||
|
|
|
|||
|
|
@ -165,7 +165,8 @@ enum AccountTypes
|
|||
SEC_PLAYER = 0,
|
||||
SEC_MODERATOR = 1,
|
||||
SEC_GAMEMASTER = 2,
|
||||
SEC_ADMINISTRATOR = 3
|
||||
SEC_ADMINISTRATOR = 3,
|
||||
SEC_CONSOLE = 4 // must be always last in list, accounts must have less security level always also
|
||||
};
|
||||
|
||||
enum LocaleConstant
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue