2 * Copyright (C) 2005-2010 MaNGOS <http://getmangos.com/>
4 * This program is free software; you can redistribute it and/or modify
5 * it under the terms of the GNU General Public License as published by
6 * the Free Software Foundation; either version 2 of the License, or
7 * (at your option) any later version.
9 * This program is distributed in the hope that it will be useful,
10 * but WITHOUT ANY WARRANTY; without even the implied warranty of
11 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
12 * GNU General Public License for more details.
14 * You should have received a copy of the GNU General Public License
15 * along with this program; if not, write to the Free Software
16 * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
19 #ifndef MANGOSSERVER_CHAT_H
20 #define MANGOSSERVER_CHAT_H
22 #include "SharedDefines.h"
35 uint32 SecurityLevel
; // function pointer required correct align (use uint32)
37 bool (ChatHandler::*Handler
)(const char* args
);
39 ChatCommand
* ChildCommands
;
45 explicit ChatHandler(WorldSession
* session
) : m_session(session
) {}
46 explicit ChatHandler(Player
* player
) : m_session(player
->GetSession()) {}
49 static void FillMessageData( WorldPacket
*data
, WorldSession
* session
, uint8 type
, uint32 language
, const char *channelName
, uint64 target_guid
, const char *message
, Unit
*speaker
);
51 void FillMessageData( WorldPacket
*data
, uint8 type
, uint32 language
, uint64 target_guid
, const char* message
)
53 FillMessageData( data
, m_session
, type
, language
, NULL
, target_guid
, message
, NULL
);
56 void FillSystemMessageData( WorldPacket
*data
, const char* message
)
58 FillMessageData( data
, CHAT_MSG_SYSTEM
, LANG_UNIVERSAL
, 0, message
);
61 static char* LineFromMessage(char*& pos
) { char* start
= strtok(pos
,"\n"); pos
= NULL
; return start
; }
63 // function with different implementation for chat/console
64 virtual const char *GetMangosString(int32 entry
) const;
65 virtual void SendSysMessage( const char *str
);
67 void SendSysMessage( int32 entry
);
68 void PSendSysMessage( const char *format
, ...) ATTR_PRINTF(2,3);
69 void PSendSysMessage( int32 entry
, ... );
71 int ParseCommands(const char* text
);
73 bool isValidChatMessage(const char* msg
);
74 bool HasSentErrorMessage() { return sentErrorMessage
;}
76 explicit ChatHandler() : m_session(NULL
) {} // for CLI subclass
78 bool hasStringAbbr(const char* name
, const char* part
);
80 // function with different implementation for chat/console
81 virtual uint32
GetAccountId() const;
82 virtual AccountTypes
GetAccessLevel() const;
83 virtual bool isAvailable(ChatCommand
const& cmd
) const;
84 virtual std::string
GetNameLink() const { return GetNameLink(m_session
->GetPlayer()); }
85 virtual bool needReportToTarget(Player
* chr
) const;
86 virtual LocaleConstant
GetSessionDbcLocale() const;
87 virtual int GetSessionDbLocaleIndex() const;
89 bool HasLowerSecurity(Player
* target
, uint64 guid
, bool strong
= false);
90 bool HasLowerSecurityAccount(WorldSession
* target
, uint32 account
, bool strong
= false);
92 void SendGlobalSysMessage(const char *str
);
94 bool SetDataForCommandInTable(ChatCommand
*table
, const char* text
, uint32 security
, std::string
const& help
, std::string
const& fullcommand
);
95 bool ExecuteCommandInTable(ChatCommand
*table
, const char* text
, const std::string
& fullcommand
);
96 bool ShowHelpForCommand(ChatCommand
*table
, const char* cmd
);
97 bool ShowHelpForSubCommands(ChatCommand
*table
, char const* cmd
, char const* subcmd
);
99 ChatCommand
* getCommandTable();
101 bool HandleAccountCommand(const char* args
);
102 bool HandleAccountCreateCommand(const char* args
);
103 bool HandleAccountDeleteCommand(const char* args
);
104 bool HandleAccountLockCommand(const char* args
);
105 bool HandleAccountOnlineListCommand(const char* args
);
106 bool HandleAccountPasswordCommand(const char* args
);
107 bool HandleAccountSetAddonCommand(const char* args
);
108 bool HandleAccountSetGmLevelCommand(const char* args
);
109 bool HandleAccountSetPasswordCommand(const char* args
);
111 bool HandleBanAccountCommand(const char* args
);
112 bool HandleBanCharacterCommand(const char* args
);
113 bool HandleBanIPCommand(const char* args
);
114 bool HandleBanInfoAccountCommand(const char* args
);
115 bool HandleBanInfoCharacterCommand(const char* args
);
116 bool HandleBanInfoIPCommand(const char* args
);
117 bool HandleBanListAccountCommand(const char* args
);
118 bool HandleBanListCharacterCommand(const char* args
);
119 bool HandleBanListIPCommand(const char* args
);
121 bool HandleCastCommand(const char *args
);
122 bool HandleCastBackCommand(const char *args
);
123 bool HandleCastDistCommand(const char *args
);
124 bool HandleCastSelfCommand(const char *args
);
125 bool HandleCastTargetCommand(const char *args
);
127 bool HandleCharacterCustomizeCommand(const char * args
);
128 bool HandleCharacterDeleteCommand(const char* args
);
129 bool HandleCharacterLevelCommand(const char* args
);
130 bool HandleCharacterRenameCommand(const char * args
);
131 bool HandleCharacterReputationCommand(const char* args
);
132 bool HandleCharacterTitlesCommand(const char* args
);
134 bool HandleDebugAnimCommand(const char* args
);
135 bool HandleDebugArenaCommand(const char * args
);
136 bool HandleDebugBattlegroundCommand(const char * args
);
137 bool HandleDebugGetItemStateCommand(const char * args
);
138 bool HandleDebugGetLootRecipientCommand(const char * args
);
139 bool HandleDebugGetValueCommand(const char* args
);
140 bool HandleDebugGetItemValueCommand(const char* args
);
141 bool HandleDebugMod32ValueCommand(const char* args
);
142 bool HandleDebugSetAuraStateCommand(const char * args
);
143 bool HandleDebugSetItemValueCommand(const char * args
);
144 bool HandleDebugSetValueCommand(const char* args
);
145 bool HandleDebugSpawnVehicle(const char * args
);
146 bool HandleDebugSpellCheckCommand(const char* args
);
147 bool HandleDebugUpdateCommand(const char* args
);
148 bool HandleDebugUpdateWorldStateCommand(const char* args
);
150 bool HandleDebugPlayCinematicCommand(const char* args
);
151 bool HandleDebugPlayMovieCommand(const char* args
);
152 bool HandleDebugPlaySoundCommand(const char* args
);
154 bool HandleDebugSendBuyErrorCommand(const char* args
);
155 bool HandleDebugSendChannelNotifyCommand(const char* args
);
156 bool HandleDebugSendChatMsgCommand(const char* args
);
157 bool HandleDebugSendEquipErrorCommand(const char* args
);
158 bool HandleDebugSendLargePacketCommand(const char * args
);
159 bool HandleDebugSendOpcodeCommand(const char* args
);
160 bool HandleDebugSendPoiCommand(const char* args
);
161 bool HandleDebugSendQuestPartyMsgCommand(const char* args
);
162 bool HandleDebugSendQuestInvalidMsgCommand(const char* args
);
163 bool HandleDebugSendSellErrorCommand(const char* args
);
164 bool HandleDebugSendSetPhaseShiftCommand(const char * args
);
165 bool HandleDebugSendSpellFailCommand(const char* args
);
167 bool HandleEventListCommand(const char* args
);
168 bool HandleEventStartCommand(const char* args
);
169 bool HandleEventStopCommand(const char* args
);
170 bool HandleEventInfoCommand(const char* args
);
172 bool HandleGameObjectAddCommand(const char* args
);
173 bool HandleGameObjectDeleteCommand(const char* args
);
174 bool HandleGameObjectMoveCommand(const char* args
);
175 bool HandleGameObjectNearCommand(const char* args
);
176 bool HandleGameObjectPhaseCommand(const char* args
);
177 bool HandleGameObjectTargetCommand(const char* args
);
178 bool HandleGameObjectTurnCommand(const char* args
);
180 bool HandleGMCommand(const char* args
);
181 bool HandleGMChatCommand(const char* args
);
182 bool HandleGMFlyCommand(const char* args
);
183 bool HandleGMListFullCommand(const char* args
);
184 bool HandleGMListIngameCommand(const char* args
);
185 bool HandleGMVisibleCommand(const char* args
);
187 bool HandleGoCommand(const char* args
);
188 bool HandleGoCreatureCommand(const char* args
);
189 bool HandleGoGraveyardCommand(const char* args
);
190 bool HandleGoGridCommand(const char* args
);
191 bool HandleGoObjectCommand(const char* args
);
192 bool HandleGoTaxinodeCommand(const char* args
);
193 bool HandleGoTriggerCommand(const char* args
);
194 bool HandleGoXYCommand(const char* args
);
195 bool HandleGoXYZCommand(const char* args
);
196 bool HandleGoZoneXYCommand(const char* args
);
198 bool HandleGuildCreateCommand(const char* args
);
199 bool HandleGuildInviteCommand(const char* args
);
200 bool HandleGuildUninviteCommand(const char* args
);
201 bool HandleGuildRankCommand(const char* args
);
202 bool HandleGuildDeleteCommand(const char* args
);
204 bool HandleHonorAddCommand(const char* args
);
205 bool HandleHonorAddKillCommand(const char* args
);
206 bool HandleHonorUpdateCommand(const char* args
);
208 bool HandleInstanceListBindsCommand(const char* args
);
209 bool HandleInstanceUnbindCommand(const char* args
);
210 bool HandleInstanceStatsCommand(const char* args
);
211 bool HandleInstanceSaveDataCommand(const char * args
);
213 bool HandleLearnCommand(const char* args
);
214 bool HandleLearnAllCommand(const char* args
);
215 bool HandleLearnAllGMCommand(const char* args
);
216 bool HandleLearnAllCraftsCommand(const char* args
);
217 bool HandleLearnAllRecipesCommand(const char* args
);
218 bool HandleLearnAllDefaultCommand(const char* args
);
219 bool HandleLearnAllLangCommand(const char* args
);
220 bool HandleLearnAllMyClassCommand(const char* args
);
221 bool HandleLearnAllMyPetTalentsCommand(const char* args
);
222 bool HandleLearnAllMySpellsCommand(const char* args
);
223 bool HandleLearnAllMyTalentsCommand(const char* args
);
225 bool HandleListAurasCommand(const char * args
);
226 bool HandleListCreatureCommand(const char* args
);
227 bool HandleListItemCommand(const char* args
);
228 bool HandleListObjectCommand(const char* args
);
230 bool HandleLookupAreaCommand(const char* args
);
231 bool HandleLookupCreatureCommand(const char* args
);
232 bool HandleLookupEventCommand(const char* args
);
233 bool HandleLookupFactionCommand(const char * args
);
234 bool HandleLookupItemCommand(const char * args
);
235 bool HandleLookupItemSetCommand(const char * args
);
236 bool HandleLookupObjectCommand(const char* args
);
237 bool HandleLookupPlayerIpCommand(const char* args
);
238 bool HandleLookupPlayerAccountCommand(const char* args
);
239 bool HandleLookupPlayerEmailCommand(const char* args
);
240 bool HandleLookupQuestCommand(const char* args
);
241 bool HandleLookupSkillCommand(const char* args
);
242 bool HandleLookupSpellCommand(const char* args
);
243 bool HandleLookupTaxiNodeCommand(const char * args
);
244 bool HandleLookupTeleCommand(const char * args
);
245 bool HandleLookupTitleCommand(const char * args
);
247 bool HandleModifyHPCommand(const char* args
);
248 bool HandleModifyManaCommand(const char* args
);
249 bool HandleModifyRageCommand(const char* args
);
250 bool HandleModifyRunicPowerCommand(const char* args
);
251 bool HandleModifyEnergyCommand(const char* args
);
252 bool HandleModifyMoneyCommand(const char* args
);
253 bool HandleModifyASpeedCommand(const char* args
);
254 bool HandleModifySpeedCommand(const char* args
);
255 bool HandleModifyBWalkCommand(const char* args
);
256 bool HandleModifyFlyCommand(const char* args
);
257 bool HandleModifySwimCommand(const char* args
);
258 bool HandleModifyScaleCommand(const char* args
);
259 bool HandleModifyMountCommand(const char* args
);
260 bool HandleModifyBitCommand(const char* args
);
261 bool HandleModifyFactionCommand(const char* args
);
262 bool HandleModifySpellCommand(const char* args
);
263 bool HandleModifyTalentCommand (const char* args
);
264 bool HandleModifyHonorCommand (const char* args
);
265 bool HandleModifyRepCommand(const char* args
);
266 bool HandleModifyArenaCommand(const char* args
);
267 bool HandleModifyPhaseCommand(const char* args
);
268 bool HandleModifyGenderCommand(const char* args
);
270 //-----------------------Npc Commands-----------------------
271 bool HandleNpcAddCommand(const char* args
);
272 bool HandleNpcAddMoveCommand(const char* args
);
273 bool HandleNpcAddVendorItemCommand(const char* args
);
274 bool HandleNpcAllowMovementCommand(const char* args
);
275 bool HandleNpcChangeEntryCommand(const char *args
);
276 bool HandleNpcChangeLevelCommand(const char* args
);
277 bool HandleNpcDeleteCommand(const char* args
);
278 bool HandleNpcDelVendorItemCommand(const char* args
);
279 bool HandleNpcFactionIdCommand(const char* args
);
280 bool HandleNpcFlagCommand(const char* args
);
281 bool HandleNpcFollowCommand(const char* args
);
282 bool HandleNpcInfoCommand(const char* args
);
283 bool HandleNpcMoveCommand(const char* args
);
284 bool HandleNpcPlayEmoteCommand(const char* args
);
285 bool HandleNpcSayCommand(const char* args
);
286 bool HandleNpcSetDeathStateCommand(const char* args
);
287 bool HandleNpcSetModelCommand(const char* args
);
288 bool HandleNpcSetMoveTypeCommand(const char* args
);
289 bool HandleNpcSetPhaseCommand(const char* args
);
290 bool HandleNpcSpawnDistCommand(const char* args
);
291 bool HandleNpcSpawnTimeCommand(const char* args
);
292 bool HandleNpcTameCommand(const char* args
);
293 bool HandleNpcTextEmoteCommand(const char* args
);
294 bool HandleNpcUnFollowCommand(const char* args
);
295 bool HandleNpcWhisperCommand(const char* args
);
296 bool HandleNpcYellCommand(const char* args
);
298 //TODO: NpcCommands that needs to be fixed :
299 bool HandleNpcAddWeaponCommand(const char* args
);
300 bool HandleNpcNameCommand(const char* args
);
301 bool HandleNpcSubNameCommand(const char* args
);
302 //----------------------------------------------------------
304 bool HandlePDumpLoadCommand(const char *args
);
305 bool HandlePDumpWriteCommand(const char *args
);
307 bool HandleQuestAdd(const char * args
);
308 bool HandleQuestRemove(const char * args
);
309 bool HandleQuestComplete(const char * args
);
311 bool HandleReloadAllCommand(const char* args
);
312 bool HandleReloadAllAchievementCommand(const char* args
);
313 bool HandleReloadAllAreaCommand(const char* args
);
314 bool HandleReloadAllGossipsCommand(const char* args
);
315 bool HandleReloadAllItemCommand(const char* args
);
316 bool HandleReloadAllLootCommand(const char* args
);
317 bool HandleReloadAllNpcCommand(const char* args
);
318 bool HandleReloadAllQuestCommand(const char* args
);
319 bool HandleReloadAllScriptsCommand(const char* args
);
320 bool HandleReloadAllEventAICommand(const char* args
);
321 bool HandleReloadAllSpellCommand(const char* args
);
322 bool HandleReloadAllLocalesCommand(const char* args
);
324 bool HandleReloadConfigCommand(const char* args
);
326 bool HandleReloadAchievementCriteriaRequirementCommand(const char* args
);
327 bool HandleReloadAchievementRewardCommand(const char* args
);
328 bool HandleReloadAreaTriggerTavernCommand(const char* args
);
329 bool HandleReloadAreaTriggerTeleportCommand(const char* args
);
330 bool HandleReloadEventScriptsCommand(const char* args
);
331 bool HandleReloadEventAITextsCommand(const char* args
);
332 bool HandleReloadEventAISummonsCommand(const char* args
);
333 bool HandleReloadEventAIScriptsCommand(const char* args
);
334 bool HandleReloadCommandCommand(const char* args
);
335 bool HandleReloadBattleEventCommand(const char* args
);
336 bool HandleReloadCreatureQuestRelationsCommand(const char* args
);
337 bool HandleReloadCreatureQuestInvRelationsCommand(const char* args
);
338 bool HandleReloadDbScriptStringCommand(const char* args
);
339 bool HandleReloadGameGraveyardZoneCommand(const char* args
);
340 bool HandleReloadGameObjectScriptsCommand(const char* args
);
341 bool HandleReloadGameTeleCommand(const char* args
);
342 bool HandleReloadGossipMenuCommand(const char* args
);
343 bool HandleReloadGossipMenuOptionCommand(const char* args
);
344 bool HandleReloadGossipScriptsCommand(const char* args
);
345 bool HandleReloadGOQuestRelationsCommand(const char* args
);
346 bool HandleReloadGOQuestInvRelationsCommand(const char* args
);
347 bool HandleReloadItemEnchantementsCommand(const char* args
);
348 bool HandleReloadItemRequiredTragetCommand(const char* args
);
349 bool HandleReloadLocalesAchievementRewardCommand(const char* args
);
350 bool HandleReloadLocalesCreatureCommand(const char* args
);
351 bool HandleReloadLocalesGameobjectCommand(const char* args
);
352 bool HandleReloadLocalesGossipMenuOptionCommand(const char* args
);
353 bool HandleReloadLocalesItemCommand(const char* args
);
354 bool HandleReloadLocalesNpcTextCommand(const char* args
);
355 bool HandleReloadLocalesPageTextCommand(const char* args
);
356 bool HandleReloadLocalesPointsOfInterestCommand(const char* args
);
357 bool HandleReloadLocalesQuestCommand(const char* args
);
358 bool HandleReloadLootTemplatesCreatureCommand(const char* args
);
359 bool HandleReloadLootTemplatesDisenchantCommand(const char* args
);
360 bool HandleReloadLootTemplatesFishingCommand(const char* args
);
361 bool HandleReloadLootTemplatesGameobjectCommand(const char* args
);
362 bool HandleReloadLootTemplatesItemCommand(const char* args
);
363 bool HandleReloadLootTemplatesMailCommand(const char* args
);
364 bool HandleReloadLootTemplatesMillingCommand(const char* args
);
365 bool HandleReloadLootTemplatesPickpocketingCommand(const char* args
);
366 bool HandleReloadLootTemplatesProspectingCommand(const char* args
);
367 bool HandleReloadLootTemplatesReferenceCommand(const char* args
);
368 bool HandleReloadLootTemplatesSkinningCommand(const char* args
);
369 bool HandleReloadLootTemplatesSpellCommand(const char* args
);
370 bool HandleReloadMailLevelRewardCommand(const char* args
);
371 bool HandleReloadMangosStringCommand(const char* args
);
372 bool HandleReloadNpcGossipCommand(const char* args
);
373 bool HandleReloadNpcTrainerCommand(const char* args
);
374 bool HandleReloadNpcVendorCommand(const char* args
);
375 bool HandleReloadPageTextsCommand(const char* args
);
376 bool HandleReloadPointsOfInterestCommand(const char* args
);
377 bool HandleReloadSpellClickSpellsCommand(const char* args
);
378 bool HandleReloadQuestAreaTriggersCommand(const char* args
);
379 bool HandleReloadQuestEndScriptsCommand(const char* args
);
380 bool HandleReloadQuestPOICommand(const char* args
);
381 bool HandleReloadQuestStartScriptsCommand(const char* args
);
382 bool HandleReloadQuestTemplateCommand(const char* args
);
383 bool HandleReloadReservedNameCommand(const char*);
384 bool HandleReloadSkillDiscoveryTemplateCommand(const char* args
);
385 bool HandleReloadSkillExtraItemTemplateCommand(const char* args
);
386 bool HandleReloadSkillFishingBaseLevelCommand(const char* args
);
387 bool HandleReloadSpellAreaCommand(const char* args
);
388 bool HandleReloadSpellChainCommand(const char* args
);
389 bool HandleReloadSpellElixirCommand(const char* args
);
390 bool HandleReloadSpellLearnSpellCommand(const char* args
);
391 bool HandleReloadSpellProcEventCommand(const char* args
);
392 bool HandleReloadSpellProcItemEnchantCommand(const char* args
);
393 bool HandleReloadSpellBonusesCommand(const char* args
);
394 bool HandleReloadSpellScriptTargetCommand(const char* args
);
395 bool HandleReloadSpellScriptsCommand(const char* args
);
396 bool HandleReloadSpellTargetPositionCommand(const char* args
);
397 bool HandleReloadSpellThreatsCommand(const char* args
);
398 bool HandleReloadSpellPetAurasCommand(const char* args
);
400 bool HandleResetAchievementsCommand(const char * args
);
401 bool HandleResetAllCommand(const char * args
);
402 bool HandleResetHonorCommand(const char * args
);
403 bool HandleResetLevelCommand(const char * args
);
404 bool HandleResetSpellsCommand(const char * args
);
405 bool HandleResetStatsCommand(const char * args
);
406 bool HandleResetTalentsCommand(const char * args
);
408 bool HandleSendItemsCommand(const char* args
);
409 bool HandleSendMailCommand(const char* args
);
410 bool HandleSendMessageCommand(const char * args
);
411 bool HandleSendMoneyCommand(const char* args
);
413 bool HandleServerCorpsesCommand(const char* args
);
414 bool HandleServerExitCommand(const char* args
);
415 bool HandleServerIdleRestartCommand(const char* args
);
416 bool HandleServerIdleShutDownCommand(const char* args
);
417 bool HandleServerInfoCommand(const char* args
);
418 bool HandleServerMotdCommand(const char* args
);
419 bool HandleServerPLimitCommand(const char* args
);
420 bool HandleServerRestartCommand(const char* args
);
421 bool HandleServerSetLogLevelCommand(const char* args
);
422 bool HandleServerSetMotdCommand(const char* args
);
423 bool HandleServerShutDownCommand(const char* args
);
424 bool HandleServerShutDownCancelCommand(const char* args
);
426 bool HandleTeleCommand(const char * args
);
427 bool HandleTeleAddCommand(const char * args
);
428 bool HandleTeleDelCommand(const char * args
);
429 bool HandleTeleGroupCommand(const char* args
);
430 bool HandleTeleNameCommand(const char* args
);
432 bool HandleTitlesAddCommand(const char* args
);
433 bool HandleTitlesCurrentCommand(const char* args
);
434 bool HandleTitlesRemoveCommand(const char* args
);
435 bool HandleTitlesSetMaskCommand(const char* args
);
437 bool HandleUnBanAccountCommand(const char* args
);
438 bool HandleUnBanCharacterCommand(const char* args
);
439 bool HandleUnBanIPCommand(const char* args
);
441 bool HandleWpAddCommand(const char* args
);
442 bool HandleWpModifyCommand(const char* args
);
443 bool HandleWpShowCommand(const char* args
);
444 bool HandleWpExportCommand(const char* args
);
445 bool HandleWpImportCommand(const char* args
);
447 bool HandleHelpCommand(const char* args
);
448 bool HandleCommandsCommand(const char* args
);
449 bool HandleStartCommand(const char* args
);
450 bool HandleDismountCommand(const char* args
);
451 bool HandleSaveCommand(const char* args
);
453 bool HandleNamegoCommand(const char* args
);
454 bool HandleGonameCommand(const char* args
);
455 bool HandleGroupgoCommand(const char* args
);
456 bool HandleRecallCommand(const char* args
);
457 bool HandleAnnounceCommand(const char* args
);
458 bool HandleNotifyCommand(const char* args
);
459 bool HandleGPSCommand(const char* args
);
460 bool HandleTaxiCheatCommand(const char* args
);
461 bool HandleWhispersCommand(const char* args
);
462 bool HandleModifyDrunkCommand(const char* args
);
464 bool HandleLoadScriptsCommand(const char* args
);
466 bool HandleGUIDCommand(const char* args
);
467 bool HandleItemMoveCommand(const char* args
);
468 bool HandleDeMorphCommand(const char* args
);
469 bool HandlePInfoCommand(const char* args
);
470 bool HandleMuteCommand(const char* args
);
471 bool HandleUnmuteCommand(const char* args
);
472 bool HandleMovegensCommand(const char* args
);
474 bool HandleCooldownCommand(const char* args
);
475 bool HandleUnLearnCommand(const char* args
);
476 bool HandleGetDistanceCommand(const char* args
);
477 bool HandleModifyStandStateCommand(const char* args
);
478 bool HandleDieCommand(const char* args
);
479 bool HandleDamageCommand(const char *args
);
480 bool HandleReviveCommand(const char* args
);
481 bool HandleModifyMorphCommand(const char* args
);
482 bool HandleAuraCommand(const char* args
);
483 bool HandleUnAuraCommand(const char* args
);
484 bool HandleLinkGraveCommand(const char* args
);
485 bool HandleNearGraveCommand(const char* args
);
486 bool HandleExploreCheatCommand(const char* args
);
487 bool HandleHoverCommand(const char* args
);
488 bool HandleLevelUpCommand(const char* args
);
489 bool HandleShowAreaCommand(const char* args
);
490 bool HandleHideAreaCommand(const char* args
);
491 bool HandleAddItemCommand(const char* args
);
492 bool HandleAddItemSetCommand(const char* args
);
494 bool HandleBankCommand(const char* args
);
495 bool HandleChangeWeather(const char* args
);
496 bool HandleKickPlayerCommand(const char * args
);
498 bool HandleTicketCommand(const char* args
);
499 bool HandleDelTicketCommand(const char* args
);
500 bool HandleMaxSkillCommand(const char* args
);
501 bool HandleSetSkillCommand(const char* args
);
502 bool HandleRespawnCommand(const char* args
);
503 bool HandleComeToMeCommand(const char *args
);
504 bool HandleCombatStopCommand(const char *args
);
505 bool HandleFlushArenaPointsCommand(const char *args
);
506 bool HandleRepairitemsCommand(const char* args
);
507 bool HandleWaterwalkCommand(const char* args
);
508 bool HandleQuitCommand(const char* args
);
510 //! Development Commands
511 bool HandleSaveAllCommand(const char* args
);
513 Player
* getSelectedPlayer();
514 Creature
* getSelectedCreature();
515 Unit
* getSelectedUnit();
517 char* extractKeyFromLink(char* text
, char const* linkType
, char** something1
= NULL
);
518 char* extractKeyFromLink(char* text
, char const* const* linkTypes
, int* found_idx
, char** something1
= NULL
);
520 // if args have single value then it return in arg2 and arg1 == NULL
521 void extractOptFirstArg(char* args
, char** arg1
, char** arg2
);
522 char* extractQuotedArg(char* args
);
524 uint32
extractSpellIdFromLink(char* text
);
525 uint64
extractGuidFromLink(char* text
);
526 GameTele
const* extractGameTeleFromLink(char* text
);
527 std::string
extractPlayerNameFromLink(char* text
);
528 // select by arg (name/link) or in-game selection online/offline player
529 bool extractPlayerTarget(char* args
, Player
** player
, uint64
* player_guid
= NULL
, std::string
* player_name
= NULL
);
531 std::string
playerLink(std::string
const& name
) const { return m_session
? "|cffffffff|Hplayer:"+name
+"|h["+name
+"]|h|r" : name
; }
532 std::string
GetNameLink(Player
* chr
) const { return playerLink(chr
->GetName()); }
534 GameObject
* GetObjectGlobalyWithGuidOrNearWithDbGuid(uint32 lowguid
,uint32 entry
);
536 // Utility methods for commands
537 void ShowTicket(uint64 guid
, char const* text
, char const* time
);
538 bool LookupPlayerSearchCommand(QueryResult
* result
, int32 limit
);
539 bool HandleBanListHelper(QueryResult
* result
);
540 bool HandleBanHelper(BanMode mode
,char const* args
);
541 bool HandleBanInfoHelper(uint32 accountid
, char const* accountname
);
542 bool HandleUnBanHelper(BanMode mode
,char const* args
);
543 void HandleCharacterLevel(Player
* player
, uint64 player_guid
, uint32 oldlevel
, uint32 newlevel
);
544 void HandleLearnSkillRecipesHelper(Player
* player
,uint32 skill_id
);
546 void SetSentErrorMessage(bool val
){ sentErrorMessage
= val
;};
548 WorldSession
* m_session
; // != NULL for chat command call and NULL for CLI command
550 // common global flag
551 static bool load_command_table
;
552 bool sentErrorMessage
;
555 class CliHandler
: public ChatHandler
558 typedef void Print(void*, char const*);
559 explicit CliHandler(uint32 accountId
, AccountTypes accessLevel
, void* callbackArg
, Print
* zprint
)
560 : m_accountId(accountId
), m_loginAccessLevel(accessLevel
), m_callbackArg(callbackArg
), m_print(zprint
) {}
562 // overwrite functions
563 const char *GetMangosString(int32 entry
) const;
564 uint32
GetAccountId() const;
565 AccountTypes
GetAccessLevel() const;
566 bool isAvailable(ChatCommand
const& cmd
) const;
567 void SendSysMessage(const char *str
);
568 std::string
GetNameLink() const;
569 bool needReportToTarget(Player
* chr
) const;
570 LocaleConstant
GetSessionDbcLocale() const;
571 int GetSessionDbLocaleIndex() const;
575 AccountTypes m_loginAccessLevel
;
580 char const *fmtstring( char const *format
, ... );