From e1540c853cec5770aead090af23cb28f2a666fb9 Mon Sep 17 00:00:00 2001 From: Fantino Davide Date: Wed, 7 Sep 2022 22:51:59 +0200 Subject: [PATCH] quick fix --- mapvote.js | 18 ++++++++++++------ 1 file changed, 12 insertions(+), 6 deletions(-) diff --git a/mapvote.js b/mapvote.js index 6b0accc..bec124e 100644 --- a/mapvote.js +++ b/mapvote.js @@ -138,16 +138,22 @@ export default class MapVote extends BasePlugin { setSeedingMode() { // setTimeout(()=>{this.msgDirect('76561198419229279',"MV\ntest\ntest")},1000) // this.msgBroadcast("[MapVote] Seeding mode active") + let tries = 0; + let error = false; const baseDataExist = this && this.options && this.server; const currentNextLayerExist = this.server.currentLayer && this.server.nextLayer; if (baseDataExist && this.options.automaticSeedingMode && ((this.server.nextLayer && this.server.nextLayer.gamemode.toLowerCase() != "seed") || (currentNextLayerExist && this.server.currentLayer.layerid == this.server.nextLayer.layerid))) { const seedingMaps = Layers.layers.filter((l) => l.gamemode.toUpperCase() == "SEED" && (currentNextLayerExist && l.layerid != this.server.currentLayer.layerid && !this.options.layerLevelBlacklist.find((fl) => l.layerid.toLowerCase().startsWith(fl.toLowerCase())))) - - const nextMap = randomElement(seedingMaps).layerid; - if (this.server.players && this.server.players.length < 20) { - this.verbose(1, 'Going into seeding mode.'); - this.server.rcon.execute(`AdminSetNextLayer ${nextMap}`); - } + const rndMap = randomElement(seedingMaps); + do { + if (rndMap.layerid) { + const nextMap = rndMap.layerid; + if (this.server.players && this.server.players.length < 20) { + this.verbose(1, 'Going into seeding mode.'); + this.server.rcon.execute(`AdminSetNextLayer ${nextMap}`); + } + }else error = true; + } while (error && ++tries<=5) } }