Commit Graph

348 Commits

Author SHA1 Message Date
Andy Janata 4379c14f6d
Merge pull request #219 from devgianlu/min-default-max-config
Moved min/default/max to configuration file
2020-05-23 18:21:22 -07:00
Andy Janata 296a692db9 big link to server list page 2020-04-04 09:57:04 -07:00
devgianlu 631fe14d12 Moved min/default/max player limit, spectator limit, score limit and blank card limit to pyx.properties 2019-09-29 14:51:46 +02:00
Andy Janata 8f82a0162d update changelog and privacy text 2018-09-03 17:18:55 -07:00
Tyler Dence 54b30874c0
Add more info to stats.jsp to allow server lists to disambiguate features 2018-08-06 00:30:37 -04:00
Andy Janata 57597669fe Add option to disable game chat. 2018-07-28 10:08:16 -07:00
Andy Janata c40c2d194b Add option to disable fill-in-the-blank cards entirely. 2018-07-28 09:50:31 -07:00
Gianlu 5d05f2e85b Fix for #174 (#176)
* Fix for #174 (https://github.com/ajanata/PretendYoureXyzzy/issues/174)

* Avoid NPE

* Sorted AZ
2018-07-01 18:24:49 -05:00
Andy Janata 67c0e0e954 changelog updates 2018-06-01 09:46:09 -07:00
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 f88ed593c2 Update changelog 2018-04-05 08:59:50 -07:00
Andy Janata 99958c0dcf Display round permalinks after the round is over, if enabled.
This takes advantage of the metrics logging, the metrics processor, and the metrics viewer to provide a permalink to a particular round, instead of requiring players to take a screenshot of the round. This will not be enabled immediately as the viewer is not quite ready for deployment, but this is all that needs done on the game server to support this, so it can just be dynamically enabled when it's ready.
2018-04-04 16:09:17 -07:00
Andy Janata 1c07624a5c Add repeated words filtering to chat filter. 2018-04-01 19:46:26 -07:00
Andy Janata dcb9553837 Fix /whois not showing spectators as spectating 2018-03-29 14:44:27 -07:00
Andy Janata a505598c0d Tell admins about filtered chat content.
Including chat in games that the admin isn't in.
2018-03-27 17:59:31 -07:00
Andy Janata 8211726118 Refer to verification code in the ui for the mangled version 2018-03-27 11:13:51 -07:00
Andy Janata 28e040aaec Send sigil/id code/persistent id when reconnecting.
First load handler needs to send those things so the client actually has it. Doesn't really need the persistent id there, but it definitely needs the sigil to avoid undefined errors.
2018-03-27 11:05:01 -07:00
Andy Janata 988f63887b Include some creation times in responses.
Server startup time is included in first load response, and game creation time is included in game info. IRC bridge uses these, and perhaps a way to see them in the web client will be added too.
2018-03-26 16:57:40 -07:00
Andy Janata fa996ab1c8 Update change log. 2018-03-26 12:00:27 -07:00
Andy Janata 783b223d19 Updates for shadowban.
Unicode characters weren't getting loaded correctly for some reason, either literally or via escape sequences. Change to specifying a class name which has a compile-coded list of shadowbanned strings. This prevents changing on the fly, but at least it works for now until a proper database can be implemented.
Update the privacy policy about chat logging due to shadowbans.
2018-03-23 23:18:21 -07:00
Andy Janata 65f74ef816 Add more chat filtering.
CAPS LOCK FILTER if a line is long enough and contains mostly caps.
Shadowban filter blocks messages with configurable substrings present in them. Does not permanently shadowban the user, yet, just drops the message.
Add a test that was missed in a previous commit.
2018-03-23 22:32:16 -07:00
Andy Janata 4bddace596 Add more chat control.
* A certain amount of characters in the message must be latin-ish, if the message is longer than a certain length.
* There must be a certain number of spaces in the message, if the message is longer than a certain length.
* The same message cannot be repeated twice in the same location.
* Switched the separator between parts for the chat control config value from _ to . for the scope.
2018-03-23 17:15:06 -07:00
Andy Janata 88bfa34898 Global and game chats have distinct flood controls.
Split the configuration value into two. Add a tracking object to ChatFilter per user which currently contains the two different last message times. Removed the last message times from the User object. Show chat error messages only in the tab that caused them, not both tabs.
2018-03-23 14:41:08 -07:00
Andy Janata 4e2b5e480b Move admin IP addresses to config file. 2018-03-22 16:26:30 -07:00
Andy Janata 7375dd8a57 Minor fixes for Go API client.
* GameId needs to be an *int not an int so we can tell the difference between lack of value and value 0.
* Add the description strings to DisconnectReason.
* Add Sigil and IdCode to NewPlayer messages.
* Add if join/quit events are being broadcast to JavascriptConfigServlet. It works much better if they are but it should still work if they aren't.
2018-03-15 21:35:00 -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 24881d1d55 Allow white cards with images, and minor cleanup.
Refactor out the formatting code from CardcastService to its own class.
Add [img][/img] support for white cards to have images on cards.
Force line wrapping for cards with words that do no fit onto a card.
2018-03-06 16:21:59 -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 cdd38465fa HTML cleanup.
* Fix not being able to scroll the index page. Oops. Cleaned up how that was managed.
* Clean up things in changelog and known issues and future features. Some of it has been done for years, oops.
* Make the label for the join button for passworded games word-wrap.
2018-03-02 14:18:46 -08:00
Andy Janata cb0f2689c6 Let global chat enablement be configured via the properties file. Can be adjusted on the fly, though clients are not notified of the change (which doesn't affect the client's operation anyway). 2018-02-28 11:19:34 -08:00
Andy Janata e2960eef7d make lastpass also ignore the chat entry area 2018-02-27 17:50:56 -08:00
Andy Janata 4b75185629 * Add stylesheet to privacy and changelog pages.
* Update changelog on index and game page.
* Add tweet box to index and game page.
2018-02-27 16:30:59 -08:00
Andy Janata 216ff638bf Sort full games to the end of the game list. Fixes #157. 2018-02-27 16:03:09 -08:00
Andy Janata d143791321 * Fix some cases of not all decks being listed because the javascript code assumed that duplicate weights would never occur.
* Re-enable view cards page.
2018-02-27 14:05:57 -08:00
Andy Janata 89a4ceeeef * Change card set sort order from 'weight, id' to 'weight, name'.
* Add number of black and white cards to the list on the card set editor page.
2018-02-21 16:49:38 -08:00
Andy Janata 17ac4078d0 Disable global chat except for admins. Add release notes. 2017-08-13 12:17:42 -07:00
Andy Janata b2c27cd5cc add privacy page 2017-03-05 12:07:49 -08:00
Andy Janata 23ce041bda implement kafka metrics without tls or authentication 2017-02-26 22:27:56 -08:00
Andy Janata a67c721427 fix some warnings 2017-02-26 22:13:18 -08:00
Andy Janata 45690c1914 Add user client information to user metrics info (language, device class, name).
Add metrics logging for server start up, user disconnect, and card judging events.
2017-02-23 22:32:22 -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
rootatdebian 9a776fb801 Fix typo of "hard" to "hand" 2016-09-10 16:14:12 -04:00
Andy Janata 50d48e8b8d Merge pull request #146 from allquixotic/adjustable-timers
Feature: Adjustable timer multiplier instead of idle timer checkbox.
2016-04-03 21:38:23 -07:00
Sean McNamara 795bf48fde Let game hosts adjust the timer duration as a multiplier of the defaults. 2016-01-02 22:07:39 -05:00
Sean McNamara ec859e37d0 Update jQuery and jQuery UI dependencies to the latest (1.x). 2016-01-02 20:25:32 -05:00
Andy Janata aa43eac98b Repackage timer tasks. Add new timer task to broadcast game list updates every 60 seconds instead of every time a game changes (massive bandwidth use). Change chat rate limit from 5 per 10 sec to 6 per 30 sec. 2015-05-03 13:52:05 -07:00
Andy Janata 768f8f5a0a update change logs 2015-02-21 20:06:35 -08:00