AzerothCore 3.3.5a
OpenSource WoW Emulator
Loading...
Searching...
No Matches
guild_commandscript Class Reference
Inheritance diagram for guild_commandscript:
CommandScript ScriptObject

Public Member Functions

 guild_commandscript ()
 
ChatCommandTable GetCommands () const override
 
- Public Member Functions inherited from ScriptObject
virtual bool IsDatabaseBound () const
 
virtual bool isAfterLoadScript () const
 
virtual void checkValidity ()
 
const std::string & GetName () const
 
uint16 GetTotalAvailableHooks ()
 

Static Public Member Functions

static bool HandleGuildCreateCommand (ChatHandler *handler, Optional< PlayerIdentifier > target, QuotedString guildName)
 
static bool HandleGuildDeleteCommand (ChatHandler *, QuotedString guildName)
 
static bool HandleGuildInviteCommand (ChatHandler *handler, Optional< PlayerIdentifier > target, QuotedString guildName)
 
static bool HandleGuildUninviteCommand (ChatHandler *handler, Optional< PlayerIdentifier > target)
 
static bool HandleGuildRankCommand (ChatHandler *handler, Optional< PlayerIdentifier > player, uint8 rank)
 
static bool HandleGuildRenameCommand (ChatHandler *handler, QuotedString oldGuildStr, QuotedString newGuildStr)
 
static bool HandleGuildInfoCommand (ChatHandler *handler, Optional< Variant< ObjectGuid::LowType, QuotedString > > const &guildIdentifier)
 

Additional Inherited Members

- Protected Member Functions inherited from CommandScript
 CommandScript (const char *name)
 
- Protected Member Functions inherited from ScriptObject
 ScriptObject (const char *name, uint16 totalAvailableHooks=0)
 
virtual ~ScriptObject ()=default
 

Detailed Description

Constructor & Destructor Documentation

◆ guild_commandscript()

guild_commandscript::guild_commandscript ( )
inline
28: CommandScript("guild_commandscript") { }
Definition CommandScript.h:25

Member Function Documentation

◆ GetCommands()

ChatCommandTable guild_commandscript::GetCommands ( ) const
inlineoverridevirtual

Implements CommandScript.

31 {
32 static ChatCommandTable guildCommandTable =
33 {
34 { "create", HandleGuildCreateCommand, SEC_GAMEMASTER, Console::Yes },
35 { "delete", HandleGuildDeleteCommand, SEC_GAMEMASTER, Console::Yes },
36 { "invite", HandleGuildInviteCommand, SEC_GAMEMASTER, Console::Yes },
37 { "uninvite", HandleGuildUninviteCommand, SEC_GAMEMASTER, Console::Yes },
38 { "rank", HandleGuildRankCommand, SEC_GAMEMASTER, Console::Yes },
39 { "rename", HandleGuildRenameCommand, SEC_GAMEMASTER, Console::Yes },
40 { "info", HandleGuildInfoCommand, SEC_GAMEMASTER, Console::Yes }
41 };
42 static ChatCommandTable commandTable =
43 {
44 { "guild", guildCommandTable }
45 };
46 return commandTable;
47 }
@ SEC_GAMEMASTER
Definition Common.h:59
static bool HandleGuildCreateCommand(ChatHandler *handler, Optional< PlayerIdentifier > target, QuotedString guildName)
Definition cs_guild.cpp:49
static bool HandleGuildDeleteCommand(ChatHandler *, QuotedString guildName)
Definition cs_guild.cpp:100
static bool HandleGuildInviteCommand(ChatHandler *handler, Optional< PlayerIdentifier > target, QuotedString guildName)
Definition cs_guild.cpp:117
static bool HandleGuildUninviteCommand(ChatHandler *handler, Optional< PlayerIdentifier > target)
Definition cs_guild.cpp:142
static bool HandleGuildRenameCommand(ChatHandler *handler, QuotedString oldGuildStr, QuotedString newGuildStr)
Definition cs_guild.cpp:187
static bool HandleGuildInfoCommand(ChatHandler *handler, Optional< Variant< ObjectGuid::LowType, QuotedString > > const &guildIdentifier)
Definition cs_guild.cpp:217
static bool HandleGuildRankCommand(ChatHandler *handler, Optional< PlayerIdentifier > player, uint8 rank)
Definition cs_guild.cpp:168
std::vector< ChatCommandBuilder > ChatCommandTable
Definition ChatCommand.h:46

