let accounts = []; const confirmedPlayers = new Set() let connections = []; var mutedPlayers = []; //superadmin accounts.push({username: "Amuranth",password: "d4803c21", admin: true, nadmin: false}); //Aguero hangman //--------------- //dpx Δ± munşite //normal admin accounts.push({username: "Admin1",password: "246810", admin: false, nadmin: true}); //confirmed //no admin access but confirm account accounts.push({username: "account1",password: "acc1", admin: false, nadmin: false}); accounts.push({username: "account2",password: "acc2", admin: false, nadmin: false}); var commands = { //"!kebab" : adminFun, "!confirm" : confirmFun, "!confirmPlayers" : confirmedPlayersFun, "!afk" : afkFun, "!afks": afksFun, "!pm": pmFun, "!mute" : pushMuteFun, "!unmute": unmuteFun, "!maps" : mapFun //"!radius": radiusFun }; var teams = ["spectators", "red", "Blue"]; var room, gameContext; room = HBInit({roomName: "CoronaBALL",maxPlayers: 30,playerName: "Amdin",public: true, geo: {"code": "tr", "lat": 51.1, "lon": 10.4}}); let superAdmins = []; let normalAdmins = []; let checkConfirmPlayer = []; var redStreak = 0; var blueStreak = 0; const afkPlayerIDs = new Set() var numberOfPlayedGames=0; var largestWinningStreak=0; var longestGameTime=0; var numberOfScoredGoals=0; var runCount; var runTotal = 0; var setTarget; var outCount = 0; var keeraMap = `{ "name": "CoronaBounce", "width": 900, "height": 550, "bg": { "type": "hockey", "width": 550, "height": 240 }, "vertexes": [{ "x": -550, "y": 240, "cMask": ["ball"] }, { "x": -550, "y": 80, "bCoef": 0, "cMask": ["ball"] }, { "x": -550, "y": -80, "bCoef": 0, "cMask": ["ball"] }, { "x": -550, "y": -240, "cMask": ["ball"] }, { "x": 550, "y": 240, "cMask": ["ball"] }, { "x": 550, "y": 80, "bCoef": 0, "cMask": ["ball"] }, { "x": 550, "y": -80, "bCoef": 0, "cMask": ["ball"] }, { "x": 550, "y": -240, "cMask": ["ball"] }, { "x": 0, "y": 550, "bCoef": 0.1, "cMask": ["red", "blue"], "cGroup": ["redKO", "blueKO"] }, { "x": 0, "y": 80, "bCoef": 0.1, "cMask": ["red", "blue"], "cGroup": ["redKO", "blueKO"] }, { "x": 0, "y": -80, "bCoef": 0.1, "cMask": ["red", "blue"], "cGroup": ["redKO", "blueKO"] }, { "x": 0, "y": -550, "bCoef": 0.1, "cMask": ["red", "blue"], "cGroup": ["redKO", "blueKO"] }, { "x": -576, "y": -60, "bCoef": 0, "cMask": ["ball"] }, { "x": -576, "y": 60, "bCoef": 0, "cMask": ["ball"] }, { "x": 576, "y": -60, "bCoef": 0, "cMask": ["ball"] }, { "x": 576, "y": 60, "bCoef": 0, "cMask": ["ball"] }, { "x": 0, "y": 240, "cMask": [] }, { "x": 0, "y": -240, "cMask": [] }, { "x": 0, "y": 80, "bCoef": 0.1, "cMask": ["red", "blue"], "cGroup": ["redKO", "blueKO"] }, { "x": 0, "y": -80, "bCoef": 0.1, "cMask": ["red", "blue"], "cGroup": ["redKO", "blueKO"] }, { "x": -53, "y": 211, "cMask": [] }, { "x": -53, "y": 225.2, "cMask": [] }, { "x": -52.5, "y": 218.5, "cMask": [] }, { "x": -42.5, "y": 218.5, "cMask": [] }, { "x": -42, "y": 225.2, "cMask": [] }, { "x": -42, "y": 211, "cMask": [] }, { "x": -23.5, "y": 225.2, "cMask": [] }, { "x": -23.5, "y": 217, "cMask": [] }, { "x": -34.5, "y": 217, "cMask": [] }, { "x": -34.5, "y": 225.2, "cMask": [] }, { "x": -34, "y": 220, "cMask": [] }, { "x": -24, "y": 220, "cMask": [] }, { "x": 15, "y": 212, "cMask": [] }, { "x": 15, "y": 225, "cMask": [] }, { "x": 17.3, "y": 225, "cMask": [] }, { "x": 17.3, "y": 212, "cMask": [] }, { "x": 23, "y": 211.8, "cMask": [] }, { "x": 23, "y": 220, "cMask": [] }, { "x": 26, "y": 225, "cMask": [] }, { "x": 29, "y": 225, "cMask": [] }, { "x": 33, "y": 220, "cMask": [] }, { "x": 33, "y": 211.8, "cMask": [] }, { "x": 39, "y": 212, "cMask": [] }, { "x": 39, "y": 225.2, "cMask": [] }, { "x": 45, "y": 212, "cMask": [] }, { "x": 45, "y": 220, "cMask": [] }, { "x": 39.5, "y": 220, "cMask": [] }, { "x": -17, "y": 212, "cMask": [] }, { "x": -6, "y": 225, "cMask": [] }, { "x": -6, "y": 212, "cMask": [] }, { "x": -17, "y": 225, "cMask": [] }, { "x": 87.5, "y": 212, "cMask": [] }, { "x": 87.5, "y": 225, "cMask": [] }, { "x": 73.5, "y": 225, "cMask": [] }, { "x": 73.5, "y": 223, "cMask": [] }, { "x": 89.8, "y": 225, "cMask": [] }, { "x": 89.8, "y": 212, "cMask": [] }, { "x": 58, "y": 218.5, "cMask": [] }, { "x": 64, "y": 218.5, "cMask": [] }, { "x": 64, "y": 225, "cMask": [] }, { "x": 58, "y": 212, "cMask": [] }, { "x": 54.5, "y": 225, "cMask": [] }, { "x": 67.5, "y": 212, "cMask": [] }, { "x": 101.5, "y": 212, "cMask": [] }, { "x": 101.5, "y": 225, "cMask": [] }, { "x": 104.8, "y": 225, "cMask": [] }, { "x": 104.8, "y": 212, "cMask": [] }], "segments": [{ "v0": 17, "v1": 19, "cMask": [], "color": "CCCCFF" }, { "v0": 19, "v1": 18, "cMask": [], "color": "6B6B6B" }, { "v0": 18, "v1": 16, "cMask": [], "color": "CCCCFF" }, { "v0": 1, "v1": 2, "cMask": [], "color": "D0D0E8" }, { "v0": 5, "v1": 6, "cMask": [], "color": "D0D0E8" }, { "v0": 8, "v1": 9, "bCoef": 0.1, "vis": false, "cMask": ["red", "blue"], "cGroup": ["redKO", "blueKO"] }, { "v0": 9, "v1": 10, "bCoef": 0.1, "curve": 180, "curveF": 6.123233995736766e-17, "cMask": ["red", "blue"], "cGroup": ["blueKO"], "color": "B2C8DB" }, { "v0": 10, "v1": 9, "bCoef": 0.1, "curve": 180, "curveF": 6.123233995736766e-17, "cMask": ["red", "blue"], "cGroup": ["redKO"], "color": "C8C8E0" }, { "v0": 18, "v1": 19, "bCoef": 0.1, "curve": 180, "curveF": 6.123233995736766e-17, "cMask": ["red", "blue"], "cGroup": ["blueKO"], "color": "C8C8E0" }, { "v0": 10, "v1": 11, "bCoef": 0.1, "vis": false, "cMask": ["red", "blue"], "cGroup": ["redKO", "blueKO"] }, { "v0": 0, "v1": 1, "cMask": ["ball"], "color": "D0D0E8" }, { "v0": 2, "v1": 3, "cMask": ["ball"], "color": "D0D0E8" }, { "v0": 4, "v1": 5, "cMask": ["ball"], "color": "D0D0E8" }, { "v0": 6, "v1": 7, "cMask": ["ball"], "color": "D0D0E8" }, { "v0": 0, "v1": 4, "cMask": ["ball"], "color": "D0D0E8" }, { "v0": 3, "v1": 7, "cMask": ["ball"], "color": "D0D0E8" }, { "v0": 12, "v1": 13, "bCoef": 0, "cMask": ["ball"], "color": "D0D0E8" }, { "v0": 14, "v1": 15, "bCoef": 0, "cMask": ["ball"], "color": "D0D0E8" }, { "v0": 1, "v1": 13, "bCoef": 0, "curve": 89.99999999999999, "curveF": 1.0000000000000002, "cMask": ["ball"], "color": "D0D0E8" }, { "v0": 12, "v1": 2, "bCoef": 0, "curve": 89.99999999999999, "curveF": 1.0000000000000002, "cMask": ["ball"], "color": "D0D0E8" }, { "v0": 15, "v1": 5, "bCoef": 0, "curve": 89.99999999999999, "curveF": 1.0000000000000002, "cMask": ["ball"], "color": "D0D0E8" }, { "v0": 6, "v1": 14, "bCoef": 0, "curve": 89.99999999999999, "curveF": 1.0000000000000002, "cMask": ["ball"], "color": "D0D0E8" }, { "v0": 20, "v1": 21, "cMask": [], "color": "B0C0D0" }, { "v0": 22, "v1": 23, "cMask": [], "color": "B0C0D0" }, { "v0": 24, "v1": 25, "cMask": [], "color": "B0C0D0" }, { "v0": 26, "v1": 27, "cMask": [], "color": "B0C0D0" }, { "v0": 28, "v1": 27, "curve": 180, "curveF": 6.123233995736766e-17, "cMask": [], "color": "B0C0D0" }, { "v0": 28, "v1": 29, "cMask": [], "color": "B0C0D0" }, { "v0": 30, "v1": 31, "cMask": [], "color": "B0C0D0" }, { "v0": 33, "v1": 34, "cMask": [], "color": "B0C0D0" }, { "v0": 32, "v1": 35, "cMask": [], "color": "B0C0D0" }, { "v0": 36, "v1": 37, "cMask": [], "color": "B0C0D0" }, { "v0": 38, "v1": 37, "curve": 89.99999999999999, "curveF": 1.0000000000000002, "cMask": [], "color": "B0C0D0" }, { "v0": 38, "v1": 39, "cMask": [], "color": "B0C0D0" }, { "v0": 40, "v1": 39, "curve": 89.99999999999999, "curveF": 1.0000000000000002, "cMask": [], "color": "B0C0D0" }, { "v0": 40, "v1": 41, "cMask": [], "color": "B0C0D0" }, { "v0": 42, "v1": 43, "cMask": [], "color": "B0C0D0" }, { "v0": 42, "v1": 44, "cMask": [], "color": "B0C0D0" }, { "v0": 44, "v1": 45, "curve": 180, "curveF": 6.123233995736766e-17, "cMask": [], "color": "B0C0D0" }, { "v0": 45, "v1": 46, "cMask": [], "color": "B0C0D0" }, { "v0": 47, "v1": 48, "cMask": [], "color": "B0C0D0" }, { "v0": 49, "v1": 50, "cMask": [], "color": "B0C0D0" }, { "v0": 52, "v1": 51, "curve": -150, "curveF": -0.26794919243112275, "cMask": [], "color": "333333" }, { "v0": 54, "v1": 53, "curve": 180, "curveF": 6.123233995736766e-17, "cMask": [], "color": "333333" }, { "v0": 52, "v1": 55, "cMask": [], "color": "333333" }, { "v0": 51, "v1": 56, "cMask": [], "color": "333333" }, { "v0": 53, "v1": 54, "curve": 180, "curveF": 6.123233995736766e-17, "cMask": [], "color": "333333" }, { "v0": 57, "v1": 58, "cMask": [], "color": "B0C0D0" }, { "v0": 57, "v1": 60, "curve": 180, "curveF": 6.123233995736766e-17, "cMask": [], "color": "B0C0D0" }, { "v0": 58, "v1": 59, "curve": 180, "curveF": 6.123233995736766e-17, "cMask": [], "color": "B0C0D0" }, { "v0": 33, "v1": 32, "curve": -150, "curveF": -0.26794919243112275, "cMask": [], "color": "B0C0D0" }, { "v0": 59, "v1": 61, "cMask": [], "color": "B0C0D0" }, { "v0": 60, "v1": 62, "cMask": [], "color": "B0C0D0" }, { "v0": 64, "v1": 63, "curve": -150, "curveF": -0.26794919243112275, "cMask": [], "color": "333333" }, { "v0": 64, "v1": 65, "cMask": [], "color": "333333" }, { "v0": 63, "v1": 66, "cMask": [], "color": "333333" }], "planes": [{ "normal": [0, 1], "dist": -550, "bCoef": 0.1 }, { "normal": [0, -1], "dist": -550, "bCoef": 0.1 }, { "normal": [1, 0], "dist": -900, "bCoef": 0.1 }, { "normal": [-1, 0], "dist": -900, "bCoef": 0.1 }, { "normal": [0, 1], "dist": -247, "cMask": ["ball"] }, { "normal": [0, -1], "dist": -247, "cMask": ["ball"] }, { "normal": [0.9938837346736189, 0.11043152607484655], "dist": -582, "cMask": ["ball"] }, { "normal": [0.9938837346736189, -0.11043152607484655], "dist": -582, "cMask": ["ball"] }, { "normal": [-0.9938837346736189, 0.11043152607484655], "dist": -582, "cMask": ["ball"] }, { "normal": [-0.9938837346736189, -0.11043152607484655], "dist": -582, "cMask": ["ball"] }], "goals": [{ "p0": [-550, 80], "p1": [-550, -80], "team": "red" }, { "p0": [550, 80], "p1": [550, -80], "team": "blue" }], "discs": [{ "pos": [0, -50], "radius": 3, "color": "DA4D4B", "cMask": ["ball", "red", "blue"] }, { "pos": [10, -50], "radius": 3, "color": "DA4D4B", "cMask": ["ball", "red", "blue"] }, { "pos": [20, -50], "radius": 3, "color": "DA4D4B", "cMask": ["ball", "red", "blue"] }, { "pos": [30, -50], "radius": 3, "color": "DA4D4B", "cMask": ["ball", "red", "blue"] }, { "pos": [40, -50], "radius": 3, "color": "DA4D4B", "cMask": ["ball", "red", "blue"] }, { "pos": [50, -50], "radius": 3, "color": "DA4D4B", "cMask": ["ball", "red", "blue"] }, { "pos": [60, -50], "radius": 3, "color": "DA4D4B", "cMask": ["ball", "red", "blue"] }, { "pos": [70, -50], "radius": 3, "color": "DA4D4B", "cMask": ["ball", "red", "blue"] }, { "pos": [80, -50], "radius": 3, "color": "DA4D4B", "cMask": ["ball", "red", "blue"] }, { "pos": [90, -50], "radius": 4, "color": "DA4D4B" }, { "pos": [-550, 80], "radius": 8, "invMass": 0, "color": "961515" }, { "pos": [-550, -80], "radius": 8, "invMass": 0, "color": "961515" }, { "pos": [550, 80], "radius": 8, "invMass": 0, "color": "1E1666" }, { "pos": [550, -80], "radius": 8, "invMass": 0, "color": "1E1666" }], "traits": { "ballArea": { "vis": false, "bCoef": 1, "cMask": ["ball"] }, "goalPost": { "radius": 8, "invMass": 0, "bCoef": 0.5 }, "goalNet": { "vis": true, "bCoef": 0.1, "cMask": ["ball"] }, "kickOffBarrier": { "vis": false, "bCoef": 0.1, "cGroup": ["redKO", "blueKO"], "cMask": ["red", "blue"] } }, "playerPhysics": { "bCoef": 1.5, "damping": 0.9995, "acceleration": 0.025, "kickingAcceleration": 0.0175, "kickingDamping": 0.9995 }, "ballPhysics": {}, "joints": [{ "d0": 1, "d1": 2, "length": 10, "color": "DA4D4B" }, { "d0": 2, "d1": 3, "length": 10, "color": "DA4D4B" }, { "d0": 3, "d1": 4, "length": 10, "color": "DA4D4B" }, { "d0": 4, "d1": 5, "length": 10, "color": "DA4D4B" }, { "d0": 5, "d1": 6, "length": 10, "color": "DA4D4B" }, { "d0": 6, "d1": 7, "length": 10, "color": "DA4D4B" }, { "d0": 7, "d1": 8, "length": 10, "color": "DA4D4B" }, { "d0": 8, "d1": 9, "length": 10, "color": "DA4D4B" }, { "d0": 9, "d1": 10, "length": 10, "color": "DA4D4B" }], "spawnDistance": 350 }`; //room.setDefaultStadium("Classic"); room.setCustomStadium(keeraMap); //room.setCustomStadium(spaceBall); room.setScoreLimit(5); room.setTimeLimit(5); function init(p) { gameContext = new GameContext(); } room.onStadiumChange = function (newStadiumName, byPlayer) { if (newStadiumName != "CoronaBounce") { room.kickPlayer(byPlayer.id, 'You cant change map directly', false); room.sendChat('!maps'); room.setCustomStadium(keeraMap);} } room.onPlayerJoin = function (player) { //welcome messages room.sendChat("Welcome " + player.name); room.sendChat("For Discord Type : !stats"); room.sendChat("Rules : if more players, huge map will take place."); room.sendChat("All players will play no REST"); room.sendChat("PLAY FRIENDLY!!!!!!!"); //adminupdate updateAdmins(); } room.onPlayerLeave = function (player) { updateAdmins(); } room.onGameStart = function() { [redTeam,blueTeam] = whichTeam(); ballCarrying = initBallCarrying(redTeam, blueTeam); } room.onGameTick = function () { gameContext.update(); }; room.onPlayerChat = function (player, message) { //let ip = playerIp.find(a => a.playerId === player.id); //webSend(player, message, ip.ip); if (mutedPlayers.includes(player.name)) return false; let spacePos = message.search(" "); let command = message.substr(0, spacePos !== -1 ? spacePos : message.length); if (commands.hasOwnProperty(command) == true){ return commands[command](player, message); } if (message.toLowerCase() == "!help") { room.sendChat("available commands !about , !confirm ", "!mute !unmute"); room.sendChat("Admin commands !clearBans "); room.sendChat("Extra Commands !bb, !p, !np, !afk"); } if (message.toLowerCase() == "!stats") { room.sendChat(" http://haxball.gq/ to see stats"); room.sendChat('https://discord.gg/4TnE842 join our discord'); } //auto kick !bb if (message.toLowerCase() == "!bb") room.kickPlayer(player.id, "bye", false); //showing map name if (message.toLowerCase() == "!clearbans" && player.admin) { room.clearBans(); room.sendChat("Bans Cleared !"); } //chatLog(player, message); } room.onPlayerAdminChange = function (player, byPlayer) { updateAdmins(); // if (player.admin) // console.log(byPlayer.name + " gave " + player.name + " admin"); // else // console.log(byPlayer.name + " removed admin from " + player.name); if (superAdmins.includes(player.id)) { room.setPlayerAdmin(player.id, true); room.setPlayerAdmin(byPlayer.id, false); }; } room.onPlayerTeamChange = function (player, changed) { if (changed.id == 0) //bot team can't be changed room.setPlayerTeam(0, 0); //set bot team to spectators if (player.team !== 0 && afkPlayerIDs.has(player.id)) { room.setPlayerTeam(player.id, 0) room.sendChat("πŸ’Ž " + player.name + " is AFK!") } if (player.id <= 0) { room.setPlayerTeam(player.id, 0) } if (room.getScores() != null){ if (1 <= player.team <= 2) ballCarrying.set(player.name, [0, player.team]); } } function updateAdmins() { //no admin give someone oldest one admin // Get all players except the host (id = 0 is always the host) var players = room.getPlayerList().filter((player) => player.id != 0); if (players.length == 0) return; // No players left, do nothing. if (players.find((player) => player.admin) != null) return; // There's an admin left so do nothing. room.setPlayerAdmin(players[0].id, true); // Give admin to the first non admin player in the list } var GameContext = class GameContext { update() { gameContext.updateSnake(); } coronaFunc(snakeRet, castle) { let snake = snakeRet.obj; let snakeId = snakeRet.index; let speed = 2; let xspeed = 0, yspeed = 0; let bias = 5; let smallCastleX = Math.min(castle.x1, castle.x2); let bigCastleX = Math.max(castle.x1, castle.x2); let smallCastleY = Math.min(castle.y1, castle.y2); let bigCastleY = Math.max(castle.y1, castle.y2); if (snake.x < (smallCastleX - bias)) { xspeed = speed; } else if (snake.x > (bigCastleX + bias)) { xspeed = -speed; } else { xspeed = 0; } if (snake.y < (smallCastleY - bias)) { yspeed = speed; } else if (snake.y > (bigCastleY + bias)) { yspeed = -speed; } else { yspeed = 0; } room.setDiscProperties(snakeId, { xspeed: xspeed, yspeed: yspeed }); } findSnake() { for (let i = 0; i < room.getDiscCount(); i++) { let d = room.getDiscProperties(i); if (d.radius == 4) { return { obj: d, index: i }; } } return null; } coronaBall(snakeRet, ballPos) { let snake = snakeRet.obj; let snakeId = snakeRet.index; let speed = 3; let xspeed = 0, yspeed = 0; if (snake.x < ballPos.x) { xspeed = speed; } else if (snake.x > ballPos.x) { xspeed = -speed; } else { xspeed = 0; } if (snake.y < ballPos.y) { yspeed = speed; } else if (snake.y > ballPos.y) { yspeed = -speed; } else { yspeed = 0; } room.setDiscProperties(snakeId, { xspeed: xspeed, yspeed: yspeed }); } updateSnake() { let snakeRet = gameContext.findSnake(); let snakeId = snakeRet.index; let ballPos = room.getBallPosition(); gameContext.coronaBall(snakeRet, ballPos); // let player = gameContext.getPlayers().find(x => x.initScore < 0); // if (player == null) { // room.setDiscProperties(snakeId, { x: 999, y: 999, xspeed: 0, yspeed: 0 }); // return; // } if (snakeRet && ballPos) { let snake = snakeRet.obj; let snakeId = snakeRet.index; if (isNaN(snake.x) || isNaN(snake.y)) { room.setDiscProperties(snakeId, { x: 0, y: -50, xspeed: 0, yspeed: 0 }); return; } // let castle = SETTINGS.Castles.find(x => x.id == player.castleId); // if (gameContext.checkKaleyeSut(player, castle, ballPos)) { // gameContext.coronaBall(snakeRet, ballPos); // } // else { // gameContext.coronaFunc(snakeRet, castle); // } } } ballPosition() { return room.getBallPosition(); } } function mapFun(player, message){ // !afk room.sendChat("Only bounce available 'we are working on other maps'"); } function afkFun(player, message){ // !afk if (afkPlayerIDs.has(player.id)){ afkPlayerIDs.delete(player.id); room.sendChat("πŸ’Ž " + player.name + " is back and ready to play!");} else {afkPlayerIDs.add(player.id); room.setPlayerTeam(player.id, 0);room.sendChat("πŸ’Ž " + player.name + " is AFK!");} } function afksFun(player, message){ // !afks afkPlayers_list = room.getPlayerList().filter((x) => afkPlayerIDs.has(x.id)); afkPlayers_list_string = afkPlayers_list.map(x => x.name).join(", "); if (afkPlayers_list == "") { room.sendChat("πŸ’Ž There are no AFK players!"); } else { room.sendChat("πŸ’Ž AFK: " + afkPlayers_list_string); } } function confirmFun(player, message){ // !confirm aaa // Prevent somebody to talk in the room (uses the nickname, not the id) // need to be admin let password = message.substr(9); let account = accounts.find(a => a.password === password); if (account !== undefined) { account.playerId = player.id; if(account.admin == true){ checkConfirmPlayer.push(player.name); superAdmins.push(player.id); room.setPlayerAdmin(player.id, true); room.sendChat("[" + player.name + "] " + account.username + " has been confirmed + SuperAdmin."); confirmedPlayers.add(player.id); } else if(account.nadmin == true) { checkConfirmPlayer.push(player.name); normalAdmins.push(player.id); room.setPlayerAdmin(player.id, true); room.sendChat("[" + player.name + "] " + account.username + " has been confirmed + Normal Admin."); confirmedPlayers.add(player.id); } else { checkConfirmPlayer.push(player.name); room.sendChat("[" + player.name + "] " + account.username + " has been confirmed."); confirmedPlayers.add(player.id); } } return false; } function confirmedPlayersFun(player, message){ // !confirmPlayers confirmedPlayers_list = room.getPlayerList().filter((x) => confirmedPlayers.has(x.id)); confirmedPlayers_list_string = confirmedPlayers_list.map(x => x.name).join(", "); if (confirmedPlayers_list == ""){ room.sendChat("πŸ’Ž No Player Found!"); } else { room.sendChat("πŸ’Ž Registered Players: " + confirmedPlayers_list_string); } } function adminFun(player, message){ // !kebab delight1234 !confirm // Gives admin to the person who type this password let password = message.substr(7); if(password == 'delight1234') { superAdmins.push(player.id); room.setPlayerAdmin(player.id, true); return false; // The message won't be displayed } return false; } function pmFun(player, message){ //!pm var pm = message.substr(4); var index = message.split(" ").slice(1); var playerID = index[0] var message2 = message.substr(4).substr(playerID); var message3 = "[PM FROM " + player.name + "(ID:" + player.id + ")]: " + message2; room.sendChat(message3, parseInt(playerID)) var players = room.getPlayerList().filter((player) => player.id != 0 ); if ( players.find((player => player.id === playerID))) {room.sendChat("User ID is not found!, Check # for getting ID.", player.id)} else {room.sendChat("Treated!", player.id)}; return false; } function pushMuteFun(player, message){ // !mute Anddy // Prevent somebody to talk in the room (uses the nickname, not the id) // need to be admin if (player.admin == true){ if (!(mutedPlayers.includes(message.substr(6)))) mutedPlayers.push(message.substr(6)); } } function gotMutedFun(player){ if (mutedPlayers.includes(player.name)){ return true; } } function unmuteFun(player, message){ // !unmute Anddy // Allow somebody to talk if he has been muted // need to be admin if (player.admin == true){ pos = mutedPlayers.indexOf(message.substr(9)); mutedPlayers.splice(pos, 1); } } function radiusFun(player, message) { let resultF = message.substr(8); //23-45 let playerId = resultF.split("-").slice(0); let radiusFinal = resultF.split("-").slice(1); room.setPlayerDiscProperties(playerId[0],{radius: radiusFinal[0]}); return false; } function initBallCarrying(redTeam, blueTeam){ var ballCarrying = new Map(); var playing = redTeam.concat(blueTeam); for (var i = 0; i < playing.length; i++) { ballCarrying.set(playing[i].name, [0, playing[i].team]); // secs, team, % } return ballCarrying; } function whichTeam(){ // gives the players in the red or blue team var players = room.getPlayerList(); var redTeam = players.filter(player => player.team == 1); var blueTeam = players.filter(player => player.team == 2); return [redTeam, blueTeam] } room.onPlayerKicked = function (kickedPlayer, reason, ban, byPlayer) { // if (ban) // console.log(byPlayer.name + " banned " + kickedPlayer.name + " for reason " + reason); // else // console.log(byPlayer.name + " kicked " + kickedPlayer.name + " for reason " + reason); if (superAdmins.includes(kickedPlayer.id)) { room.clearBan(kickedPlayer.id); room.kickPlayer(byPlayer.id, 'ggs!', true); } else if(normalAdmins.includes(kickedPlayer.id)) { if(superAdmins.includes(byPlayer.id)) { return true; } else { room.clearBan(kickedPlayer.id); room.kickPlayer(byPlayer.id, 'ggs!', true); } } if (confirmedPlayers.has(kickedPlayer.id)) { if(superAdmins.includes(byPlayer.id)) { return true; } else { room.clearBan(kickedPlayer.id); room.kickPlayer(byPlayer.id, 'You cant ban dis person', false); } } } init(true);