Commit Graph

58 Commits

Author SHA1 Message Date
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
skogaby
63e462baca Handler for cardmng.authpass 2019-01-17 23:17:56 -06:00
skogaby
d073535083 More handlers to support logging in and creating new profiles, not done yet 2019-01-17 22:31:19 -06:00
skogaby
5d5fd2268f Make the supported models check use the sanitized model 2019-01-17 19:18:56 -06:00
skogaby
8654eac79f Added models and DAOs for cards and DDR Ace profiles, as well as enums
for various options in-game for Ace. The next step is to actually
support carding in in-game, as well as creating new profiles in-game for
unbound cards.
2019-01-17 19:11:05 -06:00
skogaby
a4a78855ad Use a temporary solution for converting card IDs, shell out to a Python script 2019-01-17 00:07:05 -06:00
skogaby
76bfb02ae1 Starting to work on converting between NFC IDs and card IDs but it's not working quite correctly, yet 2019-01-16 13:27:26 -06:00
skogaby
0a683bf88c If we're seeing a machine for the first time, create a PCB and user and ban them. If we see an unbanned machine for the first time, create a default shop for it, etc. 2019-01-14 16:39:23 -06:00
skogaby
9185ba7967 Send the 'real' (static) response for events. Don't compress responses for now, apparently this is somehow subtly broken and the client is rejecting very large responses that we've compressed 2019-01-14 15:28:28 -06:00
skogaby
25244e2fe5 Ace now boots into online mode and gets to the title screen without any hangs. Still need to figure out why sending static responses isn't working correctly. 2019-01-14 01:51:09 -06:00
skogaby
bca2033db2 Checkpoint commit 2019-01-13 19:35:23 -06:00
skogaby
66463b0bf6 Added a few more playerdata.usergamedata_advanced handlers, but it seems like something might be wrong with the events response, because none of the other requests come in 2019-01-13 16:49:11 -06:00
skogaby
893c590106 Ace can boot into 'online' mode, now! Removed some of the information from the shop class that we need to hardcode, as the facility.get request can prevent the game from booting online and ever requesting playerdata 2019-01-13 03:25:37 -06:00
skogaby
df18236346 Use the port and main config values in a few more places 2019-01-13 02:36:34 -06:00
skogaby
a4aa422798 Checkpoint commit, trying to support the playerdata module but I'm running into some hiccups, the code doesn't seem to be triggering 2019-01-12 15:54:43 -06:00
skogaby
bc7458385d Return the real tax phases for each user 2019-01-12 03:28:10 -06:00
skogaby
1e009f85ad In facility.get, return the actual shop data from the database, and validate that a shop exists for the given PCB 2019-01-12 03:11:03 -06:00
skogaby
22ca376c7d Rename facilities to shops. Check if PCBs are banned / disabled. Make the port and maint flags configurable 2019-01-12 02:49:52 -06:00
skogaby
b94e4d44ce Write eventlog.write requests to the database, and validate incoming PCBIDs for database existence 2019-01-12 01:57:50 -06:00
skogaby
cd12a94d50 Fix some issues with XPath querying and time conversion. Now PCB events get logged to the DB successfully 2019-01-11 17:42:35 -06:00
skogaby
66483b5d42 Actually log the PCB events to the database, as a proof of concept for the XML reading utility functions, and the DAO objects 2019-01-11 13:16:36 -06:00
skogaby
a186e19f7e Add model, pcbid, module, and method as request attributes in the initial request handler, so the downstream handlers don't need to read this information in every handler 2019-01-11 12:48:34 -06:00
skogaby
3c65441dd5 Checkpoint commit, working on saving event logs 2019-01-11 01:47:42 -06:00
skogaby
7aa83cdcce Create a model and DAO for DDR 16 shops 2019-01-11 01:13:03 -06:00
skogaby
deb3c40117 Create models and DAOs for user phases, gameplay logs, and PCB events for DDR 16 2019-01-11 00:51:13 -06:00
skogaby
67f541c4f4 Make a model and DAO for PCBs on the network 2019-01-10 22:01:50 -06:00
skogaby
d5275fd12d Make the ButterflyUser model implement Externalizable, so we can control how the object is serialized. 2019-01-10 13:37:42 -06:00
skogaby
24bfae44a2 Add a model and DAO for users of the server (not game users, server users) 2019-01-10 13:18:23 -06:00
skogaby
3936859dec Spring onboarding is basically complete, time to start defining models for the database 2019-01-10 12:49:24 -06:00
skogaby
c547ac1bbe Bring in Hibernate and Spring, and start defining some of the Spring beans for the app and for Hibernate stuff 2019-01-10 02:16:46 -06:00
skogaby
acd9b752fb Stop using a temp file and feed the data directly to the stdin of the kbinxml call, removes race conditions for multiple simultaneous requests and speeds things up a bit 2019-01-09 23:42:17 -06:00
skogaby
927129cfd5 Remove CollectionUtils.readInputStream 2019-01-09 13:24:32 -06:00