blob: 53ebb62be866e5941e5b78f58ac1e2d7daa61c0e (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
|
#include "StarTeamClientLuaBindings.hpp"
#include "StarTeamClient.hpp"
namespace Star {
LuaCallbacks LuaBindings::makeTeamClientCallbacks(TeamClient* teamClient) {
LuaCallbacks callbacks;
callbacks.registerCallbackWithSignature<void>("isMemberOfTeam", bind(mem_fn(&TeamClient::isMemberOfTeam), teamClient));
callbacks.registerCallbackWithSignature<void, String>("invitePlayer", bind(mem_fn(&TeamClient::invitePlayer), teamClient, _1));
callbacks.registerCallback("isTeamLeader", [teamClient](Maybe<String> const& playerUuid) -> bool {
if (playerUuid)
return teamClient->isTeamLeader(Uuid(*playerUuid));
return teamClient->isTeamLeader();
});
callbacks.registerCallback("currentTeam", [teamClient]() -> Maybe<String> {
auto teamUuid = teamClient->currentTeam();
if (teamUuid)
return teamUuid->hex();
return {};
});
callbacks.registerCallback("makeLeader", [teamClient](String const& playerUuid) {
teamClient->makeLeader(Uuid(playerUuid));
});
callbacks.registerCallback("removeFromTeam", [teamClient](String const& playerUuid) {
teamClient->removeFromTeam(Uuid(playerUuid));
});
return callbacks;
}
}
|