* Implement first response parts of http caching
* Implement cached response for static resources
* Implement HTTP caching for json responses
* Fix last seen value for online players
* Implement http caching for pages (.html)
* Use placeholder cache even with async requests.
Affects issues:
- Close#2813
- Fixed SQL-injection vulnerability in an endpoint
- Fixed XSS on Whitelist deny 403 page
- Fixed XSS on Internal Error 500 page if untrusted data ends up in exception message
- Don't log "database is closed" when query tries to execute after database close
- Log better error help when mysql fails to connect
Affects issues:
- Fixed#2499
- Refactored player online listeners to move common. often changed logic to common package
- Changed method fabric uses to get join address to use the client handshake packet which has the address
- Added command `/plan db removejoinaddresses {server}` to allow removing invalid join address data
- Changed build pipeline to always build jars even if tests fail
- Disabled one flaky test
Affects issues:
- Closed#817
- Fixed #2526
This code was improper use of dagger for dependency injection,
and could be fixed by introducing new method to Component classes
that gives the initialized ErrorLogger directly.
* Adds swagger dependencies and annotations for json endpoints for documentation
* Add swagger ui to react project
* Access control to swagger endpoints
* Include swagger.json in jars using custom configuration
Also:
* Reworked project shadow configurations to avoid shadowing shadow versions of modules
Why: Extra dependencies were being included when using shadow scope
What:
- modules no longer depend on shadow configurations,
which speeds up IDEA indexing after build considerably
(No need to index *-all.jars)
- 'shadow' scope is now used for artifacts that need to be included
- 'shadow' scope is also 'api' so that modules that depend on common
can import the libraries. This may cause issues in projects
depending on Plan so this may need to be reconsidered
- Relocations and exclusions were moved to plugin module
org.slf4j is now included in 2 locations which may cause issues.
Needs testing with servers
- Found out that all Extension dependencies include junit as compile
scope which caused it to be included.
Affects issues:
- Close#1890
- Hopefully fix user_id relation error once and for all.
- Set timezone to 00:00 properly when MySQL initializes connection
Affects issues:
- Close#1239
- Ping gathering now uses a map of timestamps
- Removes a task that waited for ping data to be reliable (one task / join)
- Cookie expiration now uses a map of timestamps
- Removes a task that waited for cookie to expire (one task / login cookie)
Affects issues:
- Possibly fixed#1984
Now all server placeholders (Pretty much 75% of all placeholders) can have :server name at the end
Example:
- %server_tps_day:Skyblock%
or %server_tps_day:97cf2530-dc2f-4443-a245-90708b1deedb%
or %server_tps_day:1%
Affects issues:
- Close#1323
* Bump io.github.slimjar from 1.2.1 to 1.2.2 in /Plan
Bumps io.github.slimjar from 1.2.1 to 1.2.2.
---
updated-dependencies:
- dependency-name: io.github.slimjar
dependency-type: direct:production
update-type: version-update:semver-patch
...
Signed-off-by: dependabot[bot] <support@github.com>
* Added vshnv.tech repository for including the slimjar library jar
* use papermc.io/repo for downloading slimjar dependencies
Affects issues:
- Resolved https://github.com/slimjar/slimjar/issues/52
- Resolved https://github.com/slimjar/slimjar/issues/53
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: Risto Lahtela <24460436+AuroraLS3@users.noreply.github.com>
* Rename "byKey" which hides the field declared at line 36.
* Define a constant instead of duplicating this literal "isStopped" 3 times.
* Remove this assignment of "pingMethodAvailable".
* Invoke method(s) only conditionally. Use the built-in formatting to construct this argument.
* Rename "getHandleMethod" which hides the field declared at line 36.
Make the enclosing method "static" or remove this set.
* Refactored some ping method things
* Rename "files" which hides the field declared at line 41.
* Add at least one assertion to this test case.
Updates gradle to version 7 and sorts out all the deprecated stuff
Affects issues:
- Clsoe #1871
Co-authored-by: Antti Koponen <koponen942@outlook.com>