Coder Social home page Coder Social logo

ringteki's People

Contributors

admanb avatar alex-whitney avatar artemmikhalitsin avatar cavnak avatar cdmayberry avatar codebaboon avatar cody1024d avatar cryogen avatar dahrasz avatar devofdisaster avatar duketax avatar gryffon avatar jeremylarner avatar johnwaltz avatar kwaice avatar marcsoiferman-cm avatar markjbyrne81 avatar matthew-griffith avatar noahtheduke avatar perley avatar peterh139 avatar saelvarath avatar sarendeli avatar snarkattack avatar syrail avatar the-outcast avatar xworkerbeex avatar ystros avatar zacchiro avatar zacharyp avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

ringteki's Issues

Alternative solutio to dealing with clicking of facedown cards

Instead of the game passing the uuid of facedown cards to the client, it passes their location. This shouldn't give any additional information to nefarious players, as they know the location of whatever they clicked.

It means changing the client side clicking function to pass uuid normally, or location when uuid is unknown (actually, passing both is probably easier and less likely to cause bugs), and then changing the click handler in Game and getting it to intercept locations and substitute the appropriate uuid.

Thoughts?

npm warnings about module version

Let's look into what it would take to get rid of these warnings:

npm WARN deprecated [email protected]: We're super 😸 excited that you're trying to use ES2015 syntax, but instead of making more yearly presets 😭 , Babel now has a better preset that we recommend you use instead: npm install babel-preset-env --save-dev. preset-env without options will compile ES2015+ down to ES5 just like using all the presets together and thus is more future proof. It also allows you to target specific browsers so that Babel can do less work and you can ship native ES2015+ to user 😎 ! We are also in the process of releasing v7, so please give http://babeljs.io/blog/2017/09/12/planning-for-7.0 a read and help test it out in beta! Thanks so much for using Babel 🙏, please give us a follow on Twitter @babeljs for news on Babel, join slack.babeljs.io for discussion/development and help support the project at opencollective.com/babel
npm WARN deprecated [email protected]: Package renamed to phantomjs-prebuilt. Please update 'phantomjs' package references to 'phantomjs-prebuilt'
npm WARN deprecated [email protected]: All versions below 4.0.1 of Nodemailer are deprecated. See https://nodemailer.com/status/
npm WARN deprecated [email protected]: ReDoS vulnerability parsing Set-Cookie https://nodesecurity.io/advisories/130
npm WARN deprecated [email protected]: Use uuid module instead

Fix display of fate count for rings

We have the ability to track fate on ring tokens, however, it ends up centering the display of said tokens, so it's not currently useful for an actual count.

This can be seen in-game by using the /add-fate-ring command, eg; /add-fate-ring air 1

Possible issue with game node #2

2017-09-21T05:38:16.158Z - error: TypeError: Cannot read property 'each' of undefined
at Player.moveCard (/home/debian/node-1/server/game/player.js:999:29)
at Player.drop (/home/debian/node-1/server/game/player.js:813:18)
at Game.drop (/home/debian/node-1/server/game/game.js:353:19)
at runAndCatchErrors (/home/debian/node-1/server/gamenode/gameserver.js:337:26)
at GameServer.runAndCatchErrors (/home/debian/node-1/server/gamenode/gameserver.js:116:13)
at GameServer.onGameMessage (/home/debian/node-1/server/gamenode/gameserver.js:336:14)
at Socket.onSocketEvent (/home/debian/node-1/server/socket.js:51:13)
at emitMany (events.js:146:13)
at Socket.emit (events.js:223:7)
at /home/debian/node-1/node_modules/socket.io/lib/socket.js:503:12
at _combinedTickCallback (internal/process/next_tick.js:131:7)
at process._tickDomainCallback (internal/process/next_tick.js:218:9)
/home/debian/node-1/node_modules/raven/lib/client.js:159
kwargs.user = extend({}, this._globalContext.user, domainContext.user, kwargs.user);
^

TypeError: Cannot read property 'user' of undefined
at Raven.process (/home/debian/node-1/node_modules/raven/lib/client.js:159:49)
at /home/debian/node-1/node_modules/raven/lib/client.js:255:12
at /home/debian/node-1/node_modules/raven/lib/parsers.js:52:5
at /home/debian/node-1/node_modules/raven/lib/utils.js:211:30
at FSReqWrap.readFileAfterClose [as oncomplete] (fs.js:504:3)

