diff options
| author | silinoron <none@none> | 2010-08-14 12:17:05 -0700 |
|---|---|---|
| committer | silinoron <none@none> | 2010-08-14 12:17:05 -0700 |
| commit | 8d0a0584118ec7b6f763a8ebc059a8dfc1d5536e (patch) | |
| tree | e250ed865bd30a7d393af1551c9f2039df406b41 /src/server/game/Scripting | |
| parent | d1d7c64c4363061a1f9504ac6d22351c78718c11 (diff) | |
Add a GuildScript class with a handful of hooks.
--HG--
branch : trunk
Diffstat (limited to 'src/server/game/Scripting')
| -rw-r--r-- | src/server/game/Scripting/ScriptMgr.cpp | 25 | ||||
| -rw-r--r-- | src/server/game/Scripting/ScriptMgr.h | 23 |
2 files changed, 48 insertions, 0 deletions
diff --git a/src/server/game/Scripting/ScriptMgr.cpp b/src/server/game/Scripting/ScriptMgr.cpp index 52781455c96..dca0adeb8a5 100644 --- a/src/server/game/Scripting/ScriptMgr.cpp +++ b/src/server/game/Scripting/ScriptMgr.cpp @@ -1127,6 +1127,31 @@ void ScriptMgr::OnPlayerTextEmote(Player* player, uint32 text_emote, uint32 emot FOREACH_SCRIPT(PlayerScript)->OnTextEmote(player, text_emote, emoteNum, guid); } +void ScriptMgr::OnGuildAddMember(Guild *guild, Player *player, uint32& plRank) +{ + FOREACH_SCRIPT(GuildScript)->OnAddMember(guild, player, plRank); +} + +void ScriptMgr::OnGuildRemoveMember(Guild *guild, Player *player, bool isDisbanding, bool isKicked) +{ + FOREACH_SCRIPT(GuildScript)->OnRemoveMember(guild, player, isDisbanding, isKicked); +} + +void ScriptMgr::OnGuildMOTDChanged(Guild *guild, std::string newMotd) +{ + FOREACH_SCRIPT(GuildScript)->OnMOTDChanged(guild, newMotd); +} + +void ScriptMgr::OnGuildInfoChanged(Guild *guild, std::string newGInfo) +{ + FOREACH_SCRIPT(GuildScript)->OnGInfoChanged(guild, newGInfo); +} + +void ScriptMgr::OnGuildDisband(Guild *guild) +{ + FOREACH_SCRIPT(GuildScript)->OnDisband(guild); +} + SpellHandlerScript::SpellHandlerScript(const char* name) : ScriptObject(name) { diff --git a/src/server/game/Scripting/ScriptMgr.h b/src/server/game/Scripting/ScriptMgr.h index 421892bcb59..b580e333957 100644 --- a/src/server/game/Scripting/ScriptMgr.h +++ b/src/server/game/Scripting/ScriptMgr.h @@ -702,6 +702,21 @@ public: virtual void OnTextEmote(Player* player, uint32 text_emote, uint32 emoteNum, uint64 guid) { } }; +class GuildScript : public ScriptObject +{ +protected: + GuildScript(const char* name); + +public: + bool IsDatabaseBound() const { return false; } + + virtual void OnAddMember(Guild *guild, Player *player, uint32& plRank) { } + virtual void OnRemoveMember(Guild *guild, Player *player, bool isDisbanding, bool isKicked) { } + virtual void OnMOTDChanged(Guild *guild, std::string newMotd) { } + virtual void OnGInfoChanged(Guild *guild, std::string newGInfo) { } + virtual void OnDisband(Guild *guild) { } +}; + // Placed here due to ScriptRegistry::AddScript dependency. #define sScriptMgr (*ACE_Singleton<ScriptMgr, ACE_Null_Mutex>::instance()) @@ -875,6 +890,7 @@ class ScriptMgr bool OnCriteriaCheck(AchievementCriteriaData const* data, Player* source, Unit* target); public: /* PlayerScript */ + void OnPVPKill(Player *killer, Player *killed); void OnCreatureKill(Player *killer, Creature *killed); void OnPlayerKilledByCreature(Creature *killer, Player *killed); @@ -888,6 +904,13 @@ class ScriptMgr void OnPlayerEmote(Player* player, uint32 emote); void OnPlayerTextEmote(Player* player, uint32 text_emote, uint32 emoteNum, uint64 guid); + public: /* GuildScript */ + void OnGuildAddMember(Guild *guild, Player *player, uint32& plRank); + void OnGuildRemoveMember(Guild *guild, Player *player, bool isDisbanding, bool isKicked); + void OnGuildMOTDChanged(Guild *guild, std::string newMotd); + void OnGuildInfoChanged(Guild *guild, std::string newGInfo); + void OnGuildDisband(Guild *guild); + public: /* ScriptRegistry */ // This is the global static registry of scripts. |
