Show
Ignore:
Timestamp:
11/19/08 13:37:14 (17 years ago)
Author:
yumileroy
Message:

[svn] * Merge CLI Commands with regular commands and give them level4 access. sec_console. Source mangos - thanks to ogeraisi for the amalgamated patch.
* Redid/Fixed/Added some lang strings.
* As usual remember this is a trunk rev so stability only guaranteed on northern countries of Mars and western parts of Pluto. No warranties outside the solar system, sorry :( . Check with your local government or dictator on regulations regarding export.

Original author: KingPin?
Date: 2008-10-26 13:32:42-05:00

Files:
1 modified

Legend:

Unmodified
Added
Removed
  • trunk/src/game/Chat.cpp

    r102 r112  
    3939ChatCommand * ChatHandler::getCommandTable() 
    4040{ 
     41        static ChatCommand accountSetCommandTable[] = 
     42        { 
     43                { "addon",          SEC_ADMINISTRATOR,  true,  &ChatHandler::HandleAccountSetAddonCommand,     "", NULL }, 
     44                { "gmlevel",        SEC_CONSOLE,        true,  &ChatHandler::HandleAccountSetGmLevelCommand,   "", NULL }, 
     45                { "password",       SEC_CONSOLE,        true,  &ChatHandler::HandleAccountSetPasswordCommand,  "", NULL }, 
     46                { NULL,             0,                  false, NULL,                                           "", NULL } 
     47        }; 
     48 
     49        static ChatCommand accountCommandTable[] = 
     50        { 
     51                { "create",         SEC_CONSOLE,        true,  &ChatHandler::HandleAccountCreateCommand,       "", NULL }, 
     52                { "delete",         SEC_CONSOLE,        true,  &ChatHandler::HandleAccountDeleteCommand,       "", NULL }, 
     53                { "onlinelist",     SEC_CONSOLE,        true,  &ChatHandler::HandleAccountOnlineListCommand,   "", NULL }, 
     54                { "set",            SEC_ADMINISTRATOR,  true,  NULL,                                           "", accountSetCommandTable }, 
     55                { "",               SEC_PLAYER,         false, &ChatHandler::HandleAccountCommand,             "", NULL }, 
     56                { NULL,             0,                  false, NULL,                                           "", NULL } 
     57        }; 
     58 
     59        static ChatCommand serverSetCommandTable[] = 
     60        { 
     61                { "loglevel",       SEC_CONSOLE,        true,  &ChatHandler::HandleServerSetLogLevelCommand,   "", NULL }, 
     62                { "motd",           SEC_ADMINISTRATOR,  true,  &ChatHandler::HandleServerSetMotdCommand,       "", NULL }, 
     63                { NULL,             0,                  false, NULL,                                           "", NULL } 
     64        }; 
     65 
    4166    static ChatCommand serverCommandTable[] = 
    4267    { 
    43         { "idlerestart",    SEC_ADMINISTRATOR,  &ChatHandler::HandleIdleRestartCommand,         "", NULL }, 
    44         { "idleshutdown",   SEC_ADMINISTRATOR,  &ChatHandler::HandleIdleShutDownCommand,        "", NULL }, 
    45         { "info",           SEC_PLAYER,         &ChatHandler::HandleInfoCommand,                "", NULL }, 
    46         { "restart",        SEC_ADMINISTRATOR,  &ChatHandler::HandleRestartCommand,             "", NULL }, 
    47         { "shutdown",       SEC_ADMINISTRATOR,  &ChatHandler::HandleShutDownCommand,            "", NULL }, 
    48         { NULL,             0,                  NULL,                                           "", NULL } 
     68        { "corpses",        SEC_GAMEMASTER,     true,  &ChatHandler::HandleServerCorpsesCommand,       "", NULL }, 
     69                { "exit",           SEC_CONSOLE,        true,  &ChatHandler::HandleServerExitCommand,          "", NULL }, 
     70                { "idlerestart",    SEC_ADMINISTRATOR,  true,  &ChatHandler::HandleIdleRestartCommand,         "", NULL }, 
     71                { "idleshutdown",   SEC_ADMINISTRATOR,  true,  &ChatHandler::HandleIdleShutDownCommand,        "", NULL }, 
     72                { "info",           SEC_PLAYER,         true,  &ChatHandler::HandleInfoCommand,                "", NULL }, 
     73                { "motd",           SEC_PLAYER,         true,  &ChatHandler::HandleServerMotdCommand,          "", NULL }, 
     74                { "restart",        SEC_ADMINISTRATOR,  true,  &ChatHandler::HandleRestartCommand,             "", NULL }, 
     75                { "shutdown",       SEC_ADMINISTRATOR,  true,  &ChatHandler::HandleShutDownCommand,            "", NULL }, 
     76                { "set",            SEC_ADMINISTRATOR,  true,  NULL,                                           "", serverSetCommandTable }, 
     77                { NULL,             0,                  false, NULL,                                           "", NULL } 
    4978    }; 
    5079 
    5180    static ChatCommand modifyCommandTable[] = 
    5281    { 
    53         { "hp",             SEC_MODERATOR,      &ChatHandler::HandleModifyHPCommand,            "", NULL }, 
    54         { "mana",           SEC_MODERATOR,      &ChatHandler::HandleModifyManaCommand,          "", NULL }, 
    55         { "rage",           SEC_MODERATOR,      &ChatHandler::HandleModifyRageCommand,          "", NULL }, 
    56         { "energy",         SEC_MODERATOR,      &ChatHandler::HandleModifyEnergyCommand,        "", NULL }, 
    57         { "money",          SEC_MODERATOR,      &ChatHandler::HandleModifyMoneyCommand,         "", NULL }, 
    58         { "speed",          SEC_MODERATOR,      &ChatHandler::HandleModifySpeedCommand,         "", NULL }, 
    59         { "swim",           SEC_MODERATOR,      &ChatHandler::HandleModifySwimCommand,          "", NULL }, 
    60         { "scale",          SEC_MODERATOR,      &ChatHandler::HandleModifyScaleCommand,         "", NULL }, 
    61         { "bit",            SEC_MODERATOR,      &ChatHandler::HandleModifyBitCommand,           "", NULL }, 
    62         { "bwalk",          SEC_MODERATOR,      &ChatHandler::HandleModifyBWalkCommand,         "", NULL }, 
    63         { "fly",            SEC_MODERATOR,      &ChatHandler::HandleModifyFlyCommand,           "", NULL }, 
    64         { "aspeed",         SEC_MODERATOR,      &ChatHandler::HandleModifyASpeedCommand,        "", NULL }, 
    65         { "faction",        SEC_MODERATOR,      &ChatHandler::HandleModifyFactionCommand,       "", NULL }, 
    66         { "spell",          SEC_MODERATOR,      &ChatHandler::HandleModifySpellCommand,         "", NULL }, 
    67         { "tp",             SEC_MODERATOR,      &ChatHandler::HandleModifyTalentCommand,        "", NULL }, 
    68         { "titles",         SEC_MODERATOR,      &ChatHandler::HandleModifyKnownTitlesCommand,   "", NULL }, 
    69         { "mount",          SEC_MODERATOR,      &ChatHandler::HandleModifyMountCommand,         "", NULL }, 
    70         { "honor",          SEC_MODERATOR,      &ChatHandler::HandleModifyHonorCommand,         "", NULL }, 
    71         { "rep",            SEC_MODERATOR,      &ChatHandler::HandleModifyRepCommand,           "", NULL }, 
    72         { "arena",          SEC_MODERATOR,      &ChatHandler::HandleModifyArenaCommand,         "", NULL }, 
    73         { "drunk",          SEC_MODERATOR,      &ChatHandler::HandleDrunkCommand,               "", NULL }, 
    74         { "standstate",     SEC_GAMEMASTER,    &ChatHandler::HandleStandStateCommand,          "", NULL }, 
    75         { "morph",          SEC_GAMEMASTER,    &ChatHandler::HandleMorphCommand,               "", NULL }, 
    76         { NULL,             0,                  NULL,                                           "", NULL } 
     82        { "hp",             SEC_MODERATOR,      false, &ChatHandler::HandleModifyHPCommand,            "", NULL }, 
     83                { "mana",           SEC_MODERATOR,      false, &ChatHandler::HandleModifyManaCommand,          "", NULL }, 
     84                { "rage",           SEC_MODERATOR,      false, &ChatHandler::HandleModifyRageCommand,          "", NULL }, 
     85                { "energy",         SEC_MODERATOR,      false, &ChatHandler::HandleModifyEnergyCommand,        "", NULL }, 
     86                { "money",          SEC_MODERATOR,      false, &ChatHandler::HandleModifyMoneyCommand,         "", NULL }, 
     87                { "speed",          SEC_MODERATOR,      false, &ChatHandler::HandleModifySpeedCommand,         "", NULL }, 
     88                { "swim",           SEC_MODERATOR,      false, &ChatHandler::HandleModifySwimCommand,          "", NULL }, 
     89                { "scale",          SEC_MODERATOR,      false, &ChatHandler::HandleModifyScaleCommand,         "", NULL }, 
     90                { "bit",            SEC_MODERATOR,      false, &ChatHandler::HandleModifyBitCommand,           "", NULL }, 
     91                { "bwalk",          SEC_MODERATOR,      false, &ChatHandler::HandleModifyBWalkCommand,         "", NULL }, 
     92                { "fly",            SEC_MODERATOR,      false, &ChatHandler::HandleModifyFlyCommand,           "", NULL }, 
     93                { "aspeed",         SEC_MODERATOR,      false, &ChatHandler::HandleModifyASpeedCommand,        "", NULL }, 
     94                { "faction",        SEC_MODERATOR,      false, &ChatHandler::HandleModifyFactionCommand,       "", NULL }, 
     95                { "spell",          SEC_MODERATOR,      false, &ChatHandler::HandleModifySpellCommand,         "", NULL }, 
     96                { "tp",             SEC_MODERATOR,      false, &ChatHandler::HandleModifyTalentCommand,        "", NULL }, 
     97                { "titles",         SEC_MODERATOR,      false, &ChatHandler::HandleModifyKnownTitlesCommand,   "", NULL }, 
     98                { "mount",          SEC_MODERATOR,      false, &ChatHandler::HandleModifyMountCommand,         "", NULL }, 
     99                { "honor",          SEC_MODERATOR,      false, &ChatHandler::HandleModifyHonorCommand,         "", NULL }, 
     100                { "rep",            SEC_MODERATOR,      false, &ChatHandler::HandleModifyRepCommand,           "", NULL }, 
     101                { "arena",          SEC_MODERATOR,      false, &ChatHandler::HandleModifyArenaCommand,         "", NULL }, 
     102                { "drunk",          SEC_MODERATOR,      false, &ChatHandler::HandleDrunkCommand,               "", NULL }, 
     103                { "standstate",     SEC_GAMEMASTER,     false, &ChatHandler::HandleStandStateCommand,          "", NULL }, 
     104                { "morph",          SEC_GAMEMASTER,     false, &ChatHandler::HandleMorphCommand,               "", NULL }, 
     105                { NULL,             0,                  false, NULL,                                           "", NULL } 
    77106    }; 
    78107 
    79108    static ChatCommand wpCommandTable[] = 
    80109    { 
    81         { "show",           SEC_GAMEMASTER,     &ChatHandler::HandleWpShowCommand,              "", NULL }, 
    82         { "add",            SEC_GAMEMASTER,     &ChatHandler::HandleWpAddCommand,               "", NULL }, 
    83         { "modify",         SEC_GAMEMASTER,     &ChatHandler::HandleWpModifyCommand,            "", NULL }, 
    84         { "export",         SEC_ADMINISTRATOR,  &ChatHandler::HandleWpExportCommand,            "", NULL }, 
    85         { "import",         SEC_ADMINISTRATOR,  &ChatHandler::HandleWpImportCommand,            "", NULL }, 
    86         { NULL,             0,                  NULL,                                           "", NULL } 
    87     }; 
     110        { "show",           SEC_GAMEMASTER,     false, &ChatHandler::HandleWpShowCommand,              "", NULL }, 
     111                { "add",            SEC_GAMEMASTER,     false, &ChatHandler::HandleWpAddCommand,               "", NULL }, 
     112                { "modify",         SEC_GAMEMASTER,     false, &ChatHandler::HandleWpModifyCommand,            "", NULL }, 
     113                { "export",         SEC_ADMINISTRATOR,  false, &ChatHandler::HandleWpExportCommand,            "", NULL }, 
     114                { "import",         SEC_ADMINISTRATOR,  false, &ChatHandler::HandleWpImportCommand,            "", NULL }, 
     115                { NULL,             0,                  false, NULL,                                           "", NULL } 
     116    }; 
     117 
     118        static ChatCommand banCommandTable[] = 
     119        { 
     120                { "account",        SEC_ADMINISTRATOR,  true,  &ChatHandler::HandleBanAccountCommand,          "", NULL }, 
     121                { "character",      SEC_ADMINISTRATOR,  true,  &ChatHandler::HandleBanCharacterCommand,        "", NULL }, 
     122                { "ip",             SEC_ADMINISTRATOR,  true,  &ChatHandler::HandleBanIPCommand,               "", NULL }, 
     123                { NULL,             0,                  false, NULL,                                           "", NULL } 
     124        }; 
     125 
     126        static ChatCommand baninfoCommandTable[] = 
     127        { 
     128                { "account",        SEC_ADMINISTRATOR,  true,  &ChatHandler::HandleBanInfoAccountCommand,      "", NULL }, 
     129                { "character",      SEC_ADMINISTRATOR,  true,  &ChatHandler::HandleBanInfoCharacterCommand,    "", NULL }, 
     130                { "ip",             SEC_ADMINISTRATOR,  true,  &ChatHandler::HandleBanInfoIPCommand,           "", NULL }, 
     131                { NULL,             0,                  false, NULL,                                           "", NULL } 
     132        }; 
     133 
     134        static ChatCommand banlistCommandTable[] = 
     135        { 
     136                { "account",        SEC_ADMINISTRATOR,  true,  &ChatHandler::HandleBanListAccountCommand,      "", NULL }, 
     137                { "character",      SEC_ADMINISTRATOR,  true,  &ChatHandler::HandleBanListCharacterCommand,    "", NULL }, 
     138                { "ip",             SEC_ADMINISTRATOR,  true,  &ChatHandler::HandleBanListIPCommand,           "", NULL }, 
     139                { NULL,             0,                  false, NULL,                                           "", NULL } 
     140        }; 
     141 
     142        static ChatCommand unbanCommandTable[] = 
     143        { 
     144                { "account",        SEC_ADMINISTRATOR,  true,  &ChatHandler::HandleUnBanAccountCommand,      "", NULL }, 
     145                { "character",      SEC_ADMINISTRATOR,  true,  &ChatHandler::HandleUnBanCharacterCommand,    "", NULL }, 
     146                { "ip",             SEC_ADMINISTRATOR,  true,  &ChatHandler::HandleUnBanIPCommand,           "", NULL }, 
     147                { NULL,             0,                  false, NULL,                                           "", NULL } 
     148        }; 
    88149 
    89150    static ChatCommand debugCommandTable[] = 
    90151    { 
    91         { "inarc",          SEC_ADMINISTRATOR,  &ChatHandler::HandleDebugInArcCommand,          "", NULL }, 
    92         { "spellfail",      SEC_ADMINISTRATOR,  &ChatHandler::HandleDebugSpellFailCommand,      "", NULL }, 
    93         { "setpoi",         SEC_ADMINISTRATOR,  &ChatHandler::HandleSetPoiCommand,              "", NULL }, 
    94         { "qpartymsg",      SEC_ADMINISTRATOR,  &ChatHandler::HandleSendQuestPartyMsgCommand,   "", NULL }, 
    95         { "qinvalidmsg",    SEC_ADMINISTRATOR,  &ChatHandler::HandleSendQuestInvalidMsgCommand, "", NULL }, 
    96         { "equiperr",       SEC_ADMINISTRATOR,  &ChatHandler::HandleEquipErrorCommand,          "", NULL }, 
    97         { "sellerr",        SEC_ADMINISTRATOR,  &ChatHandler::HandleSellErrorCommand,           "", NULL }, 
    98         { "buyerr",         SEC_ADMINISTRATOR,  &ChatHandler::HandleBuyErrorCommand,            "", NULL }, 
    99         { "sendopcode",     SEC_ADMINISTRATOR,  &ChatHandler::HandleSendOpcodeCommand,          "", NULL }, 
    100         { "uws",            SEC_ADMINISTRATOR,  &ChatHandler::HandleUpdateWorldStateCommand,    "", NULL }, 
    101         { "ps",             SEC_ADMINISTRATOR,  &ChatHandler::HandlePlaySound2Command,          "", NULL }, 
    102         { "scn",            SEC_ADMINISTRATOR,  &ChatHandler::HandleSendChannelNotifyCommand,   "", NULL }, 
    103         { "scm",            SEC_ADMINISTRATOR,  &ChatHandler::HandleSendChatMsgCommand,         "", NULL }, 
    104         { "getitemstate",   SEC_ADMINISTRATOR,  &ChatHandler::HandleGetItemState,               "", NULL }, 
    105         { "playsound",      SEC_MODERATOR,      &ChatHandler::HandlePlaySoundCommand,           "", NULL }, 
    106         { "update",         SEC_ADMINISTRATOR,  &ChatHandler::HandleUpdate,                     "", NULL }, 
    107         { "setvalue",       SEC_ADMINISTRATOR,  &ChatHandler::HandleSetValue,                   "", NULL }, 
    108         { "getvalue",       SEC_ADMINISTRATOR,  &ChatHandler::HandleGetValue,                   "", NULL }, 
    109         { "Mod32Value",     SEC_ADMINISTRATOR,  &ChatHandler::HandleMod32Value,                 "", NULL }, 
    110         { "anim",           SEC_GAMEMASTER,     &ChatHandler::HandleAnimCommand,                "", NULL }, 
    111         { "lootrecipient",  SEC_GAMEMASTER,     &ChatHandler::HandleGetLootRecipient,           "", NULL }, 
    112         { "arena",          SEC_ADMINISTRATOR,  &ChatHandler::HandleDebugArenaCommand,          "", NULL }, 
    113         { "threatlist",     SEC_ADMINISTRATOR,  &ChatHandler::HandleDebugThreatList,            "", NULL }, 
    114         { "hostilrefs",     SEC_ADMINISTRATOR,  &ChatHandler::HandleDebugHostilRefList,         "", NULL }, 
    115         { NULL,             0,                  NULL,                                           "", NULL } 
     152        { "inarc",          SEC_ADMINISTRATOR,  false, &ChatHandler::HandleDebugInArcCommand,          "", NULL }, 
     153                { "spellfail",      SEC_ADMINISTRATOR,  false, &ChatHandler::HandleDebugSpellFailCommand,      "", NULL }, 
     154                { "setpoi",         SEC_ADMINISTRATOR,  false, &ChatHandler::HandleSetPoiCommand,              "", NULL }, 
     155                { "qpartymsg",      SEC_ADMINISTRATOR,  false, &ChatHandler::HandleSendQuestPartyMsgCommand,   "", NULL }, 
     156                { "qinvalidmsg",    SEC_ADMINISTRATOR,  false, &ChatHandler::HandleSendQuestInvalidMsgCommand, "", NULL }, 
     157                { "equiperr",       SEC_ADMINISTRATOR,  false, &ChatHandler::HandleEquipErrorCommand,          "", NULL }, 
     158                { "sellerr",        SEC_ADMINISTRATOR,  false, &ChatHandler::HandleSellErrorCommand,           "", NULL }, 
     159                { "buyerr",         SEC_ADMINISTRATOR,  false, &ChatHandler::HandleBuyErrorCommand,            "", NULL }, 
     160                { "sendopcode",     SEC_ADMINISTRATOR,  false, &ChatHandler::HandleSendOpcodeCommand,          "", NULL }, 
     161                { "uws",            SEC_ADMINISTRATOR,  false, &ChatHandler::HandleUpdateWorldStateCommand,    "", NULL }, 
     162                { "ps",             SEC_ADMINISTRATOR,  false, &ChatHandler::HandlePlaySound2Command,          "", NULL }, 
     163                { "scn",            SEC_ADMINISTRATOR,  false, &ChatHandler::HandleSendChannelNotifyCommand,   "", NULL }, 
     164                { "scm",            SEC_ADMINISTRATOR,  false, &ChatHandler::HandleSendChatMsgCommand,         "", NULL }, 
     165                { "getitemstate",   SEC_ADMINISTRATOR,  false, &ChatHandler::HandleGetItemState,               "", NULL }, 
     166                { "playsound",      SEC_MODERATOR,      false, &ChatHandler::HandlePlaySoundCommand,           "", NULL }, 
     167                { "update",         SEC_ADMINISTRATOR,  false, &ChatHandler::HandleUpdate,                     "", NULL }, 
     168                { "setvalue",       SEC_ADMINISTRATOR,  false, &ChatHandler::HandleSetValue,                   "", NULL }, 
     169                { "getvalue",       SEC_ADMINISTRATOR,  false, &ChatHandler::HandleGetValue,                   "", NULL }, 
     170                { "Mod32Value",     SEC_ADMINISTRATOR,  false, &ChatHandler::HandleMod32Value,                 "", NULL }, 
     171                { "anim",           SEC_GAMEMASTER,     false, &ChatHandler::HandleAnimCommand,                "", NULL }, 
     172                { "lootrecipient",  SEC_GAMEMASTER,     false, &ChatHandler::HandleGetLootRecipient,           "", NULL }, 
     173                { NULL,             0,                  false, NULL,                                           "", NULL } 
    116174    }; 
    117175 
    118176    static ChatCommand eventCommandTable[] = 
    119177    { 
    120         { "activelist",     SEC_GAMEMASTER,     &ChatHandler::HandleEventActiveListCommand,     "", NULL }, 
    121         { "start",          SEC_GAMEMASTER,     &ChatHandler::HandleEventStartCommand,          "", NULL }, 
    122         { "stop",           SEC_GAMEMASTER,     &ChatHandler::HandleEventStopCommand,           "", NULL }, 
    123         { "",               SEC_GAMEMASTER,     &ChatHandler::HandleEventInfoCommand,           "", NULL }, 
    124         { NULL,             0,                  NULL,                                           "", NULL } 
     178        { "activelist",     SEC_GAMEMASTER,     true,  &ChatHandler::HandleEventActiveListCommand,     "", NULL }, 
     179                { "start",          SEC_GAMEMASTER,     true,  &ChatHandler::HandleEventStartCommand,          "", NULL }, 
     180                { "stop",           SEC_GAMEMASTER,     true,  &ChatHandler::HandleEventStopCommand,           "", NULL }, 
     181                { "",               SEC_GAMEMASTER,     true, &ChatHandler::HandleEventInfoCommand,            "", NULL }, 
     182                { NULL,             0,                  false, NULL,                                           "", NULL } 
    125183    }; 
    126184 
    127185    static ChatCommand learnCommandTable[] = 
    128186    { 
    129         { "all",            SEC_ADMINISTRATOR,  &ChatHandler::HandleLearnAllCommand,            "", NULL }, 
    130         { "all_gm",         SEC_GAMEMASTER,    &ChatHandler::HandleLearnAllGMCommand,          "", NULL }, 
    131         { "all_crafts",     SEC_GAMEMASTER,    &ChatHandler::HandleLearnAllCraftsCommand,      "", NULL }, 
    132         { "all_default",    SEC_MODERATOR,      &ChatHandler::HandleLearnAllDefaultCommand,     "", NULL }, 
    133         { "all_lang",       SEC_MODERATOR,      &ChatHandler::HandleLearnAllLangCommand,        "", NULL }, 
    134         { "all_myclass",    SEC_ADMINISTRATOR, &ChatHandler::HandleLearnAllMyClassCommand,     "", NULL }, 
    135         { "all_myspells",   SEC_ADMINISTRATOR, &ChatHandler::HandleLearnAllMySpellsCommand,    "", NULL }, 
    136         { "all_mytalents",  SEC_ADMINISTRATOR, &ChatHandler::HandleLearnAllMyTalentsCommand,   "", NULL }, 
    137         { "all_recipes",    SEC_GAMEMASTER,    &ChatHandler::HandleLearnAllRecipesCommand,     "", NULL }, 
    138         { "",               SEC_ADMINISTRATOR, &ChatHandler::HandleLearnCommand,               "", NULL }, 
    139         { NULL,             0,                  NULL,                                           "", NULL } 
     187        { "all",            SEC_ADMINISTRATOR,  false, &ChatHandler::HandleLearnAllCommand,            "", NULL }, 
     188                { "all_gm",         SEC_GAMEMASTER,     false, &ChatHandler::HandleLearnAllGMCommand,          "", NULL }, 
     189                { "all_crafts",     SEC_GAMEMASTER,     false, &ChatHandler::HandleLearnAllCraftsCommand,      "", NULL }, 
     190                { "all_default",    SEC_MODERATOR,      false, &ChatHandler::HandleLearnAllDefaultCommand,     "", NULL }, 
     191                { "all_lang",       SEC_MODERATOR,      false, &ChatHandler::HandleLearnAllLangCommand,        "", NULL }, 
     192                { "all_myclass",    SEC_ADMINISTRATOR,  false, &ChatHandler::HandleLearnAllMyClassCommand,     "", NULL }, 
     193                { "all_myspells",   SEC_ADMINISTRATOR,  false, &ChatHandler::HandleLearnAllMySpellsCommand,    "", NULL }, 
     194                { "all_mytalents",  SEC_ADMINISTRATOR,  false, &ChatHandler::HandleLearnAllMyTalentsCommand,   "", NULL }, 
     195                { "all_recipes",    SEC_GAMEMASTER,     false, &ChatHandler::HandleLearnAllRecipesCommand,     "", NULL }, 
     196                { "",               SEC_ADMINISTRATOR,  false, &ChatHandler::HandleLearnCommand,               "", NULL }, 
     197                { NULL,             0,                  false, NULL,                                           "", NULL } 
    140198    }; 
    141199 
    142200    static ChatCommand reloadCommandTable[] = 
    143201    { 
    144         { "all",            SEC_ADMINISTRATOR,  &ChatHandler::HandleReloadAllCommand,          "", NULL }, 
    145         { "all_loot",       SEC_ADMINISTRATOR,  &ChatHandler::HandleReloadAllLootCommand,      "", NULL }, 
    146         { "all_npc",        SEC_ADMINISTRATOR,  &ChatHandler::HandleReloadAllNpcCommand,        "", NULL }, 
    147         { "all_quest",      SEC_ADMINISTRATOR,  &ChatHandler::HandleReloadAllQuestCommand,      "", NULL }, 
    148         { "all_scripts",    SEC_ADMINISTRATOR,  &ChatHandler::HandleReloadAllScriptsCommand,    "", NULL }, 
    149         { "all_spell",      SEC_ADMINISTRATOR,  &ChatHandler::HandleReloadAllSpellCommand,      "", NULL }, 
    150         { "all_item",       SEC_ADMINISTRATOR,  &ChatHandler::HandleReloadAllItemCommand,      "", NULL }, 
    151         { "all_locales",    SEC_ADMINISTRATOR,  &ChatHandler::HandleReloadAllLocalesCommand,    "", NULL }, 
    152  
    153         { "config",         SEC_ADMINISTRATOR,  &ChatHandler::HandleReloadConfigCommand,        "", NULL }, 
    154  
    155         { "areatrigger_tavern",          SEC_ADMINISTRATOR, &ChatHandler::HandleReloadAreaTriggerTavernCommand,      "", NULL }, 
    156         { "areatrigger_teleport",        SEC_ADMINISTRATOR, &ChatHandler::HandleReloadAreaTriggerTeleportCommand,    "", NULL }, 
    157         { "areatrigger_involvedrelation",SEC_ADMINISTRATOR, &ChatHandler::HandleReloadQuestAreaTriggersCommand,      "", NULL }, 
    158         { "event_scripts",               SEC_ADMINISTRATOR, &ChatHandler::HandleReloadEventScriptsCommand,            "", NULL }, 
    159         { "command",                     SEC_ADMINISTRATOR, &ChatHandler::HandleReloadCommandCommand,                "", NULL }, 
    160         { "creature_involvedrelation",   SEC_ADMINISTRATOR, &ChatHandler::HandleReloadCreatureQuestInvRelationsCommand,"",NULL }, 
    161         { "creature_loot_template",      SEC_ADMINISTRATOR, &ChatHandler::HandleReloadLootTemplatesCreatureCommand,  "", NULL }, 
    162         { "creature_questrelation",      SEC_ADMINISTRATOR, &ChatHandler::HandleReloadCreatureQuestRelationsCommand, "", NULL }, 
    163         { "disenchant_loot_template",    SEC_ADMINISTRATOR, &ChatHandler::HandleReloadLootTemplatesDisenchantCommand, "", NULL }, 
    164         { "fishing_loot_template",       SEC_ADMINISTRATOR, &ChatHandler::HandleReloadLootTemplatesFishingCommand,    "", NULL }, 
    165         { "game_graveyard_zone",         SEC_ADMINISTRATOR, &ChatHandler::HandleReloadGameGraveyardZoneCommand,      "", NULL }, 
    166         { "game_tele",                   SEC_ADMINISTRATOR, &ChatHandler::HandleReloadGameTeleCommand,                "", NULL }, 
    167         { "gameobject_involvedrelation", SEC_ADMINISTRATOR, &ChatHandler::HandleReloadGOQuestInvRelationsCommand,    "", NULL }, 
    168         { "gameobject_loot_template",    SEC_ADMINISTRATOR, &ChatHandler::HandleReloadLootTemplatesGameobjectCommand, "", NULL }, 
    169         { "gameobject_questrelation",    SEC_ADMINISTRATOR, &ChatHandler::HandleReloadGOQuestRelationsCommand,        "", NULL }, 
    170         { "gameobject_scripts",          SEC_ADMINISTRATOR, &ChatHandler::HandleReloadGameObjectScriptsCommand,      "", NULL }, 
    171         { "item_enchantment_template",   SEC_ADMINISTRATOR, &ChatHandler::HandleReloadItemEnchantementsCommand,      "", NULL }, 
    172         { "item_loot_template",          SEC_ADMINISTRATOR, &ChatHandler::HandleReloadLootTemplatesItemCommand,      "", NULL }, 
    173         { "trinity_string",              SEC_ADMINISTRATOR, &ChatHandler::HandleReloadTrinityStringCommand,          "", NULL }, 
    174         { "npc_gossip",                  SEC_ADMINISTRATOR, &ChatHandler::HandleReloadNpcGossipCommand,              "", NULL }, 
    175         { "npc_trainer",                 SEC_ADMINISTRATOR, &ChatHandler::HandleReloadNpcTrainerCommand,              "", NULL }, 
    176         { "npc_vendor",                  SEC_ADMINISTRATOR, &ChatHandler::HandleReloadNpcVendorCommand,              "", NULL }, 
    177         { "page_text",                   SEC_ADMINISTRATOR, &ChatHandler::HandleReloadPageTextsCommand,              "", NULL }, 
    178         { "pickpocketing_loot_template", SEC_ADMINISTRATOR, &ChatHandler::HandleReloadLootTemplatesPickpocketingCommand,"",NULL}, 
    179         { "prospecting_loot_template",   SEC_ADMINISTRATOR, &ChatHandler::HandleReloadLootTemplatesProspectingCommand,"", NULL }, 
    180         { "quest_mail_loot_template",    SEC_ADMINISTRATOR, &ChatHandler::HandleReloadLootTemplatesQuestMailCommand, "", NULL }, 
    181         { "quest_end_scripts",           SEC_ADMINISTRATOR, &ChatHandler::HandleReloadQuestEndScriptsCommand,        "", NULL }, 
    182         { "quest_start_scripts",         SEC_ADMINISTRATOR, &ChatHandler::HandleReloadQuestStartScriptsCommand,      "", NULL }, 
    183         { "quest_template",              SEC_ADMINISTRATOR, &ChatHandler::HandleReloadQuestTemplateCommand,          "", NULL }, 
    184         { "reference_loot_template",     SEC_ADMINISTRATOR, &ChatHandler::HandleReloadLootTemplatesReferenceCommand, "", NULL }, 
    185         { "reserved_name",               SEC_ADMINISTRATOR, &ChatHandler::HandleReloadReservedNameCommand,            "", NULL }, 
    186         { "skill_discovery_template",    SEC_ADMINISTRATOR, &ChatHandler::HandleReloadSkillDiscoveryTemplateCommand, "", NULL }, 
    187         { "skill_extra_item_template",   SEC_ADMINISTRATOR, &ChatHandler::HandleReloadSkillExtraItemTemplateCommand, "", NULL }, 
    188         { "skill_fishing_base_level",    SEC_ADMINISTRATOR, &ChatHandler::HandleReloadSkillFishingBaseLevelCommand,  "", NULL }, 
    189         { "skinning_loot_template",      SEC_ADMINISTRATOR, &ChatHandler::HandleReloadLootTemplatesSkinningCommand,  "", NULL }, 
    190         { "spell_affect",                SEC_ADMINISTRATOR, &ChatHandler::HandleReloadSpellAffectCommand,            "", NULL }, 
    191         { "spell_chain",                 SEC_ADMINISTRATOR, &ChatHandler::HandleReloadSpellChainCommand,              "", NULL }, 
    192         { "spell_elixir",                SEC_ADMINISTRATOR, &ChatHandler::HandleReloadSpellElixirCommand,            "", NULL }, 
    193         { "spell_learn_spell",           SEC_ADMINISTRATOR, &ChatHandler::HandleReloadSpellLearnSpellCommand,        "", NULL }, 
    194         { "spell_pet_auras",             SEC_ADMINISTRATOR, &ChatHandler::HandleReloadSpellPetAurasCommand,          "", NULL }, 
    195         { "spell_proc_event",            SEC_ADMINISTRATOR, &ChatHandler::HandleReloadSpellProcEventCommand,          "", NULL }, 
    196         { "spell_script_target",         SEC_ADMINISTRATOR, &ChatHandler::HandleReloadSpellScriptTargetCommand,      "", NULL }, 
    197         { "spell_scripts",               SEC_ADMINISTRATOR, &ChatHandler::HandleReloadSpellScriptsCommand,            "", NULL }, 
    198         { "spell_target_position",       SEC_ADMINISTRATOR, &ChatHandler::HandleReloadSpellTargetPositionCommand,    "", NULL }, 
    199         { "spell_threats",               SEC_ADMINISTRATOR, &ChatHandler::HandleReloadSpellThreatsCommand,            "", NULL }, 
    200         { "spell_disabled",              SEC_ADMINISTRATOR, &ChatHandler::HandleReloadSpellDisabledCommand,          "", NULL }, 
    201         { "locales_creature",            SEC_ADMINISTRATOR, &ChatHandler::HandleReloadLocalesCreatureCommand,        "", NULL }, 
    202         { "locales_gameobject",          SEC_ADMINISTRATOR, &ChatHandler::HandleReloadLocalesGameobjectCommand,      "", NULL }, 
    203         { "locales_item",                SEC_ADMINISTRATOR, &ChatHandler::HandleReloadLocalesItemCommand,            "", NULL }, 
    204         { "locales_npc_text",            SEC_ADMINISTRATOR, &ChatHandler::HandleReloadLocalesNpcTextCommand,          "", NULL }, 
    205         { "locales_page_text",           SEC_ADMINISTRATOR, &ChatHandler::HandleReloadLocalesPageTextCommand,        "", NULL }, 
    206         { "locales_quest",               SEC_ADMINISTRATOR, &ChatHandler::HandleReloadLocalesQuestCommand,            "", NULL }, 
    207         { "",                            SEC_ADMINISTRATOR, &ChatHandler::HandleReloadCommand,                        "", NULL }, 
    208         { NULL,                          0,                NULL,                                                     "", NULL } 
     202        { "all", SEC_ADMINISTRATOR, true, &ChatHandler::HandleReloadAllCommand, "", NULL }, 
     203                {"all_loot", SEC_ADMINISTRATOR, true, &ChatHandler::HandleReloadAllLootCommand, "", NULL }, 
     204                { "all_npc", SEC_ADMINISTRATOR, true, &ChatHandler::HandleReloadAllNpcCommand, "", NULL }, 
     205                { "all_quest", SEC_ADMINISTRATOR, true, &ChatHandler::HandleReloadAllQuestCommand, "", NULL }, 
     206                { "all_scripts", SEC_ADMINISTRATOR, true, &ChatHandler::HandleReloadAllScriptsCommand, "", NULL }, 
     207                { "all_spell", SEC_ADMINISTRATOR, true, &ChatHandler::HandleReloadAllSpellCommand, "", NULL }, 
     208                { "all_item", SEC_ADMINISTRATOR, true, &ChatHandler::HandleReloadAllItemCommand, "", NULL }, 
     209                { "all_locales", SEC_ADMINISTRATOR, true, &ChatHandler::HandleReloadAllLocalesCommand, "", NULL }, 
     210 
     211                { "config", SEC_ADMINISTRATOR, true, &ChatHandler::HandleReloadConfigCommand, "", NULL }, 
     212 
     213                { "areatrigger_tavern", SEC_ADMINISTRATOR, true, &ChatHandler::HandleReloadAreaTriggerTavernCommand, "", NULL }, 
     214                { "areatrigger_teleport", SEC_ADMINISTRATOR, true, &ChatHandler::HandleReloadAreaTriggerTeleportCommand, "", NULL }, 
     215                { "areatrigger_involvedrelation",SEC_ADMINISTRATOR, true, &ChatHandler::HandleReloadQuestAreaTriggersCommand, "", NULL }, 
     216                { "event_scripts", SEC_ADMINISTRATOR, true, &ChatHandler::HandleReloadEventScriptsCommand, "", NULL }, 
     217                { "command", SEC_ADMINISTRATOR, true, &ChatHandler::HandleReloadCommandCommand, "", NULL }, 
     218                { "creature_involvedrelation", SEC_ADMINISTRATOR, true, &ChatHandler::HandleReloadCreatureQuestInvRelationsCommand,"",NULL }, 
     219                { "creature_loot_template", SEC_ADMINISTRATOR, true, &ChatHandler::HandleReloadLootTemplatesCreatureCommand, "", NULL }, 
     220                { "creature_questrelation", SEC_ADMINISTRATOR, true, &ChatHandler::HandleReloadCreatureQuestRelationsCommand, "", NULL }, 
     221                { "disenchant_loot_template", SEC_ADMINISTRATOR, true, &ChatHandler::HandleReloadLootTemplatesDisenchantCommand, "", NULL }, 
     222                { "fishing_loot_template", SEC_ADMINISTRATOR, true, &ChatHandler::HandleReloadLootTemplatesFishingCommand, "", NULL }, 
     223                { "game_graveyard_zone", SEC_ADMINISTRATOR, true, &ChatHandler::HandleReloadGameGraveyardZoneCommand, "", NULL }, 
     224                { "game_tele", SEC_ADMINISTRATOR, true, &ChatHandler::HandleReloadGameTeleCommand, "", NULL }, 
     225                { "gameobject_involvedrelation", SEC_ADMINISTRATOR, true, &ChatHandler::HandleReloadGOQuestInvRelationsCommand, "", NULL }, 
     226                { "gameobject_loot_template", SEC_ADMINISTRATOR, true, &ChatHandler::HandleReloadLootTemplatesGameobjectCommand, "", NULL }, 
     227                { "gameobject_questrelation", SEC_ADMINISTRATOR, true, &ChatHandler::HandleReloadGOQuestRelationsCommand, "", NULL }, 
     228                { "gameobject_scripts", SEC_ADMINISTRATOR, true, &ChatHandler::HandleReloadGameObjectScriptsCommand, "", NULL }, 
     229                { "item_enchantment_template", SEC_ADMINISTRATOR, true, &ChatHandler::HandleReloadItemEnchantementsCommand, "", NULL }, 
     230                { "item_loot_template", SEC_ADMINISTRATOR, true, &ChatHandler::HandleReloadLootTemplatesItemCommand, "", NULL }, 
     231                { "trinity_string", SEC_ADMINISTRATOR, true, &ChatHandler::HandleReloadTrinityStringCommand, "", NULL }, 
     232                { "npc_gossip", SEC_ADMINISTRATOR, true, &ChatHandler::HandleReloadNpcGossipCommand, "", NULL }, 
     233                { "npc_trainer", SEC_ADMINISTRATOR, true, &ChatHandler::HandleReloadNpcTrainerCommand, "", NULL }, 
     234                { "npc_vendor", SEC_ADMINISTRATOR, true, &ChatHandler::HandleReloadNpcVendorCommand, "", NULL }, 
     235                { "page_text", SEC_ADMINISTRATOR, true, &ChatHandler::HandleReloadPageTextsCommand, "", NULL }, 
     236                { "pickpocketing_loot_template", SEC_ADMINISTRATOR, true, &ChatHandler::HandleReloadLootTemplatesPickpocketingCommand,"",NULL}, 
     237                { "prospecting_loot_template", SEC_ADMINISTRATOR, true, &ChatHandler::HandleReloadLootTemplatesProspectingCommand,"", NULL }, 
     238                { "quest_mail_loot_template", SEC_ADMINISTRATOR, true, &ChatHandler::HandleReloadLootTemplatesQuestMailCommand, "", NULL }, 
     239                { "quest_end_scripts", SEC_ADMINISTRATOR, true, &ChatHandler::HandleReloadQuestEndScriptsCommand, "", NULL }, 
     240                { "quest_start_scripts", SEC_ADMINISTRATOR, true, &ChatHandler::HandleReloadQuestStartScriptsCommand, "", NULL }, 
     241                { "quest_template", SEC_ADMINISTRATOR, true, &ChatHandler::HandleReloadQuestTemplateCommand, "", NULL }, 
     242                { "reference_loot_template", SEC_ADMINISTRATOR, true, &ChatHandler::HandleReloadLootTemplatesReferenceCommand, "", NULL }, 
     243                { "reserved_name", SEC_ADMINISTRATOR, true, &ChatHandler::HandleReloadReservedNameCommand, "", NULL }, 
     244                { "skill_discovery_template", SEC_ADMINISTRATOR, true, &ChatHandler::HandleReloadSkillDiscoveryTemplateCommand, "", NULL }, 
     245                { "skill_extra_item_template", SEC_ADMINISTRATOR, true, &ChatHandler::HandleReloadSkillExtraItemTemplateCommand, "", NULL }, 
     246                { "skill_fishing_base_level", SEC_ADMINISTRATOR, true, &ChatHandler::HandleReloadSkillFishingBaseLevelCommand, "", NULL }, 
     247                { "skinning_loot_template", SEC_ADMINISTRATOR, true, &ChatHandler::HandleReloadLootTemplatesSkinningCommand, "", NULL }, 
     248                { "spell_affect", SEC_ADMINISTRATOR, true, &ChatHandler::HandleReloadSpellAffectCommand, "", NULL }, 
     249                { "spell_chain", SEC_ADMINISTRATOR, true, &ChatHandler::HandleReloadSpellChainCommand, "", NULL }, 
     250                { "spell_elixir", SEC_ADMINISTRATOR, true, &ChatHandler::HandleReloadSpellElixirCommand, "", NULL }, 
     251                { "spell_learn_spell", SEC_ADMINISTRATOR, true, &ChatHandler::HandleReloadSpellLearnSpellCommand, "", NULL }, 
     252                { "spell_pet_auras", SEC_ADMINISTRATOR, true, &ChatHandler::HandleReloadSpellPetAurasCommand, "", NULL }, 
     253                { "spell_proc_event", SEC_ADMINISTRATOR, true, &ChatHandler::HandleReloadSpellProcEventCommand, "", NULL }, 
     254                { "spell_script_target", SEC_ADMINISTRATOR, true, &ChatHandler::HandleReloadSpellScriptTargetCommand, "", NULL }, 
     255                { "spell_scripts", SEC_ADMINISTRATOR, true, &ChatHandler::HandleReloadSpellScriptsCommand, "", NULL }, 
     256                { "spell_target_position", SEC_ADMINISTRATOR, true, &ChatHandler::HandleReloadSpellTargetPositionCommand, "", NULL }, 
     257                { "spell_threats", SEC_ADMINISTRATOR, true, &ChatHandler::HandleReloadSpellThreatsCommand, "", NULL }, 
     258                { "locales_creature", SEC_ADMINISTRATOR, true, &ChatHandler::HandleReloadLocalesCreatureCommand, "", NULL }, 
     259                { "locales_gameobject", SEC_ADMINISTRATOR, true, &ChatHandler::HandleReloadLocalesGameobjectCommand, "", NULL }, 
     260                { "locales_item", SEC_ADMINISTRATOR, true, &ChatHandler::HandleReloadLocalesItemCommand, "", NULL }, 
     261                { "locales_npc_text", SEC_ADMINISTRATOR, true, &ChatHandler::HandleReloadLocalesNpcTextCommand, "", NULL }, 
     262                { "locales_page_text", SEC_ADMINISTRATOR, true, &ChatHandler::HandleReloadLocalesPageTextCommand, "", NULL }, 
     263                { "locales_quest", SEC_ADMINISTRATOR, true, &ChatHandler::HandleReloadLocalesQuestCommand, "", NULL }, 
     264 
     265                { "", SEC_ADMINISTRATOR, true, &ChatHandler::HandleReloadCommand, "", NULL }, 
     266                { NULL,                          0,                 false, NULL,                                                     "", NULL } 
    209267    }; 
    210268 
    211269    static ChatCommand honorCommandTable[] = 
    212270    { 
    213         { "add",            SEC_GAMEMASTER,     &ChatHandler::HandleAddHonorCommand,            "", NULL }, 
    214         { "addkill",        SEC_GAMEMASTER,    &ChatHandler::HandleHonorAddKillCommand,        "", NULL }, 
    215         { "update",         SEC_GAMEMASTER,    &ChatHandler::HandleUpdateHonorFieldsCommand,   "", NULL }, 
    216         { NULL,             0,                  NULL,                                           "", NULL } 
     271        { "add",            SEC_GAMEMASTER,     false, &ChatHandler::HandleAddHonorCommand,            "", NULL }, 
     272                { "addkill",        SEC_GAMEMASTER,     false, &ChatHandler::HandleHonorAddKillCommand,        "", NULL }, 
     273                { "update",         SEC_GAMEMASTER,     false, &ChatHandler::HandleUpdateHonorFieldsCommand,   "", NULL }, 
     274                { NULL,             0,                  false, NULL,                                           "", NULL } 
    217275    }; 
    218276 
    219277    static ChatCommand guildCommandTable[] = 
    220278    { 
    221         { "create",         SEC_GAMEMASTER,     &ChatHandler::HandleGuildCreateCommand,         "", NULL }, 
    222         { "delete",         SEC_GAMEMASTER,     &ChatHandler::HandleGuildDeleteCommand,         "", NULL }, 
    223         { "invite",         SEC_GAMEMASTER,     &ChatHandler::HandleGuildInviteCommand,         "", NULL }, 
    224         { "uninvite",       SEC_GAMEMASTER,     &ChatHandler::HandleGuildUninviteCommand,       "", NULL }, 
    225         { "rank",           SEC_GAMEMASTER,     &ChatHandler::HandleGuildRankCommand,           "", NULL }, 
    226         { NULL,             0,                  NULL,                                           "", NULL } 
     279                { "create",         SEC_GAMEMASTER,     true,  &ChatHandler::HandleGuildCreateCommand,         "", NULL }, 
     280                { "delete",         SEC_GAMEMASTER,     true,  &ChatHandler::HandleGuildDeleteCommand,         "", NULL }, 
     281                { "invite",         SEC_GAMEMASTER,     true,  &ChatHandler::HandleGuildInviteCommand,         "", NULL }, 
     282                { "uninvite",       SEC_GAMEMASTER,     true,  &ChatHandler::HandleGuildUninviteCommand,       "", NULL }, 
     283                { "rank",           SEC_GAMEMASTER,     true,  &ChatHandler::HandleGuildRankCommand,           "", NULL }, 
     284                { NULL,             0,                  false, NULL,                                           "", NULL } 
    227285    }; 
    228286 
    229287    static ChatCommand groupCommandTable[] = 
    230288    { 
    231         { "leader",         SEC_ADMINISTRATOR,  &ChatHandler::HandleGroupLeaderCommand,         "", NULL }, 
    232         { "disband",        SEC_ADMINISTRATOR,  &ChatHandler::HandleGroupDisbandCommand,        "", NULL }, 
    233         { "remove",         SEC_ADMINISTRATOR,  &ChatHandler::HandleGroupRemoveCommand,         "", NULL }, 
    234         { NULL,             0,                  NULL,                                           "", NULL } 
     289        { "leader",         SEC_ADMINISTRATOR,     false,  &ChatHandler::HandleGroupLeaderCommand,         "", NULL }, 
     290        { "disband",        SEC_ADMINISTRATOR,     false,  &ChatHandler::HandleGroupDisbandCommand,        "", NULL }, 
     291        { "remove",         SEC_ADMINISTRATOR,     false,  &ChatHandler::HandleGroupRemoveCommand,         "", NULL }, 
     292        { NULL,             0,                                     false, NULL,                                           "", NULL } 
    235293    }; 
    236294 
    237295    static ChatCommand lookupPlayerCommandTable[] = 
    238296    { 
    239         { "ip",            SEC_GAMEMASTER,     &ChatHandler::HandleLookupPlayerIpCommand,      "", NULL }, 
    240         { "account",       SEC_GAMEMASTER,     &ChatHandler::HandleLookupPlayerAccountCommand, "", NULL }, 
    241         { "email",         SEC_GAMEMASTER,     &ChatHandler::HandleLookupPlayerEmailCommand,    "", NULL }, 
    242         { NULL,            0,                  NULL,                                            "", NULL } 
     297                { "ip", SEC_GAMEMASTER, true, &ChatHandler::HandleLookupPlayerIpCommand, "", NULL }, 
     298                { "account", SEC_GAMEMASTER, true, &ChatHandler::HandleLookupPlayerAccountCommand, "", NULL }, 
     299                { "email", SEC_GAMEMASTER, true, &ChatHandler::HandleLookupPlayerEmailCommand, "", NULL }, 
     300                { NULL,             0,                  false, NULL,                                            "", NULL } 
    243301    }; 
    244302 
    245303    static ChatCommand lookupCommandTable[] = 
    246304    { 
    247         { "area",           SEC_MODERATOR,      &ChatHandler::HandleLookupAreaCommand,          "", NULL }, 
    248         { "creature",       SEC_ADMINISTRATOR,  &ChatHandler::HandleLookupCreatureCommand,      "", NULL }, 
    249         { "event",          SEC_GAMEMASTER,     &ChatHandler::HandleLookupEventCommand,         "", NULL }, 
    250         { "faction",        SEC_ADMINISTRATOR,  &ChatHandler::HandleLookupFactionCommand,       "", NULL }, 
    251         { "item",           SEC_ADMINISTRATOR,  &ChatHandler::HandleLookupItemCommand,          "", NULL }, 
    252         { "itemset",        SEC_ADMINISTRATOR,  &ChatHandler::HandleLookupItemSetCommand,       "", NULL }, 
    253         { "object",         SEC_ADMINISTRATOR,  &ChatHandler::HandleLookupObjectCommand,        "", NULL }, 
    254         { "quest",          SEC_ADMINISTRATOR,  &ChatHandler::HandleLookupQuestCommand,         "", NULL }, 
    255         { "player",         SEC_GAMEMASTER,     NULL,                                           "", lookupPlayerCommandTable }, 
    256         { "skill",          SEC_ADMINISTRATOR,  &ChatHandler::HandleLookupSkillCommand,         "", NULL }, 
    257         { "spell",          SEC_ADMINISTRATOR,  &ChatHandler::HandleLookupSpellCommand,         "", NULL }, 
    258         { "tele",           SEC_MODERATOR,      &ChatHandler::HandleLookupTeleCommand,          "", NULL }, 
    259         { NULL,             0,                  NULL,                                           "", NULL } 
     305        { "area",           SEC_MODERATOR,      true,  &ChatHandler::HandleLookupAreaCommand,          "", NULL }, 
     306                { "creature",       SEC_ADMINISTRATOR,  true,  &ChatHandler::HandleLookupCreatureCommand,      "", NULL }, 
     307                { "event",          SEC_GAMEMASTER,     true,  &ChatHandler::HandleLookupEventCommand,         "", NULL }, 
     308                { "faction",        SEC_ADMINISTRATOR,  true,  &ChatHandler::HandleLookupFactionCommand,       "", NULL }, 
     309                { "item",           SEC_ADMINISTRATOR,  true,  &ChatHandler::HandleLookupItemCommand,          "", NULL }, 
     310                { "itemset",        SEC_ADMINISTRATOR,  true,  &ChatHandler::HandleLookupItemSetCommand,       "", NULL }, 
     311                { "object",         SEC_ADMINISTRATOR,  true,  &ChatHandler::HandleLookupObjectCommand,        "", NULL }, 
     312                { "quest",          SEC_ADMINISTRATOR,  true,  &ChatHandler::HandleLookupQuestCommand,         "", NULL }, 
     313                { "player",         SEC_GAMEMASTER,     true,  NULL,                                           "", lookupPlayerCommandTable }, 
     314                { "skill",          SEC_ADMINISTRATOR,  true,  &ChatHandler::HandleLookupSkillCommand,         "", NULL }, 
     315                { "spell",          SEC_ADMINISTRATOR,  true,  &ChatHandler::HandleLookupSpellCommand,         "", NULL }, 
     316                { "tele",           SEC_MODERATOR,      true,  &ChatHandler::HandleLookupTeleCommand,          "", NULL }, 
     317                { NULL,             0,                  false, NULL,                                           "", NULL } 
    260318    }; 
    261319 
    262320    static ChatCommand resetCommandTable[] = 
    263321    { 
    264         { "honor",          SEC_ADMINISTRATOR,  &ChatHandler::HandleResetHonorCommand,          "", NULL }, 
    265         { "level",          SEC_ADMINISTRATOR, &ChatHandler::HandleResetLevelCommand,          "", NULL }, 
    266         { "spells",         SEC_ADMINISTRATOR, &ChatHandler::HandleResetSpellsCommand,         "", NULL }, 
    267         { "stats",          SEC_ADMINISTRATOR, &ChatHandler::HandleResetStatsCommand,          "", NULL }, 
    268         { "talents",        SEC_ADMINISTRATOR, &ChatHandler::HandleResetTalentsCommand,        "", NULL }, 
    269         { "all",            SEC_ADMINISTRATOR, &ChatHandler::HandleResetAllCommand,            "", NULL }, 
    270         { NULL,             0,                  NULL,                                           "", NULL } 
     322        { "honor",          SEC_ADMINISTRATOR,  false, &ChatHandler::HandleResetHonorCommand,          "", NULL }, 
     323                { "level",          SEC_ADMINISTRATOR,  false, &ChatHandler::HandleResetLevelCommand,          "", NULL }, 
     324                { "spells",         SEC_ADMINISTRATOR,  false, &ChatHandler::HandleResetSpellsCommand,         "", NULL }, 
     325                { "stats",          SEC_ADMINISTRATOR,  false, &ChatHandler::HandleResetStatsCommand,          "", NULL }, 
     326                { "talents",        SEC_ADMINISTRATOR,  false, &ChatHandler::HandleResetTalentsCommand,        "", NULL }, 
     327                { "all",            SEC_ADMINISTRATOR,  false, &ChatHandler::HandleResetAllCommand,            "", NULL }, 
     328                { NULL,             0,                  false, NULL,                                           "", NULL } 
    271329    }; 
    272330 
    273331    static ChatCommand castCommandTable[] = 
    274332    { 
    275         { "back",           SEC_ADMINISTRATOR,  &ChatHandler::HandleCastBackCommand,            "", NULL }, 
    276         { "dist",           SEC_ADMINISTRATOR, &ChatHandler::HandleCastDistCommand,            "", NULL }, 
    277         { "self",           SEC_ADMINISTRATOR, &ChatHandler::HandleCastSelfCommand,            "", NULL }, 
    278         { "target",         SEC_ADMINISTRATOR, &ChatHandler::HandleCastTargetCommand,          "", NULL }, 
    279         { "",               SEC_ADMINISTRATOR, &ChatHandler::HandleCastCommand,                "", NULL }, 
    280         { NULL,             0,                  NULL,                                           "", NULL } 
     333        { "back",           SEC_ADMINISTRATOR,  false, &ChatHandler::HandleCastBackCommand,            "", NULL }, 
     334                { "dist",           SEC_ADMINISTRATOR,  false, &ChatHandler::HandleCastDistCommand,            "", NULL }, 
     335                { "self",           SEC_ADMINISTRATOR,  false, &ChatHandler::HandleCastSelfCommand,            "", NULL }, 
     336                { "target",         SEC_ADMINISTRATOR,  false, &ChatHandler::HandleCastTargetCommand,          "", NULL }, 
     337                { "",               SEC_ADMINISTRATOR,  false, &ChatHandler::HandleCastCommand,                "", NULL }, 
     338                { NULL,             0,                  false, NULL,                                           "", NULL } 
    281339    }; 
    282340 
    283341    static ChatCommand pdumpCommandTable[] = 
    284342    { 
    285         { "load",           SEC_ADMINISTRATOR,  &ChatHandler::HandleLoadPDumpCommand,           "", NULL }, 
    286         { "write",          SEC_ADMINISTRATOR,  &ChatHandler::HandleWritePDumpCommand,          "", NULL }, 
    287         { NULL,             0,                  NULL,                                           "", NULL } 
     343        { "load",           SEC_ADMINISTRATOR,  true,  &ChatHandler::HandleLoadPDumpCommand,           "", NULL }, 
     344                { "write",          SEC_ADMINISTRATOR,  true,  &ChatHandler::HandleWritePDumpCommand,          "", NULL }, 
     345                { NULL,             0,                  false, NULL,                                           "", NULL } 
    288346    }; 
    289347 
    290348    static ChatCommand listCommandTable[] = 
    291349    { 
    292         { "creature",       SEC_ADMINISTRATOR,  &ChatHandler::HandleListCreatureCommand,        "", NULL }, 
    293         { "item",           SEC_ADMINISTRATOR,  &ChatHandler::HandleListItemCommand,            "", NULL }, 
    294         { "object",         SEC_ADMINISTRATOR,  &ChatHandler::HandleListObjectCommand,          "", NULL }, 
    295         { "auras",          SEC_ADMINISTRATOR, &ChatHandler::HandleListAurasCommand,           "", NULL }, 
    296         { NULL,             0,                  NULL,                                           "", NULL } 
     350        { "creature",       SEC_ADMINISTRATOR,  true,  &ChatHandler::HandleListCreatureCommand,        "", NULL }, 
     351                { "item",           SEC_ADMINISTRATOR,  true,  &ChatHandler::HandleListItemCommand,            "", NULL }, 
     352                { "object",         SEC_ADMINISTRATOR,  true,  &ChatHandler::HandleListObjectCommand,          "", NULL }, 
     353                { "auras",          SEC_ADMINISTRATOR,  false, &ChatHandler::HandleListAurasCommand,           "", NULL }, 
     354                { NULL,             0,                  false, NULL,                                           "", NULL } 
    297355    }; 
    298356 
    299357    static ChatCommand teleCommandTable[] = 
    300358    { 
    301         { "add",            SEC_ADMINISTRATOR,  &ChatHandler::HandleAddTeleCommand,             "", NULL }, 
    302         { "del",            SEC_ADMINISTRATOR,  &ChatHandler::HandleDelTeleCommand,             "", NULL }, 
    303         { "name",           SEC_MODERATOR,      &ChatHandler::HandleNameTeleCommand,            "", NULL }, 
    304         { "group",          SEC_MODERATOR,      &ChatHandler::HandleGroupTeleCommand,           "", NULL }, 
    305         { "",               SEC_MODERATOR,      &ChatHandler::HandleTeleCommand,                "", NULL }, 
    306         { NULL,             0,                  NULL,                                           "", NULL } 
     359        { "add",            SEC_ADMINISTRATOR,  false, &ChatHandler::HandleAddTeleCommand,             "", NULL }, 
     360                { "del",            SEC_ADMINISTRATOR,  true,  &ChatHandler::HandleDelTeleCommand,             "", NULL }, 
     361                { "name",           SEC_MODERATOR,      true,  &ChatHandler::HandleNameTeleCommand,            "", NULL }, 
     362                { "group",          SEC_MODERATOR,      false, &ChatHandler::HandleGroupTeleCommand,           "", NULL }, 
     363                { "",               SEC_MODERATOR,      false, &ChatHandler::HandleTeleCommand,                "", NULL }, 
     364                { NULL,             0,                  false, NULL,                                           "", NULL } 
    307365    }; 
    308366 
    309367    static ChatCommand npcCommandTable[] = 
    310368    { 
    311         { "say",            SEC_MODERATOR,      &ChatHandler::HandleSayCommand,                 "", NULL }, 
    312         { "whisper",        SEC_MODERATOR,      &ChatHandler::HandleNpcWhisperCommand,          "", NULL }, 
    313         { "yell",           SEC_MODERATOR,      &ChatHandler::HandleYellCommand,                "", NULL }, 
    314         { "textemote",      SEC_MODERATOR,      &ChatHandler::HandleTextEmoteCommand,           "", NULL }, 
    315         { "add",            SEC_GAMEMASTER,    &ChatHandler::HandleAddSpwCommand,              "", NULL }, 
    316         { "delete",         SEC_GAMEMASTER,    &ChatHandler::HandleDelCreatureCommand,         "", NULL }, 
    317         { "spawndist",      SEC_GAMEMASTER,    &ChatHandler::HandleSpawnDistCommand,           "", NULL }, 
    318         { "spawntime",      SEC_GAMEMASTER,    &ChatHandler::HandleSpawnTimeCommand,           "", NULL }, 
    319         { "factionid",      SEC_GAMEMASTER,    &ChatHandler::HandleFactionIdCommand,           "", NULL }, 
    320         { "addmove",        SEC_GAMEMASTER,    &ChatHandler::HandleAddMoveCommand,             "", NULL }, 
    321         { "setmovetype",    SEC_GAMEMASTER,    &ChatHandler::HandleSetMoveTypeCommand,         "", NULL }, 
    322         { "move",           SEC_GAMEMASTER,    &ChatHandler::HandleMoveCreatureCommand,        "", NULL }, 
    323         { "changelevel",    SEC_GAMEMASTER,    &ChatHandler::HandleChangeLevelCommand,         "", NULL }, 
    324         { "setmodel",       SEC_GAMEMASTER,    &ChatHandler::HandleSetModelCommand,            "", NULL }, 
    325         { "additem",        SEC_GAMEMASTER,    &ChatHandler::HandleAddVendorItemCommand,       "", NULL }, 
    326         { "delitem",        SEC_GAMEMASTER,    &ChatHandler::HandleDelVendorItemCommand,       "", NULL }, 
    327         { "flag",           SEC_GAMEMASTER,    &ChatHandler::HandleNPCFlagCommand,             "", NULL }, 
    328         { "changeentry",    SEC_ADMINISTRATOR, &ChatHandler::HandleChangeEntryCommand,         "", NULL }, 
    329         { "info",           SEC_ADMINISTRATOR, &ChatHandler::HandleNpcInfoCommand,             "", NULL }, 
    330         { "playemote",      SEC_ADMINISTRATOR, &ChatHandler::HandlePlayEmoteCommand,           "", NULL }, 
     369        { "say",            SEC_MODERATOR,      false, &ChatHandler::HandleSayCommand,                 "", NULL }, 
     370                { "whisper",        SEC_MODERATOR,      false, &ChatHandler::HandleNpcWhisperCommand,          "", NULL }, 
     371                { "yell",           SEC_MODERATOR,      false, &ChatHandler::HandleYellCommand,                "", NULL }, 
     372                { "textemote",      SEC_MODERATOR,      false, &ChatHandler::HandleTextEmoteCommand,           "", NULL }, 
     373                { "add",            SEC_GAMEMASTER,     false, &ChatHandler::HandleAddSpwCommand,              "", NULL }, 
     374                { "delete",         SEC_GAMEMASTER,     false, &ChatHandler::HandleDelCreatureCommand,         "", NULL }, 
     375                { "spawndist",      SEC_GAMEMASTER,     false, &ChatHandler::HandleSpawnDistCommand,           "", NULL }, 
     376                { "spawntime",      SEC_GAMEMASTER,     false, &ChatHandler::HandleSpawnTimeCommand,           "", NULL }, 
     377                { "factionid",      SEC_GAMEMASTER,     false, &ChatHandler::HandleFactionIdCommand,           "", NULL }, 
     378                { "addmove",        SEC_GAMEMASTER,     false, &ChatHandler::HandleAddMoveCommand,             "", NULL }, 
     379                { "setmovetype",    SEC_GAMEMASTER,     false, &ChatHandler::HandleSetMoveTypeCommand,         "", NULL }, 
     380                { "move",           SEC_GAMEMASTER,     false, &ChatHandler::HandleMoveCreatureCommand,        "", NULL }, 
     381                { "changelevel",    SEC_GAMEMASTER,     false, &ChatHandler::HandleChangeLevelCommand,         "", NULL }, 
     382                { "setmodel",       SEC_GAMEMASTER,     false, &ChatHandler::HandleSetModelCommand,            "", NULL }, 
     383                { "additem",        SEC_GAMEMASTER,     false, &ChatHandler::HandleAddVendorItemCommand,       "", NULL }, 
     384                { "delitem",        SEC_GAMEMASTER,     false, &ChatHandler::HandleDelVendorItemCommand,       "", NULL }, 
     385                { "flag",           SEC_GAMEMASTER,     false, &ChatHandler::HandleNPCFlagCommand,             "", NULL }, 
     386                { "changeentry",    SEC_ADMINISTRATOR,  false, &ChatHandler::HandleChangeEntryCommand,         "", NULL }, 
     387                { "info",           SEC_ADMINISTRATOR,  false, &ChatHandler::HandleNpcInfoCommand,             "", NULL }, 
     388                { "playemote",      SEC_ADMINISTRATOR,  false, &ChatHandler::HandlePlayEmoteCommand,           "", NULL }, 
    331389 
    332390        //{ TODO: fix or remove this commands 
    333         { "name",           SEC_GAMEMASTER,     &ChatHandler::HandleNameCommand,                "", NULL }, 
    334         { "subname",        SEC_GAMEMASTER,    &ChatHandler::HandleSubNameCommand,             "", NULL }, 
    335         { "addweapon",      SEC_ADMINISTRATOR, &ChatHandler::HandleAddWeaponCommand,           "", NULL }, 
     391        { "name",           SEC_GAMEMASTER,     false, &ChatHandler::HandleNameCommand,                "", NULL }, 
     392                { "subname",        SEC_GAMEMASTER,     false, &ChatHandler::HandleSubNameCommand,             "", NULL }, 
     393                { "addweapon",      SEC_ADMINISTRATOR,  false, &ChatHandler::HandleAddWeaponCommand,           "", NULL }, 
    336394        //} 
    337395 
    338         { NULL,             0,                  NULL,                                           "", NULL } 
     396        { NULL,             0,                  false, NULL,                                           "", NULL } 
    339397    }; 
    340398 
    341399    static ChatCommand goCommandTable[] = 
    342400    { 
    343         { "grid",           SEC_MODERATOR,      &ChatHandler::HandleGoGridCommand,              "", NULL }, 
    344         { "creature",       SEC_GAMEMASTER,    &ChatHandler::HandleGoCreatureCommand,          "", NULL }, 
    345         { "object",         SEC_GAMEMASTER,    &ChatHandler::HandleGoObjectCommand,            "", NULL }, 
    346         { "trigger",        SEC_GAMEMASTER,    &ChatHandler::HandleGoTriggerCommand,           "", NULL }, 
    347         { "graveyard",      SEC_GAMEMASTER,    &ChatHandler::HandleGoGraveyardCommand,         "", NULL }, 
    348         { "zonexy",         SEC_MODERATOR,      &ChatHandler::HandleGoZoneXYCommand,            "", NULL }, 
    349         { "xy",             SEC_MODERATOR,      &ChatHandler::HandleGoXYCommand,                "", NULL }, 
    350         { "xyz",            SEC_MODERATOR,      &ChatHandler::HandleGoXYZCommand,               "", NULL }, 
    351         { "",               SEC_MODERATOR,      &ChatHandler::HandleGoXYZCommand,               "", NULL }, 
    352         { NULL,             0,                  NULL,                                           "", NULL } 
     401        { "grid",           SEC_MODERATOR,      false, &ChatHandler::HandleGoGridCommand,              "", NULL }, 
     402                { "creature",       SEC_GAMEMASTER,     false, &ChatHandler::HandleGoCreatureCommand,          "", NULL }, 
     403                { "object",         SEC_GAMEMASTER,     false, &ChatHandler::HandleGoObjectCommand,            "", NULL }, 
     404                { "trigger",        SEC_GAMEMASTER,     false, &ChatHandler::HandleGoTriggerCommand,           "", NULL }, 
     405                { "graveyard",      SEC_GAMEMASTER,     false, &ChatHandler::HandleGoGraveyardCommand,         "", NULL }, 
     406                { "zonexy",         SEC_MODERATOR,      false, &ChatHandler::HandleGoZoneXYCommand,            "", NULL }, 
     407                { "xy",             SEC_MODERATOR,      false, &ChatHandler::HandleGoXYCommand,                "", NULL }, 
     408                { "xyz",            SEC_MODERATOR,      false, &ChatHandler::HandleGoXYZCommand,               "", NULL }, 
     409                { "",               SEC_MODERATOR,      false, &ChatHandler::HandleGoXYZCommand,               "", NULL }, 
     410                { NULL,             0,                  false, NULL,                                           "", NULL } 
    353411    }; 
    354412 
    355413    static ChatCommand gobjectCommandTable[] = 
    356414    { 
    357         { "add",            SEC_GAMEMASTER,     &ChatHandler::HandleGameObjectCommand,          "", NULL }, 
    358         { "delete",         SEC_GAMEMASTER,     &ChatHandler::HandleDelObjectCommand,           "", NULL }, 
    359         { "target",         SEC_GAMEMASTER,     &ChatHandler::HandleTargetObjectCommand,        "", NULL }, 
    360         { "turn",           SEC_GAMEMASTER,     &ChatHandler::HandleTurnObjectCommand,          "", NULL }, 
    361         { "move",           SEC_GAMEMASTER,     &ChatHandler::HandleMoveObjectCommand,          "", NULL }, 
    362         { "near",           SEC_ADMINISTRATOR,  &ChatHandler::HandleNearObjectCommand,          "", NULL }, 
    363         { "state",          SEC_ADMINISTRATOR,  &ChatHandler::HandleObjectStateCommand,         "", NULL }, 
    364         { NULL,             0,                  NULL,                                           "", NULL } 
     415        { "add",            SEC_GAMEMASTER,     false, &ChatHandler::HandleGameObjectCommand,          "", NULL }, 
     416                { "delete",         SEC_GAMEMASTER,     false, &ChatHandler::HandleDelObjectCommand,           "", NULL }, 
     417                { "target",         SEC_GAMEMASTER,     false, &ChatHandler::HandleTargetObjectCommand,        "", NULL }, 
     418                { "turn",           SEC_GAMEMASTER,     false, &ChatHandler::HandleTurnObjectCommand,          "", NULL }, 
     419                { "move",           SEC_GAMEMASTER,     false, &ChatHandler::HandleMoveObjectCommand,          "", NULL }, 
     420                { "near",           SEC_ADMINISTRATOR,  false, &ChatHandler::HandleNearObjectCommand,          "", NULL }, 
     421                { NULL,             0,                  false, NULL,                                           "", NULL } 
    365422    }; 
    366423 
    367424    static ChatCommand questCommandTable[] = 
    368425    { 
    369         { "add",            SEC_ADMINISTRATOR,  &ChatHandler::HandleAddQuest,                   "", NULL }, 
    370         { "complete",       SEC_ADMINISTRATOR, &ChatHandler::HandleCompleteQuest,              "", NULL }, 
    371         { "remove",         SEC_ADMINISTRATOR, &ChatHandler::HandleRemoveQuest,                "", NULL }, 
    372         { NULL,             0,                  NULL,                                           "", NULL } 
     426        { "add",            SEC_ADMINISTRATOR,  false, &ChatHandler::HandleAddQuest,                   "", NULL }, 
     427                { "complete",       SEC_ADMINISTRATOR,  false, &ChatHandler::HandleCompleteQuest,              "", NULL }, 
     428                { "remove",         SEC_ADMINISTRATOR,  false, &ChatHandler::HandleRemoveQuest,                "", NULL }, 
     429                { NULL,             0,                  false, NULL,                                           "", NULL } 
    373430    }; 
    374431 
    375432    static ChatCommand gmCommandTable[] = 
    376433    { 
    377         { "chat",           SEC_MODERATOR,      &ChatHandler::HandleGMChatCommand,              "", NULL }, 
    378         { "list",           SEC_PLAYER,         &ChatHandler::HandleGMListCommand,              "", NULL }, 
    379         { "visible",        SEC_MODERATOR,      &ChatHandler::HandleVisibleCommand,             "", NULL }, 
    380         { "fly",            SEC_ADMINISTRATOR,  &ChatHandler::HandleFlyModeCommand,             "", NULL }, 
    381         { "",               SEC_MODERATOR,      &ChatHandler::HandleGMmodeCommand,              "", NULL }, 
    382         { NULL,             0,                  NULL,                                           "", NULL } 
     434        { "chat",           SEC_MODERATOR,      false, &ChatHandler::HandleGMChatCommand,              "", NULL }, 
     435                { "ingame",         SEC_PLAYER,         true,  &ChatHandler::HandleGMListIngameCommand,        "", NULL }, 
     436                { "list",           SEC_ADMINISTRATOR,  true,  &ChatHandler::HandleGMListFullCommand,          "", NULL }, 
     437                { "visible",        SEC_MODERATOR,      false, &ChatHandler::HandleVisibleCommand,             "", NULL }, 
     438                { "fly",            SEC_ADMINISTRATOR,  false, &ChatHandler::HandleFlyModeCommand,             "", NULL }, 
     439                { "",               SEC_MODERATOR,      false, &ChatHandler::HandleGMmodeCommand,              "", NULL }, 
     440                { NULL,             0,                  false, NULL,                                           "", NULL } 
    383441    }; 
    384442 
    385443    static ChatCommand instanceCommandTable[] = 
    386444    { 
    387         { "listbinds",      SEC_MODERATOR,      &ChatHandler::HandleInstanceListBindsCommand,   "", NULL }, 
    388         { "unbind",         SEC_MODERATOR,      &ChatHandler::HandleInstanceUnbindCommand,      "", NULL }, 
    389         { "stats",          SEC_MODERATOR,      &ChatHandler::HandleInstanceStatsCommand,       "", NULL }, 
    390         { "savedata",       SEC_MODERATOR,      &ChatHandler::HandleInstanceSaveDataCommand,    "", NULL }, 
    391         { NULL,             0,                  NULL,                                           "", NULL } 
     445       { "listbinds",      SEC_MODERATOR,      false, &ChatHandler::HandleInstanceListBindsCommand,   "", NULL }, 
     446           { "unbind",         SEC_MODERATOR,      false, &ChatHandler::HandleInstanceUnbindCommand,      "", NULL }, 
     447           { "stats",          SEC_MODERATOR,      true,  &ChatHandler::HandleInstanceStatsCommand,       "", NULL }, 
     448           { "savedata",       SEC_MODERATOR,      false, &ChatHandler::HandleInstanceSaveDataCommand,    "", NULL }, 
     449           { NULL,             0,                  false, NULL,                                           "", NULL } 
    392450    }; 
    393451 
    394452    static ChatCommand commandTable[] = 
    395453    { 
    396         { "gm",             SEC_MODERATOR,      NULL,                                           "", gmCommandTable }, 
    397         { "npc",            SEC_MODERATOR,      NULL,                                           "", npcCommandTable }, 
    398         { "go",             SEC_MODERATOR,      NULL,                                           "", goCommandTable }, 
    399         { "learn",          SEC_MODERATOR,      NULL,                                           "", learnCommandTable }, 
    400         { "modify",         SEC_MODERATOR,      NULL,                                           "", modifyCommandTable }, 
    401         { "debug",          SEC_MODERATOR,      NULL,                                           "", debugCommandTable }, 
    402         { "tele",           SEC_MODERATOR,      NULL,                                           "", teleCommandTable }, 
    403         { "event",          SEC_GAMEMASTER,     NULL,                                           "", eventCommandTable }, 
    404         { "gobject",        SEC_GAMEMASTER,     NULL,                                           "", gobjectCommandTable }, 
    405         { "honor",          SEC_GAMEMASTER,     NULL,                                           "", honorCommandTable }, 
    406         { "wp",             SEC_GAMEMASTER,     NULL,                                           "", wpCommandTable }, 
    407         { "quest",          SEC_ADMINISTRATOR,  NULL,                                           "", questCommandTable }, 
    408         { "reload",         SEC_ADMINISTRATOR,  NULL,                                           "", reloadCommandTable }, 
    409         { "list",           SEC_ADMINISTRATOR,  NULL,                                           "", listCommandTable }, 
    410         { "lookup",         SEC_ADMINISTRATOR,  NULL,                                           "", lookupCommandTable }, 
    411         { "pdump",          SEC_ADMINISTRATOR,  NULL,                                           "", pdumpCommandTable }, 
    412         { "group",          SEC_ADMINISTRATOR,  NULL,                                           "", groupCommandTable }, 
    413         { "guild",          SEC_ADMINISTRATOR,  NULL,                                           "", guildCommandTable }, 
    414         { "cast",           SEC_ADMINISTRATOR,  NULL,                                           "", castCommandTable }, 
    415         { "reset",          SEC_ADMINISTRATOR,  NULL,                                           "", resetCommandTable }, 
    416         { "instance",       SEC_ADMINISTRATOR,  NULL,                                           "", instanceCommandTable }, 
    417         { "server",         SEC_ADMINISTRATOR,  NULL,                                           "", serverCommandTable }, 
    418  
    419         { "aura",           SEC_ADMINISTRATOR,  &ChatHandler::HandleAuraCommand,                "", NULL }, 
    420         { "unaura",         SEC_ADMINISTRATOR,  &ChatHandler::HandleUnAuraCommand,              "", NULL }, 
    421         { "acct",           SEC_PLAYER,         &ChatHandler::HandleAcctCommand,                "", NULL }, 
    422         { "nameannounce",   SEC_MODERATOR,      &ChatHandler::HandleNameAnnounceCommand,        "", NULL }, 
    423         { "announce",       SEC_ADMINISTRATOR,  &ChatHandler::HandleAnnounceCommand,            "", NULL }, 
    424         { "notify",         SEC_MODERATOR,      &ChatHandler::HandleNotifyCommand,              "", NULL }, 
    425         { "goname",         SEC_MODERATOR,      &ChatHandler::HandleGonameCommand,              "", NULL }, 
    426         { "namego",         SEC_MODERATOR,      &ChatHandler::HandleNamegoCommand,              "", NULL }, 
    427         { "groupgo",        SEC_MODERATOR,      &ChatHandler::HandleGroupgoCommand,             "", NULL }, 
    428         { "commands",       SEC_PLAYER,         &ChatHandler::HandleCommandsCommand,            "", NULL }, 
    429         { "demorph",        SEC_GAMEMASTER,     &ChatHandler::HandleDeMorphCommand,             "", NULL }, 
    430         { "die",            SEC_ADMINISTRATOR,  &ChatHandler::HandleDieCommand,                 "", NULL }, 
    431         { "revive",         SEC_ADMINISTRATOR,  &ChatHandler::HandleReviveCommand,              "", NULL }, 
    432         { "dismount",       SEC_PLAYER,         &ChatHandler::HandleDismountCommand,            "", NULL }, 
    433         { "gps",            SEC_MODERATOR,      &ChatHandler::HandleGPSCommand,                 "", NULL }, 
    434         { "guid",           SEC_GAMEMASTER,     &ChatHandler::HandleGUIDCommand,                "", NULL }, 
    435         { "help",           SEC_PLAYER,         &ChatHandler::HandleHelpCommand,                "", NULL }, 
    436         { "itemmove",       SEC_GAMEMASTER,     &ChatHandler::HandleItemMoveCommand,            "", NULL }, 
    437         { "cooldown",       SEC_ADMINISTRATOR,  &ChatHandler::HandleCooldownCommand,            "", NULL }, 
    438         { "unlearn",        SEC_ADMINISTRATOR,  &ChatHandler::HandleUnLearnCommand,             "", NULL }, 
    439         { "distance",       SEC_ADMINISTRATOR,  &ChatHandler::HandleGetDistanceCommand,         "", NULL }, 
    440         { "recall",         SEC_MODERATOR,      &ChatHandler::HandleRecallCommand,              "", NULL }, 
    441         { "save",           SEC_PLAYER,         &ChatHandler::HandleSaveCommand,                "", NULL }, 
    442         { "saveall",        SEC_MODERATOR,      &ChatHandler::HandleSaveAllCommand,             "", NULL }, 
    443         { "kick",           SEC_GAMEMASTER,     &ChatHandler::HandleKickPlayerCommand,          "", NULL }, 
    444         { "security",       SEC_ADMINISTRATOR,  &ChatHandler::HandleSecurityCommand,            "", NULL }, 
    445         { "ban",            SEC_ADMINISTRATOR,  &ChatHandler::HandleBanCommand,                 "", NULL }, 
    446         { "unban",          SEC_ADMINISTRATOR,  &ChatHandler::HandleUnBanCommand,               "", NULL }, 
    447         { "baninfo",        SEC_ADMINISTRATOR,  &ChatHandler::HandleBanInfoCommand,             "", NULL }, 
    448         { "banlist",        SEC_ADMINISTRATOR,  &ChatHandler::HandleBanListCommand,             "", NULL }, 
    449         { "plimit",         SEC_ADMINISTRATOR,  &ChatHandler::HandlePLimitCommand,              "", NULL }, 
    450         { "start",          SEC_PLAYER,         &ChatHandler::HandleStartCommand,               "", NULL }, 
    451         { "taxicheat",      SEC_MODERATOR,      &ChatHandler::HandleTaxiCheatCommand,           "", NULL }, 
    452         { "allowmove",      SEC_ADMINISTRATOR,  &ChatHandler::HandleAllowMovementCommand,       "", NULL }, 
    453         { "linkgrave",      SEC_ADMINISTRATOR,  &ChatHandler::HandleLinkGraveCommand,           "", NULL }, 
    454         { "neargrave",      SEC_ADMINISTRATOR,  &ChatHandler::HandleNearGraveCommand,           "", NULL }, 
    455         { "transport",      SEC_ADMINISTRATOR,  &ChatHandler::HandleSpawnTransportCommand,      "", NULL }, 
    456         { "explorecheat",   SEC_ADMINISTRATOR,  &ChatHandler::HandleExploreCheatCommand,        "", NULL }, 
    457         { "hover",          SEC_ADMINISTRATOR,  &ChatHandler::HandleHoverCommand,               "", NULL }, 
    458         { "levelup",        SEC_ADMINISTRATOR,  &ChatHandler::HandleLevelUpCommand,             "", NULL }, 
    459         { "showarea",       SEC_ADMINISTRATOR,  &ChatHandler::HandleShowAreaCommand,            "", NULL }, 
    460         { "hidearea",       SEC_ADMINISTRATOR,  &ChatHandler::HandleHideAreaCommand,            "", NULL }, 
    461         { "additem",        SEC_ADMINISTRATOR,  &ChatHandler::HandleAddItemCommand,             "", NULL }, 
    462         { "additemset",     SEC_ADMINISTRATOR,  &ChatHandler::HandleAddItemSetCommand,          "", NULL }, 
    463         { "bank",           SEC_ADMINISTRATOR,  &ChatHandler::HandleBankCommand,                "", NULL }, 
    464         { "wchange",        SEC_ADMINISTRATOR,  &ChatHandler::HandleChangeWeather,              "", NULL }, 
    465         { "ticket",         SEC_GAMEMASTER,     &ChatHandler::HandleTicketCommand,              "", NULL }, 
    466         { "delticket",      SEC_GAMEMASTER,     &ChatHandler::HandleDelTicketCommand,           "", NULL }, 
    467         { "maxskill",       SEC_ADMINISTRATOR,  &ChatHandler::HandleMaxSkillCommand,            "", NULL }, 
    468         { "setskill",       SEC_ADMINISTRATOR,  &ChatHandler::HandleSetSkillCommand,            "", NULL }, 
    469         { "whispers",       SEC_MODERATOR,      &ChatHandler::HandleWhispersCommand,            "", NULL }, 
    470         { "pinfo",          SEC_GAMEMASTER,     &ChatHandler::HandlePInfoCommand,               "", NULL }, 
    471         { "password",       SEC_PLAYER,         &ChatHandler::HandlePasswordCommand,            "", NULL }, 
    472         { "lockaccount",    SEC_PLAYER,         &ChatHandler::HandleLockAccountCommand,         "", NULL }, 
    473         { "respawn",        SEC_ADMINISTRATOR,  &ChatHandler::HandleRespawnCommand,             "", NULL }, 
    474         { "sendmail",       SEC_MODERATOR,      &ChatHandler::HandleSendMailCommand,            "", NULL }, 
    475         { "rename",         SEC_GAMEMASTER,     &ChatHandler::HandleRenameCommand,              "", NULL }, 
    476         { "loadscripts",    SEC_ADMINISTRATOR,  &ChatHandler::HandleLoadScriptsCommand,         "", NULL }, 
    477         { "mute",           SEC_GAMEMASTER,     &ChatHandler::HandleMuteCommand,                "", NULL }, 
    478         { "unmute",         SEC_GAMEMASTER,     &ChatHandler::HandleUnmuteCommand,              "", NULL }, 
    479         { "movegens",       SEC_ADMINISTRATOR,  &ChatHandler::HandleMovegensCommand,            "", NULL }, 
    480         { "cometome",       SEC_ADMINISTRATOR,  &ChatHandler::HandleComeToMeCommand,            "", NULL }, 
    481         { "damage",         SEC_ADMINISTRATOR,  &ChatHandler::HandleDamageCommand,              "", NULL }, 
    482         { "combatstop",     SEC_GAMEMASTER,     &ChatHandler::HandleCombatStopCommand,          "", NULL }, 
    483         { "freeze",         SEC_ADMINISTRATOR,  &ChatHandler::HandleFreezeCommand,              "", NULL }, 
    484         { "unfreeze",       SEC_ADMINISTRATOR,  &ChatHandler::HandleUnFreezeCommand,            "", NULL }, 
    485         { "listfreeze",     SEC_ADMINISTRATOR,  &ChatHandler::HandleListFreezeCommand,          "", NULL }, 
    486         { "flusharenapoints",    SEC_ADMINISTRATOR, &ChatHandler::HandleFlushArenaPointsCommand,         "",   NULL }, 
    487  
    488         { NULL,             0,                  NULL,                                           "", NULL } 
     454        { "account",        SEC_PLAYER,         true,  NULL,                                           "", accountCommandTable }, 
     455                { "gm",             SEC_MODERATOR,      true,  NULL,                                           "", gmCommandTable }, 
     456                { "npc",            SEC_MODERATOR,      false, NULL,                                           "", npcCommandTable }, 
     457                { "go",             SEC_MODERATOR,      false, NULL,                                           "", goCommandTable }, 
     458                { "learn",          SEC_MODERATOR,      false, NULL,                                           "", learnCommandTable }, 
     459                { "modify",         SEC_MODERATOR,      false, NULL,                                           "", modifyCommandTable }, 
     460                { "debug",          SEC_MODERATOR,      false, NULL,                                           "", debugCommandTable }, 
     461                { "tele",           SEC_MODERATOR,      true,  NULL,                                           "", teleCommandTable }, 
     462                { "event",          SEC_GAMEMASTER,     false, NULL,                                           "", eventCommandTable }, 
     463                { "gobject",        SEC_GAMEMASTER,     false, NULL,                                           "", gobjectCommandTable }, 
     464                { "honor",          SEC_GAMEMASTER,     false, NULL,                                           "", honorCommandTable }, 
     465                { "wp",             SEC_GAMEMASTER,     false, NULL,                                           "", wpCommandTable }, 
     466                { "quest",          SEC_ADMINISTRATOR,  false, NULL,                                           "", questCommandTable }, 
     467                { "reload",         SEC_ADMINISTRATOR,  true,  NULL,                                           "", reloadCommandTable }, 
     468                { "list",           SEC_ADMINISTRATOR,  true,  NULL,                                           "", listCommandTable }, 
     469                { "lookup",         SEC_ADMINISTRATOR,  true,  NULL,                                           "", lookupCommandTable }, 
     470                { "pdump",          SEC_ADMINISTRATOR,  true,  NULL,                                           "", pdumpCommandTable }, 
     471                { "guild",          SEC_ADMINISTRATOR,  true,  NULL,                                           "", guildCommandTable }, 
     472                { "cast",           SEC_ADMINISTRATOR,  false, NULL,                                           "", castCommandTable }, 
     473                { "reset",          SEC_ADMINISTRATOR,  false, NULL,                                           "", resetCommandTable }, 
     474                { "instance",       SEC_ADMINISTRATOR,  true,  NULL,                                           "", instanceCommandTable }, 
     475                { "server",         SEC_ADMINISTRATOR,  true,  NULL,                                           "", serverCommandTable }, 
     476 
     477                { "aura",           SEC_ADMINISTRATOR,  false, &ChatHandler::HandleAuraCommand,                "", NULL }, 
     478                { "unaura",         SEC_ADMINISTRATOR,  false, &ChatHandler::HandleUnAuraCommand,              "", NULL }, 
     479                { "announce",       SEC_MODERATOR,      true,  &ChatHandler::HandleAnnounceCommand,            "", NULL }, 
     480                { "notify",         SEC_MODERATOR,      true,  &ChatHandler::HandleNotifyCommand,              "", NULL }, 
     481                { "goname",         SEC_MODERATOR,      false, &ChatHandler::HandleGonameCommand,              "", NULL }, 
     482                { "namego",         SEC_MODERATOR,      false, &ChatHandler::HandleNamegoCommand,              "", NULL }, 
     483                { "groupgo",        SEC_MODERATOR,      false, &ChatHandler::HandleGroupgoCommand,             "", NULL }, 
     484                { "commands",       SEC_PLAYER,         true,  &ChatHandler::HandleCommandsCommand,            "", NULL }, 
     485                { "demorph",        SEC_GAMEMASTER,     false, &ChatHandler::HandleDeMorphCommand,             "", NULL }, 
     486                { "die",            SEC_ADMINISTRATOR,  false, &ChatHandler::HandleDieCommand,                 "", NULL }, 
     487                { "revive",         SEC_ADMINISTRATOR,  false, &ChatHandler::HandleReviveCommand,              "", NULL }, 
     488                { "dismount",       SEC_PLAYER,         false, &ChatHandler::HandleDismountCommand,            "", NULL }, 
     489                { "gps",            SEC_MODERATOR,      false, &ChatHandler::HandleGPSCommand,                 "", NULL }, 
     490                { "guid",           SEC_GAMEMASTER,     false, &ChatHandler::HandleGUIDCommand,                "", NULL }, 
     491                { "help",           SEC_PLAYER,         true,  &ChatHandler::HandleHelpCommand,                "", NULL }, 
     492                { "itemmove",       SEC_GAMEMASTER,     false, &ChatHandler::HandleItemMoveCommand,            "", NULL }, 
     493                { "cooldown",       SEC_ADMINISTRATOR,  false, &ChatHandler::HandleCooldownCommand,            "", NULL }, 
     494                { "unlearn",        SEC_ADMINISTRATOR,  false, &ChatHandler::HandleUnLearnCommand,             "", NULL }, 
     495                { "distance",       SEC_ADMINISTRATOR,  false, &ChatHandler::HandleGetDistanceCommand,         "", NULL }, 
     496                { "recall",         SEC_MODERATOR,      false, &ChatHandler::HandleRecallCommand,              "", NULL }, 
     497                { "save",           SEC_PLAYER,         false, &ChatHandler::HandleSaveCommand,                "", NULL }, 
     498                { "saveall",        SEC_MODERATOR,      true,  &ChatHandler::HandleSaveAllCommand,             "", NULL }, 
     499                { "kick",           SEC_GAMEMASTER,     true,  &ChatHandler::HandleKickPlayerCommand,          "", NULL }, 
     500                { "ban",            SEC_ADMINISTRATOR,  true,  NULL,                                           "", banCommandTable }, 
     501                { "unban",          SEC_ADMINISTRATOR,  true,  NULL,                                           "", unbanCommandTable }, 
     502                { "baninfo",        SEC_ADMINISTRATOR,  false, NULL,                                           "", baninfoCommandTable }, 
     503                { "banlist",        SEC_ADMINISTRATOR,  true,  NULL,                                           "", banlistCommandTable }, 
     504                { "plimit",         SEC_ADMINISTRATOR,  true,  &ChatHandler::HandlePLimitCommand,              "", NULL }, 
     505                { "start",          SEC_PLAYER,         false, &ChatHandler::HandleStartCommand,               "", NULL }, 
     506                { "taxicheat",      SEC_MODERATOR,      false, &ChatHandler::HandleTaxiCheatCommand,           "", NULL }, 
     507                { "allowmove",      SEC_ADMINISTRATOR,  false, &ChatHandler::HandleAllowMovementCommand,       "", NULL }, 
     508                { "linkgrave",      SEC_ADMINISTRATOR,  false, &ChatHandler::HandleLinkGraveCommand,           "", NULL }, 
     509                { "neargrave",      SEC_ADMINISTRATOR,  false, &ChatHandler::HandleNearGraveCommand,           "", NULL }, 
     510                { "explorecheat",   SEC_ADMINISTRATOR,  false, &ChatHandler::HandleExploreCheatCommand,        "", NULL }, 
     511                { "hover",          SEC_ADMINISTRATOR,  false, &ChatHandler::HandleHoverCommand,               "", NULL }, 
     512                { "levelup",        SEC_ADMINISTRATOR,  false, &ChatHandler::HandleLevelUpCommand,             "", NULL }, 
     513                { "showarea",       SEC_ADMINISTRATOR,  false, &ChatHandler::HandleShowAreaCommand,            "", NULL }, 
     514                { "hidearea",       SEC_ADMINISTRATOR,  false, &ChatHandler::HandleHideAreaCommand,            "", NULL }, 
     515                { "additem",        SEC_ADMINISTRATOR,  false, &ChatHandler::HandleAddItemCommand,             "", NULL }, 
     516                { "additemset",     SEC_ADMINISTRATOR,  false, &ChatHandler::HandleAddItemSetCommand,          "", NULL }, 
     517                { "bank",           SEC_ADMINISTRATOR,  false, &ChatHandler::HandleBankCommand,                "", NULL }, 
     518                { "wchange",        SEC_ADMINISTRATOR,  false, &ChatHandler::HandleChangeWeather,              "", NULL }, 
     519                { "ticket",         SEC_GAMEMASTER,     true,  &ChatHandler::HandleTicketCommand,              "", NULL }, 
     520                { "delticket",      SEC_GAMEMASTER,     true,  &ChatHandler::HandleDelTicketCommand,           "", NULL }, 
     521                { "maxskill",       SEC_ADMINISTRATOR,  false, &ChatHandler::HandleMaxSkillCommand,            "", NULL }, 
     522                { "setskill",       SEC_ADMINISTRATOR,  false, &ChatHandler::HandleSetSkillCommand,            "", NULL }, 
     523                { "whispers",       SEC_MODERATOR,      false, &ChatHandler::HandleWhispersCommand,            "", NULL }, 
     524                { "pinfo",          SEC_GAMEMASTER,     true,  &ChatHandler::HandlePInfoCommand,               "", NULL }, 
     525                { "password",       SEC_PLAYER,         false, &ChatHandler::HandlePasswordCommand,            "", NULL }, 
     526                { "lockaccount",    SEC_PLAYER,         false, &ChatHandler::HandleLockAccountCommand,         "", NULL }, 
     527                { "respawn",        SEC_ADMINISTRATOR,  false, &ChatHandler::HandleRespawnCommand,             "", NULL }, 
     528                { "sendmail",       SEC_MODERATOR,      false, &ChatHandler::HandleSendMailCommand,            "", NULL }, 
     529                { "rename",         SEC_GAMEMASTER,     true,  &ChatHandler::HandleRenameCommand,              "", NULL }, 
     530                { "loadscripts",    SEC_ADMINISTRATOR,  true,  &ChatHandler::HandleLoadScriptsCommand,         "", NULL }, 
     531                { "mute",           SEC_GAMEMASTER,     true,  &ChatHandler::HandleMuteCommand,                "", NULL }, 
     532                { "unmute",         SEC_GAMEMASTER,     true,  &ChatHandler::HandleUnmuteCommand,              "", NULL }, 
     533                { "movegens",       SEC_ADMINISTRATOR,  false, &ChatHandler::HandleMovegensCommand,            "", NULL }, 
     534                { "cometome",       SEC_ADMINISTRATOR,  false, &ChatHandler::HandleComeToMeCommand,            "", NULL }, 
     535                { "damage",         SEC_ADMINISTRATOR,  false, &ChatHandler::HandleDamageCommand,              "", NULL }, 
     536                { "combatstop",     SEC_GAMEMASTER,     false, &ChatHandler::HandleCombatStopCommand,          "", NULL }, 
     537                { "chardelete",     SEC_CONSOLE,        true,  &ChatHandler::HandleCombatStopCommand,          "", NULL }, 
     538                { "sendmessage",    SEC_ADMINISTRATOR,  true,  &ChatHandler::HandleSendMessageCommand,         "", NULL }, 
     539 
     540                { NULL,             0,                  false, NULL,                                           "", NULL } 
    489541    }; 
    490542 
     
    530582} 
    531583 
    532 const char *ChatHandler::GetTrinityString(int32 entry) 
     584const char *ChatHandler::GetTrinityString(int32 entry) const 
    533585{ 
    534586    return m_session->GetTrinityString(entry); 
     587} 
     588 
     589bool ChatHandler::isAvailable(ChatCommand const& cmd) const 
     590{ 
     591        // check security level only for simple  command (without child commands) 
     592        return m_session->GetSecurity() >= cmd.SecurityLevel; 
    535593} 
    536594 
     
    579637void ChatHandler::SendGlobalSysMessage(const char *str) 
    580638{ 
     639        // Chat output 
    581640    WorldPacket data; 
    582641 
     
    654713        } 
    655714 
    656         // check security level only for simple  command (without child commands) 
    657         if(m_session->GetSecurity() < table[i].SecurityLevel) 
     715        // must be available and have handler 
     716                if(!table[i].Handler || !isAvailable(table[i])) 
    658717            continue; 
    659718 
     
    664723            if(table[i].SecurityLevel > SEC_PLAYER) 
    665724            { 
    666                 Player* p = m_session->GetPlayer(); 
    667                 uint64 sel_guid = p->GetSelection(); 
    668                 sLog.outCommand("Command: %s [Player: %s (Account: %u) X: %f Y: %f Z: %f Map: %u Selected: %s (GUID: %u)]", 
    669                     fullcmd.c_str(),p->GetName(),m_session->GetAccountId(),p->GetPositionX(),p->GetPositionY(),p->GetPositionZ(),p->GetMapId(), 
    670                     GetLogNameForGuid(sel_guid),GUID_LOPART(sel_guid)); 
     725                // chat case 
     726                                if(m_session) 
     727                                { 
     728                                        Player* p = m_session->GetPlayer(); 
     729                                        uint64 sel_guid = p->GetSelection(); 
     730                                        sLog.outCommand("Command: %s [Player: %s (Account: %u) X: %f Y: %f Z: %f Map: %u Selected: %s (GUID: %u)]", 
     731                                                fullcmd.c_str(),p->GetName(),m_session->GetAccountId(),p->GetPositionX(),p->GetPositionY(),p->GetPositionZ(),p->GetMapId(), 
     732                                                GetLogNameForGuid(sel_guid),GUID_LOPART(sel_guid)); 
     733                                } 
    671734            } 
    672735        } 
     
    694757    //    return 0; 
    695758 
    696     if(text[0] != '!' && text[0] != '.') 
    697         return 0; 
    698  
    699     // ignore single . and ! in line 
     759    /// chat case (.command or !command format) 
     760        if(m_session) 
     761        { 
     762                if(text[0] != '!' && text[0] != '.') 
     763                        return 0; 
     764        } 
     765 
     766    /// ignore single . and ! in line 
    700767    if(strlen(text) < 2) 
    701768        return 0; 
    702769 
    703     // ignore messages staring from many dots. 
     770    /// ignore messages staring from many dots. 
    704771    if(text[0] == '.' && text[1] == '.' || text[0] == '!' && text[1] == '!') 
    705772        return 0; 
    706773 
    707     ++text; 
     774    /// skip first . or ! (in console allowed use command with . and ! and without its) 
     775        if(text[0] == '!' || text[0] == '.') 
     776                ++text; 
    708777 
    709778    std::string fullcmd = text;                             // original `text` can't be used. It content destroyed in command code processing. 
     
    720789    for(uint32 i = 0; table[i].Name != NULL; ++i) 
    721790    { 
    722         if(m_session->GetSecurity() < table[i].SecurityLevel) 
     791                // must be available (ignore handler existence for show command with possibe avalable subcomands 
     792        if(!isAvailable(table[i])) 
    723793            continue; 
    724794 
     
    727797 
    728798        (list += "\n    ") += table[i].Name; 
     799                if(table[i].ChildCommands) 
     800                        list += " ..."; 
    729801    } 
    730802 
     
    749821        for(uint32 i = 0; table[i].Name != NULL; ++i) 
    750822        { 
    751             if(m_session->GetSecurity() < table[i].SecurityLevel) 
     823                        // must be available (ignore handler existence for show command with possibe avalable subcomands 
     824            if(!isAvailable(table[i])) 
    752825                continue; 
    753826 
     
    778851        for(uint32 i = 0; table[i].Name != NULL; ++i) 
    779852        { 
    780             if(m_session->GetSecurity() < table[i].SecurityLevel) 
     853                        // must be available (ignore handler existence for show command with possibe avalable subcomands 
     854            if(!isAvailable(table[i])) 
    781855                continue; 
    782856 
     
    879953Player * ChatHandler::getSelectedPlayer() 
    880954{ 
     955        if(!m_session) 
     956                return NULL; 
     957 
    881958    uint64 guid  = m_session->GetPlayer()->GetSelection(); 
    882959 
     
    889966Unit* ChatHandler::getSelectedUnit() 
    890967{ 
     968        if(!m_session) 
     969                return NULL; 
     970 
    891971    uint64 guid = m_session->GetPlayer()->GetSelection(); 
    892972 
     
    899979Creature* ChatHandler::getSelectedCreature() 
    900980{ 
     981        if(!m_session) 
     982                return NULL; 
     983 
    901984    return ObjectAccessor::GetCreatureOrPet(*m_session->GetPlayer(),m_session->GetPlayer()->GetSelection()); 
    902985} 
     
    10371120GameObject* ChatHandler::GetObjectGlobalyWithGuidOrNearWithDbGuid(uint32 lowguid,uint32 entry) 
    10381121{ 
     1122        if(!m_session) 
     1123                return NULL; 
     1124 
    10391125    Player* pl = m_session->GetPlayer(); 
    10401126 
     
    11091195 
    11101196    return objmgr.GetGameTele(cId); 
     1197} 
     1198 
     1199const char *CliHandler::GetTrinityString(int32 entry) const 
     1200{ 
     1201        return objmgr.GetTrinityStringForDBCLocale(entry); 
     1202} 
     1203 
     1204bool CliHandler::isAvailable(ChatCommand const& cmd) const 
     1205{ 
     1206        // skip non-console commands in console case 
     1207        return cmd.AllowConsole; 
     1208} 
     1209 
     1210void CliHandler::SendSysMessage(const char *str) 
     1211{ 
     1212        m_print(str); 
     1213        m_print("\r\n"); 
    11111214} 
    11121215