mirror of
https://github.com/AsgardEternal/SquadJS.git
synced 2024-09-28 17:34:25 -05:00
66 lines
1.9 KiB
JavaScript
66 lines
1.9 KiB
JavaScript
import BasePlugin from './base-plugin.js';
|
|
|
|
export default class SeedingMode extends BasePlugin {
|
|
static get description() {
|
|
return (
|
|
'The <code>SeedingMode</code> plugin broadcasts seeding rule messages to players at regular intervals ' +
|
|
'when the server is below a specified player count. It can also be configured to display "Live" messages when ' +
|
|
'the server goes live.'
|
|
);
|
|
}
|
|
|
|
static get defaultEnabled() {
|
|
return true;
|
|
}
|
|
|
|
static get optionsSpecification() {
|
|
return {
|
|
interval: {
|
|
required: false,
|
|
description: 'Frequency of seeding messages in milliseconds.',
|
|
default: 2.5 * 60 * 1000
|
|
},
|
|
seedingThreshold: {
|
|
required: false,
|
|
description: 'Player count required for server not to be in seeding mode.',
|
|
default: 50
|
|
},
|
|
seedingMessage: {
|
|
required: false,
|
|
description: 'Seeding message to display.',
|
|
default: 'Seeding Rules Active! Fight only over the middle flags! No FOB Hunting!'
|
|
},
|
|
liveEnabled: {
|
|
required: false,
|
|
description: 'Enable "Live" messages for when the server goes live.',
|
|
default: true
|
|
},
|
|
liveThreshold: {
|
|
required: false,
|
|
description: 'Player count required for "Live" messages to not bee displayed.',
|
|
default: 52
|
|
},
|
|
liveMessage: {
|
|
required: false,
|
|
description: '"Live" message to display.',
|
|
default: 'Live!'
|
|
}
|
|
};
|
|
}
|
|
|
|
constructor(server, options) {
|
|
super();
|
|
|
|
setInterval(async () => {
|
|
if (server.a2sPlayerCount !== 0 && server.a2sPlayerCount < options.liveThreshold)
|
|
await server.rcon.broadcast(options.seedingMessage);
|
|
else if (
|
|
server.a2sPlayerCount !== 0 &&
|
|
options.liveEnabled &&
|
|
server.a2sPlayerCount < options.liveThreshold
|
|
)
|
|
await server.rcon.broadcast(options.liveMessage);
|
|
}, options.interval);
|
|
}
|
|
}
|