Possible issue with game node #1

2017-09-20T14:26:30.161Z - error: TypeError: context.source.play is not a function
at PlayCardAction.executeHandler (/home/debian/node-1/server/game/playcardaction.js:25:24)
at EventWindow.game.raiseEvent [as handler] (/home/debian/node-1/server/game/gamesteps/abilityresolver.js:130:30)
at EventWindow.executeHandler (/home/debian/node-1/server/game/gamesteps/eventwindow.js:84:18)
at SimpleStep.EventWindow.pipeline.initialise.SimpleStep [as continueFunc] (/home/debian/node-1/server/game/gamesteps/eventwindow.js:19:45)
at SimpleStep.continue (/home/debian/node-1/server/game/gamesteps/simplestep.js:10:21)
at GamePipeline.continue (/home/debian/node-1/server/game/gamepipeline.js:91:36)
at EventWindow.continue (/home/debian/node-1/server/game/gamesteps/eventwindow.js:46:38)
at GamePipeline.continue (/home/debian/node-1/server/game/gamepipeline.js:91:36)
at AbilityResolver.continue (/home/debian/node-1/server/game/gamesteps/abilityresolver.js:52:42)
at GamePipeline.continue (/home/debian/node-1/server/game/gamepipeline.js:91:36)
at DrawPhase.continue (/home/debian/node-1/server/game/gamesteps/phase.js:40:38)
at GamePipeline.continue (/home/debian/node-1/server/game/gamepipeline.js:91:36)
at Game.continue (/home/debian/node-1/server/game/game.js:866:31)
at runAndCatchErrors (/home/debian/node-1/server/gamenode/gameserver.js:339:26)
at GameServer.runAndCatchErrors (/home/debian/node-1/server/gamenode/gameserver.js:116:13)
at GameServer.onGameMessage (/home/debian/node-1/server/gamenode/gameserver.js:336:14)
at Socket.onSocketEvent (/home/debian/node-1/server/socket.js:51:13)
at emitTwo (events.js:125:13)
at Socket.emit (events.js:213:7)
at /home/debian/node-1/node_modules/socket.io/lib/socket.js:503:12
at _combinedTickCallback (internal/process/next_tick.js:131:7)
at process._tickDomainCallback (internal/process/next_tick.js:218:9)
/home/debian/node-1/node_modules/raven/lib/client.js:159
kwargs.user = extend({}, this._globalContext.user, domainContext.user, kwargs.user);
^

TypeError: Cannot read property 'user' of undefined
at Raven.process (/home/debian/node-1/node_modules/raven/lib/client.js:159:49)
at /home/debian/node-1/node_modules/raven/lib/client.js:255:12
at /home/debian/node-1/node_modules/raven/lib/parsers.js:52:5
at /home/debian/node-1/node_modules/raven/lib/utils.js:211:30
at FSReqWrap.readFileAfterClose [as oncomplete] (fs.js:504:3)

jigoku.online is down

When trying to access jigoku.online, I get a DreamHost error page with the following text:

Site Not Found

Well, this is awkward. The site you're looking for is not here.

Is this your site? Get more info or contact support.

Possible issue with server #5

/home/debian/ringteki/server/lobby.js:121
return user.name.toLowerCase();
^

TypeError: Cannot read property 'toLowerCase' of undefined
at .sortBy.user (/home/debian/ringteki/server/lobby.js:121:29)
at /home/debian/ringteki/node_modules/underscore/underscore.js:380:19
at Function.
.map..collect (/home/debian/ringteki/node_modules/underscore/underscore.js:172:24)
at Function.
.sortBy (/home/debian/ringteki/node_modules/underscore/underscore.js:376:22)
at Lobby.getUserList (/home/debian/ringteki/server/lobby.js:120:22)
at Lobby.broadcastUserList (/home/debian/ringteki/server/lobby.js:182:45)
at Lobby.onAuthenticated (/home/debian/ringteki/server/lobby.js:260:14)
at emitTwo (events.js:125:13)
at Socket.emit (events.js:213:7)
at jwt.verify (/home/debian/ringteki/server/socket.js:67:18)
at /home/debian/ringteki/node_modules/jsonwebtoken/verify.js:27:18
at _combinedTickCallback (internal/process/next_tick.js:131:7)
at process._tickDomainCallback (internal/process/next_tick.js:218:9)

