add currentmusic, define forcepos in aoclient.h

This commit is contained in:
in1tiate 2021-03-10 20:10:05 -06:00
parent 30ffc94a10
commit d04fef0ded
4 changed files with 24 additions and 2 deletions

View File

@ -198,6 +198,7 @@ class AOClient : public QObject {
void cmdBgLock(int argc, QStringList argv); void cmdBgLock(int argc, QStringList argv);
void cmdBgUnlock(int argc, QStringList argv); void cmdBgUnlock(int argc, QStringList argv);
void cmdStatus(int argc, QStringList argv); void cmdStatus(int argc, QStringList argv);
void cmdCurrentMusic(int argc, QStringList argv);
// Moderation // Moderation
void cmdMods(int argc, QStringList argv); void cmdMods(int argc, QStringList argv);
void cmdBan(int argc, QStringList argv); void cmdBan(int argc, QStringList argv);
@ -213,6 +214,7 @@ class AOClient : public QObject {
void cmdTimer(int argc, QStringList argv); void cmdTimer(int argc, QStringList argv);
// Messaging/Client // Messaging/Client
void cmdPos(int argc, QStringList argv); void cmdPos(int argc, QStringList argv);
void cmdForcePos(int argc, QStringList argv);
void cmdSwitch(int argc, QStringList argv); void cmdSwitch(int argc, QStringList argv);
void cmdRandomChar(int argc, QStringList argv); void cmdRandomChar(int argc, QStringList argv);
void cmdG(int argc, QStringList argv); void cmdG(int argc, QStringList argv);
@ -280,6 +282,8 @@ class AOClient : public QObject {
{"mods", {ACLFlags.value("NONE"), 0, &AOClient::cmdMods}}, {"mods", {ACLFlags.value("NONE"), 0, &AOClient::cmdMods}},
{"help", {ACLFlags.value("NONE"), 0, &AOClient::cmdHelp}}, {"help", {ACLFlags.value("NONE"), 0, &AOClient::cmdHelp}},
{"status", {ACLFlags.value("NONE"), 1, &AOClient::cmdStatus}}, {"status", {ACLFlags.value("NONE"), 1, &AOClient::cmdStatus}},
{"forcepos", {ACLFlags.value("CM"), 2, &AOClient::cmdForcePos}},
{"currentmusic", {ACLFlags.value("NONE"), 0, &AOClient::cmdCurrentMusic}},
}; };
QString partial_packet; QString partial_packet;

View File

@ -71,6 +71,8 @@ class AreaData : public QObject {
QString document; QString document;
int def_hp; int def_hp;
int pro_hp; int pro_hp;
QString current_music;
QString music_played_by;
Logger* logger; Logger* logger;
}; };

View File

@ -696,7 +696,11 @@ void AOClient::cmdArea(int argc, QStringList argv)
void AOClient::cmdPlay(int argc, QStringList argv) void AOClient::cmdPlay(int argc, QStringList argv)
{ {
sendPacket("MC", {argv.join(" "), QString::number(server->getCharID(current_char)), showname, "1", "0"}); AreaData* area = server->areas[current_area];
QString song = argv.join(" ");
area->current_music = song;
area->music_played_by = showname;
sendPacket("MC", {song, QString::number(server->getCharID(current_char)), showname, "1", "0"});
} }
void AOClient::cmdAreaKick(int argc, QStringList argv) void AOClient::cmdAreaKick(int argc, QStringList argv)
@ -777,7 +781,8 @@ void AOClient::cmdHelp(int argc, QStringList argv)
sendServerMessage(entries.join("\n")); sendServerMessage(entries.join("\n"));
} }
void AOClient::cmdStatus(int argc, QStringList argv) { void AOClient::cmdStatus(int argc, QStringList argv)
{
AreaData* area = server->areas[current_area]; AreaData* area = server->areas[current_area];
QString arg = argv[0].toLower(); QString arg = argv[0].toLower();
if (arg == "idle") if (arg == "idle")
@ -799,6 +804,15 @@ void AOClient::cmdStatus(int argc, QStringList argv) {
arup(ARUPType::STATUS, true); arup(ARUPType::STATUS, true);
} }
void AOClient::cmdCurrentMusic(int argc, QStringList argv)
{
AreaData* area = server->areas[current_area];
if (area->current_music != "" && area->current_music != "~stop.mp3") // dummy track for stopping music
sendServerMessage("The current song is " + area->current_music + " played by " + area->music_played_by);
else
sendServerMessage("There is no music playing.");
}
QStringList AOClient::buildAreaList(int area_idx) QStringList AOClient::buildAreaList(int area_idx)
{ {
QStringList entries; QStringList entries;

View File

@ -180,6 +180,8 @@ void AOClient::pktChangeMusic(AreaData* area, int argc, QStringList argv, AOPack
if (song == argument) { if (song == argument) {
// We have a song here // We have a song here
AOPacket music_change("MC", {song, argv[1], argv[2], "1", "0", argv[3]}); AOPacket music_change("MC", {song, argv[1], argv[2], "1", "0", argv[3]});
area->current_music = song;
area->music_played_by = argv[2];
server->broadcast(music_change, current_area); server->broadcast(music_change, current_area);
return; return;
} }