Add /blockdj and /unblockdj

- More commands that never got added to the table.
- Also fixes /blockdj incorrectly blocking a client from changing areas.
- Checks if a client is DJ blocked when using /play
This commit is contained in:
MangosArentLiterature 2021-04-16 13:22:42 -05:00
parent 37e91708f7
commit 96407ad4bd
3 changed files with 12 additions and 4 deletions

View File

@ -1858,6 +1858,10 @@ class AOClient : public QObject {
{"block_wtce", {ACLFlags.value("MUTE"), 1, &AOClient::cmdBlockWtce}},
{"unblockwtce", {ACLFlags.value("MUTE"), 1, &AOClient::cmdUnBlockWtce}},
{"unblock_wtce", {ACLFlags.value("MUTE"), 1, &AOClient::cmdUnBlockWtce}},
{"blockdj", {ACLFlags.value("MUTE"), 1, &AOClient::cmdBlockDj}},
{"block_dj", {ACLFlags.value("MUTE"), 1, &AOClient::cmdBlockDj}},
{"unblockdj", {ACLFlags.value("MUTE"), 1, &AOClient::cmdUnBlockDj}},
{"unblock_dj", {ACLFlags.value("MUTE"), 1, &AOClient::cmdUnBlockDj}},
};
/**

View File

@ -22,6 +22,10 @@
void AOClient::cmdPlay(int argc, QStringList argv)
{
if (is_dj_blocked) {
sendServerMessage("You are blocked from changing the music.");
return;
}
AreaData* area = server->areas[current_area];
QString song = argv.join(" ");
area->current_music = song;

View File

@ -210,10 +210,6 @@ void AOClient::pktPing(AreaData* area, int argc, QStringList argv, AOPacket pack
void AOClient::pktChangeMusic(AreaData* area, int argc, QStringList argv, AOPacket packet)
{
if (is_dj_blocked) {
sendServerMessage("You are blocked from changing the music.");
return;
}
// Due to historical reasons, this
// packet has two functions:
// Change area, and set music.
@ -225,6 +221,10 @@ void AOClient::pktChangeMusic(AreaData* area, int argc, QStringList argv, AOPack
for (QString song : server->music_list) {
if (song == argument || song == "~stop.mp3") { // ~stop.mp3 is a dummy track used by 2.9+
// We have a song here
if (is_dj_blocked) {
sendServerMessage("You are blocked from changing the music.");
return;
}
QString effects;
if (argc >= 4)
effects = argv[3];