Possible issue with server #1

Just trying to debug some of the things we're seeing with the server

Error: listen EACCES 0.0.0.0:80
at Object._errnoException (util.js:1041:11)
at _exceptionWithHostPort (util.js:1064:20)
at Server.setupListenHandle [as _listen2] (net.js:1305:19)
at listenInCluster (net.js:1370:12)
at doListen (net.js:1492:7)
at _combinedTickCallback (internal/process/next_tick.js:141:11)
at process._tickDomainCallback (internal/process/next_tick.js:218:9)
at Function.Module.runMain (module.js:611:11)
at startup (bootstrap_node.js:158:16)
at bootstrap_node.js:598:3

Possible issue with server #2

Error: Argument passed in must be a single String of 12 bytes or a string of 24 hex characters
at Function.createFromHexString (/home/debian/ringteki/node_modules/bson/lib/bson/objectid.js:289:11)
at /home/debian/ringteki/server/api/decks.js:17:56
at Layer.handle [as handle_request] (/home/debian/ringteki/node_modules/express/lib/router/layer.js:95:5)
at next (/home/debian/ringteki/node_modules/express/lib/router/route.js:137:13)
at Route.dispatch (/home/debian/ringteki/node_modules/express/lib/router/route.js:112:3)
at Layer.handle [as handle_request] (/home/debian/ringteki/node_modules/express/lib/router/layer.js:95:5)
at /home/debian/ringteki/node_modules/express/lib/router/index.js:281:22
at param (/home/debian/ringteki/node_modules/express/lib/router/index.js:354:14)
at param (/home/debian/ringteki/node_modules/express/lib/router/index.js:365:14)
at Function.process_params (/home/debian/ringteki/node_modules/express/lib/router/index.js:410:3)
at next (/home/debian/ringteki/node_modules/express/lib/router/index.js:275:10)
at urlencodedParser (/home/debian/ringteki/node_modules/body-parser/lib/types/urlencoded.js:91:7)
at Layer.handle [as handle_request] (/home/debian/ringteki/node_modules/express/lib/router/layer.js:95:5)
at trim_prefix (/home/debian/ringteki/node_modules/express/lib/router/index.js:317:13)
at /home/debian/ringteki/node_modules/express/lib/router/index.js:284:7
at Function.process_params (/home/debian/ringteki/node_modules/express/lib/router/index.js:335:12)
at next (/home/debian/ringteki/node_modules/express/lib/router/index.js:275:10)
at jsonParser (/home/debian/ringteki/node_modules/body-parser/lib/types/json.js:103:7)
at Layer.handle [as handle_request] (/home/debian/ringteki/node_modules/express/lib/router/layer.js:95:5)
at trim_prefix (/home/debian/ringteki/node_modules/express/lib/router/index.js:317:13)
at /home/debian/ringteki/node_modules/express/lib/router/index.js:284:7
at Function.process_params (/home/debian/ringteki/node_modules/express/lib/router/index.js:335:12)
at next (/home/debian/ringteki/node_modules/express/lib/router/index.js:275:10)
at cookieParser (/home/debian/ringteki/node_modules/cookie-parser/index.js:70:5)
at Layer.handle [as handle_request] (/home/debian/ringteki/node_modules/express/lib/router/layer.js:95:5)
at trim_prefix (/home/debian/ringteki/node_modules/express/lib/router/index.js:317:13)
at /home/debian/ringteki/node_modules/express/lib/router/index.js:284:7
at Function.process_params (/home/debian/ringteki/node_modules/express/lib/router/index.js:335:12)
at next (/home/debian/ringteki/node_modules/express/lib/router/index.js:275:10)
at SessionStrategy.strategy.pass (/home/debian/ringteki/node_modules/passport/lib/middleware/authenticate.js:325:9)
at /home/debian/ringteki/node_modules/passport/lib/strategies/session.js:65:12
at pass (/home/debian/ringteki/node_modules/passport/lib/authenticator.js:327:31)
at deserialized (/home/debian/ringteki/node_modules/passport/lib/authenticator.js:339:7)
at userService.getUserById.then.user (/home/debian/ringteki/server/server.js:193:17)
at
at process._tickDomainCallback (internal/process/next_tick.js:228:7)

Possible issue with server #3

