Commit Graph

86 Commits

Author SHA1 Message Date
Aurora Lahtela
e3bea9ee77 Add online player names to player tab completion
Affects issues:
- Close #2216
2022-11-22 13:25:12 +02:00
Aurora Lahtela
a4a1001a8d Display new player name as light green in kills tables
Affects issues:
- Close #1262
2022-11-13 15:49:32 +02:00
Aurora Lahtela
cbc880c1d3 Improve database error messages
- 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
2022-09-02 18:49:36 +03:00
Aurora Lahtela
7dce52245f Remove some uses of PlanPlugin#getDataFolder (deprecated) 2022-08-31 12:48:19 +03:00
Aurora Lahtela
3eff46523d Test and fix user move and combination transactions 2022-08-27 15:20:23 +03:00
Aurora Lahtela
b646e18c68
Fix fabric join address gathering (#2546)
- 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
2022-08-14 20:35:32 +03:00
Aurora Lahtela
37f11e3269 Remove PlanSystem#getErrorLogger
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.
2022-07-15 08:34:18 +03:00
Aurora Lahtela
b0be4f296d Use plugin classloader for thread context when initializing system
This allows ServiceLoader to find slf4j-nop provider for Jetty
preventing SLF4J "No provider" error

Affects issues:
- Fixed #2438
2022-07-15 08:21:23 +03:00
Aurora Lahtela
8f239b010c
Add Swagger & Swagger UI (#2470)
* 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
2022-07-13 21:21:20 +03:00
Aurora Lahtela
92910d647a Revert API jar to Java 8 and update to Java 11 APIs 2022-06-18 11:31:53 +03:00
Aurora Lahtela
368f1e5002 Various fixes to transactions
- Hopefully fix user_id relation error once and for all.
- Set timezone to 00:00 properly when MySQL initializes connection

Affects issues:
- Close #1239
2022-05-26 21:51:22 +03:00
Aurora Lahtela
52b8afe6cb Store join addresses separately and link to plan_sessions table for time data.
Affects issues:
- #2362
2022-05-20 19:32:00 +03:00
Aurora Lahtela
69c54fb5cb Fix some issues with data registering for new users 2022-04-11 19:08:05 +03:00
Aurora Lahtela
47e74f5ad5 Use ConcurrentHashMap for ignore afk permission checks
Affects issues:
- Fixed #2289
2022-02-28 19:23:59 +02:00
Risto Lahtela
2ad3b20f36 Teardown session cache after use in AFKTracker tests 2022-02-05 09:47:43 +02:00
Risto Lahtela
954ef59c0b Fix afk tracker tests 2022-01-31 21:05:47 +02:00
Risto Lahtela
a7478645bd Reduce the amount of tasks used for upkeep
- 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
2022-01-06 15:43:48 +02:00
Henri S
efd3b75a29
Database Driver downloading (#2144)
Affects issues:
- Fixed #1944
2021-10-31 13:16:47 +02:00
Aurora Lahtela
ebb1108969
Comment out slimjar related configuration (#2138) 2021-10-27 18:43:14 +03:00
Risto Lahtela
37a6ad86e9 Fix compile issues from previous commit 2021-09-18 22:30:27 +03:00
dependabot[bot]
e066ff7215
Bump io.github.slimjar from 1.2.1 to 1.2.2 in /Plan (#2043)
* 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>
2021-08-08 09:21:44 +03:00
Antti Koponen
d29a94e6a4
Implement SlimJar as a runtime dependency downloader (#1990)
MySQL & SQLite are dynamically (down)loaded to the classpath instead of being shaded.

Affects issues:
- Close #1944
2021-08-07 15:29:54 +03:00
Emilia Dreamer
a90f003462
Notify about old versions of html customized files (#2014)
Affects issues:
- Close #1995
2021-07-23 17:17:35 +03:00
Risto Lahtela
6c26fc529e
Add server name to kill lists (#2013)
* Added server name to kill objects (and changed them a lot)
* Added server name to kill tables

Affects issues:
- Close #1437
2021-07-18 18:07:45 +03:00
Risto Lahtela
84fa3ad4cd
Added server uptime (#2012)
* Wrote a query and utility for getting server uptime
* Added current_uptime to json endpoints
* Load current uptime on the website
* Moved nukkit repo to nukkit module
* Added equals and hashcode to QueryStatement and QueryAPIQuery
* Remove dependency on codemc repository

Affects issues:
- Close #1845
2021-07-18 10:43:38 +03:00
Risto Lahtela
cd2d0fcb0f Write new html customized Plan web files when Plan enables (no overwrite)
Affects issues:
- Close #1745
2021-07-17 16:28:18 +03:00
Risto Lahtela
db0d3ff6ac Implemented more ways to get Ping on bukkit
Affects issues:
- Close #1962
2021-07-03 10:05:34 +03:00
Risto Lahtela
e90606b68a
5.4: Java 16 support, remove H2 (#1932)
* Stop downloading dependencies at startup, include them instead
* 5.4: Removed H2
* Platform Abstraction Layer 5.0.0, delete dependency downloading
* Removed some unnecessary native sqlite drivers
* Serve jquery via CDN

Affects issues:
- Fixes #1886
- Close #1908 (No longer relevant, library no longer included)
2021-06-12 10:21:38 +03:00
Risto Lahtela
fa4a2e6595
Gradle 7 Update by Kopo (#1931)
Updates gradle to version 7 and sorts out all the deprecated stuff

Affects issues:
- Clsoe #1871

Co-authored-by: Antti Koponen <koponen942@outlook.com>
2021-06-12 08:24:24 +03:00
Risto Lahtela
6f73af4719 Delete old dependency cache directories 2021-04-23 10:40:09 +03:00
Risto Lahtela
b6f1bb22c8 Updated PlatformAbstraction layer
- Replace usage of DepDownloader with MVNLoader

Affects issues:
- Fixed #1839
2021-04-23 10:23:50 +03:00
Risto Lahtela
8853793de1 Moved operator status transaction to further down the join event pipeline
Affects issues:
- #1827
2021-04-18 09:34:39 +03:00
Risto Lahtela
1c946e7490 Added missing server UUID to operator and ban status transactions
Affects issues:
- #1827
2021-04-17 08:24:42 +03:00
Risto Lahtela
2997e882a5 Fixed a bunch of IntelliJ inspection issues and typos 2021-03-23 11:57:01 +02:00
Risto Lahtela
1f76e4a7c7 Implemented EnderCrystal kill detection for Nukkit
Affects issues:
- #1571
2021-03-21 14:58:05 +02:00
Creeperface01
0dd5d41955
Update nukkit module to support new PlaceholderAPI version (#1806) 2021-03-21 10:36:15 +02:00
Risto Lahtela
2bc15db6d0 Sort out player join address things
Applied some thought to how this stuff should work.
- nulls now possible in the column when value is not available
- Called "Join addresses" instead of hostnames
- Remove bogus data with a patch

- Proper hostname method for spigot
- Removed method calls from nukkit since there was nothing that sounded
  proper

Affects:
- Close #1798 (Copied all code over)
2021-03-17 11:31:27 +02:00
Risto Lahtela
0ba6ff3d70 Update Host name every time player logs in 2021-03-16 17:40:48 +02:00
Risto Lahtela
baab6e5f88 Fixing sonarcloud bugs and smells
Bugs fixed:
- LinkCommands: The return value of "orElseThrow" must be used.
- RegistrationCommands: Optional isPresent not same instance as Optional get

Smells fixed:
- Plan: "logger" is the name of a field in "JavaPlugin"
- PlayersTableJSONCreator: Reduce the total number of break and continue statements in this loop to use at most one.
- BukkitAFKListener, SpongeAFKListener, NukkitAFKListener, PlanAPI, CapabilityService: match the regular expression '^[a-z][a-zA-Z0-9]*$'
- TaskSystem: Reorder the modifiers to comply with the Java Language Specification.
- EntityNameFormatter: StringUtils.removeAll moved to RegExUtils.removeAll
- FiltersJSONResolver: fulfill compareTo contract
- ExportTask: Removed duplicate string literal
- FinishedSession.Id: Rename field "id"
2021-03-16 10:41:17 +02:00
Risto Lahtela
2e01758fd6 Fixed lag from host name lookup 2021-03-16 09:02:30 +02:00
Risto Lahtela
bfcb7eea85
Dependency downloading (#1795)
Affects issues:
- Fix #1759
2021-03-15 15:28:36 +02:00
Risto Lahtela
a9ce521c0c Made shutdown session save less disruptive
- Session save is now properly waited for when plugin disables
    The session save attempt times out after 4 seconds instead of
    waiting forever
- If shutdown save is not performed, instead of attempting again on JVM death,
  the sessions are placed into a file that is read next time the plugin
  enables.

Affects issues:
- Fixed #1770
2021-03-13 10:15:29 +02:00
Risto Lahtela
8f85c23c2f Refactoring: ActiveSession, FinishedSession and ServerUUID
- Split Session into ActiveSession and FinishedSession, replaced their usage
- Replaced UUID with ServerUUID when the data type

Affects issues:
- Close #1746
2021-03-12 18:03:12 +02:00
Risto Lahtela
e1bffbcc1f
Swap Abstract Plugin Framework for Platform Abstraction Layer library (#1787)
Replaced Abstract Plugin Framework with Platform Abstraction Layer

Large amount of changes due to removal of features from the library,
and change of the way the abstraction is achieved.
Removes features from Plan:

    Removed debug logging (Considered useless when debugging issues)
    Removed /debug page (Considered useless when debugging issues)
    Removed enable timing (Benchmarking utility was removed from the library)
2021-03-09 11:36:07 +02:00
Risto Lahtela
4da7497d82
Player Hostname PieChart Added (#1679 #1786)
Affects issues:
- Close #783

Co-authored-by: Arnold Hamstra <youtube@minecraftercity.com>
Co-authored-by: Arnold <a_hamstra@hotmail.com>
2021-03-09 10:01:09 +02:00
Rsl1122
94c9dd3f95 Username change Rsl1122 -> AuroraLS3 2021-02-13 15:16:03 +02:00
Risto Lahtela
0769ddc3d4 Removed some unused variables I missed 2021-02-12 11:08:53 +02:00
Risto Lahtela
95af3f5f8b Removed JSONCache and its invalidation uses 2021-02-12 10:56:48 +02:00
Risto Lahtela
b660c3b57b Moved JSON storage to delivery.webserver.cache 2021-02-10 13:11:12 +02:00
Risto Lahtela
3619ff814a JSON File storage clean task
- Cleans query files
- Cleans other json files that are old
2021-02-10 13:11:01 +02:00