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
b57ee2de7e
add google analytics. why did I wait so long?
2012-09-22 07:51:23 -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
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
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
973f18ea80
return list of card sets during first load
2012-07-07 10:21:14 -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
bc4f0818f1
Fix the log in Opera. Fixes #5 .
2012-03-22 23:38:18 -07:00
Andy Janata
97a822db6d
Add in-game options viewing to index page news. The server already disallows changing options in the middle of a game.
2012-03-18 21:39:31 -07:00
Andy Janata
21e0aea9a3
add button to display game options in middle of game. do not allow host to change options in middle of game (on client, server should check this too)
2012-03-18 21:38:24 -07:00
Andy Janata
5bb9690ea4
add game passwords to index page
2012-03-18 21:22:56 -07:00
Andy Janata
315549d87f
game passwords, and display more game information in the lobby list
2012-03-18 21:20:48 -07:00
Andy Janata
14746a6a69
update index page with new news
2012-03-18 11:45:27 -07:00
Andy Janata
a1c2bbce80
allow to choose between first version cards, second version cards, or all cards at once.
2012-03-17 20:17:32 -07:00
Andy Janata
c6659b3abb
display the total duration of the current play timer. will make it count later
2012-03-16 18:35:13 -07:00
Andy Janata
a8e7273e13
increase play timers.
...
fix play timer for people who have played a card but not all required cards (by removing their cards and returning them)
2012-03-16 18:34:59 -07:00
Andy Janata
1237d4c8a2
move round cards up the z-order again
2012-03-16 18:34:20 -07:00
Andy Janata
dd117f05d2
fix constants for test
2012-03-16 17:05:27 -07:00
Andy Janata
f2b5f2b623
PYX, not PYZ, you idiot.
2012-03-16 17:00:01 -07:00
Andy Janata
e0391b8d4e
skip and kick idle players
2012-03-16 16:59:50 -07:00
Andy Janata
95fe597184
add intermission after judge leaves game. it looks weird, and acts a bit oddly, especially for the previous judge: they can pick a winner but it won't let them choose on the server. still I think this is better than the old way of just starting the next round immediately.
2012-03-15 23:43:43 -07:00
Andy Janata
27a58856d8
fix host options with the card set hidden
2012-03-15 20:19:24 -07:00
Andy Janata
a6f1a139be
game host can configure maximum players and score goal
2012-03-15 20:06:23 -07:00
Andy Janata
2332c68f75
add a subheading to the index page that this is a cah clone
2012-03-15 14:04:12 -07:00
Andy Janata
a679a7a36c
- confirm leaving game
...
- initial game options. it never displays it right now since it isn't done
2012-03-15 13:50:42 -07:00
Andy Janata
5fa3bf5ece
confirm logging out
2012-03-15 13:50:24 -07:00
Andy Janata
79cf13c8e2
change github url
2012-03-15 11:15:28 -07:00
Andy Janata
2e0168e7ce
Cards Against Humanity -> Pretend You're Xyzzy
2012-03-15 10:14:32 -07:00
Andy Janata
1b465bad8f
fix the servlet mappings in web.xml. make everything uncachable.
2012-03-13 00:42:07 -07:00
Andy Janata
2931fb7492
add TODO about cards blanking when players join and leave game
2012-03-12 22:20:17 -07:00
Andy Janata
2d770e4098
update home page information
2012-03-12 22:20:04 -07:00
Andy Janata
349154367c
add something to set maximum cache age of an hour on static files. hopefully this is sufficient
2012-03-12 22:19:57 -07:00
Andy Janata
add5386127
POSSIBLY BREAKING CHANGE: change all the over-the-wire Constant values to shorter things.
2012-03-12 21:06:35 -07:00
Andy Janata
ae5bc1d594
fix some problems with using hard-coded strings instead of values from Constants
2012-03-12 21:05:43 -07:00
Andy Janata
2e62708ea6
change long poll server-side returning to 20+5 seconds, client-side timeout to 45 seconds, and ping checking to 45 seconds. this should hopefully helpe with people that just close the window.
...
increase the maximum number of messages returned per poll to 10 for no particular reason :)
2012-03-12 21:05:19 -07:00
Andy Janata
57556c2f95
set the played cards z-index so hopefully it will always show over hand
2012-03-12 20:18:28 -07:00
Andy Janata
e614a0da57
add a test for over-the-wire uniqueness for Constants, with an annotation to allow intentional duplication.
2012-03-12 20:18:24 -07:00
Andy Janata
2d42710270
don't send blank chats to the server
2012-03-12 19:49:36 -07:00
Andy Janata
f9b6de36d0
jsdoc cleanup
2012-02-20 12:34:26 -08:00
Andy Janata
02e2715809
Don't overwrite displaying the last round's black card when a new black card is dealt, if we are looking at the last round's results. Fixes #4 .
2012-02-20 11:59:47 -08:00
Andy Janata
3058cf9498
- the re-centering of "you are czar" hand overlay wasn't working, so I removed it.
...
- ability to show the last round. this updates as soon as a new round winner is selected, and is tracked entirely on the client
2012-02-07 19:30:30 -08:00
Andy Janata
89da813b28
refactor around the card resize code so it's only in one place
2012-02-07 17:06:23 -08:00
Andy Janata
f4ef1b3521
make the hand card scaling use the same algorithm as the round cards, to prevent them from getting larger than 100% scale
2012-02-07 16:31:56 -08:00
Andy Janata
463432e369
Gray out the Card Czar's hand and display a message over it.
2012-02-07 14:15:51 -08:00
Andy Janata
9a9202e1ce
add source download link
2012-02-06 15:11:44 -08:00
Andy Janata
0ff6887e8a
remove all absolute paths from classpath and move all libs into web-inf/lib
2012-02-06 15:04:37 -08:00
Andy Janata
29388bad2c
add license overview file
2012-02-06 14:54:31 -08:00
Andy Janata
88b68c87b6
comment ALL the files!
2012-02-06 14:00:24 -08:00
Andy Janata
d4368c554a
add stats page for munin support
2012-02-02 15:37:21 -08:00
Andy Janata
dbd8d8b755
fix encoding in admin xml tag
2012-02-02 14:57:39 -08:00
Andy Janata
4d5fddd293
add 2-clause bsd-style license to source files
2012-02-02 14:47:23 -08:00
Andy Janata
828def7cf8
delete files used for testing stuff ages ago
2012-02-02 14:46:46 -08:00
Andy Janata
7e0614531d
message about not opening the game more than once in the same browser
2012-02-01 14:27:56 -08:00
Andy Janata
582537b0a1
todo cleanup for multi-play
2012-02-01 14:26:20 -08:00
Andy Janata
b5cb45353c
- make the logo on the cards from css instead of images
...
- fix reshuffle notifications not delivering to client properly
- fix not actually putting "draw 2" cards into the players' hands
2012-01-31 20:22:07 -08:00
Andy Janata
a493b917ed
rudimentary support for pick X and draw X cards. it looks completely wrong on the client during the play phase. does not display the annotations to the player yet either
2012-01-31 17:59:53 -08:00
Andy Janata
39216edca8
hours are not days
2012-01-31 17:58:46 -08:00
Andy Janata
266b2646da
add another item to the index page
2012-01-30 23:54:36 -08:00
Andy Janata
a5f82eb08e
TODO cleanup
2012-01-30 23:53:00 -08:00
Andy Janata
83a807f4b8
- reorder stuff in admin.jsp
...
- add my global ip address to admin whitelist
- add kick functionality to admin.jsp
- admin.jsp redirects to itself after processing actions to avoid refreshing re-processing the action
- ConnectedUsers invalidates the user when removing it
2012-01-30 23:52:45 -08:00
Andy Janata
987c01cc5a
- make a config js file for URIs and debug mode
...
- clean up the ordering of stuff in game.jsp
- only back off 1ms after a successful longpoll, but do the normal backoff delays after error
2012-01-30 23:49:46 -08:00
Andy Janata
93e36fbc82
disable silent client-side logging for "release"
2012-01-30 16:36:07 -08:00
Andy Janata
e373d72c85
remove logic that disabled the Join game button if it wasn't a lobby, since you can always join now
2012-01-30 16:35:25 -08:00
Andy Janata
2d5e9d18c0
- discard cards after they are used, so that they can be reshuffled if more cards are required (hasn't been tested)
...
- much better handling when users leave the game:
- put their hand in the discard pile
- if they played this round, put that card in the discard pile and remove them from the played players list
- if they were supposed to play this round, remove them from the players list
- if they were judge, return all played cards to players and move to the next judge
- if they weren't judge and were lower in judging order, fix the judge pointer
- add a goal to the game (8 points for now, hard-coded)
- keep track of which players are supposed to play this round so players joining and leaving don't affect the game progressing
2012-01-30 16:35:06 -08:00
Andy Janata
ee327639eb
add a bunch of text to the index page
2012-01-30 16:31:08 -08:00
Andy Janata
e323a32ce8
formatting
2012-01-30 16:30:40 -08:00
Andy Janata
0f14cb781c
IE doesn't have console.debug, and it also is a pain to log with an object.
2012-01-30 00:36:21 -08:00
Andy Janata
84373a5453
- disable the confirm card button for the judge during the intermission
...
- don't say "points" for 1 point
2012-01-30 00:35:56 -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
259b323e1c
"Judge" -> "Card Czar"
2012-01-30 00:35:11 -08:00
Andy Janata
e88a5238b7
add some things to the welcome page
2012-01-30 00:33:11 -08:00
Andy Janata
e3ac81705e
false-start of doing admin via ajax, would require a lot more work on the admin client to actually do it this way
2012-01-29 17:14:17 -08:00
Andy Janata
9a476e4f81
move index.jsp to game.jsp and add a new index.jsp that has a quick overview
2012-01-29 17:13:51 -08:00
Andy Janata
a26221c2bb
- admin can toggle verbose logging of all requests on and off
...
- admin page shows user hostname
- servlets log request and response if logging is enabled
2012-01-29 17:13:31 -08:00
Andy Janata
5e95299801
replace the border on the winning card, not add another one
2012-01-28 23:33:21 -08:00
Andy Janata
0d2a43aedf
change charset in index.jsp
2012-01-28 00:50:02 -08:00
Andy Janata
237c4ccec2
add SILENT_DEBUG option, and make that log to the browser console
2012-01-28 00:49:50 -08:00
Andy Janata
8ad224edad
basic admin page, shows memory usage, uptime, and connected users
2012-01-28 00:49:32 -08:00
Andy Janata
ed9cec7ed7
don't add a blank card to the screen when a user switches to idle state unless the game is still in playing state
2012-01-27 17:01:51 -08:00
Andy Janata
0e11e59207
- judge can select card
...
- game goes to next round
2012-01-27 15:41:57 -08:00
Andy Janata
692f2057e9
pointer cursor for round white cards
2012-01-27 00:19:20 -08:00
Andy Janata
34c23b3a01
fix confirm selection button not enabling properly sometimes
2012-01-27 00:18:36 -08:00
Andy Janata
d06e835ac4
add the zoom effect to round cards, and let the judge select a card
2012-01-27 00:14:48 -08:00
Andy Janata
48976b4dc0
- change how the client's own card is displayed after playing it to avoid race condition
...
- show all white cards when switching to judging mode
2012-01-26 22:17:36 -08:00
Andy Janata
2e26e938e5
- reload the round white cards when page reloaded
...
- can't select a hand card after playing a card
2012-01-26 19:25:40 -08:00
Andy Janata
7600ec27de
- refactor game handlers a bit to add another abstract class that ensures the user requesting is in the game in question
...
- add play card handler. need to send the white card count down to users that refresh the page.
- ajax event handlers get the request object as well as the result object so the server doesn't have to send the game id back in a response
2012-01-26 18:07:39 -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
f92258fb56
able to select and deselect cards in hand
2012-01-24 22:39:19 -08:00
Andy Janata
234b82afd2
- display black card in game
...
- display message indicating what the game is currently waiting for
- reload the black card when reloading page
- change the js constant generator to explain what the dummy things are for in the output
- add support for enums that need two user-visible values (specifically the game player state: the short message for the scoreboard and the long message telling the player what they need to do)
- hide the start game button after the game is started
- refactor game event longpoll handlers to use a helper that gets the game and reports an error if it can't
- game (should) reset to a lobby if it loses players to put it less than 3
2012-01-24 16:20:43 -08:00
Andy Janata
44153c549a
resize the cards when zooming them so the other cards flow
2012-01-23 23:13:40 -08:00
Andy Janata
363bfc1147
get rid of unneeded zindex hack
2012-01-23 23:04:52 -08:00
Andy Janata
3253be9530
comment out bad browser warning
2012-01-23 23:04:14 -08:00
Andy Janata
5915a3558d
- reload hand after reloading page
...
- use transform animation in all browsers to reduce complexity :(
2012-01-23 23:02:59 -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
d41b06ffde
fix card scaling in ie, but the logo still is broken
2012-01-23 17:41:02 -08:00
Andy Janata
1f9d4722be
delete local game object after leaving game
2012-01-23 17:40:21 -08:00
Andy Janata
c73ce88646
deal cards to players when the game starts
2012-01-23 15:06:20 -08:00
Andy Janata
44dcc45c48
update the scoreboard when a player leaves or joins the game
2012-01-23 13:37:11 -08:00
Andy Janata
eec3ad81ca
- make currentGames be a list instead of a single object, just in case I do multiple games later
...
- add event handlers for leave and start game buttons
- leave game button works
2012-01-23 13:20:15 -08:00
Andy Janata
8e3c1372dc
- fix formatting in css file
...
- add some templates for game lobbies
- client properly joins a game and shows the lobby!
- reconnect to in-progress game when refreshing page
2012-01-22 23:58:36 -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
922207736a
start working on in-game view
2012-01-21 17:34:18 -08:00
Andy Janata
8b6d171d66
fix warnings
2012-01-20 19:11:39 -08:00
Andy Janata
bd0c11fcf7
fix some alignment
2012-01-20 18:56:33 -08:00
Andy Janata
019505e0b4
make stuff more relative-size-friendly
2012-01-20 16:11:59 -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
890964b85d
card classes
2012-01-19 21:19:55 -08:00
Andy Janata
4a3a9d95bd
add templates for cards. change how game list lobbies are cleaned up
2012-01-19 18:19:05 -08:00
Andy Janata
7f376faa10
disable all interface objects when we detect the server has restarted
2012-01-19 00:34:55 -08:00
Andy Janata
5bda9fd452
client can join games. doesn't load the game yet, which is the same thing that happens with creating a game. the same thing should happen for both cases.
...
reworked some tests to be able to hide a method from GameManager. part of this goal was to reduce unnecessary game refresh broadcasts if a client tried to create multiple games.
2012-01-18 16:42:18 -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
40de91b5ac
some work on the game list
2012-01-17 20:37:09 -08:00
Andy Janata
90b3129f66
cah.bind to bind functions to objects
2012-01-17 20:36:34 -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
76d9be8f1c
more constants instead of immediate strings.
...
add a wrapper around the request parameters so we can use our enum values as the parameter names.
2012-01-16 16:28:21 -08:00
Andy Janata
61451105b0
do not return error messages, only return the error code and let the client look up the error message. this could eventually allow for localization of the error messages (but not the rest of the client yet)
2012-01-16 14:33:58 -08:00
Andy Janata
9a281cd38f
use constants for long poll events, ajax request operation names, ajax response field names, and error codes
2012-01-12 21:36:31 -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
a7cc7c8d36
messing around with the ajax stuff to make autocomplete work better
2012-01-12 17:05:09 -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
bdf401c443
don't display ourselves connecting at the beginning
2012-01-12 13:07:19 -08:00
Andy Janata
c4210a3faa
properly invalidate sessions when ping timeout occurs so when the user comes back they'll get a new session
2012-01-12 13:07:05 -08:00
Andy Janata
3c391f23cd
add names list when connecting
2012-01-12 13:05:49 -08:00
Andy Janata
c66c08cd4f
we have to be able to deal with longpoll error data returned not in an array, so make it look like an array if it's an error
2012-01-06 16:49:43 -08:00
Andy Janata
eba02a35bd
add support for being able to return more than one event in a single long poll request, since the client will poll no more often than every half-second. this could have caused a rather large backlog of events to deliver if chat was active.
2012-01-06 16:43:40 -08:00
Andy Janata
8a45078d77
remove dead clients
...
refactor the injector out to the servlet context
2012-01-06 15:53:55 -08:00
Andy Janata
9508575949
log out button
2012-01-06 15:53:04 -08:00
Andy Janata
29d3ca9190
only scroll the log window if it was already scrolled to the bottom
2011-12-24 19:38:19 -08:00
Andy Janata
37cc770ed3
convert cah.ajax into an object to make things a little neater
2011-12-24 19:38:02 -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
Andy Janata
5aacc0ac32
- add long polling support
...
- broadcast a message when a new user connects
- utilize the long polling to deliver the message to existing clients
2011-12-22 14:19:59 -08:00
Andy Janata
668f9fe87d
initial commit
2011-12-16 16:39:52 -08:00