add /bans
This commit is contained in:
parent
535c05f3e2
commit
b5779b1aa5
@ -224,6 +224,7 @@ class AOClient : public QObject {
|
|||||||
void cmdGM(int argc, QStringList argv);
|
void cmdGM(int argc, QStringList argv);
|
||||||
void cmdMute(int argc, QStringList argv);
|
void cmdMute(int argc, QStringList argv);
|
||||||
void cmdUnmute(int argc, QStringList argv);
|
void cmdUnmute(int argc, QStringList argv);
|
||||||
|
void cmdBans(int argc, QStringList argv);
|
||||||
// Casing/RP
|
// Casing/RP
|
||||||
void cmdPlay(int argc, QStringList argv);
|
void cmdPlay(int argc, QStringList argv);
|
||||||
void cmdNeed(int argc, QStringList argv);
|
void cmdNeed(int argc, QStringList argv);
|
||||||
@ -315,7 +316,8 @@ class AOClient : public QObject {
|
|||||||
{"m", {ACLFlags.value("MODCHAT"), 1, &AOClient::cmdM}},
|
{"m", {ACLFlags.value("MODCHAT"), 1, &AOClient::cmdM}},
|
||||||
{"gm", {ACLFlags.value("MODCHAT"), 1, &AOClient::cmdGM}},
|
{"gm", {ACLFlags.value("MODCHAT"), 1, &AOClient::cmdGM}},
|
||||||
{"mute", {ACLFlags.value("MUTE"), 1, &AOClient::cmdMute}},
|
{"mute", {ACLFlags.value("MUTE"), 1, &AOClient::cmdMute}},
|
||||||
{"unmute", {ACLFlags.value("MUTE"), 1, &AOClient::cmdUnmute}}
|
{"unmute", {ACLFlags.value("MUTE"), 1, &AOClient::cmdUnmute}},
|
||||||
|
{"bans", {ACLFlags.value("BAN"), 0, &AOClient::cmdBans}}
|
||||||
};
|
};
|
||||||
|
|
||||||
QString partial_packet;
|
QString partial_packet;
|
||||||
|
@ -41,6 +41,16 @@ public:
|
|||||||
long long getBanDuration(QString hdid);
|
long long getBanDuration(QString hdid);
|
||||||
long long getBanDuration(QHostAddress hdid);
|
long long getBanDuration(QHostAddress hdid);
|
||||||
|
|
||||||
|
struct BanInfo {
|
||||||
|
QString ipid;
|
||||||
|
QHostAddress ip;
|
||||||
|
QString hdid;
|
||||||
|
unsigned long time;
|
||||||
|
QString reason;
|
||||||
|
long long duration;
|
||||||
|
};
|
||||||
|
QList<BanInfo> getRecentBans();
|
||||||
|
|
||||||
void addBan(QString ipid, QHostAddress ip, QString hdid, unsigned long time, QString reason, long long duration);
|
void addBan(QString ipid, QHostAddress ip, QString hdid, unsigned long time, QString reason, long long duration);
|
||||||
|
|
||||||
bool createUser(QString username, QString salt, QString password, unsigned long long acl);
|
bool createUser(QString username, QString salt, QString password, unsigned long long acl);
|
||||||
|
@ -971,6 +971,22 @@ void AOClient::cmdUnmute(int argc, QStringList argv)
|
|||||||
server->getClientByID(uid)->is_muted = false;
|
server->getClientByID(uid)->is_muted = false;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void AOClient::cmdBans(int argc, QStringList argv)
|
||||||
|
{
|
||||||
|
QStringList recent_bans;
|
||||||
|
recent_bans << "Last 5 bans:";
|
||||||
|
recent_bans << "-----";
|
||||||
|
for (DBManager::BanInfo ban : server->db_manager->getRecentBans()) {
|
||||||
|
recent_bans << "Affected IPID: " + ban.ipid;
|
||||||
|
recent_bans << "Affected HDID: " + ban.hdid;
|
||||||
|
recent_bans << "Reason for ban: " + ban.reason;
|
||||||
|
recent_bans << "Date of ban: " + QDateTime::fromSecsSinceEpoch(ban.time).toString("dd.MM.yyyy, hh:mm");
|
||||||
|
recent_bans << "Ban lasts until: " + QDateTime::fromSecsSinceEpoch(ban.time).addSecs(ban.duration).toString("dd.MM.yyyy, hh:mm");
|
||||||
|
recent_bans << "-----";
|
||||||
|
}
|
||||||
|
sendServerMessage(recent_bans.join("\n"));
|
||||||
|
}
|
||||||
|
|
||||||
QStringList AOClient::buildAreaList(int area_idx)
|
QStringList AOClient::buildAreaList(int area_idx)
|
||||||
{
|
{
|
||||||
QStringList entries;
|
QStringList entries;
|
||||||
|
@ -122,6 +122,27 @@ long long DBManager::getBanDuration(QHostAddress ip)
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
QList<DBManager::BanInfo> DBManager::getRecentBans()
|
||||||
|
{
|
||||||
|
QList<BanInfo> return_list;
|
||||||
|
QSqlQuery query;
|
||||||
|
query.prepare("SELECT TOP(5) * FROM BANS ORDER BY TIME DESC");
|
||||||
|
query.setForwardOnly(true);
|
||||||
|
query.exec();
|
||||||
|
while (query.next()) {
|
||||||
|
BanInfo ban;
|
||||||
|
ban.ipid = query.value(0).toString();
|
||||||
|
ban.hdid = query.value(1).toString();
|
||||||
|
ban.ip = QHostAddress(query.value(2).toString());
|
||||||
|
ban.time = static_cast<unsigned long>(query.value(3).toULongLong());
|
||||||
|
ban.reason = query.value(4).toString();
|
||||||
|
ban.duration = query.value(5).toLongLong();
|
||||||
|
return_list.append(ban);
|
||||||
|
}
|
||||||
|
std::reverse(return_list.begin(), return_list.end());
|
||||||
|
return return_list;
|
||||||
|
}
|
||||||
|
|
||||||
void DBManager::addBan(QString ipid, QHostAddress ip, QString hdid, unsigned long time, QString reason, long long duration)
|
void DBManager::addBan(QString ipid, QHostAddress ip, QString hdid, unsigned long time, QString reason, long long duration)
|
||||||
{
|
{
|
||||||
QSqlQuery query;
|
QSqlQuery query;
|
||||||
|
Loading…
Reference in New Issue
Block a user