/home/debian/ringteki/node_modules/config/lib/config.js:925
throw new Error("Cannot parse config file: '" + fullFilename + "': " + e3);
^

Error: Cannot parse config file: '/home/debian/ringteki/config/default.json5': SyntaxError: Expected '}' instead of 'c'
at Config.util.parseFile (/home/debian/ringteki/node_modules/config/lib/config.js:925:11)
at /home/debian/ringteki/node_modules/config/lib/config.js:696:28
at Array.forEach ()
at /home/debian/ringteki/node_modules/config/lib/config.js:692:14
at Array.forEach ()
at Config.util.loadFileConfigs (/home/debian/ringteki/node_modules/config/lib/config.js:691:13)
at new Config (/home/debian/ringteki/node_modules/config/lib/config.js:122:27)
at Object. (/home/debian/ringteki/node_modules/config/lib/config.js:1749:31)
at Module._compile (module.js:573:30)
at Object.Module._extensions..js (module.js:584:10)
at Module.load (module.js:507:32)
at tryModuleLoad (module.js:470:12)
at Function.Module._load (module.js:462:3)
at Module.require (module.js:517:17)
at require (internal/module.js:11:18)
at Object. (/home/debian/ringteki/server/server.js:7:16)

Unit Tests are currently a horrible mess

The unit tests desperately need to be cleaned up.

  • Need to remove old tests that no longer apply.
  • Need to create new tests for the added code.

This will be very beneficial, in that the CI results will actually become more meaningful.

Consistency Issues In Card Data

Going though the Going through the tests, I'm finding some consistency issues in where the correct data for certain card attributes is located. For example, in drawcard.getsummary.spec.js, the test thinks that setting the card's 'militaryskill' attribute is correct, but getSummary() actually uses an attribute that is part of 'cardData', which is itself an attribute of the original card.

It doesn't really matter either way, but which one of those do we want to be correct? I'm honestly a big fan of never using the cardData attribute for anything once the card has been initialized, but it's a big enough change I want to give people a chance to weigh in.

Cannot bow stronghold

The stronghold is currently unable to be bowed. It likely needs the onClick for the Province type updated.

Need to re-work setup phase to be more technically correct.

While we are currently doing all of the actions required of setup, some of them are not happening int he correct order.

Posting "Setup" from the RRG for easy reference:

Setup
To set up a game, perform the following steps in order:

  1. Select decks. Each player selects a deck using the
    deckbuilding rules. See “Deckbuilding” on page 5.
  2. Create token bank and unclaimed ring pool. Place all fate
    tokens, honor tokens, status tokens, and the Imperial Favor
    in a pile within reach of each player. This area is known as
    the token bank. Place the rings near the token bank. This
    area is known as the unclaimed ring pool.
  3. Determine first player. Randomly select a player. That
    player will be the first player. Place the first player token in
    front of this player. The player that is not randomly selected
    to be the first player gains 1 fate from the general token
    pool and adds it to their fate pool.
  4. Shuffle dynasty and conflict decks. Each player shuffles
    both their dynasty and conflict decks separately and
    presents them to the opponent for additional shuffling and/
    or a final cut. Then each player places their dynasty deck to
    the left of their play area and their conflict deck to the right.
  5. Place provinces and stronghold. In player order, each
    player secretly selects one of their provinces, places it
    facedown above their dynasty deck, and places their
    stronghold card on top of it. If a player is using a role card,
    it is placed next to his or her stronghold during this step.
    Each player then places their other four provinces facedown
    between their dynasty and conflict decks, in any order.
  6. Fill provinces. Each player places a card from the top of
    their dynasty deck facedown onto each of their empty nonstronghold
    provinces. In player order, each player has one
    opportunity to look at each of his or her cards placed in this
    manner and mulligan any number of them.
    h Note: After this step, a player may not look at facedown
    cards in his or her provinces.
  7. Draw starting hand. Each player draws 4 cards from
    their conflict deck. In player order, each player has one
    opportunity to mulligan any number of these cards.
  8. Gain starting honor. Each player gains honor tokens equal
    to the honor value on their stronghold.
    The game is now ready to begin.

Of note;

  • the drawing of the initial hand needs to be moved to between the two mulligan steps.
  • starting honor is given earlier in the code, than is dictated by the rules, probably just pedantry, but should be easy enough to move.

Possible issue with server #4

