Also removed the last Hobbit culture buttons; relics from a forgotten time when all Hobbit cultures were just lumped under Gundabad. In a future update (tm), all Hobbit cultures should appear in their own row after the LotR cultures if any of the set/format filters for The Hobbit Draft Game are selected.
- Associated all of the new sealed products with default booster and starter selection images
- Added id field to sealed league definitions which is now how all systems store and refer to unique sealed leagues
- Renamed various product choice products to use a more standardized naming convention
- Fixed the chat resizer being all wonky
- Fixed deckbuilder navigation buttons being wonky from the jquery upgrade
- Rearranged the card filter slightly to almost sorta do css
- Fixed deckbuilder not using the new gemp favicon
- Sealed events are now no longer hard-coded as 4 serie, but will instead be however many are defined in the definition
- Altered format serialization to include information on draft + sealed (optionally)
- Fixed various dialog boxes having an erroneous "closed" text in them
- reordered format canonical order due to an oversight
- Altered the league admin page to dynamically populate all drop downs with all available values (instead of hard-coding them)
- Got the new jquery to stop coloring buttons white
- fixed modal dialogs being under the overlay
- fixed modal dialogs having a mangled close button
- Removed excess unnecessary hard-coded button classes
- added favicon and updated the title of each page
- added resize handle to the chat; it's a bit wonky
- Rearranged server startup
- Added constructor overloads for as many classes as possible to ensure that the file path does not need provided by default for loaded data
- Format, draft, and sealed data now hot reloads
- Altered so much stuff relating to league data
- Sealed formats now 100% load from file
- altered sealed format DAO to save the name of a format instead of its sealed-code (included a backwards-compatible legacy map)
- Converted all existing pack definitions (including code-defined ones) to use new hjson definitions
- Created ProductLibrary to replace PacksStorage
- Created a hundred unit tests to confirm that the PL packs are the same as the PS packs
- Replaced all references to PacksStorage with ProductLibrary
- Absorbed CardSets into the CardBlueprintLibrary
- Adjusted library initialization to take filenames during the constructor and immediately initializing, instead of waiting for that for every single instance.
- Changed the library CountDownLatch to use a Semophore instead.
- Adjusted library to be able to hot reload the blueprint mapping and setconfig files (this is not exposed to an endpoint yet)
- Adjusted all public-facing functions of the blueprint library to block if in use
- As a result, reloading should now cause all operations that use the library to pause during the reload
- Added server-wide messages when card reload is invoked
- Fixed chat messages to make all URLs open in a new tab
- Set up the loading of draft files to use the shared functionality in AppConfig
- Enabled draft definition hot reload
- Refactored various draft system files to be static
- Fixed the hobbit draft tests needing to be invoked manually
- Moved all text files that are loaded at runtime to gemp-lotr-cards/src/main/resources
- Updated ApplicationConfiguration (renamed AppConfig) to handle finding text data files based on configuration
- Updated gemp-lotr.properties to contain dev and test versions of the resource path (used for in-IDE execution and JUnit execution, respectively)
- Updated all references to text files to go through AppConfig
- Added shutdown enter/exit and JSON card reload to the admin panel.
- Greatly expanded the MOTD functionality in the admin panel.
- Converted server cache clear command to the new admin panel.
- fixed slash commands not working in chat
- added a warning if an invite-only table is made for a user that doesn't exist
- fixed the CoC not rendering properly
- Combined the chopped-up help messages so that spam is avoided (as <br> can just be used now)
- fixed league games being eligible for custom descriptions (this breaks anonymity)