References HandleGuildCreateCommand(), HandleGuildDeleteCommand(), HandleGuildInfoCommand(), HandleGuildInviteCommand(), HandleGuildRankCommand(), HandleGuildRenameCommand(), HandleGuildUninviteCommand(), and SEC_GAMEMASTER.

◆ HandleGuildCreateCommand()

static bool guild_commandscript::HandleGuildCreateCommand ( ChatHandler handler,
Optional< PlayerIdentifier target,
QuotedString  guildName 
)
inlinestatic
50 {
51 if (!target)
52 {
53 target = PlayerIdentifier::FromTargetOrSelf(handler);
54 }
55
56 if (!target || !target->IsConnected())
57 {
59 return false;
60 }
61
62 if (guildName.empty())
63 {
64 return false;
65 }
66
67 Player* playerTarget = target->GetConnectedPlayer();
68
69 if (playerTarget->GetGuildId())
70 {
72 return false;
73 }
74
75 if (sGuildMgr->GetGuildByName(guildName))
76 {
78 return false;
79 }
80
81 if (!sObjectMgr->IsValidCharterName(guildName))
82 {
84 return false;
85 }
86
87 Guild* guild = new Guild;
88 if (!guild->Create(playerTarget, guildName))
89 {
90 delete guild;
92 return false;
93 }
94
95 sGuildMgr->AddGuild(guild);
96
97 return true;
98 }
#define sGuildMgr
Definition GuildMgr.h:51
@ LANG_GUILD_NOT_CREATED
Definition Language.h:542
@ LANG_PLAYER_IN_GUILD
Definition Language.h:541
@ LANG_PLAYER_NOT_FOUND
Definition Language.h:540
@ LANG_GUILD_RENAME_ALREADY_EXISTS
Definition Language.h:127
@ LANG_BAD_VALUE
Definition Language.h:148
#define sObjectMgr
Definition ObjectMgr.h:1650
void SendErrorMessage(uint32 entry)
Definition Chat.cpp:216
Definition Guild.h:292
bool Create(Player *pLeader, std::string_view name)
Definition Guild.cpp:1049
Definition Player.h:1082
uint32 GetGuildId() const
Definition Player.h:1909
static Optional< PlayerIdentifier > FromTargetOrSelf(ChatHandler *handler)
Definition ChatCommandTags.h:184

References Guild::Create(), Acore::ChatCommands::PlayerIdentifier::FromTargetOrSelf(), Player::GetGuildId(), LANG_BAD_VALUE, LANG_GUILD_NOT_CREATED, LANG_GUILD_RENAME_ALREADY_EXISTS, LANG_PLAYER_IN_GUILD, LANG_PLAYER_NOT_FOUND, ChatHandler::SendErrorMessage(), sGuildMgr, and sObjectMgr.

Referenced by GetCommands().

◆ HandleGuildDeleteCommand()

static bool guild_commandscript::HandleGuildDeleteCommand ( ChatHandler ,
QuotedString  guildName 
)
inlinestatic
101 {
102 if (guildName.empty())
103 {
104 return false;
105 }
106
107 Guild* targetGuild = sGuildMgr->GetGuildByName(guildName);
108 if (!targetGuild)
109 return false;
110
111 targetGuild->Disband();
112 delete targetGuild;
113
114 return true;
115 }
void Disband()
Definition Guild.cpp:1108

References Guild::Disband(), and sGuildMgr.

Referenced by GetCommands().

◆ HandleGuildInfoCommand()

