@@ -44,15 +44,18 @@ server.listen(port, function () {
4444 return console . log ( `Server is running on \x1b[34m*:${ port } \x1b[0m` ) ;
4545} ) ;
4646
47- var botByNick = { } ;
47+ var botByNick = new Map ( ) ;
4848
4949wss . on ( "connection" , ( socket , req ) => {
5050 const emit = ( type , ...data ) => {
5151 socket . send ( encode ( [ type , ...data ] ) ) ;
5252 } ;
53-
5453 const query = qs . parse ( req . url . substr ( 1 ) , { ignoreQueryPrefix : true } ) ;
5554
55+ if ( botByNick . get ( query . nick ) !== undefined ) {
56+ emit ( "alreadyPlaying" ) ;
57+ return ;
58+ }
5659 console . log ( `[\x1b[32m+\x1b[0m] ${ query . nick } ` ) ;
5760 var heldItem = null ;
5861 var bot = mineflayer . createBot ( {
@@ -62,7 +65,7 @@ wss.on("connection", (socket, req) => {
6265 version : version ,
6366 password : query . premium === "true" ? query . password : undefined ,
6467 } ) ;
65- botByNick [ query . nick ] = bot ;
68+ botByNick . set ( query . nick , bot ) ;
6669 bot . _client . on ( "map_chunk" , function ( packet ) {
6770 var cell = new Chunk ( ) ;
6871 cell . load ( packet . chunkData , packet . bitMap , true , true ) ;
@@ -220,6 +223,7 @@ wss.on("connection", (socket, req) => {
220223 try {
221224 clearInterval ( interval ) ;
222225 console . log ( `[\x1b[31m-\x1b[0m] ${ query . nick } ` ) ;
226+ botByNick . delete ( query . nick ) ;
223227 bot . end ( ) ;
224228 } catch ( error ) { }
225229 } ) ;
0 commit comments