* Initial work for serialization refactor
* Experiment with new naming conventions
* Mostly implement user and slot serialization.
Still needs to be fine tuned to match original implementation
Many things are left in a broken state like website features/api endpoints/lbp3 categories
* Fix release building
* Migrate scores, reviews, and more to new serialization system.
Many things are still broken but progress is steadily being made
* Fix Api responses and migrate serialization for most types
* Make serialization better and fix bugs
Fix recursive PrepareSerialization when recursive item is set during root item's PrepareSerialization, items, should be properly indexed in order but it's only tested to 1 level of recursion
* Fix review serialization
* Fix user serialization producing malformed SQL query
* Remove DefaultIfEmpty query
* MariaDB doesn't like double nested queries
* Fix LBP1 tag counter
* Implement lbp3 categories and add better deserialization handling
* Implement expression tree caching to speed up reflection and write new serializer tests
* Remove Game column from UserEntity and rename DatabaseContextModelSnapshot.cs back to DatabaseModelSnapshot.cs
* Make UserEntity username not required
* Fix recursive serialization of lists and add relevant unit tests
* Actually commit the migration
* Fix LocationTests to use new deserialization class
* Fix comments not serializing the right author username
* Replace all occurrences of StatusCode with their respective ASP.NET named result
instead of StatusCode(403) everything is now in the form of Forbid()
* Fix SlotBase.ConvertToEntity and LocationTests
* Fix compilation error
* Give Location a default value in GameUserSlot and GameUser
* Reimplement stubbed website functions
* Convert grief reports to new serialization system
* Update DatabaseModelSnapshot and bump dotnet tool version
* Remove unused directives
* Fix broken type reference
* Fix rated comments on website
* Don't include banned users in website comments
* Optimize score submission
* Fix slot id calculating in in-game comment posting
* Move serialization interfaces to types folder and add more documentation
* Allow uploading of versus scores
* Add a discord webhook for when users join for the first time.
* Fix compilation error related to embed colors
* Make config migration backup use the version of the stored file
* Make DiscordConfiguration not halt startup
* Allow the registration message to be configured
* Clean up registration announcement and add userId variable
* Fix userid resolution and convert newline string to actual character
Also make WebhookHelper not fail if all destinations aren't configured
* Player count shows per game
* Fixed LBP3 categories lagigng & StatisticsHelper
Co-authored-by: koko <sudokoko@users.noreply.github.com>
* Fixed "planetStats" mmPicksCount
* Hopefully the final update to this PR!
(Bug fixes)
* Update ProjectLighthouse/Types/Entities/Level/Slot.cs
Co-authored-by: koko <68549366+sudokoko@users.noreply.github.com>
* Update ProjectLighthouse.Servers.GameServer/Controllers/Slots/SlotsController.cs
I'm trusting you that nothing breaks here lol
Co-authored-by: Josh <josh@slendy.pw>
* Update ProjectLighthouse.Servers.GameServer/Controllers/Slots/SlotsController.cs
bad slendy >:(
Co-authored-by: koko <68549366+sudokoko@users.noreply.github.com>
---------
Co-authored-by: koko <sudokoko@users.noreply.github.com>
Co-authored-by: koko <68549366+sudokoko@users.noreply.github.com>
Co-authored-by: Josh <josh@slendy.pw>
* Attempt to remodel PhotoSubject and Photo relationship
* Fix migration name
* Use exactName for migration lock
* Revert "Use exactName for migration lock"
This reverts commit 76cee6a3ff.
* Set command timeout to 5 minutes for database migrations
* Delete unused PhotoSubjects in migration
* Clean up website queries and finalize subject refactor
* Add migration to remove PhotoSubjectCollection
* Add grace period for container startup and optimize startup
* Make config backup copy original file
* Allow docker entrypoint to fix data permissions
* Replace Location table with packed 64 bit int
* Remove double Include and fix Slot documentation
* Fix compilation errors from merge
* Fix namespaces and add expected values to unit tests
* Start of reorganization and cleanup
* Remove duplicate title id
* Refactor types
* Fix Release building
* Move classes in /Types to a Types namespace
* Fix compilation error (RoomVisualizerPage strikes again)
* Fix bugs created from auto merge
* Fix auto-merge compilation error
* Changes from review/fix failed merge
* Changed CommentController to use an AsyncEnumerable to attempt to fix the current issue
* Made comments & reviews from blocked users on levels not appear
* Added blocked user DB object
* Added user blocking functions
* Fixed DB Migration
* Updated DB Functions
* Added blocked user support to website
* Fixed DB Migration
* I forgot to save 🫠
* More migration pain
* Fixed Unblock label
* Update ProjectLighthouse.Servers.Website/Pages/UserPage.cshtml
sounds cool
Co-authored-by: koko <68549366+sudokoko@users.noreply.github.com>
* Removed unnecessary imports in database
* Removed unnecessary imports in UserPage.cshtml.cs
* Made comments in-game respect blocked users
* Update ProjectLighthouse/Database.cs
Co-authored-by: Josh <josh@slendy.pw>
* Update ProjectLighthouse/Database.cs
Co-authored-by: Josh <josh@slendy.pw>
* DB Code cleanup
* Cleaned up userPage block detection code
* Get only the creator id in lieu of the whole object
* Fixed null condition when not logged in
* Fixed null condition when not logged in
* Potential DB Optimisation
* Apply suggestions from code review
Co-authored-by: Josh <josh@slendy.pw>
* Fix errors and null warning
* Use explicit type in lieu of var
* changed block icons
* Optimize blocked user check and save changes when unblocking
---------
Co-authored-by: koko <68549366+sudokoko@users.noreply.github.com>
Co-authored-by: Josh <josh@slendy.pw>
* Create .gitattributes
Added a .gitattributes file that excludes the local customWordFilter.txt file from merged updates, allowing server operators to maintain their own word filter list and not have it overwritten.
* Update .gitignore
Added chatCensoredList to gitignore
* Update .gitignore
* Dynamic censor list file changes
Removed .gitattributes file, attempted to make chatCensoredList.txt into a dynamic file loaded at runtime instead.
* Added additional censorship coverage
Censorship now covers:
Level titles
Level descriptions
Reviews
Comments
* Delete chatCensoredList.txt
* Update .gitignore
Co-authored-by: Josh <josh@slendy.pw>
* Update filter verbiage
* Update ProjectLighthouse.Servers.GameServer/Controllers/CommentController.cs
Co-authored-by: Josh <josh@slendy.pw>
* Update ProjectLighthouse/Helpers/CensorHelper.cs
Co-authored-by: Josh <josh@slendy.pw>
* Add CensorConfiguration and add more filters
Co-authored-by: Josh <josh@slendy.pw>
* Make chat filter logging configurable
Disables chat logging by default, but allows for it to be re-enabled if need be.
* Update ProjectLighthouse.Servers.GameServer/Controllers/MessageController.cs
Co-authored-by: Josh <josh@slendy.pw>
* Update ServerConfiguration.cs
Co-authored-by: Josh <josh@slendy.pw>
* Initial work for verifying login ticket signatures
* Add candidate psn public key
* Add candidate psn public key and fix nuget packages
* Finalize npticket changes
* Add support for ticket version 3.0
* Rework login system to link platform accounts instead of using ip addresses
* Make linked accounts green instead of blue
* Fix api building
* Fix unit tests
* Actually fix unit tests
* Set unit test user's linked platform
* Why was this the wrong default value?
* Fix username change code
* Make TicketHash hash the entire ticket instead of just the serial
* Send password setup email when user sets their email for the first time
* Changes from self review
Fixes a bug with yourReview where the slot type wouldn't be included
Fixes a bug with crossControllerPlanet where it would be included even if it was null or empty
* Initial work for rate limiting
* Refactor GameServerStartup and change default rate limit config
* Adjust config naming and add Enabled option to global and override rate limits
* Fix LBP3 republish bug
* Fix bugs in rate limiting and allow for multiple matched overrides
* Add this qualifier for private variable
* Changes from self review
* Baseline LBP3 Adventure slot support
VERY unsafe and hacky to use as of now, this is just testing the waters.
* ADC file type checking
* Refactor & trimming
This might need to be adjusted if any feature is found to be missing
* isAdventure added to API
* Prototype Adventure icons for Website
I am not an artist, please make this more in line with the originals.
* Override border radius for LBP3 Adventures
* Cleaning
* Remove WriteLine and unused property
* Remove unused libraries
* Handle tracking and submitting of Adventure scores
* Check for null instead of 0
Non-adventure slots will report null, not 0
* Score for adventure slot instead of main slot
* Tweaks for PR
* Identify levels for photos by level resource
Verify this doesn't break anything.
* SlotCardPartial merge with main changes
* PR resolution 2
* probably not what was wanted
Use variables for style extension
* Internal slots already properly identified
* Return line breaks to end of Slot.cs
* Remove line break added by Github
thanks
* Github.
* Make this a one-liner
* Reduce to two lines
* This can also be one line
* This can *also* be one line
* Update ProjectLighthouse.Servers.Website/Pages/Partials/SlotCardPartial.cshtml
Co-authored-by: Josh <josh@slendy.pw>
* PR changes
* Update ProjectLighthouse/Migrations/20220916141401_ScoreboardAdvSlot.cs
Co-authored-by: Josh <josh@slendy.pw>
Co-authored-by: Josh <josh@slendy.pw>