Merge pull request #26 from Salanto/motd

motd. Can't get simpler than that.
This commit is contained in:
in1tiate 2021-03-11 21:46:20 -06:00 committed by GitHub
commit ed784ec74d
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
6 changed files with 28 additions and 1 deletions

View File

@ -9,6 +9,7 @@ ms_port=27016
port=27016
server_description=This is a placeholder server description. Tell the world of AO who you are here!
server_name=An Unnamed Server
motd=MOTD is not set.
webao_enable=true
webao_port=27017
auth=simple

View File

@ -76,6 +76,7 @@ class AOClient : public QObject {
{"CM", 1ULL << 4},
{"GLOBAL_TIMER", 1ULL << 5},
{"CHANGE_EVI_MOD", 1ULL << 6},
{"CHANGE_MOTD", 1ULL << 7},
{"SUPER", ~0ULL}
};
@ -183,6 +184,7 @@ class AOClient : public QObject {
//// Commands
void cmdDefault(int argc, QStringList argv);
void cmdHelp(int argc, QStringList argv);
void cmdMOTD(int argc, QStringList argv);
// Authentication
void cmdLogin(int argc, QStringList argv);
void cmdChangeAuth(int argc, QStringList argv);
@ -298,7 +300,8 @@ class AOClient : public QObject {
{"forcepos", {ACLFlags.value("CM"), 2, &AOClient::cmdForcePos}},
{"currentmusic", {ACLFlags.value("NONE"), 0, &AOClient::cmdCurrentMusic}},
{"pm", {ACLFlags.value("NONE"), 2, &AOClient::cmdPM}},
{"evidence_mod", {ACLFlags.value("CHANGE_EVI_MOD"), 1, &AOClient::cmdEvidenceMod}}
{"evidence_mod", {ACLFlags.value("CHANGE_EVI_MOD"), 1, &AOClient::cmdEvidenceMod}},
{"motd", {ACLFlags.value("NONE"), 0, &AOClient::cmdMOTD}}
};
QString partial_packet;

View File

@ -52,6 +52,7 @@ class Server : public QObject {
void broadcast(AOPacket packet, int area_index);
void broadcast(AOPacket packet);
QString getServerName();
QString getMOTD();
int getDiceValue(QString value_type);
int getCharID(QString char_name);
@ -65,6 +66,7 @@ class Server : public QObject {
QStringList backgrounds;
DBManager* db_manager;
QString server_name;
QString MOTD;
QTimer* timer;

View File

@ -857,6 +857,23 @@ void AOClient::cmdPM(int arc, QStringList argv)
target_client->sendServerMessage("Message from " + ooc_name + " (" + QString::number(id) + "): " + message);
}
void AOClient::cmdMOTD(int argc, QStringList argv)
{
if (argc == 0) {
sendServerMessage("=== MOTD ===\r\n" + server->MOTD + "\r\n=============");
}
else if (argc > 0) {
if (checkAuth(ACLFlags.value("CHANGE_MOTD"))) {
QString MOTD = argv.join(" ");
server->MOTD = MOTD;
sendServerMessage("MOTD has been changed.");
}
else {
sendServerMessage("You do not have permission to change the MOTD");
}
}
}
QStringList AOClient::buildAreaList(int area_idx)
{
QStringList entries;

View File

@ -112,6 +112,8 @@ void AOClient::pktLoadingDone(AreaData* area, int argc, QStringList argv, AOPack
sendPacket("BN", {area->background});
sendPacket("OPPASS", {"DEADBEEF"});
sendPacket("DONE");
sendServerMessage("=== MOTD ===\r\n" + server->MOTD + "\r\n=============");
fullArup(); // Give client all the area data
if (server->timer->isActive()) {

View File

@ -51,6 +51,8 @@ void Server::start()
qDebug() << "Server listening on" << port;
}
MOTD = config.value("motd","MOTD is not set.").toString();
proxy = new WSProxy(port, ws_port, this);
if(ws_port != -1)
proxy->start();