Commit Graph

432 Commits

Author SHA1 Message Date
Andy Janata 972229aa17 Reshuffle the correct deck when out of black cards. This has caused a StackOverflowException. 2012-11-09 21:11:39 -08:00
Andy Janata 9c65662997 Don't wait for queued messages if the timeout is negative. This requires a very close timing of when it thinks it should do another loop and when it actually does the loop. Fixes #14. 2012-11-09 19:55:15 -08:00
Andy Janata aa7b199bdb lock around Game.cardSets, as this was causing concurrent modification exceptions. It would be ideal to allow concurrent reads and just require an exclusive write, but that is an excerise for later. Fixes #21. 2012-11-09 19:40:22 -08:00
Andy Janata c66ffa6e1f Now fix the chat box font. 2012-10-27 08:51:12 -07:00
Andy Janata 11a343eb75 I hate CSS. "Fix" the game hand display. Not sure why it got broken, had to be related to using tabs. 2012-10-27 08:50:07 -07:00
Andy Janata f294f3b64a Reorganize a bit of code in Game.start() to try to avoid a deadlock (see #23). I think this should fix it but I haven't tested it yet. 2012-10-17 23:36:37 -07: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 54974836c8 I don't like editing library files I'm pulling from elsewhere, but those JS errors in Eclipse were getting annoying. 2012-10-13 13:48:57 -07:00
Andy Janata 63b8f3eaaf Player and score limit options dynamically generated. Allow up to 69 point score goal. 2012-10-11 21:40:41 -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 15d94735e7 Use lower-case version of nickname as key into users map, to allow for case-insensitivity of nicknames. Fixes #19. 2012-10-11 20:09:56 -07:00
Andy Janata c6c6feb49f Display non-passworded games before passworded games. Fixes #20. 2012-10-11 20:05:06 -07:00
Andy Janata 842598fd46 Fix name of JavascriptConfigServlet 2012-10-11 19:51:46 -07:00
Andy Janata 3b454c4552 Generate cah.config.js via a Servlet. Idea from d4472c1238/src/net/socialgamer/cah/servlets/JavascriptConfig.java 2012-10-11 19:49:16 -07:00
Andy Janata 68998c3244 Remove defunct TestServlet from web.xml. 2012-10-11 19:31:31 -07:00
Andy Janata b0b1f5fbf2 Fix @Nullable annotations. 2012-10-11 19:31:17 -07:00
Andy Janata ec1e85ec5d Check X-Forwarded-For on the admin pages. Fixes #22. 2012-10-01 20:12:14 -07:00
Andy Janata bd9741e5bd re-do the db dump without reading from stdin 2012-09-25 18:37:00 -07:00
Andy Janata 7e0f36ee87 X-Forwarded-For actually needs to return the first IP address in that header. Shouldn't affect my deployment, though, but worth fixing. 2012-09-22 18:45:42 -07:00
Andy Janata 3533471d27 X-Forwarded-For support 2012-09-22 18:43:30 -07:00
Andy Janata b57ee2de7e add google analytics. why did I wait so long? 2012-09-22 07:51:23 -07:00
Andy Janata 98ea63d26b update db dump with second expansion 2012-09-09 22:09:27 -07:00
Andy Janata 86703070ec show brief welcome banner on nickbox screen 2012-09-09 22:08:24 -07:00
Andy Janata 554510ea3a fix addcard 2012-09-09 22:08:06 -07:00
Andy Janata 38224cf81a Chat flood protection. Limits users to 5 messages per 15 seconds currently. 2012-08-28 23:00:47 -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 69ec34e072 Allow up to 20 players per game. 2012-08-20 22:39:06 -07:00
Andy Janata 90788982c0 chat messages from admin users show up in blue. admins are defined by IP address for now. 2012-08-20 20:03:52 -07:00
Andy Janata 06e8ea4a07 Add cleanUp method to Handler base class, and call it from AjaxServlet. cleanUp uses reflection to inspect the impl instance for fields of type Session (Hibernate), and if one is found, attempts to close the Session if it was not already closed. 2012-07-14 15:06:36 -07:00
Andy Janata 7e577add21 close hibernate Session in addcard and cardsets 2012-07-14 15:04:11 -07:00
Andy Janata 2dbdc1c2c7 index changelog 2012-07-07 15:06:15 -07:00
Andy Janata 7cf9413861 - add card set support to the game itself
- add watermark field to cards to indicate what to display over the logo
- display said watermark
2012-07-07 15:01:33 -07:00
Andy Janata b5911f564b update sql to create database 2012-07-07 14:59:37 -07:00
Andy Janata 7f8c2f9dbf fix eclipse warning 2012-07-07 14:05:44 -07:00
Andy Janata 5bba53ef7d client parses CardSet data the server sends it when connecting 2012-07-07 10:48:22 -07:00
Andy Janata c2953d250c add some javadoc locations to classpath 2012-07-07 10:21:32 -07:00
Andy Janata 973f18ea80 return list of card sets during first load 2012-07-07 10:21:14 -07:00
Andy Janata e3d6958107 make Hibernate Session injectable 2012-07-07 10:19:47 -07:00
Andy Janata 9f57d3ad94 add "base deck" option to CardSet 2012-07-07 10:19:25 -07:00
Andy Janata 8d3a393de3 card sets, and a way to edit them 2012-07-01 23:55:12 -07:00
Andy Janata 9ef0d0eae0 page to add new cards, and let somebody else's IP address in since he was helping 2012-07-01 23:54:53 -07:00
Andy Janata e01359df45 don't pull in the new cards that aren't in v1 or v2, oops 2012-07-01 23:54:29 -07:00
Andy Janata b06ad5d5d5 fix z-order on Confirm button to always be on top 2012-07-01 23:52:52 -07:00
Andy Janata 269fd5b20a remove bit about the chat log not working right in opera, because I just fixed it (derp) 2012-03-23 00:05:03 -07:00
Andy Janata 3a81301c93 change log in index 2012-03-23 00:01:47 -07:00
Andy Janata 43ec8441fc Broadcast a game list refresh notification when a game starts. Fixes #7. 2012-03-22 23:51:30 -07:00
Andy Janata 368e890c07 Try to squash a lot of threading bugs in Game:
- Make players and roundPlayers be sychronizedLists. Remove all synchronizations on those except while iterating. (Just to reduce code clutter, since the lists still do the same thing internally).
- Rework some other code to reduce locking complexity.
- In skipIdleJudge, apparently getJudge() can return null. I have seen an exception because of this, so I make it check for that. Not entirely sure how that would happen in the first place.
- DEADLOCK FIX: Move getPlayerForUser() call outside of synchronized (playedCards) block in getWhiteCards().
2012-03-22 23:50:35 -07:00
Andy Janata ca226efdea Make all methods in PlayerPlayedCardsTracker synchronized to make it self-threadsafe. 2012-03-22 23:41:56 -07:00
Andy Janata 1860a96f81 Make all methods in BlackDeck and WhiteDeck be synchronized to make those classes self-threadsafe. 2012-03-22 23:41:33 -07:00
Andy Janata bc4f0818f1 Fix the log in Opera. Fixes #5. 2012-03-22 23:38:18 -07:00