Project SkyFire Core
SkyFire 5.4.8 server core API documentation
Loading...
Searching...
No Matches
cs_bf.cpp
Go to the documentation of this file.
1/*
2* This file is part of Project SkyFire https://www.projectskyfire.org.
3* See LICENSE.md file for Copyright information
4*/
5
6/* ScriptData
7Name: bf_commandscript
8%Complete: 100
9Comment: All bf related commands
10Category: commandscripts
11EndScriptData */
12
13#include "BattlefieldMgr.h"
14#include "Chat.h"
15#include "ScriptMgr.h"
16
18{
19public:
20 bf_commandscript() : CommandScript("bf_commandscript") { }
21
22 std::vector<ChatCommand> GetCommands() const OVERRIDE
23 {
24 static std::vector<ChatCommand> battlefieldcommandTable =
25 {
31 };
32 static std::vector<ChatCommand> commandTable =
33 {
34 { "bf", rbac::RBAC_PERM_COMMAND_BF, false, NULL, "", battlefieldcommandTable },
35 };
36 return commandTable;
37 }
38
39 static bool HandleBattlefieldStart(ChatHandler* handler, const char* args)
40 {
41 uint32 battleid = 0;
42 char* battleid_str = strtok((char*)args, " ");
43 if (!battleid_str)
44 return false;
45
46 battleid = atoi(battleid_str);
47
48 Battlefield* bf = sBattlefieldMgr->GetBattlefieldByBattleId(battleid);
49
50 if (!bf)
51 return false;
52
53 bf->StartBattle();
54
55 if (battleid == 1)
56 handler->SendGlobalGMSysMessage("Wintergrasp (Command start used)");
57
58 return true;
59 }
60
61 static bool HandleBattlefieldEnd(ChatHandler* handler, const char* args)
62 {
63 uint32 battleid = 0;
64 char* battleid_str = strtok((char*)args, " ");
65 if (!battleid_str)
66 return false;
67
68 battleid = atoi(battleid_str);
69
70 Battlefield* bf = sBattlefieldMgr->GetBattlefieldByBattleId(battleid);
71
72 if (!bf)
73 return false;
74
75 bf->EndBattle(true);
76
77 if (battleid == 1)
78 handler->SendGlobalGMSysMessage("Wintergrasp (Command stop used)");
79
80 return true;
81 }
82
83 static bool HandleBattlefieldEnable(ChatHandler* handler, const char* args)
84 {
85 uint32 battleid = 0;
86 char* battleid_str = strtok((char*)args, " ");
87 if (!battleid_str)
88 return false;
89
90 battleid = atoi(battleid_str);
91
92 Battlefield* bf = sBattlefieldMgr->GetBattlefieldByBattleId(battleid);
93
94 if (!bf)
95 return false;
96
97 if (bf->IsEnabled())
98 {
99 bf->ToggleBattlefield(false);
100 if (battleid == 1)
101 handler->SendGlobalGMSysMessage("Wintergrasp is disabled");
102 }
103 else
104 {
105 bf->ToggleBattlefield(true);
106 if (battleid == 1)
107 handler->SendGlobalGMSysMessage("Wintergrasp is enabled");
108 }
109
110 return true;
111 }
112
113 static bool HandleBattlefieldSwitch(ChatHandler* handler, const char* args)
114 {
115 uint32 battleid = 0;
116 char* battleid_str = strtok((char*)args, " ");
117 if (!battleid_str)
118 return false;
119
120 battleid = atoi(battleid_str);
121
122 Battlefield* bf = sBattlefieldMgr->GetBattlefieldByBattleId(battleid);
123
124 if (!bf)
125 return false;
126
127 bf->EndBattle(false);
128 if (battleid == 1)
129 handler->SendGlobalGMSysMessage("Wintergrasp (Command switch used)");
130
131 return true;
132 }
133
134 static bool HandleBattlefieldTimer(ChatHandler* handler, const char* args)
135 {
136 uint32 battleid = 0;
137 uint32 time = 0;
138 char* battleid_str = strtok((char*)args, " ");
139 if (!battleid_str)
140 return false;
141 char* time_str = strtok(NULL, " ");
142 if (!time_str)
143 return false;
144
145 battleid = atoi(battleid_str);
146
147 time = atoi(time_str);
148
149 Battlefield* bf = sBattlefieldMgr->GetBattlefieldByBattleId(battleid);
150
151 if (!bf)
152 return false;
153
154 bf->SetTimer(time * IN_MILLISECONDS);
156 if (battleid == 1)
157 handler->SendGlobalGMSysMessage("Wintergrasp (Command timer used)");
158
159 return true;
160 }
161};
162
164{
165 new bf_commandscript();
166}
#define sBattlefieldMgr
@ IN_MILLISECONDS
Definition Common.h:125
std::uint32_t uint32
Definition Define.h:77
#define OVERRIDE
Definition Define.h:60
void SetTimer(uint32 timer)
virtual void SendInitWorldStatesToAll()=0
Send all worldstate data to all player in zone.
void EndBattle(bool endByTimer)
void StartBattle()
void ToggleBattlefield(bool enable)
Enable or Disable battlefield.
bool IsEnabled() const
Return if battlefield is enable.
void SendGlobalGMSysMessage(const char *str)
Definition Chat.cpp:188
CommandScript(const char *name)
static bool HandleBattlefieldEnable(ChatHandler *handler, const char *args)
Definition cs_bf.cpp:83
static bool HandleBattlefieldStart(ChatHandler *handler, const char *args)
Definition cs_bf.cpp:39
static bool HandleBattlefieldSwitch(ChatHandler *handler, const char *args)
Definition cs_bf.cpp:113
static bool HandleBattlefieldTimer(ChatHandler *handler, const char *args)
Definition cs_bf.cpp:134
static bool HandleBattlefieldEnd(ChatHandler *handler, const char *args)
Definition cs_bf.cpp:61
std::vector< ChatCommand > GetCommands() const OVERRIDE
Definition cs_bf.cpp:22
void AddSC_bf_commandscript()
Definition cs_bf.cpp:163
@ RBAC_PERM_COMMAND_BF_TIMER
Definition RBAC.h:149
@ RBAC_PERM_COMMAND_BF_ENABLE
Definition RBAC.h:150
@ RBAC_PERM_COMMAND_BF_SWITCH
Definition RBAC.h:148
@ RBAC_PERM_COMMAND_BF_START
Definition RBAC.h:146
@ RBAC_PERM_COMMAND_BF
Definition RBAC.h:145
@ RBAC_PERM_COMMAND_BF_STOP
Definition RBAC.h:147