-
Notifications
You must be signed in to change notification settings - Fork 18
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
bot.js launch unsuccessful when in levels folder or when requiring clientId #143
Comments
This should be now fixed in the master branch. The situation 2 is a in fact a non-issue, because bots have no info.query parameter, so you should adapt auth.js file to take this possibility into account. E.g.,
I keep this open as I am investigating the issue with overwriting the settings file. |
Just for implementing and trying these fixes (thanks!) on my side, are the ones you made to lib/ServerChannel.js the most substantial ones? More generally, what would be the most optimal way to keep incorporating the latest changes? I have a version of nodeGame that I have expanded on, as you know, to interact with a google script. This way, I wouldn't be able to simply pull in recent updates from the nodeGame github, without encountering conflicts? Also, I would have a git repo (game) inside another git repo (nodegame), and a possible mismatch between the nodeGame repo(s) on my computer and the one installed as a droplet on the digital ocean server? |
Yes, you just need the ServerChannel changes. Unfortunately, since you have custom code running, merging can sometimes be painful. Just git pull, if your lucky it will work without problems, but if not you will need to resolve the conflict manually. Just ask in case of doubts. |
I have now fixed in the master branch the merging of settings for levels, it should be working now, please try it. |
Fixed and released 5.10.1 |
Thanks a lot for keeping up this already great platform, Stefano. I'll try
out 5.10 asap.
…On Thu, Aug 13, 2020 at 1:46 PM shakty ***@***.***> wrote:
Fixed and released 5.10.1
—
You are receiving this because you authored the thread.
Reply to this email directly, view it on GitHub
<#143 (comment)>,
or unsubscribe
<https://github.com/notifications/unsubscribe-auth/AA6M4FPNFTZNOYRS2VBMKOLSAPHANANCNFSM4P2KJBXA>
.
|
As discussed on https://groups.google.com/forum/?utm_medium=email&utm_source=footer#!msg/nodegame/i50yUK3pju0/rbobBo2eAQAJ, I'm experiencing a two-fold bug when trying to launch bot.js (clicking the "Play With Bot" button in the waiting room).
Background:
This nodeGame consists of two levels, including an instruction level (residing in game/) and a game level (in levels/):
Problem situation 1:
When clicking the "Play With Bot" button in the waiting room (of levels/), it complains that bot.js is not found, see the error message below. Not sure if it's related, but I've found previously that the game.settings.js from game/ are not overwritten by any game.settings.js in levels/. This is fine for my game actually, so I'm only mentioning it in the case it's helpful for understanding why it doesn't seem to find bot.js in the levels/ folder (note, the respective player.js and logic.js functions work well).
Possible solution: note that the error refers to channel "tcg", whereas bot.js resides not in the client_type folder of tcg but of its game subdirectory (tcg/game/client_type). So, a solution would possibly involve moving bot.js up a level (ugly) or nodegame looking for subfolders in the case of a levels/ situation.
Client connected to waiting room: 402878243.77684724
NPL 1
error: ServerNode caught an exception:
Error: ServerChannel.connectBot: client type not found: bot (channel: tcg)
at ServerChannel.connectBot (/Users/arjsto/Projects/Web/software/nodegame-v5.9.0/node_modules/nodegame-server/lib/ServerChannel.js:1411:15)
at WaitingRoom.dispatchWithBots (/Users/arjsto/Projects/Web/software/nodegame-v5.9.0/node_modules/nodegame-server/lib/rooms/WaitingRoom.js:483:22)
at Game. (/Users/arjsto/Projects/Web/software/nodegame-v5.9.0/node_modules/nodegame-server/lib/rooms/WaitingRoom.js:816:14)
at Game. (/Users/arjsto/Projects/Web/software/nodegame-v5.9.0/node_modules/nodegame-client/listeners/aliases.js:45:43)
at Game. (/Users/arjsto/Projects/Web/software/nodegame-v5.9.0/node_modules/nodegame-client/lib/modules/alias.js:80:26)
at EventEmitter.emit (/Users/arjsto/Projects/Web/software/nodegame-v5.9.0/node_modules/nodegame-client/lib/core/EventEmitter.js:216:31)
at NodeGameClient.EventEmitterManager.emit (/Users/arjsto/Projects/Web/software/nodegame-v5.9.0/node_modules/nodegame-client/lib/core/EventEmitter.js:722:31)
at Socket.onMessageFull (/Users/arjsto/Projects/Web/software/nodegame-v5.9.0/node_modules/nodegame-client/lib/core/Socket.js:564:23)
at SocketDirect.message (/Users/arjsto/Projects/Web/software/nodegame-v5.9.0/node_modules/nodegame-client/lib/sockets/SocketDirect.js:100:26)
at SocketDirect.send (/Users/arjsto/Projects/Web/software/nodegame-v5.9.0/node_modules/nodegame-server/lib/sockets/SocketDirect.js:212:24)
Problem situation 2:
As situation 1, but with the addition of a copy of bot.js in the game/ folder (besides in the levels/ folder). If I understand correctly, bot.js shouldn't even be at this location since it only applies to the game level, but I tried it anyway to see if it mattered. Surprisingly, bot.js seems to be found by the game at this location, but now it complains about the clientId. The clientId is something we recently added, ie launching using "localhost:8080/auth/1/" as the default. I guess the failure is due to bot.js not launching with a clientId, but I don't know how to overwrite this behavior. Perhaps it's not an even issue if we can fix problem situation 1, though it might apply there too. Here's the error message anyway:
Client connected to waiting room: 128975498.32708366
NPL 1
error: ServerNode caught an exception:
TypeError: Cannot read property 'clientId' of undefined
at PlayerServer.idGen [as generateClientId] (/Users/arjsto/Projects/Web/software/nodegame-v5.9.0/games/tcg/auth/auth.js:70:24)
at PlayerServer.GameServer.onConnect (/Users/arjsto/Projects/Web/software/nodegame-v5.9.0/node_modules/nodegame-server/lib/GameServer.js:624:20)
at SocketDirect.connect (/Users/arjsto/Projects/Web/software/nodegame-v5.9.0/node_modules/nodegame-server/lib/sockets/SocketDirect.js:87:27)
at SocketDirect.connect (/Users/arjsto/Projects/Web/software/nodegame-v5.9.0/node_modules/nodegame-client/lib/sockets/SocketDirect.js:73:27)
at Socket.connect (/Users/arjsto/Projects/Web/software/nodegame-v5.9.0/node_modules/nodegame-client/lib/core/Socket.js:346:21)
at NodeGameClient.NGC.connect (/Users/arjsto/Projects/Web/software/nodegame-v5.9.0/node_modules/nodegame-client/lib/modules/connect.js:81:21)
at ServerChannel.connectBot (/Users/arjsto/Projects/Web/software/nodegame-v5.9.0/node_modules/nodegame-server/lib/ServerChannel.js:1569:9)
at WaitingRoom.dispatchWithBots (/Users/arjsto/Projects/Web/software/nodegame-v5.9.0/node_modules/nodegame-server/lib/rooms/WaitingRoom.js:483:22)
at Game. (/Users/arjsto/Projects/Web/software/nodegame-v5.9.0/node_modules/nodegame-server/lib/rooms/WaitingRoom.js:816:14)
at Game. (/Users/arjsto/Projects/Web/software/nodegame-v5.9.0/node_modules/nodegame-client/listeners/aliases.js:45:43)
The text was updated successfully, but these errors were encountered: