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