static bool guild_commandscript::HandleGuildInfoCommand ( ChatHandler handler,
Optional< Variant< ObjectGuid::LowType, QuotedString > > const &  guildIdentifier 
)
inlinestatic
218 {
219 Guild* guild = nullptr;
220
221 if (guildIdentifier)
222 {
223 if (ObjectGuid::LowType const* guid = std::get_if<ObjectGuid::LowType>(&*guildIdentifier))
224 guild = sGuildMgr->GetGuildById(*guid);
225 else
226 guild = sGuildMgr->GetGuildByName(guildIdentifier->get<QuotedString>());
227 }
228 else if (Optional<PlayerIdentifier> target = PlayerIdentifier::FromTargetOrSelf(handler); target && target->IsConnected())
229 guild = target->GetConnectedPlayer()->GetGuild();
230
231 if (!guild)
232 return false;
233
234 // Display Guild Information
235 handler->PSendSysMessage(LANG_GUILD_INFO_NAME, guild->GetName(), guild->GetId()); // Guild Id + Name
236
237 std::string guildMasterName;
238 if (sCharacterCache->GetCharacterNameByGuid(guild->GetLeaderGUID(), guildMasterName))
239 handler->PSendSysMessage(LANG_GUILD_INFO_GUILD_MASTER, guildMasterName, guild->GetLeaderGUID().ToString()); // Guild Master
240
241 // Format creation date
242 char createdDateStr[20];
243 time_t createdDate = guild->GetCreatedDate();
244 tm localTm;
245 strftime(createdDateStr, 20, "%Y-%m-%d %H:%M:%S", localtime_r(&createdDate, &localTm));
246
247 handler->PSendSysMessage(LANG_GUILD_INFO_CREATION_DATE, createdDateStr); // Creation Date
248 handler->PSendSysMessage(LANG_GUILD_INFO_MEMBER_COUNT, guild->GetMemberCount()); // Number of Members
249 handler->PSendSysMessage(LANG_GUILD_INFO_BANK_GOLD, guild->GetTotalBankMoney() / 100 / 100); // Bank Gold (in gold coins)
250 handler->PSendSysMessage(LANG_GUILD_INFO_MOTD, guild->GetMOTD()); // Message of the Day
251 handler->PSendSysMessage(LANG_GUILD_INFO_EXTRA_INFO, guild->GetInfo()); // Extra Information
252 return true;
253 }
#define sCharacterCache
Definition CharacterCache.h:83
@ LANG_GUILD_INFO_GUILD_MASTER
Definition Language.h:968
@ LANG_GUILD_INFO_BANK_GOLD
Definition Language.h:971
@ LANG_GUILD_INFO_EXTRA_INFO
Definition Language.h:973
@ LANG_GUILD_INFO_MEMBER_COUNT
Definition Language.h:970
@ LANG_GUILD_INFO_MOTD
Definition Language.h:972
@ LANG_GUILD_INFO_NAME
Definition Language.h:967
@ LANG_GUILD_INFO_CREATION_DATE
Definition Language.h:969
std::optional< T > Optional
Optional helper class to wrap optional values within.
Definition Optional.h:24
struct tm * localtime_r(time_t const *time, struct tm *result)
Definition Timer.cpp:226
void PSendSysMessage(std::string_view str, bool escapeCharacters=false)
Definition Chat.cpp:211
ObjectGuid GetLeaderGUID() const
Definition Guild.h:687
uint32 GetMemberCount() const
Definition Guild.h:771
uint32 GetId() const
Definition Guild.h:686
std::string const & GetName() const
Definition Guild.h:688
time_t GetCreatedDate() const
Definition Guild.h:772
std::string const & GetInfo() const
Definition Guild.h:690
std::string const & GetMOTD() const
Definition Guild.h:689
uint64 GetTotalBankMoney() const
Definition Guild.h:770
std::string ToString() const
Definition ObjectGuid.cpp:47
uint32 LowType
Definition ObjectGuid.h:122
Definition ChatCommandTags.h:140

References Acore::ChatCommands::PlayerIdentifier::FromTargetOrSelf(), Guild::GetCreatedDate(), Guild::GetId(), Guild::GetInfo(), Guild::GetLeaderGUID(), Guild::GetMemberCount(), Guild::GetMOTD(), Guild::GetName(), Guild::GetTotalBankMoney(), LANG_GUILD_INFO_BANK_GOLD, LANG_GUILD_INFO_CREATION_DATE, LANG_GUILD_INFO_EXTRA_INFO, LANG_GUILD_INFO_GUILD_MASTER, LANG_GUILD_INFO_MEMBER_COUNT, LANG_GUILD_INFO_MOTD, LANG_GUILD_INFO_NAME, localtime_r(), ChatHandler::PSendSysMessage(), sCharacterCache, sGuildMgr, and ObjectGuid::ToString().

Referenced by GetCommands().

◆ HandleGuildInviteCommand()

static bool guild_commandscript::HandleGuildInviteCommand ( ChatHandler handler,
Optional< PlayerIdentifier target,
QuotedString  guildName 
)
inlinestatic
118 {
119 if (!target)
120 {
121 target = PlayerIdentifier::FromTargetOrSelf(handler);
122 }
123
124 if (!target)
125 {
126 return false;
127 }
128
129 if (guildName.empty())
130 {
131 return false;
132 }
133
134 Guild* targetGuild = sGuildMgr->GetGuildByName(guildName);
135 if (!targetGuild)
136 return false;
137
138 // player's guild membership checked in AddMember before add
139 return targetGuild->AddMember(target->GetGUID());
140 }
bool AddMember(ObjectGuid guid, uint8 rankId=GUILD_RANK_NONE)
Definition Guild.cpp:2178

