Commit Graph

48 Commits

Author SHA1 Message Date
Andy Janata 1e3351a23b Show more permalinks to users.
When users connect (or reload the page), show a permalink to that session's games as well as a permalink to their entire play history, if they haven't opted out of that tracking. When a game starts, or a player/specator joins a game in progress, show a permalink to that game's rounds.

The "when a game starts" bit required removing the tracking of the 'dealing' state, as there was no other easy way to determine that a game was starting. Nothing actually used that dealing state, so it was harmless to remove. Now, a transition from lobby to playing can be detected as a game start, as opposed to a transition from round over to playing.
2018-05-30 12:22:57 -07:00
Andy Janata b20562d6da Add a crude scrollbar to user preferences and game list filters.
This is done with even more dumb on-resize handling. Tested lightly in Chrome, Edge, and IE, and it seemed to work well enough.

Helps #93, though I don't want to use the f-word just yet.
2018-03-09 10:14:51 -08:00
Andy Janata f7378e0d42 Show the /whois result in the window it was typed in. 2018-03-06 00:30:04 -08:00
Andy Janata e1578532e3 Add a /whois command.
Cleaned up some synchronization around ConnectedUsers.users while I was in there. The list itself wasn't synchronized, which could have been a slight problem.
2018-03-06 00:15:05 -08:00
Andy Janata 7a24c652ac Add ID codes for positive user identification, and minor fixups.
Users can specify an identification code when they connect (8-100 characters), only if they are using HTTPS. This code is combined with their nickname and a server-side secret, hashed with SHA-256, and condensed down to 64 bits by XORing every 8th byte with each other, and finally converted to base64 (with the trailing = removed). This code is displayed in a tooltip when hovering over the user's chat (TODO: mobile way to view it).

Sigils have been added to be displayed before the user's name in the chat. Admins get @, users with an ID code get +, and normal users get nothing. The IS_ADMIN field is now deprecated, as this can be determined from the user's sigil. It will be removed eventually, but is still being included in events even though the official client should not be using it anymore.

Kicks and bans are now always displayed to all users, even if the server isn't transmitting quit events normally.
2018-03-02 17:30:59 -08:00
Andy Janata dc31b1f2ce Fix not focusing the nickname box on page load. 2018-03-02 14:28:28 -08:00
Andy Janata 72b4cd9b8b Add persistent IDs to users, stored via cookie (opt-out availabled).
Fix removing cookies.
Add per-server instance unique IDs for games and users, which will not collide between servers or when servers restart.
Add GeoIP capability.
Add beginning of framework for logging card plays.
2017-02-20 21:35:44 -08:00
Andy Janata 05239299e3 Initial Cardcast UI, with chat commands. Javascript formatter stuff in the project. 2014-08-10 22:16:15 -07:00
Andy Janata be7768e03b Refactor preferences code out to its own file. Add game list filters, allowing users to ban and require card sets for a game to be in their game list. 2014-01-26 23:22:37 -08:00
Andy Janata ef4c172fca add cookie domain to pyx.properties so all servers can share the same cookie 2013-11-30 22:35:53 -08:00
Andy Janata 3ecb4f59a6 Merge branch 'score-cmd' of https://github.com/uecasm/PretendYoureXyzzy into uecasm-score-cmd 2013-11-30 05:04:09 +00:00
Andy Janata 76959c3b2a refactor emote code to have withEmote in one place. 2013-11-30 04:54:56 +00:00
Andy Janata b679412cb0 Merge branch 'emotes' of https://github.com/uecasm/PretendYoureXyzzy into uecasm-emotes 2013-11-30 04:52:29 +00:00
Andy Janata d334abccdc formatting; change /hand to /sync 2013-11-29 03:52:19 +00:00
uecasm da52328828 Merge branch 'upstream' into emotes 2013-11-21 22:57:25 +13:00
uecasm 249a308b5b Add "score" command, which can be used by any user to view the current score of any other user (even across games). Also allows admins to modify a user's current score, which can be useful on private servers where admins are playing and can "repair" a score if someone gets disconnected or kicked accidentally. 2013-11-15 23:27:30 +13:00
uecasm 5da2e97f53 Add /hand command to resync hand 2013-11-15 00:14:22 +13:00
Andy Janata 844ce99cdb Update the URL bar with a deeplink to the current game, and process these deeplinks when the app loads. Fixes #30. 2013-11-11 03:22:54 +00:00
uecasm 2a6b81e4dd Add /me command to support emotes. 2013-10-03 00:28:16 +13:00
Andy Janata 014258fcf2 don't refresh game list if the browser tab/window isn't active, and refresh immediately when it becomes active if an update was missed 2013-04-28 10:11:28 -07:00
Andy Janata c662bf954d admins can send chat to all connected users 2013-03-26 20:17:49 -07:00
Andy Janata 300e7e09b7 Fix up per-game chats so global chat still works. Fix graphical glitch with game chat tab. Make enter work in game chat box. Clear game chat log when joinging game. 2013-02-24 18:47:05 -08:00
Matt Mullins 9cbd699109 Display Per-game chat messages in the correct tab
Errors are displayed in all chat tabs, including the global chat and
all in-game chats.
2013-02-24 17:48:49 -08:00
Andy Janata b74aed03c1 make per-game chats resize with the window like global chat. 2013-02-23 14:32:00 -08:00
Matt Mullins 3183af0a45 Add generalized arguments to chatsubmit_click
These parameters are used as a closure, so that the generated handler knows
which game it is attached to.

