Project SkyFire Core
SkyFire 5.4.8 server core API documentation
Loading...
Searching...
No Matches
GuildMethods.cpp
Go to the documentation of this file.
1/*
2* Copyright (C) 2010 - 2013 Eluna Lua Engine <http://emudevs.com/>
3* This program is free software licensed under GPL version 3
4* Please see the included DOCS/LICENSE.TXT for more information
5*/
6
7#include "GuildMethods.h"
8#include "Includes.h"
9
10namespace LuaGuild
11{
12 int GetMembers(lua_State* L, Guild* guild)
13 {
14 lua_newtable(L);
15 int tbl = lua_gettop(L);
16 uint32 i = 0;
17
18 SessionMap const& sessions = sWorld->GetAllSessions();
19 for (SessionMap::const_iterator it = sessions.begin(); it != sessions.end(); ++it)
20 {
21 if (Player* player = it->second->GetPlayer())
22 {
23 if (player->GetSession() && (player->GetGuildId() == guild->GetId()))
24 {
25 ++i;
26 sEluna->Push(L, i);
27 sEluna->Push(L, player);
28 lua_settable(L, tbl);
29 }
30 }
31 }
32
33 lua_settop(L, tbl); // push table to top of stack
34 return 1;
35 }
36
37 int GetMemberCount(lua_State* L, Guild* guild)
38 {
39 // @TODO
40 //sEluna->Push(L, guild->GetMemberSize());
41 return 1;
42 }
43
44 int GetLeader(lua_State* L, Guild* guild)
45 {
47 return 1;
48 }
49
50 int SetLeader(lua_State* L, Guild* guild)
51 {
52 //Player* player = sEluna->CHECK_PLAYER(L, 1);
53 //if (!player)
54 // return 0;
55
56 //guild->HandleSetLeader(player->GetSession(), player->GetName());
57 return 0;
58 }
59
60 int GetLeaderGUID(lua_State* L, Guild* guild)
61 {
62 sEluna->Push(L, guild->GetLeaderGUID());
63 return 1;
64 }
65
66 // SendPacketToGuild(packet)
67 int SendPacket(lua_State* L, Guild* guild)
68 {
69 WorldPacket* data = sEluna->CHECK_PACKET(L, 1);
70
71 if (data)
72 guild->BroadcastPacket(data);
73 return 0;
74 }
75
76 // SendPacketToRankedInGuild(packet, rankId)
77 int SendPacketToRanked(lua_State* L, Guild* guild)
78 {
79 WorldPacket* data = sEluna->CHECK_PACKET(L, 1);
80 uint8 ranked = luaL_checkunsigned(L, 2);
81
82 if (data)
83 guild->BroadcastPacketToRank(data, ranked);
84 return 0;
85 }
86
87 int Disband(lua_State* L, Guild* guild)
88 {
89 guild->Disband();
90 return 0;
91 }
92
93 int GetId(lua_State* L, Guild* guild)
94 {
95 sEluna->Push(L, guild->GetId());
96 return 1;
97 }
98
99 int GetName(lua_State* L, Guild* guild)
100 {
101 sEluna->Push(L, guild->GetName());
102 return 1;
103 }
104
105 int GetMOTD(lua_State* L, Guild* guild)
106 {
107 sEluna->Push(L, guild->GetMOTD());
108 return 1;
109 }
110
111 int GetInfo(lua_State* L, Guild* guild)
112 {
113 sEluna->Push(L, guild->GetInfo());
114 return 1;
115 }
116
117 int AddMember(lua_State* L, Guild* guild)
118 {
119 Player* player = sEluna->CHECK_PLAYER(L, 1);
120 uint8 rankId = luaL_optint(L, 2, GUILD_RANK_NONE);
121
122 if (player)
123 guild->AddMember(player->GetGUID(), rankId);
124 return 0;
125 }
126
127 int DeleteMember(lua_State* L, Guild* guild)
128 {
129 Player* player = sEluna->CHECK_PLAYER(L, 1);
130 bool isDisbanding = luaL_optbool(L, 2, false);
131
132 if (player)
133 guild->DeleteMember(player->GetGUID(), isDisbanding);
134 return 0;
135 }
136
137 int ChangeMemberRank(lua_State* L, Guild* guild)
138 {
139 Player* player = sEluna->CHECK_PLAYER(L, 1);
140 uint8 newRank = luaL_checkunsigned(L, 2);
141
142 if (player)
143 guild->ChangeMemberRank(player->GetGUID(), newRank);
144 return 0;
145 }
146
147 int SetBankTabText(lua_State* L, Guild* guild)
148 {
149 //uint8 tabId = luaL_checkunsigned(L, 1);
150 //const char* text = luaL_checkstring(L, 2);
151 //guild->SetBankTabText(tabId, text);
152 return 0;
153 }
154
155 /*int GetBankMoney(lua_State* L, Guild* guild)
156 {
157 sEluna->Push(L, guild->GetGuildBankMoney());
158 return 1;
159 }*/
160
161 /*int WithdrawBankMoney(lua_State* L, Guild* guild)
162 {
163 Player* player = sEluna->CHECK_PLAYER(L, 1);
164 uint32 money = luaL_checknumber(L, 2);
165
166 if (!player || (guild->GetGuildBankMoney() - money) < 0)
167 return 0;
168
169 player->SetMoney(player->GetMoney() + money);
170 guild->SetBankMoney(guild->GetGuildBankMoney() - money);
171 return 0;
172 }*/
173
174 /*int DepositBankMoney(lua_State* L, Guild* guild)
175 {
176 Player* player = sEluna->CHECK_PLAYER(L, 1);
177 uint32 money = luaL_checknumber(L, 2);
178
179 if (!player || (player->GetMoney() - money) < 0)
180 return 0;
181
182 player->SetMoney(player->GetMoney() - money);
183 guild->DepositBankMoney(guild->GetGuildBankMoney() + money);
184 return 0;
185 }*/
186};
std::uint8_t uint8
Definition Define.h:79
std::uint32_t uint32
Definition Define.h:77
@ GUILD_RANK_NONE
Definition Guild.h:26
#define sEluna
Definition LuaEngine.h:710
Definition Guild.h:324
bool ChangeMemberRank(uint64 guid, uint8 newRank)
Definition Guild.cpp:2973
void BroadcastPacket(WorldPacket *packet) const
Definition Guild.cpp:2766
uint32 GetId() const
Definition Guild.h:757
uint64 GetLeaderGUID() const
Definition Guild.h:759
std::string const & GetName() const
Definition Guild.h:760
void BroadcastPacketToRank(WorldPacket *packet, uint8 rankId) const
Definition Guild.cpp:2758
std::string const & GetInfo() const
Definition Guild.h:762
bool AddMember(uint64 guid, uint8 rankId=GUILD_RANK_NONE)
Definition Guild.cpp:2828
void Disband()
Definition Guild.cpp:1239
std::string const & GetMOTD() const
Definition Guild.h:761
void DeleteMember(uint64 guid, bool isDisbanding=false, bool isKicked=false, bool canDeleteGuild=false)
Definition Guild.cpp:2908
static Player * FindPlayer(uint64)
uint64 GetGUID() const
Definition Object.h:119
static Player * GetPlayer(WorldObject &object, uint64 guid)
Definition Unit.cpp:4900
#define sWorld
Definition World.h:910
UNORDERED_MAP< uint32, WorldSession * > SessionMap
Definition World.h:543
int GetInfo(lua_State *L, Guild *guild)
int GetId(lua_State *L, Guild *guild)
int GetMembers(lua_State *L, Guild *guild)
int Disband(lua_State *L, Guild *guild)
int SendPacket(lua_State *L, Guild *guild)
int ChangeMemberRank(lua_State *L, Guild *guild)
int GetName(lua_State *L, Guild *guild)
int SendPacketToRanked(lua_State *L, Guild *guild)
int DeleteMember(lua_State *L, Guild *guild)
int GetLeader(lua_State *L, Guild *guild)
int AddMember(lua_State *L, Guild *guild)
int SetBankTabText(lua_State *L, Guild *guild)
int SetLeader(lua_State *L, Guild *guild)
int GetMemberCount(lua_State *L, Guild *guild)
int GetLeaderGUID(lua_State *L, Guild *guild)
int GetMOTD(lua_State *L, Guild *guild)