ReferenceError: _ is not defined
at app.get (/home/debian/ringteki/server/server.js:119:28)
at Layer.handle [as handle_request] (/home/debian/ringteki/node_modules/express/lib/router/layer.js:95:5)
at next (/home/debian/ringteki/node_modules/express/lib/router/route.js:137:13)
at Route.dispatch (/home/debian/ringteki/node_modules/express/lib/router/route.js:112:3)
at Layer.handle [as handle_request] (/home/debian/ringteki/node_modules/express/lib/router/layer.js:95:5)
at /home/debian/ringteki/node_modules/express/lib/router/index.js:281:22
at param (/home/debian/ringteki/node_modules/express/lib/router/index.js:354:14)
at param (/home/debian/ringteki/node_modules/express/lib/router/index.js:365:14)
at Function.process_params (/home/debian/ringteki/node_modules/express/lib/router/index.js:410:3)
at next (/home/debian/ringteki/node_modules/express/lib/router/index.js:275:10)
at middleware (/home/debian/ringteki/node_modules/webpack-hot-middleware/middleware.js:26:48)
at Layer.handle [as handle_request] (/home/debian/ringteki/node_modules/express/lib/router/layer.js:95:5)
at trim_prefix (/home/debian/ringteki/node_modules/express/lib/router/index.js:317:13)
at /home/debian/ringteki/node_modules/express/lib/router/index.js:284:7
at Function.process_params (/home/debian/ringteki/node_modules/express/lib/router/index.js:335:12)
at next (/home/debian/ringteki/node_modules/express/lib/router/index.js:275:10)
at goNext (/home/debian/ringteki/node_modules/webpack-dev-middleware/middleware.js:27:49)
at processRequest (/home/debian/ringteki/node_modules/webpack-dev-middleware/middleware.js:66:21)
at continueBecauseBundleAvailable (/home/debian/ringteki/node_modules/webpack-dev-middleware/lib/Shared.js:139:6)
at Array.forEach ()
at /home/debian/ringteki/node_modules/webpack-dev-middleware/lib/Shared.js:138:9
at _combinedTickCallback (internal/process/next_tick.js:131:7)
at process._tickDomainCallback (internal/process/next_tick.js:218:9)
ReferenceError: _ is not defined
at app.get (/home/debian/ringteki/server/server.js:119:28)
at Layer.handle [as handle_request] (/home/debian/ringteki/node_modules/express/lib/router/layer.js:95:5)
at next (/home/debian/ringteki/node_modules/express/lib/router/route.js:137:13)
at Route.dispatch (/home/debian/ringteki/node_modules/express/lib/router/route.js:112:3)
at Layer.handle [as handle_request] (/home/debian/ringteki/node_modules/express/lib/router/layer.js:95:5)
at /home/debian/ringteki/node_modules/express/lib/router/index.js:281:22
at param (/home/debian/ringteki/node_modules/express/lib/router/index.js:354:14)
at param (/home/debian/ringteki/node_modules/express/lib/router/index.js:365:14)
at Function.process_params (/home/debian/ringteki/node_modules/express/lib/router/index.js:410:3)
at next (/home/debian/ringteki/node_modules/express/lib/router/index.js:275:10)
at middleware (/home/debian/ringteki/node_modules/webpack-hot-middleware/middleware.js:26:48)
at Layer.handle [as handle_request] (/home/debian/ringteki/node_modules/express/lib/router/layer.js:95:5)
at trim_prefix (/home/debian/ringteki/node_modules/express/lib/router/index.js:317:13)
at /home/debian/ringteki/node_modules/express/lib/router/index.js:284:7
at Function.process_params (/home/debian/ringteki/node_modules/express/lib/router/index.js:335:12)
at next (/home/debian/ringteki/node_modules/express/lib/router/index.js:275:10)
at middleware (/home/debian/ringteki/node_modules/webpack-hot-middleware/middleware.js:26:48)
at Layer.handle [as handle_request] (/home/debian/ringteki/node_modules/express/lib/router/layer.js:95:5)
at trim_prefix (/home/debian/ringteki/node_modules/express/lib/router/index.js:317:13)
at /home/debian/ringteki/node_modules/express/lib/router/index.js:284:7
at Function.process_params (/home/debian/ringteki/node_modules/express/lib/router/index.js:335:12)
at next (/home/debian/ringteki/node_modules/express/lib/router/index.js:275:10)
at goNext (/home/debian/ringteki/node_modules/webpack-dev-middleware/middleware.js:27:49)
at processRequest (/home/debian/ringteki/node_modules/webpack-dev-middleware/middleware.js:66:21)
at continueBecauseBundleAvailable (/home/debian/ringteki/node_modules/webpack-dev-middleware/lib/Shared.js:139:6)
at Array.forEach ()
at /home/debian/ringteki/node_modules/webpack-dev-middleware/lib/Shared.js:138:9
at _combinedTickCallback (internal/process/next_tick.js:131:7)
at process._tickDomainCallback (internal/process/next_tick.js:218:9)

