Commit Graph

89 Commits

Author SHA1 Message Date
skogaby
469b79a985 Fix a bug with the wrong lamps loading for the personal high scores 2020-09-06 20:26:00 -05:00
skogaby
23f3393068 Big update, will update the README file later. * DDR A20 support, including full support for Golden League. * GraphQL support for redimentary API access, including GraphiQL for a web frontend to run queries. * Numerous bugfixes. 2020-09-05 21:57:26 -05:00
skogaby
083794007e Break out request handlers into more logical organization for multi-game support 2019-10-17 20:31:26 -05:00
skogaby
20e3667b47 Upgrade to Gradle 5.6.2, Java 11 2019-09-28 23:12:15 -05:00
skogaby
64e526410d Make the default config still use SQLite for the time being, now that MySQL is proven to work 2019-09-26 16:48:19 -05:00
skogaby
18776684cc Add some SQL scripts, both for existing SQLite users to migrate their columns to the new names that we added to accomodate for MySQL, as well as to insert the global events data for both MySQL and SQLite 2019-09-26 16:37:41 -05:00
skogaby
78fa2126c6 Switch to MySQL instead of SQLite and change a few field names to be compliant 2019-09-26 09:09:17 -05:00
skogaby
cd502a1f6c Use a new kbinxml implementation that doesn't depend on xom 2019-09-25 20:18:43 -05:00
skogaby
5e5b02b3a4 Remove the hardcoded events.xml file and use the database for events. TODO: create a mechanism to generate a full unlock scenario from a musicdb.xml so we can have a full unlock response for any version if the user has it toggled. 2019-09-25 00:54:01 -05:00
skogaby
730b100c80 Add config values for enable/disable Paseli, and whether or not to force Extra Stage for every session 2019-08-27 16:17:07 -05:00
skogaby
07394c3c17 Update README to prepare for new release 2019-08-24 18:01:01 -05:00
skogaby
37dccdb041 Fix rival support, finally 2019-08-23 18:03:26 -05:00
skogaby
d6e0d256c4 Support for 2019042200 and basic course support 2019-08-22 19:03:35 -05:00
skogaby
c839c77314 Readme update, and include the diff to the Xom version included 2019-04-12 22:56:38 -05:00
skogaby
5aa0af170d Let new machines connect for the first time 2019-04-12 20:05:26 -05:00
skogaby
8a5d537d94 Move the database file location to the commandline so that the config files inside the JAR shouldn't matter to end-users 2019-04-12 19:52:39 -05:00
skogaby
d92e3eb89f Support the 20th Anniversary event content 2019-03-23 19:49:46 -05:00
skogaby
11abdd2371 Beginning to stub out a web UI module 2019-02-03 22:23:01 -06:00
skogaby
abce73821c Broke out the server into multiple modules so we can make a webUI more easily. Modules: model (models), dao (database access), core (shared functionality like encryption and compression), and server (game server). 2019-02-03 18:50:31 -06:00
skogaby
b745250a00 Resolve the issue of the Python executable name on different platforms 2019-02-01 19:37:47 -06:00
skogaby
3e75e38ca1 Let all versions of Ace run on the server, not just 042300. Add the concept of a homedir so this can be run from a JAR on something like an EC2 instance with the cardconv.py sitting in the homedir 2019-01-30 22:32:31 -06:00
skogaby
3edf9e45d8 Use a more portable solution for loading the cardconv script 2019-01-29 21:10:55 -06:00
skogaby
1d04238f36 Make this runnable from a JAR file properly. Make database path a hibernate config value. Ban new machines by default. Actually reject banned machine requests. 2019-01-29 19:50:26 -06:00
skogaby
292e221214 I derped on the scores responses, now it should handle more than one correctly 2019-01-27 23:35:26 -06:00
skogaby
19e5373c27 Small cleanup commit 2019-01-27 23:18:44 -06:00
skogaby
c62465ee67 Handle area and machine score requests. Fix some mis-enumerated webUI options. Change some default options for new users. Remove the global high scores cache and calculate on-demand more sensibly (less scalable, but we'll worry about that when it becomes an issue) 2019-01-24 02:51:35 -06:00
skogaby
e684eaefb9 Rename the rivalload handlers for loadflags 1 and 2 to be the proper names. TODO: implement them 2019-01-24 01:46:44 -06:00
skogaby
418f89a865 The guidelines options were wrong 2019-01-22 20:40:25 -06:00
skogaby
be7c89f0c5 Don't use explicit session management for Hibernate sessions 2019-01-22 19:05:00 -06:00
skogaby
6c8ae17bae Save the 'LAST' CSV values to the database as-is and return them as-is until we figure out more offsets. This resolves the issue of sort option not saving correctly. 2019-01-21 20:02:01 -06:00
skogaby
e02d74fafa User ghost data and personal scores now load correctly. Not sure if area/region scores are loading or not, but personal and global scores are implemented 2019-01-21 18:57:28 -06:00
skogaby
f84b9dba88 Use a basic cache for global high scores so we don't need to fetch the records from the DB 2019-01-21 14:40:17 -06:00
skogaby
b60269f6e0 Global scores response is completed, but it's *very* slow. Gonna construct it in memory on startup and update it as scores are saved instead. 2019-01-21 02:59:09 -06:00
skogaby
18194e273d Scores are now saving correctly, along with ghost data. Still need to return records to the client correctly. 2019-01-20 17:32:52 -06:00
skogaby
9449dc45ef Saving scores *mostly* works, but for some reason only the first score's data is read 2019-01-20 15:30:17 -06:00
skogaby
ee6a478664 Checkpoint commit. I have the DAOs and models ready for records and ghost data, now I need to implement the saving and loading of them 2019-01-20 14:20:03 -06:00
skogaby
973d49569a Implement enough handlers to play a full session! Options save in between sessions, but scores, ghost data, and event progress do not, yet. 2019-01-20 03:10:54 -06:00
skogaby
9c421f62e0 Construct the profile responses more cleanly, the embedded node inside the text content of the profile values isn't needed 2019-01-20 02:42:02 -06:00
skogaby
5952fc20f6 Everything in the profile response CSVs are hex, not decimal 2019-01-20 02:25:32 -06:00
skogaby
1fa3070e33 New profile creation finally works, name input is skipped unless the total plays returns is ffffffff, and we don't do that unless it's set to -1 in the database. If we send that, update it to 0 afterward so the name is only input once. 2019-01-20 02:07:52 -06:00
skogaby
731ac21e3e Now we're returning the right values for logging into existing profiles. Dancer code and all options are correct. Still need to return the correct last song played, but we're not logging that yet 2019-01-20 01:18:35 -06:00
skogaby
63ce073e31 Logging into an existing profile works now, including the dancer code. Still need to figure out new profile creation. Also, the options aren't getting sent back 100% correctly 2019-01-19 22:18:03 -06:00
skogaby
d711b5ba5a Fix a bug in the kbinxml library, and send the profile responses properly (mostly). Still need to figure out why the dancer code is wrong, and name entry is skipped for new dancers 2019-01-19 16:38:33 -06:00
skogaby
bf0de379e3 Handle userload better 2019-01-19 01:14:46 -06:00
skogaby
753b1185e7 New profile creation in Ace almost works, for some reason it short circuits and logs us in after profile creation but before name entry 2019-01-18 19:21:04 -06:00
skogaby
513e19fc8e At the point now where existing profiles can login. Still need to fix something that's preventing new profiles from entering their names 2019-01-18 18:10:31 -06:00
skogaby
595435b649 Profile management is almost complete, still need to deal with eacoin stuff 2019-01-18 17:38:13 -06:00
skogaby
b0d510af16 Use a Kotlin kbinxml implementation instead of shelling out to Python for the conversions 2019-01-18 15:28:27 -06:00
skogaby
b11f658e4d Handle inheritance requests 2019-01-18 01:24:13 -06:00
skogaby
eb22fe909b More work for creating new profiles 2019-01-18 01:15:35 -06:00