mirror of
https://github.com/AsgardEternal/SquadJS.git
synced 2024-09-28 14:04:25 -05:00
Merge pull request #125 from SeanWalsh95/kick-unassigned-patch
Auto-Kick-Unassigned patch
This commit is contained in:
commit
b604ab9195
@ -29,6 +29,8 @@ export default class SquadServer extends EventEmitter {
|
||||
|
||||
this.players = [];
|
||||
|
||||
this.admins = {};
|
||||
|
||||
this.plugins = [];
|
||||
|
||||
this.squadLayers = new SquadLayers(options.squadLayersSource);
|
||||
@ -239,14 +241,14 @@ export default class SquadServer extends EventEmitter {
|
||||
await this.logParser.watch();
|
||||
}
|
||||
|
||||
async getAdminBySteamID(steamID) {
|
||||
getAdminPermsBySteamID(steamID) {
|
||||
return this.admins[steamID];
|
||||
}
|
||||
|
||||
async getAdminsWithPermission(perm) {
|
||||
getAdminsWithPermission(perm) {
|
||||
const ret = [];
|
||||
for (const [steamID, perms] of Object.entries(this.admins)) {
|
||||
if (perm in perms) ret.push(this.admins[steamID]);
|
||||
if (perm in perms) ret.push(steamID);
|
||||
}
|
||||
return ret;
|
||||
}
|
||||
|
@ -82,8 +82,8 @@ export default class AutoKickUnassigned extends BasePlugin {
|
||||
constructor(server, options, connectors) {
|
||||
super(server, options, connectors);
|
||||
|
||||
this.admins = server.getAdminsWithPermission('canseeadminchat');
|
||||
this.whitelist = server.getAdminsWithPermission('reserve');
|
||||
this.adminPermission = 'canseeadminchat';
|
||||
this.whitelistPermission = 'reserve';
|
||||
|
||||
this.kickTimeout = options.unassignedTimer * 1000;
|
||||
this.warningInterval = options.frequencyOfWarnings * 1000;
|
||||
@ -152,12 +152,15 @@ export default class AutoKickUnassigned extends BasePlugin {
|
||||
|
||||
if (forceUpdate) await this.server.updatePlayerList();
|
||||
|
||||
const admins = this.server.getAdminsWithPermission(this.adminPermission);
|
||||
const whitelist = this.server.getAdminsWithPermission(this.whitelistPermission);
|
||||
|
||||
// loop through players on server and start tracking players not in a squad
|
||||
for (const player of this.server.players) {
|
||||
const isTracked = player.steamID in this.trackedPlayers;
|
||||
const isUnassigned = player.squadID === null;
|
||||
const isAdmin = player.steamID in this.admins;
|
||||
const isWhitelist = player.steamID in this.whitelist;
|
||||
const isAdmin = player.steamID in admins;
|
||||
const isWhitelist = player.steamID in whitelist;
|
||||
|
||||
// tracked player joined a squad remove them (redundant afer adding PLAYER_SQUAD_CHANGE, keeping for now)
|
||||
if (!isUnassigned && isTracked) this.untrackPlayer(player.steamID);
|
||||
|
Loading…
Reference in New Issue
Block a user