Deck Validation Checker can't find stronghold

Deckbuilder complains about invalid cards. Not familiar with _.js but _.each syntax, but based on chrome debugger; check should be for card.card.type. Deck will return a card object, which then has card attribute, which then has a type attribute.

Suggest changing the iterator variable, to something else to avoid confusion.

client\deck-validator.js
`
var stronghold = getStronghold(deck.stronghold);

function getStronghold(deck) {
var stronghold;
_.each(deck, card => {
if(card.type === 'stronghold') {
stronghold = card;
}
});

return stronghold;

}
`

Another section of code has the correct addressing
//Ensure one province of each element _.each(deck.provinceCards, card => { if(card.card.element === 'air') {

Chat breaks as soon as you put a card into play

Dragging a card into play from your hand or either deck, or completing setup and clicking a card in a province breaks the chat box, and stops players sending messages, or game generated messages from appearing.

Seeing a lot of disconnects/reconnects during gameplay

timeout
2017-09-20T22:29:18.593Z - info: user 'Sideshow' disconnected from a game: ping timeout
2017-09-20T22:29:18.861Z - info: user 'Sideshow' disconnected from a game: ping timeout
2017-09-20T22:29:43.492Z - info: user 'Sideshow' reconnected to game
2017-09-20T22:30:35.239Z - info: No game for Jadiel disconnecting
2017-09-20T22:30:38.491Z - info: user 'Sideshow' disconnected from a game: ping timeout
2017-09-20T22:30:38.930Z - info: user 'Sideshow' disconnected from a game: ping timeout
2017-09-20T22:30:39.436Z - info: user 'Sideshow' disconnected from a game: ping timeout

Missing an action window between conflicts

I do not know if it is intended, but the game immediately moves to graying out the screen and ring selection after a player selects whether to resolve a ring. It seems very confusing to zoom past the pre-conflict action window between every conflict since there was one given right after the draw phase.

Possible issue with server #6

2017-09-20T23:43:50.958Z - info: TypeError: Cannot read property 'disableGravatar' of undefined
at _.reduce (/home/debian/ringteki/server/game/gamechat.js:28:101)
at iterator (/home/debian/ringteki/node_modules/underscore/underscore.js:184:16)
at Function. (/home/debian/ringteki/node_modules/underscore/underscore.js:199:14)
at GameChat.addMessage (/home/debian/ringteki/server/game/gamechat.js:22:18)
at PendingGame.addMessage (/home/debian/ringteki/server/pendinggame.js:62:23)
at PendingGame.chat (/home/debian/ringteki/server/pendinggame.js:210:14)
at Lobby.onPendingGameChat (/home/debian/ringteki/server/lobby.js:426:14)
at Socket.onSocketEvent (/home/debian/ringteki/server/socket.js:51:13)
at emitOne (events.js:115:13)
at Socket.emit (events.js:210:7)
at /home/debian/ringteki/node_modules/socket.io/lib/socket.js:503:12
at _combinedTickCallback (internal/process/next_tick.js:131:7)
at process._tickDomainCallback (internal/process/next_tick.js:218:9)
/home/debian/ringteki/node_modules/raven/lib/client.js:159
kwargs.user = extend({}, this._globalContext.user, domainContext.user, kwargs.user);
^

TypeError: Cannot read property 'user' of undefined
at Raven.process (/home/debian/ringteki/node_modules/raven/lib/client.js:159:49)
at /home/debian/ringteki/node_modules/raven/lib/client.js:255:12
at /home/debian/ringteki/node_modules/raven/lib/parsers.js:52:5
at /home/debian/ringteki/node_modules/raven/lib/utils.js:211:30
at FSReqWrap.readFileAfterClose [as oncomplete] (fs.js:504:3)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.