Project SkyFire Core
SkyFire 5.4.8 server core API documentation
Toggle main menu visibility
Loading...
Searching...
No Matches
cs_deserter.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
12
13
#include "
Chat.h
"
14
#include "
Language.h
"
15
#include "
Player.h
"
16
#include "
ScriptMgr.h
"
17
#include "
SpellAuras.h
"
18
19
enum
Spells
20
{
21
LFG_SPELL_DUNGEON_DESERTER
= 71041,
22
BG_SPELL_DESERTER
= 26013
23
};
24
25
class
deserter_commandscript
:
public
CommandScript
26
{
27
public
:
28
deserter_commandscript
() :
CommandScript
(
"deserter_commandscript"
) { }
29
33
34
std::vector<ChatCommand>
GetCommands
() const
OVERRIDE
35
{
36
static
std::vector<ChatCommand> deserterInstanceCommandTable =
37
{
38
{
"add"
,
rbac::RBAC_PERM_COMMAND_DESERTER_INSTANCE_ADD
,
false
, &
HandleDeserterInstanceAdd
,
""
, },
39
{
"remove"
,
rbac::RBAC_PERM_COMMAND_DESERTER_INSTANCE_REMOVE
,
false
, &
HandleDeserterInstanceRemove
,
""
, },
40
};
41
static
std::vector<ChatCommand> deserterBGCommandTable =
42
{
43
{
"add"
,
rbac::RBAC_PERM_COMMAND_DESERTER_BG_ADD
,
false
, &
HandleDeserterBGAdd
,
""
, },
44
{
"remove"
,
rbac::RBAC_PERM_COMMAND_DESERTER_BG_REMOVE
,
false
, &
HandleDeserterBGRemove
,
""
, },
45
};
46
47
static
std::vector<ChatCommand> deserterCommandTable =
48
{
49
{
"instance"
,
rbac::RBAC_PERM_COMMAND_DESERTER_INSTANCE
,
false
, NULL,
""
, deserterInstanceCommandTable },
50
{
"bg"
,
rbac::RBAC_PERM_COMMAND_DESERTER_BG
,
false
, NULL,
""
, deserterBGCommandTable },
51
};
52
static
std::vector<ChatCommand> commandTable =
53
{
54
{
"deserter"
,
rbac::RBAC_PERM_COMMAND_DESERTER
,
false
, NULL,
""
, deserterCommandTable },
55
};
56
return
commandTable;
57
}
58
79
static
bool
HandleDeserterAdd
(
ChatHandler
* handler,
char
const
* args,
bool
isInstance)
80
{
81
if
(!*args)
82
return
false
;
83
84
Player
* player = handler->
getSelectedPlayer
();
85
if
(!player)
86
{
87
handler->
SendSysMessage
(
LANG_NO_CHAR_SELECTED
);
88
handler->
SetSentErrorMessage
(
true
);
89
return
false
;
90
}
91
char
* timeStr = strtok((
char
*)args,
" "
);
92
if
(!timeStr)
93
{
94
handler->
SendSysMessage
(
LANG_BAD_VALUE
);
95
handler->
SetSentErrorMessage
(
true
);
96
return
false
;
97
}
98
uint32
time = atoi(timeStr);
99
100
if
(!time)
101
{
102
handler->
SendSysMessage
(
LANG_BAD_VALUE
);
103
handler->
SetSentErrorMessage
(
true
);
104
return
false
;
105
}
106
107
Aura
* aura = player->
AddAura
(isInstance ?
LFG_SPELL_DUNGEON_DESERTER
:
BG_SPELL_DESERTER
, player);
108
109
if
(!aura)
110
{
111
handler->
SendSysMessage
(
LANG_BAD_VALUE
);
112
handler->
SetSentErrorMessage
(
true
);
113
return
false
;
114
}
115
aura->
SetDuration
(time *
IN_MILLISECONDS
);
116
117
return
true
;
118
}
119
140
static
bool
HandleDeserterRemove
(
ChatHandler
* handler,
char
const
*
/*args*/
,
bool
isInstance)
141
{
142
Player
* player = handler->
getSelectedPlayer
();
143
if
(!player)
144
{
145
handler->
SendSysMessage
(
LANG_NO_CHAR_SELECTED
);
146
handler->
SetSentErrorMessage
(
true
);
147
return
false
;
148
}
149
150
player->
RemoveAura
(isInstance ?
LFG_SPELL_DUNGEON_DESERTER
:
BG_SPELL_DESERTER
);
151
152
return
true
;
153
}
154
156
static
bool
HandleDeserterInstanceAdd
(
ChatHandler
* handler,
char
const
* args)
157
{
158
return
HandleDeserterAdd
(handler, args,
true
);
159
}
160
162
static
bool
HandleDeserterBGAdd
(
ChatHandler
* handler,
char
const
* args)
163
{
164
return
HandleDeserterAdd
(handler, args,
false
);
165
}
166
168
static
bool
HandleDeserterInstanceRemove
(
ChatHandler
* handler,
char
const
* args)
169
{
170
return
HandleDeserterRemove
(handler, args,
true
);
171
}
172
174
static
bool
HandleDeserterBGRemove
(
ChatHandler
* handler,
char
const
* args)
175
{
176
return
HandleDeserterRemove
(handler, args,
false
);
177
}
178
};
179
180
void
AddSC_deserter_commandscript
()
181
{
182
new
deserter_commandscript
();
183
}
Spells
Spells
Definition
BattlegroundIC.h:645
Chat.h
IN_MILLISECONDS
@ IN_MILLISECONDS
Definition
Common.h:125
uint32
std::uint32_t uint32
Definition
Define.h:77
OVERRIDE
#define OVERRIDE
Definition
Define.h:60
Language.h
LANG_NO_CHAR_SELECTED
@ LANG_NO_CHAR_SELECTED
Definition
Language.h:118
LANG_BAD_VALUE
@ LANG_BAD_VALUE
Definition
Language.h:117
Player.h
ScriptMgr.h
SpellAuras.h
Aura
Definition
SpellAuras.h:74
Aura::SetDuration
void SetDuration(int32 duration, bool withMods=false)
Definition
SpellAuraLifecycle.cpp:366
ChatHandler
Definition
Chat.h:41
ChatHandler::getSelectedPlayer
Player * getSelectedPlayer()
Definition
Chat.cpp:829
ChatHandler::SetSentErrorMessage
void SetSentErrorMessage(bool val)
Definition
Chat.h:114
ChatHandler::SendSysMessage
virtual void SendSysMessage(const char *str)
Definition
Chat.cpp:153
CommandScript::CommandScript
CommandScript(const char *name)
Definition
ScriptMgr.cpp:1466
Player
Definition
Player.h:1289
Unit::RemoveAura
void RemoveAura(AuraApplicationMap::iterator &i, AuraRemoveMode mode=AURA_REMOVE_BY_DEFAULT)
Definition
UnitAuraState.cpp:459
Unit::AddAura
Aura * AddAura(uint32 spellId, Unit *target)
Definition
UnitAuraState.cpp:1786
deserter_commandscript
Definition
cs_deserter.cpp:26
deserter_commandscript::GetCommands
std::vector< ChatCommand > GetCommands() const OVERRIDE
Returns the command structure for the system.
Definition
cs_deserter.cpp:34
deserter_commandscript::HandleDeserterBGAdd
static bool HandleDeserterBGAdd(ChatHandler *handler, char const *args)
Definition
cs_deserter.cpp:162
deserter_commandscript::HandleDeserterInstanceRemove
static bool HandleDeserterInstanceRemove(ChatHandler *handler, char const *args)
Definition
cs_deserter.cpp:168
deserter_commandscript::HandleDeserterRemove
static bool HandleDeserterRemove(ChatHandler *handler, char const *, bool isInstance)
Removes the Deserter Debuff from a player.
Definition
cs_deserter.cpp:140
deserter_commandscript::HandleDeserterBGRemove
static bool HandleDeserterBGRemove(ChatHandler *handler, char const *args)
Definition
cs_deserter.cpp:174
deserter_commandscript::deserter_commandscript
deserter_commandscript()
Definition
cs_deserter.cpp:28
deserter_commandscript::HandleDeserterInstanceAdd
static bool HandleDeserterInstanceAdd(ChatHandler *handler, char const *args)
Definition
cs_deserter.cpp:156
deserter_commandscript::HandleDeserterAdd
static bool HandleDeserterAdd(ChatHandler *handler, char const *args, bool isInstance)
Applies the Deserter Debuff to a player.
Definition
cs_deserter.cpp:79
AddSC_deserter_commandscript
void AddSC_deserter_commandscript()
Definition
cs_deserter.cpp:180
LFG_SPELL_DUNGEON_DESERTER
@ LFG_SPELL_DUNGEON_DESERTER
Definition
cs_deserter.cpp:21
BG_SPELL_DESERTER
@ BG_SPELL_DESERTER
Definition
cs_deserter.cpp:22
rbac::RBAC_PERM_COMMAND_DESERTER_BG_REMOVE
@ RBAC_PERM_COMMAND_DESERTER_BG_REMOVE
Definition
RBAC.h:232
rbac::RBAC_PERM_COMMAND_DESERTER_INSTANCE_REMOVE
@ RBAC_PERM_COMMAND_DESERTER_INSTANCE_REMOVE
Definition
RBAC.h:235
rbac::RBAC_PERM_COMMAND_DESERTER_INSTANCE_ADD
@ RBAC_PERM_COMMAND_DESERTER_INSTANCE_ADD
Definition
RBAC.h:234
rbac::RBAC_PERM_COMMAND_DESERTER
@ RBAC_PERM_COMMAND_DESERTER
Definition
RBAC.h:229
rbac::RBAC_PERM_COMMAND_DESERTER_BG
@ RBAC_PERM_COMMAND_DESERTER_BG
Definition
RBAC.h:230
rbac::RBAC_PERM_COMMAND_DESERTER_BG_ADD
@ RBAC_PERM_COMMAND_DESERTER_BG_ADD
Definition
RBAC.h:231
rbac::RBAC_PERM_COMMAND_DESERTER_INSTANCE
@ RBAC_PERM_COMMAND_DESERTER_INSTANCE
Definition
RBAC.h:233
src
server
scripts
Commands
cs_deserter.cpp
Generated on
for Project SkyFire Core by
1.17.0