Commit Graph

483 Commits

Author SHA1 Message Date
Christian Koop
140c59ffa2
Merge branch 'development' into development-v3 2023-03-29 18:49:25 +02:00
Christian Koop
07374fdbfd
Configures the new v1_19_R3 NMS module in the NmsManager class 2023-03-29 18:22:13 +02:00
Christian Koop
fafcf28e0b
Updates dependency item-nbt-api to v2.11.2 for Spigot 1.19.4 support
From the changelog:
>Add 1.19.4 as officially supported (2.11.1 will work fine on 1.19.4, but show a warning that it doesn't know about this version)
2023-03-29 18:21:41 +02:00
Christian Koop
6d8c3beeb3
Merge branch 'development' into development-v3 2023-03-16 19:07:54 +01:00
Christian Koop
52f6c42266
Adds NMS Module v1_19_R3 for Spigot 1.19.4 compatibility 2023-03-16 09:46:40 +01:00
Christian Koop
a79677d261
Updates Lands-ProtectionHook to use v6 of the API
The API changed and we are 2 major versions behind
This drops support for outdated version of *Lands* and re-adds support for the latest version.
2023-03-09 15:53:21 +01:00
Christian Koop
5199043a4b
Minor code refractoring on SongodaAuth
Just trying to make it a bit more readable and easier to understand at a glance.
2023-03-04 13:08:16 +01:00
Christian Koop
6145021ecb
Remove unused imports in SongodaAuth and apply code formatting 2023-03-04 12:47:53 +01:00
Christian Koop
d9586cfe86
Slightly changes wording of 'missing-license' message
+ small refactoring – Putting the *expesive* method calls outside the string into variables
to easier see them, when trying to understand the code and the need
for its own thread for just printing some messages to  the console.
2023-03-04 12:38:33 +01:00
Christian Koop
ca13e8b26e
Prints 'missing-license' message in the console as one long message
This prevents fragmentation of the idividual lines. `#getIP()` can take a couple of seconds
and because it is executed outside of the main-thread, other message can be printed bevore
the IP address and UUID are ready to be printed.
2023-03-04 12:36:20 +01:00
ceze88
386ff209a7 Release v2.6.18 2023-01-25 16:02:44 +01:00
ceze88
7c02457108 Ignore self compiled plugins 2023-01-15 12:23:56 +01:00
Christian Koop
c29c4a5b09
Release v2.6.18-DEV 2023-01-11 22:00:36 +01:00
ceze88
ad6b52ca4a Add license stuff 2023-01-11 21:41:04 +01:00
Christian Koop
dc64c29da7
Ensures UTF-8 usage in LootManager
Probably doesn't affect anything as this file should only contain english letters
but just in case for the sake of tidyness
2023-01-08 12:47:27 +01:00
Christian Koop
339a4d6f6c
Ensures usage of UTF-8 in SongodaYamlConfig
Depending on the environment the default system charset might not be UTF-8 beaking
messages files using non-english language etc.

I'm not sure but Spigot might even set it to ASCII? The tests succeed locally because I am
using Manjaro Linux which uses UTF-8 by default in the JVM. But testing a plugin and logging
the default charset returns ASCII instead (on the same machine).
2023-01-08 12:46:42 +01:00
ceze88
336c5c49f3
Revert "License system"
This reverts commit 10aac8c10f.
2023-01-06 14:02:32 +01:00
ceze88
10aac8c10f License system 2023-01-02 13:39:54 +01:00
ceze88
bd187c7512 Fix max stack size for drops 2022-12-31 20:42:03 +01:00
Christian Koop
842841cd74
Fixes NMS for Spigot 1.19.0 / 1.19.1 / 1.19.2 detection
Purpur-Spigot and plain Spigot do not end with `.0`. Not sure if Paper does or Spigot 1.19.1 does?

I just added the plain `1.19` check.
This is not an issue in the Core v3 branch as the check is more stable there.
2022-12-30 20:09:01 +01:00
Christian Koop
e44e161c89
Adds some additional test cases for MathUtilsTest 2022-12-30 18:23:02 +01:00
Christian Koop
ef6c37b80c
Improve test coverage + stability of configuration.yaml/songoda classes 2022-12-30 18:22:11 +01:00
Christian Koop
7975f9088d
Heavily refactor PlotSquaredProtection.class
Moved code into private methods to make the Location#at call more readable
and to reduce duplicate code.

`PlotSquared.get()` is marked as `@NotNull` and is never null
if `PlotSquaredProtection#isEnabled` returns true.
That's why I removed the `null` check on the *API* with a check if PlotSquared is enabled.

I replaced the usage of Java StreamAPI with a simple for loop for better potential performance.
The loop is so simple and we don't know the plugins that might be using this class,
thus greater performance for a small loss on readability is probably worth it

+ Removed some unused imports
2022-12-30 16:14:08 +01:00
Christian Koop
88e28689f7
Adds ConfigEntry#withDefaultValue for easier chaining
This allows to chain the default value instead of using the setter or constructor.
Long keys/values can be put into individual lines which improves readability.

In the future, we might want to have a Builder class that contains all thise #with methods
2022-12-30 15:21:07 +01:00
Christian Koop
7eff3c86ec
Code cleanup (rename e->ex in catch; better type for #withUpgradeStep) 2022-12-30 15:21:07 +01:00
ceze88
a554934bfa Remove deprecated constructor 2022-12-29 13:49:34 +01:00
ceze88
8f95056e31 A little database utility 2022-12-29 13:49:04 +01:00
ceze88
17fb03f073 Fix pre stacking items 2022-12-29 11:50:51 +01:00
Christian Koop
396f3aefb8
Merge branch 'development' into development-v3 2022-12-26 21:03:31 +01:00
Christian Koop
1a911ee085
Release v2.6.17 2022-12-26 19:59:02 +01:00
Christian Koop
6d28fce312
Updates dependency de.tr7zw:item-nbt-api to support Minecraft 1.19.3 2022-12-26 19:58:33 +01:00
Christian Koop
64865873f9
Adds NMS module for Spigot 1.19.3 (v1_19_R2) support 2022-12-26 13:44:58 +01:00
Christian Koop
296f82f50e
Restore functionality of deprecated SQLite connection acquisition
If the connection is closed, no new SQLite connection is created in plugins still using the
deprecated method.


Introduced in 0ae9c6fcdb
2022-12-26 13:44:58 +01:00
Christian Koop
c3fb050444
Updates dependency UltimateStacker to v2.3.2 2022-12-26 13:44:49 +01:00
Christian Koop
4d194ed92b
Rename constant into upper case to match code conventions 2022-11-26 20:40:57 +01:00
Christian Koop
0b2a253014
Fix typo in JavaDoc 2022-11-26 20:40:28 +01:00
Christian Koop
8e91cc18eb
Makes SongodaYamlConfig#cannotCreateBackupCopyExceptionPrefix static
It already is `final`.
By making it static we reduce the memory required by each instance of the class.
2022-11-26 20:25:11 +01:00
Christian Koop
bba5fa5f3e
Adds additional information for deprecations as JavaDocs 2022-11-26 20:24:14 +01:00
Christian Koop
bc56347727
Fix order of modifiers in SongodaCore-class 2022-11-26 20:23:45 +01:00
Christian Koop
75b497a163
Add private constructor to SongodaCoreConstants to hide implicit one
The utility class only has static members - Nothing to gain from instantiating it other than confusion
2022-11-26 20:23:08 +01:00
Christian Koop
67a69e34e8
Make unit tests in LocaleFileManagerTest deterministic
The order in which files inside of a given directory are listed is not guaranteed in any way.
This causes tests to work on my machine but fail on out GitHub Actions CI/CD pipeline.
2022-11-26 15:31:43 +01:00
Christian Koop
d710b2d2d5
Add unit test for SongodaYamlConfig persisting comments on key-upgrades 2022-11-16 02:29:41 +01:00
Christian Koop
02330b5ca7
Improve temporary file deletion in YamlConfig and FileManager tests
The SongodaYamlConfig might create a backup config file when upgrading a
configuration into a newer version.
This file would not get deleted in the old implementation
2022-11-16 02:14:45 +01:00
Christian Koop
f8b3942de2
Adds hyphen before timestamp in file name, when creating backup YamlCfg 2022-11-16 02:03:41 +01:00
Christian Koop
daa601688d
Updates SnakeYaml dependency from 1.30 to 1.33 2022-11-16 02:03:03 +01:00
Christian Koop
e7da328dc6
Fix YamlConfiguration not dumping comments
Not sure when it broke, but now it's fixed.
2022-11-16 02:02:09 +01:00
Christian Koop
404a94c307
Move from MockBukkit to Mockito in automated tests
MockBukkit is not able to mock all of Bukkit's API
and broke with a change in PaperMC causing all our
current tests to fail. It is also version dependant.

But with Mockito you have to do everything manually right now.
No helping functionality (like creating a new mock player which automatically
will be returned in `Bukkit#getOnlinePlayers()`)

I took this opportunity to learn a bit about Mocking in Bukkit
and decided on Mockito.
It looks like we could easily write our own MockBukkit
alternative in the future.

I am not really happy how `Mockito#verify` works tho.
I find it annoying not to be able to directly assert
on the calls made to a method.
You have to create an InOrder instance first for the
mock and in the end verify with `Mockito#times(0)`/`Mockito#never()`
and `Mockito#any()` for each argument a method takes, to assert a total of n calls.
2022-11-15 22:49:09 +01:00
Christian Koop
6aa9178321
Fix ItemUtils#applyRandomEnchants in Minecraft 1.19
The method needs a `RandomSource` instead of a normal Java `Random`.
The method reference has been updated but updating
its usage has been forgotten.

Sadly I do not really know where to properly
get an `RandomSource` instance without instanciating it myself.
2022-11-07 22:29:40 +01:00
Christian Koop
aff3ea92f3
Fix wrong coreVersion in SongodaCore class 2022-11-07 22:19:19 +01:00
ceze88
e8c0e21ac2 Adds suppoert for PlotSquared and MariaDB for SQL 2022-11-04 12:28:20 +01:00