References Guild::AddMember(), Acore::ChatCommands::PlayerIdentifier::FromTargetOrSelf(), and sGuildMgr.

Referenced by GetCommands().

◆ HandleGuildRankCommand()

static bool guild_commandscript::HandleGuildRankCommand ( ChatHandler handler,
Optional< PlayerIdentifier player,
uint8  rank 
)
inlinestatic
169 {
170 if (!player)
171 player = PlayerIdentifier::FromTargetOrSelf(handler);
172
173 if (!player)
174 return false;
175
176 uint32 guildId = player->IsConnected() ? player->GetConnectedPlayer()->GetGuildId() : sCharacterCache->GetCharacterGuildIdByGuid(player->GetGUID());
177 if (!guildId)
178 return false;
179
180 Guild* targetGuild = sGuildMgr->GetGuildById(guildId);
181 if (!targetGuild)
182 return false;
183
184 return targetGuild->ChangeMemberRank(player->GetGUID(), rank);
185 }
std::uint32_t uint32
Definition Define.h:107
bool ChangeMemberRank(ObjectGuid guid, uint8 newRank)
Definition Guild.cpp:2323

References Guild::ChangeMemberRank(), Acore::ChatCommands::PlayerIdentifier::FromTargetOrSelf(), sCharacterCache, and sGuildMgr.

Referenced by GetCommands().

◆ HandleGuildRenameCommand()

static bool guild_commandscript::HandleGuildRenameCommand ( ChatHandler handler,
QuotedString  oldGuildStr,
QuotedString  newGuildStr 
)
inlinestatic
188 {
189 if (oldGuildStr.empty() || newGuildStr.empty())
190 {
191 return false;
192 }
193
194 Guild* guild = sGuildMgr->GetGuildByName(oldGuildStr);
195 if (!guild)
196 {
197 handler->SendErrorMessage(LANG_COMMAND_COULDNOTFIND, oldGuildStr);
198 return false;
199 }
200
201 if (sGuildMgr->GetGuildByName(newGuildStr))
202 {
204 return false;
205 }
206
207 if (!guild->SetName(newGuildStr))
208 {
210 return false;
211 }
212
213 handler->PSendSysMessage(LANG_GUILD_RENAME_DONE, oldGuildStr, newGuildStr);
214 return true;
215 }
@ LANG_GUILD_RENAME_DONE
Definition Language.h:128
@ LANG_COMMAND_COULDNOTFIND
Definition Language.h:467
bool SetName(std::string_view const &name)
Definition Guild.cpp:1188

References LANG_BAD_VALUE, LANG_COMMAND_COULDNOTFIND, LANG_GUILD_RENAME_ALREADY_EXISTS, LANG_GUILD_RENAME_DONE, ChatHandler::PSendSysMessage(), ChatHandler::SendErrorMessage(), Guild::SetName(), and sGuildMgr.

Referenced by GetCommands().

◆ HandleGuildUninviteCommand()

static bool guild_commandscript::HandleGuildUninviteCommand ( ChatHandler handler,
Optional< PlayerIdentifier target 
)
inlinestatic
143 {
144 if (!target)
145 {
146 target = PlayerIdentifier::FromTargetOrSelf(handler);
147 }
148
149 if (!target)
150 {
151 return false;
152 }
153
154 Player* playerTarget = target->GetConnectedPlayer();
155
156 uint32 guildId = playerTarget ? playerTarget->GetGuildId() : sCharacterCache->GetCharacterGuildIdByGuid(target->GetGUID());
157 if (!guildId)
158 return false;
159
160 Guild* targetGuild = sGuildMgr->GetGuildById(guildId);
161 if (!targetGuild)
162 return false;
163
164 targetGuild->DeleteMember(target->GetGUID(), false, true, true);
165 return true;
166 }
void DeleteMember(ObjectGuid guid, bool isDisbanding=false, bool isKicked=false, bool canDeleteGuild=false)
Definition Guild.cpp:2262

References Guild::DeleteMember(), Acore::ChatCommands::PlayerIdentifier::FromTargetOrSelf(), Player::GetGuildId(), sCharacterCache, and sGuildMgr.

Referenced by GetCommands().


The documentation for this class was generated from the following file: