Commit Graph

729 Commits

Author SHA1 Message Date
ceze88
c7d452d659 Add missing lib 2024-05-25 22:25:23 +02:00
ceze88
a064f76a9a Add missing serializer 2024-05-25 18:10:09 +02:00
ceze88
4fdb895b3b Fix NPE 2024-05-25 17:10:03 +02:00
ceze88
39d02dcda1 Update dependency loader versions 2024-05-13 19:13:50 +02:00
ceze88
7ade7030d7 Use Adventure api to send messages instead of reflections 2024-05-13 19:13:39 +02:00
ceze88
64e0000e08 Update adenture apis 2024-05-13 19:12:55 +02:00
Christian Koop
3feccc65b2
chore(deps): Update XSeries to v10.0.0 for better 1.20.6 compatibility 2024-05-11 15:29:17 +02:00
Christian Koop
91eb96d244
Release v3.0.7-SNAPSHOT 2024-05-09 22:03:10 +02:00
Christian Koop
7cbd105519
chore(deps): Update dependency versions in SongodaPlugin
These versions should be identical to the ones in the pom.xml files.
I recently merged a couple of dependabot pull requests.
2024-05-09 21:37:20 +02:00
dependabot[bot]
3d05c06004
Bump de.tr7zw:item-nbt-api from 2.12.3 to 2.12.4 (#101)
Bumps de.tr7zw:item-nbt-api from 2.12.3 to 2.12.4.

---
updated-dependencies:
- dependency-name: de.tr7zw:item-nbt-api
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2024-05-02 08:52:52 +02:00
dependabot[bot]
dd6f914e3c
Bump net.kyori:adventure-text-minimessage from 4.11.0 to 4.16.0 (#94)
Bumps [net.kyori:adventure-text-minimessage](https://github.com/KyoriPowered/adventure) from 4.11.0 to 4.16.0.
- [Release notes](https://github.com/KyoriPowered/adventure/releases)
- [Commits](https://github.com/KyoriPowered/adventure/compare/v4.11.0...v4.16.0)

---
updated-dependencies:
- dependency-name: net.kyori:adventure-text-minimessage
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2024-05-02 00:35:34 +02:00
Christian Koop
41dbafea69
test: Don't use Apache lang3 NotImplementedException in mock
No need to rely on external library exceptions in a mock for tests
2024-05-01 23:59:24 +02:00
dependabot[bot]
792ea57df1
Bump com.github.Angeschossen:LandsAPI from 6.28.11 to 7.0.2 (#93)
Bumps com.github.Angeschossen:LandsAPI from 6.28.11 to 7.0.2.

---
updated-dependencies:
- dependency-name: com.github.Angeschossen:LandsAPI
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2024-05-01 23:52:04 +02:00
dependabot[bot]
f25c306dd8
Bump net.kyori:adventure-platform-bukkit from 4.1.1 to 4.3.2 (#88)
Bumps [net.kyori:adventure-platform-bukkit](https://github.com/KyoriPowered/adventure-platform) from 4.1.1 to 4.3.2.
- [Release notes](https://github.com/KyoriPowered/adventure-platform/releases)
- [Commits](https://github.com/KyoriPowered/adventure-platform/compare/v4.1.1...v4.3.2)

---
updated-dependencies:
- dependency-name: net.kyori:adventure-platform-bukkit
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2024-05-01 23:48:05 +02:00
Christian Koop
dd08670fc2
Revert "chore(build): Resolve versioning race condition by commenting StackerAPI"
This reverts commit e47d8aa530.
2024-05-01 12:23:19 +02:00
Christian Koop
e47d8aa530
chore(build): Resolve versioning race condition by commenting StackerAPI
UltimateStacker pipelines are broken because they want Core v3.0.6-SNAPSHOT.
Core pipelines (including v3.0.6-SNAPSHOT) are broken because they need the API changes from UltimateStacker.
2024-05-01 11:04:23 +02:00
ceze88
4301ec5487 Release v3.0.6-SNAPSHOT 2024-04-15 14:09:48 +02:00
ceze88
b44504efed Add option to customize delay and period 2024-04-15 14:09:34 +02:00
Christian Koop
d955cc9059
feat!: Updates mcMMO to v2.2.004 and drop support for v2.1-ish
The `RandomChanceUtil` class got deleted and I don't see anything `SkillActivationType` related.
The mcMMO changelog and the commit deleting the class doesn't help me answear the question,
whether that is important or not.

Users will have to update their mcMMO installation - But I think we don't want to support any non-supported
version of all the hooked plugins anyway
2024-04-06 19:32:27 +02:00
ceze88
99e5bfeeba Update UltimateStacker API 2024-04-06 13:08:24 +02:00
Brianna O'Keefe
60e7e57cdb version 3.0.5 2024-04-05 22:39:49 -05:00
Brianna O'Keefe
e96e946b28 Head type util 2024-04-05 22:38:12 -05:00
Christian Koop
6a0a8203dc
fix: DiagCommand's compatibility with Paper builds without CB relocation 2024-03-29 15:28:41 +01:00
Christian Koop
4f262ea641
chore(deps): Update item-nbt-api to v2.12.3 2024-03-29 15:26:37 +01:00
Christian Koop
2d0b43394b
fix: Mark WildStacker dependency as provided to not shade it 2024-03-28 15:00:22 +01:00
Christian Koop
3591bfe1a4
hotfix: Copy over old normalization logic for Hologram hooks for ceze 2024-03-28 10:49:42 +01:00
Brianna O'Keefe
5379537f7c version 3.0.4 2024-03-27 13:13:01 -05:00
Brianna O'Keefe
7fccbc7f2a Updated to work with the latest version of WildStacker. 2024-03-27 13:12:30 -05:00
Christian Koop
f0d8aaffc7
chore!: Delete deprecated NmsManager class
Acording to the GitHub search this class is still used in some projects but there was enough
time to switch over to the Nms class + it's very easy to upgrade the usages to the new Nms class
2024-03-26 22:33:40 +01:00
Christian Koop
dce7adf81f
refactor: Refactors a couple of classes by applying our code style 2024-03-26 22:32:40 +01:00
Christian Koop
8c06a740d5
fix: Remove unused boolean variable related to the old license system 2024-03-26 22:18:19 +01:00
Christian Koop
c241224b64
chore!: Delete deprecated RotationUtils class
Judging by the GitHub search none of the plugins is using it anymore
2024-03-26 22:18:13 +01:00
Christian Koop
2add5b642f
refactor(test): Refactor DatabaseTest 2024-03-26 21:24:22 +01:00
Christian Koop
519194e414
refactor: Optimize imports in all classes 2024-03-26 21:00:36 +01:00
Christian Koop
c68c419f4f
feat: Remove Craftaro as an alias for the Songoda-Command 2024-03-26 20:55:10 +01:00
Christian Koop
69c4628c63
text: Update references to Craftaro with Songoda in strings 2024-03-26 20:54:03 +01:00
Christian Koop
9b9c8fb087
feat: Remove Craftaro's plugin license check
In a way, this can be considered an performance improvement
2024-03-26 20:53:08 +01:00
Christian Koop
156aa628af
docs: Update files to reflect repository rename to 'SongodaCore' 2024-03-26 20:41:28 +01:00
Brianna O'Keefe
a507cffbca Float support for StoredData. 2024-03-23 18:56:58 -05:00
Brianna OKeefe
e7340bbc89 version 3.0.3 2024-03-21 17:09:19 -05:00
Brianna OKeefe
5d9afba0b2 Monitored Threads. 2024-03-21 17:09:07 -05:00
Brianna OKeefe
60931f0ba3 Furnace gui type. 2024-03-21 17:08:56 -05:00
Brianna OKeefe
fc232fa8b1 New data system. 2024-03-21 17:08:38 -05:00
Brianna O'Keefe
9f6f8fb660 version 3.0.1 2024-03-12 14:19:08 -05:00
Brianna O'Keefe
ef36c58e0b TaskScheduler 2024-03-12 14:18:45 -05:00
Christian Koop
0592bf4abf
Fix DependencyLoader if the ClassLoader is URLClassLoader 2024-02-21 21:54:42 +01:00
ceze88
8289dae0f8 Fix DependencyLoader if ClassLoader is a AppClassLoader 2024-02-20 11:44:59 +01:00
ceze88
b2e842c805 Revert "Remove unnecessary cast"
This reverts commit bc1b613983.
2024-02-20 11:18:58 +01:00
ceze88
bc1b613983 Remove unnecessary cast 2024-02-19 11:23:46 +01:00
Christian Koop
4b738fdf78
fix: Prevent data loss on server shutdown in DataManager
We should wait for the async pool to cleanly exit and finish all running tasks.
30 seconds is a lot but we don't want any data loss – If 30 seconds are exceeded there might just be something
fundamentally broken in the (plugin) implementation (or a huge bulk action?)
2024-02-10 19:26:44 +01:00
ceze88
c59884b87c Update Adveture releated methods
- Fix incompatible types when setting item name and lore.
- Fix replaceLegacy method replacing characters that should not be replaced.
- Add methods to convert shaded Adventure library to the non shaded form if the server is above 1.18.2
2024-02-09 12:32:33 +01:00
ceze88
cc59a825be Fix dependency loading, use a ClassLoader instance which shared among all the plugins 2024-02-07 14:46:51 +01:00
Christian Koop
66a2abda32
feat: Adds support for CMI and Sainttx's Holograms plugin in new hooks 2024-02-02 23:12:08 +01:00
Christian Koop
c9a93d3a08
fix: Relocation path for reactivestreams contains . instead of ; 2024-02-02 23:09:43 +01:00
Christian Koop
fcb613e3d6
refactor: Slight refactoring of DependencyLoader class
I am too scared on touching too much logic and breaking something as I didn't work on this class
or with that library much yet.

So I'm just refactoring it a bit not changing a lot of logic
2024-02-02 18:54:34 +01:00
Christian Koop
193af915e9
Don't catch and log exceptions in DependencyLoader
This way whatever uses the DependencyLoader actually knows if something fails and can react to it
instead of just the JVM erroring because something is unexpectedly missing in the class path
2024-02-02 18:26:26 +01:00
Christian Koop
c027ab8b4c
fix: Diag-Command throws exception because of invalid String#format
The dependencyVersion accidentally got put as an arg into Player#sendMessage instead of the String#format
2024-02-02 18:16:40 +01:00
Christian Koop
f7e46be0d9
Make DependencyLoader implementations non-static and use #getDataFolder
The data directory location for plugins might be configured to another path, so instead we the
plugin's *DataFolder* as a basis for our Core's data directory
2024-02-02 18:16:40 +01:00
Christian Koop
92ff9cebd5
feat: Rework how the Core-Logger works and is used
Implement own logger to prefix message with plugin name (if available) and CraftaroCore.

We prefix with both because the Core is shaded and this way it is clearly logged "which" Core is logging what.

This is also the reason why the Logger's name is now `CoreLogger.class.getCanonicalName()`
instead of CraftaroCore to uniquely identify each logger. (similar to what Bukkit's PluginLogger does).
2024-02-02 18:10:03 +01:00
Christian Koop
e0dd19e91a
style: Reformat/Auto-format DependencyLoader class
Also gets rid of some unused imports
2024-02-02 17:02:09 +01:00
ceze88
1ec750cacf Move dependency folder, add dependency version info 2024-02-02 16:27:52 +01:00
ceze88
eeb2724e04 Update dependencies 2024-02-02 16:04:14 +01:00
ceze88
3233c92679 Update AdventureUtils.java 2024-02-01 13:03:31 +01:00
Christian Koop
638b793040
Introduce a new hook system (right now only with Hologram support)
My plans with this hook system are to make it easier to understand and maintain – Hopefully it is also more flexible

Hooks now have a dedicated activation-life-cycle – I think this allows it to contain all the logic to do what
it needs to do but also provide some helper methods like `#canBeActivated`.
The activation should be used by the hooks to reduce the memory and performancec impact when not used.
The de-activation also allows hooks to clean up themselves and not rely on the plugins used by the hook or
the plugin using the hook to clean up.

For example:
You can see that the `DecentHologramsHook` has few class variables and they are kept as
small as possible and reasonable when not activated.
In `#deactivate` I call `#removeAll` to remove all holograms that still exist and I call `ArrayList#trimToSize` to reduce it's size again.
This has a similar effect to setting the class varaible null or to a new List but with this I can make that field *final*.

The exact implementation details and capabilities vary on the third-party plugins being supported by hooks,
so it needs to be flexible and easy to understand, so we can easily add support for more plugins and especially
new plugin categories like Maps (dynmap, BlueMap, PlexMap, ...).
2024-01-30 19:43:30 +01:00
Christian Koop
d8564d1c1c
docs: Deprecates all current/soon old hook classes 2024-01-30 17:51:22 +01:00
Christian Koop
50dfbf8dad
! Renames Hook Interface to OutdatedHookInterface for the new hooks
The interface is used/imported in two other Craftaro plugins (FabledSkyBlock and UltimateStacker).

I've worked on a new hook system which is easier to understand and maintain and hopefully also
allows for some more flexibility.

To introduce the new hooks without breaking changes (or as little as possible), this interface had to move.
2024-01-30 17:51:22 +01:00
Christian Koop
29f2d0b643
Disables the update checker of the nbt-api library 2024-01-30 17:51:22 +01:00
ceze88
a4b7e2d28d Add minimessage and utility class for it 2024-01-30 17:14:58 +01:00
ceze88
b610b98547 Fix java 8 support for dependency loader 2024-01-29 16:31:03 +01:00
ceze88
82c7c49e41 Remove removed method 2024-01-24 19:05:06 +01:00
ceze88
52b93e873c Fix LinkageError in rare cases 2024-01-23 19:17:29 +01:00
Christian Koop
5850e1a0ec
Downgrade HikariCP to v4.0.3 to properly support Java 8 2024-01-15 21:08:45 +01:00
Christian Koop
0e8f52b1be
Implement workaround for migrated SQLite databases applying migrations
The migration version -1 is already written into the new database before the old one has been converted.
This causes the migration to be run on the converted database because in addition to the migrated
version (e.g. 8) the -1 is already written to the table.
And now you just need to be kind of lucky to not retrieve that wrong version.

Just a hacky workaround (I know)
2024-01-15 21:07:54 +01:00
Christian Koop
adcf8619ec
Slight refactoring of dependency/Dependency.java class
* Re-uses constructors to reduce duplicate code
* Makes sure the constructor with relocate-argument actually sets `this.relocate`
* Use `this.` for accessing class variables
2024-01-13 18:43:01 +01:00
Christian Koop
21bf900448
Make SongodaPlugin#getDependencies non-abstract and return empty Set
Most plugins don't have additional dependencies so this should make migrating existing plugins a bit easier.
2024-01-13 18:40:22 +01:00
ceze88
d4de86f6a5 Fix asm version again 2024-01-13 18:25:45 +01:00
Christian Koop
2f1f814d43
Do not directly modify dependency Set provided by the plugin
Modifying the Set directory makes assumptions about the created Set.
About it's type/implementation (maybe it is immutable/read-only?) and about
it's usage/way-of-use that does not break the plugin by adding stuff a Set that might be used differently too etc.
2024-01-13 17:36:42 +01:00
ceze88
3f62b36b26 Fix asm dependency 2024-01-12 17:01:40 +01:00
ceze88
cd3acd87f5 Shade asm into the core, not all java versions contains it. Fix shading for reactivestreams. 2024-01-12 16:27:02 +01:00
ceze88
dcf9fa4a29 Fix shading for LibraryLoader 2024-01-11 11:44:33 +01:00
ceze88
0a76ad4943 Use jitpack for libraryloader 2024-01-07 14:59:13 +01:00
ceze88
16e419b537 Fix pom.xml 2024-01-04 12:44:54 +01:00
ceze88
ad7b703282 Implementing runtime lib loading 2024-01-01 15:04:23 +01:00
Christian Koop
a17252b805
chore: Updates item-nbt-api to v2.12.2 for Spigot 1.20.4 support 2023-12-10 17:08:52 +01:00
ceze88
d69510cae7 Fix casting errors 2023-11-18 16:47:06 +01:00
dependabot[bot]
3d75eef3b4
Bump world.bentobox:bentobox from 1.15.5 to 1.24.1 (#85)
Bumps [world.bentobox:bentobox](https://github.com/BentoBoxWorld/BentoBox) from 1.15.5 to 1.24.1.
- [Release notes](https://github.com/BentoBoxWorld/BentoBox/releases)
- [Commits](https://github.com/BentoBoxWorld/BentoBox/compare/1.15.5...1.24.1)

---
updated-dependencies:
- dependency-name: world.bentobox:bentobox
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2023-11-07 00:10:27 +01:00
dependabot[bot]
21657902b3
Bump com.gmail.nossr50.mcMMO:mcMMO from 2.1.200 to 2.1.225 (#82)
Bumps [com.gmail.nossr50.mcMMO:mcMMO](https://github.com/mcMMO-Dev/mcMMO) from 2.1.200 to 2.1.225.
- [Release notes](https://github.com/mcMMO-Dev/mcMMO/releases)
- [Changelog](https://github.com/mcMMO-Dev/mcMMO/blob/master/Changelog.txt)
- [Commits](https://github.com/mcMMO-Dev/mcMMO/commits)

---
updated-dependencies:
- dependency-name: com.gmail.nossr50.mcMMO:mcMMO
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2023-11-06 22:37:04 +01:00
dependabot[bot]
65b10fbba6
Bump org.apache.maven.plugins:maven-shade-plugin from 3.5.0 to 3.5.1 (#80)
Bumps [org.apache.maven.plugins:maven-shade-plugin](https://github.com/apache/maven-shade-plugin) from 3.5.0 to 3.5.1.
- [Release notes](https://github.com/apache/maven-shade-plugin/releases)
- [Commits](https://github.com/apache/maven-shade-plugin/compare/maven-shade-plugin-3.5.0...maven-shade-plugin-3.5.1)

---
updated-dependencies:
- dependency-name: org.apache.maven.plugins:maven-shade-plugin
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2023-11-06 22:14:30 +01:00
dependabot[bot]
73437503b2
Bump org.mariadb.jdbc:mariadb-java-client from 3.0.8 to 3.2.0 (#63)
Bumps [org.mariadb.jdbc:mariadb-java-client](https://github.com/mariadb-corporation/mariadb-connector-j) from 3.0.8 to 3.2.0.
- [Release notes](https://github.com/mariadb-corporation/mariadb-connector-j/releases)
- [Changelog](https://github.com/mariadb-corporation/mariadb-connector-j/blob/master/CHANGELOG.md)
- [Commits](https://github.com/mariadb-corporation/mariadb-connector-j/compare/3.0.8...3.2.0)

---
updated-dependencies:
- dependency-name: org.mariadb.jdbc:mariadb-java-client
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2023-11-06 22:06:29 +01:00
dependabot[bot]
289a856a1a
Bump com.zaxxer:HikariCP from 5.0.1 to 5.1.0 (#78)
Bumps [com.zaxxer:HikariCP](https://github.com/brettwooldridge/HikariCP) from 5.0.1 to 5.1.0.
- [Changelog](https://github.com/brettwooldridge/HikariCP/blob/dev/CHANGES)
- [Commits](https://github.com/brettwooldridge/HikariCP/compare/HikariCP-5.0.1...HikariCP-5.1.0)

---
updated-dependencies:
- dependency-name: com.zaxxer:HikariCP
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2023-11-06 21:52:41 +01:00
dependabot[bot]
0b119cac91
Bump com.intellectualsites.bom:bom-1.18.x from 1.18 to 1.31 (#77)
Bumps [com.intellectualsites.bom:bom-1.18.x](https://github.com/IntellectualSites/bom) from 1.18 to 1.31.
- [Release notes](https://github.com/IntellectualSites/bom/releases)
- [Commits](https://github.com/IntellectualSites/bom/compare/1.18...1.31)

---
updated-dependencies:
- dependency-name: com.intellectualsites.bom:bom-1.18.x
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2023-11-06 21:18:21 +01:00
dependabot[bot]
636a281b07
Bump com.github.decentsoftware-eu:decentholograms from 2.8.3 to 2.8.4 (#75)
Bumps [com.github.decentsoftware-eu:decentholograms](https://github.com/DecentSoftware-eu/DecentHolograms) from 2.8.3 to 2.8.4.
- [Release notes](https://github.com/DecentSoftware-eu/DecentHolograms/releases)
- [Commits](https://github.com/DecentSoftware-eu/DecentHolograms/compare/2.8.3...2.8.4)

---
updated-dependencies:
- dependency-name: com.github.decentsoftware-eu:decentholograms
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2023-11-06 20:46:30 +01:00
dependabot[bot]
a808627d5f
Bump de.tr7zw:item-nbt-api from 2.12.0 to 2.12.1 (#73)
Bumps de.tr7zw:item-nbt-api from 2.12.0 to 2.12.1.

---
updated-dependencies:
- dependency-name: de.tr7zw:item-nbt-api
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2023-11-06 20:00:31 +01:00
ceze88
55a29c2af1 Fix converting errors for EpicFarming and EpicHoppers 2023-11-06 14:22:06 +01:00
Christian Koop
c79b835e9a
feat: Adds convenience overload method SongodaPlugin#initDatabase
Takes DataMigration... instead of an List. Similar how it used to be in the old API.
Reduces visual clutter in plugin code in my opinion
2023-10-24 02:41:09 +02:00
Christian Koop
eaf96d51de
style: Fixes typo in comment 2023-10-24 01:29:40 +02:00
Christian Koop
2afdfaa082
fix: Replace wrong 'MySQL' in logged database warnings with correct db 2023-10-24 01:15:23 +02:00
Christian Koop
8cde264f75
style: optimize imports in database related classes 2023-10-24 01:12:54 +02:00
Christian Koop
2f6d21c969
fix: Don't catch exceptions when initializing the database
Catching the exception here circumvents the error handing in `SongodaPlugin#onEnable()`.
+ catching the errors without throwing a new one leads to plugins continuing their initialization
before being disabled.
Poluting the server log with additional exceptions and everything because something is broken but surpressed
2023-10-24 01:03:09 +02:00
Christian Koop
4816438f93
Don't run database migrations on plugin enable with issues connecting
Migrations rely on `this.databaseConnector` being set which might be true if something fails
2023-10-23 19:06:08 +02:00