Signed-off-by: Matt Mullins <mmullins@mmlx.us>
2013-02-23 14:18:18 -08:00
Matt Mullins 7b74529a2b Refactor chat button click-handler to be a closure.
This will support having multiple handlers, one per game, in the future.

Signed-off-by: Matt Mullins <mmullins@mmlx.us>
2013-02-23 14:18:13 -08:00
Matt Mullins 9594b542f6 Replace id= with class= for the chat panel.
This is in preparation to support multiple tabs, which will provide a
separate chat tab per running game.

Signed-off-by: Matt Mullins <mmullins@mmlx.us>
2013-02-23 14:18:07 -08:00
Andy Janata 22156e90ac add tabs, move user preferences to a tab, and fix the chat ui to fit the tab. it gets very bad at small window sizes though 2012-10-15 20:23:37 -07:00
Andy Janata de331e738a - User preferences. Can turn off (dis)connect messages except for kicks/bans (fixes #9), and can ignore chat from specific users (except admins). Also remembers the user's name. All of these are stored in js cookies.
- Update jQuery and jQuery Cookie plugin, and add jQuery UI.
2012-10-11 21:18:40 -07:00
Andy Janata 7fccd69b15 Kicks and bans.
Admin chat in blue.
Chat commands (/names, /kick, /ban to start).
Close Hibernate session after loading card sets when a user connects -- Oops!
Games have their own Hibernate session for their duration, and this is used instead of a per-request session for loading card sets when changing options.
Fix changing game options without having a card set selected.
2012-08-20 22:41:06 -07:00
Andy Janata 5fa3bf5ece confirm logging out 2012-03-15 13:50:24 -07:00
Andy Janata 2e0168e7ce Cards Against Humanity -> Pretend You're Xyzzy 2012-03-15 10:14:32 -07:00
Andy Janata 2d42710270 don't send blank chats to the server 2012-03-12 19:49:36 -07:00
Andy Janata 88b68c87b6 comment ALL the files! 2012-02-06 14:00:24 -08:00
Andy Janata 4d5fddd293 add 2-clause bsd-style license to source files 2012-02-02 14:47:23 -08:00
Andy Janata 6cdb68efc2 - "points" -> "Awesome Points"
- move divs around and mess with the styling and js to make vertical resizing, and resizing of the chat in general, work
2012-01-30 00:35:27 -08:00
Andy Janata 6ed6bdb365 resize hand cards when resizing window.
fix font being fucking huge in firefox.
2012-01-25 00:03:41 -08:00
Andy Janata 3253be9530 comment out bad browser warning 2012-01-23 23:04:14 -08:00
Andy Janata 2f2d683384 fix card zoom in firefox and opera, and display a message that this looks better in chrome for those browsers the first time the page loads 2012-01-23 19:14:29 -08:00
Andy Janata 109a58444a don't sanitize chat, instead use a text element to display chat and log messages 2012-01-22 23:54:58 -08:00
Andy Janata 577586139e - escape html in chat on client and server
- rework how the gamelist was shown
2012-01-20 14:55:08 -08:00
Andy Janata 979a9c4123 - create games
- list games
  - automatically refreshes list when game is created or destroyed
  - destroy games after removing all players (including at logout)
2012-01-17 21:58:09 -08:00
Andy Janata 79f2f59716 - add game list ajax call
- skeleton for game lobby list
- fix ajax handlers to use the constants instead of literals for the ops
2012-01-17 17:48:21 -08:00
Andy Janata 8da78ebac7 move MessageType back inside QueuedMessage since the client doesn't need it
make converter to produce js enums out of java enums
make everything use the constants on both sides for ajax operation code and disconnect reason
move the handler update out of the subpackage that it generates into
make the enum update and handler update run at build
2012-01-12 20:05:39 -08:00
Andy Janata 9e8c46ec2f make ajax requests come from a builder to work on removing constant strings 2012-01-12 14:25:04 -08:00
Andy Janata 9508575949 log out button 2012-01-06 15:53:04 -08:00
Andy Janata 0183ca5357 - change register error message only showing up once instead of repeating every time you try and get an error. it probably should blank when you start typing again though
- pull the long polling handlers out to their own file like the ajax response handlers
- chat
2011-12-24 19:37:45 -08:00
Andy Janata 87c77993af refactor the js code into several files. need to further refactor the ajax handlers, and make the server automatically assemble the list of files the client needs.
some sort of dependency ordering needs enforced too.
2011-12-22 18:48:20 -08:00