Commit Graph

713 Commits

Author SHA1 Message Date
Christian Koop
5e21ac9424
Revert deletion of NmsManager, deprecate it and have it use the new one 2023-05-06 22:44:38 +02:00
Christian Koop
17780fffdc
Introduce constants GitHubProjectURL+ProjectName in SongodaCoreConstants 2023-05-06 22:44:38 +02:00
Christian Koop
3722ebb46a
Fix a couple compile errors after a lot of reverts and merges 2023-05-06 22:44:38 +02:00
Christian Koop
b6a4198a60
Revert "Version v3.0.0-SNAPSHOT"
This reverts commit a06d27ab90.
2023-05-06 22:44:38 +02:00
Christian Koop
5e093558a4
Deprecates BlockUtils#updateAdjacentComparators(Location) 2023-05-06 22:44:38 +02:00
Christian Koop
50d5784da8
Partially reverts "Replace #updateAdjacentComparators implementation(+ move to NMS modules)"
This partially reverts commit 3d20f439e1.
2023-05-06 22:44:38 +02:00
Christian Koop
dc82a6ba5c
Deprecates BlockUtils#setBlockFast methods 2023-05-06 22:44:38 +02:00
Christian Koop
1240c75bfa
Partially reverts "Replace #setBlockFast implementation and move into NMS modules"
This partially reverts commit 43148032a2.
2023-05-06 22:44:38 +02:00
Christian Koop
ad8f8517a7
Deprecates SWorldBorder class
Related to:
* 71502be7d0a8978ede443b43c207c932f550730d
* 9d7026ec27
2023-05-06 22:44:38 +02:00
Christian Koop
426e786b49
Partially reverts "Replace SWorldBorder implementation and move it into NMS modules"
This partially reverts commit 9d7026ec27.
2023-05-06 22:44:38 +02:00
Christian Koop
7c09845789
Revert "Remove overloading WorldCore#getSpawner(CreatureSpawner)"
This reverts commit 1cd96b10c5.
2023-05-06 22:44:38 +02:00
Christian Koop
c725ea69d6
Revert all the SongodaYamlConfig related commits
Revert "Ensures usage of UTF-8 in SongodaYamlConfig"

This reverts commit 339a4d6f6c.

Revert "Improve test coverage + stability of configuration.yaml/songoda classes"

This reverts commit ef6c37b80c.

Revert "Adds ConfigEntry#withDefaultValue for easier chaining"

This reverts commit 88e28689f7.

Revert "Code cleanup (rename e->ex in catch; better type for #withUpgradeStep)"

This reverts commit 7eff3c86ec.

Revert "Rename constant into upper case to match code conventions"

This reverts commit 4d194ed92b.

Revert "Fix typo in JavaDoc"

This reverts commit 0b2a253014.

Revert "Makes SongodaYamlConfig#cannotCreateBackupCopyExceptionPrefix static"

This reverts commit 8e91cc18eb.

Revert "Make unit tests in LocaleFileManagerTest deterministic"

This reverts commit 67a69e34e8.

Revert "Add unit test for SongodaYamlConfig persisting comments on key-upgrades"

This reverts commit d710b2d2d5.

Revert "Improve temporary file deletion in YamlConfig and FileManager tests"

This reverts commit 02330b5ca7.

Revert "Adds hyphen before timestamp in file name, when creating backup YamlCfg"

This reverts commit f8b3942de2.

Revert "Fix YamlConfiguration not dumping comments"

This reverts commit e7da328dc6.

Revert "Provisional first implementation of the new localization system"

This reverts commit b168ad0738.

Revert "Fix error handling of SongodaYamlConfig#load(Reader)"

This reverts commit 163e4d9eaf.

Partially reverts "Adds some deprecation notices to configuration.editor classes"

This partially reverts commit eea951ecc6.

Revert "Redo ConfigEntry abstraction"

This reverts commit 20b44327e0.

Revert "Migrate CustomizableGui from old Config to SongodaYamlConfig"

This reverts commit d5ddde3e08.

Revert "Adds SongodaYamlConfig#getAsEntry(String) for convenience"

This reverts commit 20b7a353b8.

Revert "Add contract to `ConfigEntry#getString(String)` for non-null-argument"

This reverts commit 78b6039d39.

Revert "Adds getter to ConfigEntry for List<String>"

This reverts commit 3a09c19dbb.

Revert "Remove usage of Locale classes"

This reverts commit da3c89450e.

Revert "Mark overwritten and empty config methods in SongodaPlugin as deprecated"

This reverts commit 73685b62dd.

Revert "Adjust log levels in SongodaYamlConfig"

This reverts commit 7ef00bb8f9.

Revert "Fix SongodaYamlConfig not creating parent directory when saving"

This reverts commit b0f006aed0.

Revert "Fix SongodaYamlConfigTest leaving created backup files in tmp dir"

This reverts commit c9a48387de.

Revert "Remove Config related methods in SongodaPlugin"

This reverts commit fce5c5c6a1.

Revert "Introduce new SongodaYamlConfig and ConfigEntry classes"

This reverts commit eb10b3f70a.

Revert "Fix YamlConfiguration dumping null values and empty tree nodes"

This reverts commit 02ab8d4bb2.

Revert "Fix `YamlConfiruration#getKeys("")` not returning root node keys"

This reverts commit 885cc9a87e.

Revert "Fix exception on loading empty file in YamlConfiguration"

This reverts commit 2683bc12c0.

Revert "Make YamlConfiguration insertion-sorted"

This reverts commit 2262652577.

Revert "Rename `IConfiguration#getOrDefault` to `#getOr`"

This reverts commit f6e207cdda.

Revert "Adds Enum support to YamlConfiguration class (#41)"

This reverts commit 41bd5c633a.

Revert "Removes the default implementations for #save(File) and #load(File)"

This reverts commit 8f15df3601.

Revert "Replace Songoda's YAML Configuration wrapper with an own implementation"

This reverts commit 6d6fa7210a.
2023-05-06 22:44:38 +02:00
Christian Koop
748f10b77b
Merge branch 'development' into development-v3 2023-05-06 20:17:35 +02:00
Christian Koop
0a0848c857
Release v2.6.21 2023-04-29 12:37:40 +02:00
Christian Koop
06761c001c
Fix plugin cmd list displayed in Action Bar instead of the chat 1.19.3+
The boolean flag determines 'whether the message is an actionbar or chat message'.
We want to have it set to `false` here.

Reference:
https://wiki.vg/index.php?title=Protocol&oldid=18120#System_Chat_Message
2023-04-29 11:56:04 +02:00
Christian Koop
7a7d2e8b97
Release v2.6.20 2023-04-22 16:13:07 +02:00
Christian Koop
9361fad0bf
Deprecate BlockUtils and BlockUtilsModern classes 2023-04-22 15:18:33 +02:00
Christian Koop
e21db58a67
Reimplement BlockUtils#updateAdjacentComparators in WorldCore
The implementation broke in 1.19.4 mid-version.
Fixes `java.lang.NoSuchMethodException: org.bukkit.craftbukkit.v1_19_R3.CraftChunk.getHandle()`


Related commit: a3e73be1aa
2023-04-19 21:59:13 +02:00
Christian Koop
57f9f1f911
Fix coreVersion in SongodaCore class not being the correct release 2023-04-13 11:51:14 +02:00
Christian Koop
177ecb36e5
Release v2.6.19 2023-04-13 11:48:55 +02:00
Christian Koop
37a9ee8868
Adds missing commands to list when console is running songoda command 2023-04-13 11:35:19 +02:00
Christian Koop
c34c8faa9c
Fix wrong permission configured for SongodaCoreUUIDCommand 2023-04-13 11:23:05 +02:00
Christian Koop
b9293079e0
Fix broken Wiki-URL in CustomizableGui
The Wiki has moved/changed and is not redirecting properly sadly
2023-04-13 11:22:43 +02:00
Christian Koop
2730b91598
Have songoda-Command have 'craftaro' as alias and change wording to that
Not having the actuall command change allows of other plugins *finding* that command
in that way means not introducing a breaking change by accident ^^

+ It's very hacky the way I did it but tbh... Core v3 is somewhat around the corner anyways
2023-04-13 11:22:04 +02:00
Christian Koop
7c4e967dd8
Changes *some* Songoda wording to Craftaro
I don't want to introduce too much confusion or breaking changes
2023-04-13 11:18:12 +02:00
ceze88
1455cf2d1c Fix enchant book loot 2023-04-11 19:23:05 +02:00
ceze88
3dd3a31f25 Add coordinate placeholders to loot commands 2023-04-07 20:46:14 +02:00
Christian Koop
824f674dcd
Change order of IP and UUID in 'license not found' message to match GUI
The marketplace first asks for the UUID - I changed the order in the message to match that order.
2023-04-06 10:06:58 +02:00
Christian Koop
e33848adc5
Release v2.6.19-DEV 2023-03-29 21:16:28 +02:00
Christian Koop
65f606ee83
Refactor /songoda diag command and change output formatting a bit
This should make reading the version information displayed easier.
No more confusing the plugin version vs. the core version.

Additionally fixed `Mb` to `MiB`.
2023-03-29 19:22:09 +02:00
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
Christian Koop
31fde88c33
Fix ConcurrentModificationException in DropUtils for UltimateStacker
Related to 92c653d9be
2022-10-26 22:59:00 +02:00
Christian Koop
500ac98f84
Release 2.6.17-SNAPSHOT 2022-10-26 21:59:06 +02:00
Christian Koop
5f43578869
Fix NoSuchFieldError on Paper-Spigot 1.19.2 for SWorld#getLivingEntities
The field does not exist on Spigot (located in another class?).
But `#getEntities()` does exactly what we need and Paper-Spigot still has it.


SD-9374
SD-9377
SD-9392
SD-9401
2022-10-26 21:58:34 +02:00
Christian Koop
b168ad0738
Provisional first implementation of the new localization system
It it not done yet. A lot of usability features are still missing.
Including a proper interface to interact with the whole
new system in the plugins.
2022-09-29 21:55:57 +02:00
Christian Koop
2e15ed5d28
Adds a simple http client
This is intended to standardize how we do these request in the core.
It doesn't do much but it will sufice for now to be used
in the new localization system.
2022-09-29 21:52:59 +02:00
Christian Koop
2860dffb83
Update Dependencies: Spigot, MockBukkit, JUnit, pitest-maven 2022-09-29 21:39:07 +02:00
ceze88
92c653d9be Add max stack size check when pre-stack items with US 2022-09-19 21:04:52 +02:00
ceze88
30d070cade Drop items stacked when UltimateStacker is present 2022-09-19 20:37:34 +02:00
ceze88
d11b32d8ea Update UltimateStacker version 2022-09-19 20:36:38 +02:00
Christian Koop
e3b275b40d
Release v2.6.16 2022-09-04 19:31:58 +02:00
BuildTools
9c47056b46 Version 2.6.16-DEV - Support for 1.19.1/2 spawners. 2022-09-03 01:03:27 -04:00
Christian Koop
1cd96b10c5
Remove overloading WorldCore#getSpawner(CreatureSpawner) 2022-08-28 19:19:48 +02:00
Christian Koop
b07f67e0d6
Unify and cleanup all pom.xml-files
This also moves all the dependency declarations of the NMS modules
from the Core-Module to its own NMS-Module.
This module might get merged with the NMS-API module in the future.
2022-08-28 19:13:59 +02:00
Christian Koop
b3426a6a1a
Load NMS modules via Reflections instead of defining everything manually
This probably needs some additonal work but my idea
is that every NMS module has only one entry point.
This hopefully allows for as much freedom in version-specific
implementations as possible and allows for easily  loading them via Reflections.
2022-08-28 18:20:22 +02:00
Christian Koop
e18db1d775
Removes depenency on NMSPlayerImpl for NmsWorldBorderImpl 2022-08-28 16:54:29 +02:00
Christian Koop
9d7026ec27
Replace SWorldBorder implementation and move it into NMS modules 2022-08-28 16:54:29 +02:00
Christian Koop
43148032a2
Replace #setBlockFast implementation and move into NMS modules
We need to check if FabledSkyBlock actually needs this and if it can be removed from the Core.
I added a TODO-Comment for that.
2022-08-27 22:42:07 +02:00
Christian Koop
3d20f439e1
Replace #updateAdjacentComparators implementation(+ move to NMS modules) 2022-08-27 22:35:37 +02:00
Christian Koop
b779194e3e
Adds SongodaCore#getVersion and deprecate #getCoreLibraryVersion 2022-08-25 08:37:46 +02:00
Christian Koop
163e4d9eaf
Fix error handling of SongodaYamlConfig#load(Reader) 2022-08-21 20:44:41 +02:00
Christian Koop
eea951ecc6
Adds some deprecation notices to configuration.editor classes 2022-08-21 20:44:19 +02:00
Christian Koop
20b44327e0
Redo ConfigEntry abstraction 2022-08-21 20:42:16 +02:00
Christian Koop
a06d27ab90
Version v3.0.0-SNAPSHOT 2022-08-19 10:06:58 +02:00
Christian Koop
d5ddde3e08
Migrate CustomizableGui from old Config to SongodaYamlConfig 2022-08-18 23:09:21 +02:00
Christian Koop
20b7a353b8
Adds SongodaYamlConfig#getAsEntry(String) for convenience
If you are reading a config dynamically instead of fully creating it
with all the entries beforehand, this method can be used
to easily access the *converted/casted* values.
2022-08-18 23:08:58 +02:00
Christian Koop
78b6039d39
Add contract to ConfigEntry#getString(String) for non-null-argument
The contract basically says that if you provide a
non-null argument to the method, it cannot return
a null value.
2022-08-18 23:07:18 +02:00
Christian Koop
3a09c19dbb
Adds getter to ConfigEntry for List<String> 2022-08-18 23:06:22 +02:00
Christian Koop
da3c89450e
Remove usage of Locale classes 2022-08-18 23:05:21 +02:00
Christian Koop
61b784b3e8
Merge branch 'development' into development-v3 2022-08-18 22:57:46 +02:00
ceze88
430e203a65 Fix connection with MySQL 2022-08-09 16:27:28 +02:00
Christian Koop
b568d51151
Release v2.6.15-DEV 2022-08-08 23:12:06 +02:00
Christian Koop
b3be6700f9
Fixes NoSuchMethodException since MC 1.19.1 in chat package
Sadly, NMS-Package-Version did not change between 1.19.0 and 1.19.1

https://wiki.vg/index.php?title=Protocol&type=revision&diff=17688&oldid=17663


Co-authored-by: Fernando Pettinelli <fernandopettinellifreire@gmail.com>
2022-08-08 23:10:42 +02:00
Christian Koop
5e1f1b802c
Introduce new CI/CD pipeline using GitHub Actions
A lot is happening in this release!

tl;dr: GitHub Actions runs tests, compiles the project, signs the jar files, deploys them to the Maven repo; Pushing a git tag issues a release instead of snapshot deployment; -SNAPSHOT is always added to the version otherwise; Core Version is now injected by maven instead of manually updating it in one of the classes


We now use GitHub Actions to run automated tests, compile the project, sign the resulting jar files, and always deploy a version to the Maven repo.
By default, a snapshot release is published but by creating a git tag, a release deploy can be triggered.

Additionally the Core version is not manually updated in one of the classes but injected after compiling it.
I think I found the most stable and easiest way to do this in maven,
although I'd have wished for it to be easier and maybe not after the class file has already been created.
2022-08-07 19:33:38 +02:00
ceze88
0ae9c6fcdb New method to get MySQL connection for HikariCP 2022-08-07 16:36:30 +02:00
Fernando Pettinelli
1ab918a32e Version 2.6.14-DEV 2022-07-13 01:50:25 -04:00
Fernando Pettinelli
c8be1229e8 Fixes for AnvilView, WildStacker and mcMMO. 2022-07-13 01:49:36 -04:00
Fernando Pettinelli
2b7cfcc29a Added ChatMessage fix. 2022-07-03 03:37:49 -04:00
Fernando Pettinelli
2929c628ed 2.6.13 - Added Apache Commons Lang3 and Text. More 1.19 fixes. 2022-06-26 12:27:20 -04:00
Christian Koop
84515e7004
Minor code cleanup in SongodaYamlConfig constructor
keeps the logger effectively final + makes Codacity' static code analysis happy
2022-06-26 13:57:12 +02:00
Christian Koop
ed7b454625
Fix Exception when calling #emergencyStop inside onPluginEnable 2022-06-26 13:46:38 +02:00
Christian Koop
73685b62dd
Mark overwritten and empty config methods in SongodaPlugin as deprecated
The methods should not be used
2022-06-26 13:46:35 +02:00
Christian Koop
7ef00bb8f9
Adjust log levels in SongodaYamlConfig
Level.FINER is currently not logged anthough the Logger is set to ALL and isLoggable returns true for FINER.

There's an bug existing bug report at Spigot: https://hub.spigotmc.org/jira/browse/SPIGOT-7018
2022-06-26 13:46:29 +02:00
Christian Koop
532d96f6c1
Add adventure-api to SongodaCore dependencies 2022-06-26 13:28:10 +02:00
Christian Koop
b0f006aed0
Fix SongodaYamlConfig not creating parent directory when saving
Caused an IOException if the PluginDataDir didn't exist yet.
2022-06-26 13:26:13 +02:00
Christian Koop
e7e3c3d21d
Disable test CompatibileMaterialTest#getMaterialForAllBukkitMaterials
It is highly version dependent and breaks often because of that
2022-06-26 13:25:10 +02:00
Christian Koop
c9a48387de
Fix SongodaYamlConfigTest leaving created backup files in tmp dir 2022-06-26 13:24:16 +02:00
Christian Koop
fce5c5c6a1
Remove Config related methods in SongodaPlugin
Escept for #getExtraConfigs which got renamed, the other methods are no longer required and have been removed.

Additionally the config methods defined by Bukkit's JavaPlugin class
have been overwritten with empty bodies.
This prevents the default behaviour trying to access stuff that's not there
or should not be considered a valid config to use.
2022-06-26 02:38:29 +02:00
Christian Koop
4bc0e991ab
Removes #getConsole in SongodaPlugin 2022-06-26 02:33:09 +02:00
Christian Koop
eb10b3f70a
Introduce new SongodaYamlConfig and ConfigEntry classes
This introduces an additional abstraction layer on top of the YamlConfiguration.
This is the class that should normally be used by plugins.
2022-06-26 01:51:53 +02:00
Christian Koop
02ab8d4bb2
Fix YamlConfiguration dumping null values and empty tree nodes 2022-06-26 01:39:39 +02:00
Christian Koop
885cc9a87e
Fix YamlConfiruration#getKeys("") not returning root node keys 2022-06-26 01:39:39 +02:00
Christian Koop
2683bc12c0
Fix exception on loading empty file in YamlConfiguration 2022-06-26 01:39:39 +02:00
Christian Koop
2262652577
Make YamlConfiguration insertion-sorted
This ensured that the order of the keys is deterministic and be controlled by the developer.
2022-06-26 01:39:39 +02:00
Christian Koop
f6e207cdda
Rename IConfiguration#getOrDefault to #getOr 2022-06-26 01:39:39 +02:00
Fernando Pettinelli
b110a69285 1.19 fixes 2022-06-25 17:59:06 -04:00
Christian Koop
2272fe7b97
Release v2.6.13-DEV 2022-06-20 17:27:01 +02:00
Christian Koop
73c6b9a558
Fixes MathUtils unit tests
Started failing with changes in d25514743f
2022-06-16 20:59:50 +02:00
Christian Koop
d25514743f
Improve exception message for the Eval class 2022-06-16 13:21:58 +02:00
Christian Koop
547425dec9
Update maven-shade-plugin from 3.3.0-SNAPSHOT to 3.3.0 2022-06-07 19:45:24 +02:00
Christian Koop
fc658d51c0
Adds Spigot 1.19 NMS module 2022-06-07 19:31:32 +02:00
Christian Koop
41bd5c633a
Adds Enum support to YamlConfiguration class (#41) 2022-04-27 23:34:27 +02:00
Christian Koop
8f15df3601
Removes the default implementations for #save(File) and #load(File)
Overwriting an implementing class quickly becomes a potential hassle as there is no guarantee how they  are implementend


#41
2022-04-27 23:31:53 +02:00
Christian Koop
6d6fa7210a
Replace Songoda's YAML Configuration wrapper with an own implementation
Because Spigot 1.18 still hasn't fixed a critical bug like PaperMC did, I recoded the current YAML Configuration classes and access SnakeYaml directly instead of using the Spigot wrapper.
This implementation approach also allows for adding node comments using the lib instead of some woodo string manipulation.


#41
// I might move this into my own library in the future, lets see :p
2022-04-27 21:42:20 +02:00
Christian Koop
2a037e2853
Update required snakeyaml version from 1.26 to 1.30 (#41)
We probably want to take a look at what Spigot 1.8 comes with and if we are compatible or if we want to shade the lib into the Core instead.

Maybe we can have some kind of automatic legacy system that downloads an addional jar automatically when an unsupported Spigot version is detected... Lets see what time brings
2022-04-27 21:42:20 +02:00
Christian Koop
f6b091bb79
Uses the asyncPool in DataManagerAbstract#asyncFuture (#22) 2022-03-18 16:17:15 +01:00
Christian Koop
7a85bd7a2a
Merge pull request #22 from divios/patch-1
Added `DataManagerAbstract#asyncFuture`
2022-03-18 16:16:37 +01:00
Christian Koop
7ca814c747
Release v2.6.12 2022-03-18 14:47:22 +01:00
Christian Koop
a42d03aec3
Fixes empty slots in ConfigEditorGui item select 2022-03-18 14:33:50 +01:00
Christian Koop
a0050aadd6
Adds Minecraft 1.18.2 support 2022-03-18 14:33:50 +01:00
Christian Koop
8c0c281d9b
Deprecates Core's NBTItem implementations in favor of item-nbt-api 2022-03-18 14:33:50 +01:00
Christian Koop
e57342ab2a
Fixes error reporting on plugin startup to not print Exception correctly 2022-02-10 18:57:19 +01:00
Christian Koop
f887ba6c48
Version 2.6.11 2022-01-21 17:44:18 +01:00
Christian Koop
ffbd84875e
Properly relocate shaded dependency 2022-01-02 22:44:06 +01:00
Fernando Pettinelli
1514fd4fae Version 2.6.10 2021-12-22 18:07:14 -03:00
Fernando Pettinelli
de20a5b73c Version 2.6.9 2021-12-20 19:29:28 -03:00
Fernando Pettinelli
f4519bc030 HolographicDisplays 3 support. 2021-12-20 19:29:00 -03:00
Christian Koop
16c0b470f9
Comments out unused reflection access 2021-12-20 20:26:03 +01:00
Fernando Pettinelli
253883c735 Hologram hook rework. Only tested with DecentHolograms, needs further testing. 2021-12-18 23:15:46 -03:00
Christian Koop
edde5f9963
Version 2.6.8 2021-12-18 18:18:47 +01:00
Christian Koop
b89c14860c
Fix some more MethodMapping related stuff (NMS) 2021-12-18 18:16:44 +01:00
ItsAZZA
3d58c0777e
Lootables input accepts lowercase entries (#32)
Make it so the lootables AnvilGUI can take in lowercase names for items.
2021-12-18 00:39:06 +01:00
Christian Koop
331f77b65d
Version 2.6.7 2021-12-14 21:01:27 +01:00
Christian Koop
fbb61cf9f6
Further usage of MethodMapping and ClassMapping classes 2021-12-14 20:55:46 +01:00
Christian Koop
9b5eda60b3
Updates BlockUtils to use MethodMapping and ClassMapping 2021-12-13 18:00:36 +01:00
Christian Koop
71fb43e6ff
Removes ItemUtils#setMaxStack 2021-12-13 17:59:25 +01:00
Christian Koop
f9b2562d3d
Version 2.6.6 2021-12-11 15:37:21 +01:00
Christian Koop
b033c059a3
Fix MethodMapping and its usage in ItemUtils 2021-12-11 15:00:24 +01:00
Christian Koop
f6caad3983
Version 2.6.5 2021-12-10 19:46:24 +01:00
Christian Koop
354e7ea2f0
Version 2.6.4 2021-12-10 18:13:22 +01:00
Christian Koop
e521e4930f
Make SWorldBorder compatible with Minecraft 1.18 2021-12-09 22:05:53 +01:00
Christian Koop
f8aed3c87e
Version 2.6.3 2021-12-09 04:52:24 +01:00
ItsAZZA
93c7b802f6
Fix wrong dye data value for Gray in #getDyeColor (#31) 2021-12-08 09:46:36 +01:00
Christian Koop
cd34b24517
Version 2.6.2 2021-12-07 17:19:13 +01:00
Christian Koop
de06070dac
Deprecate the method NMSUtils#getCraftClass in favor of ClassMapping 2021-12-07 16:41:31 +01:00
Brianna
d7010d7483 Method mapping. 2021-12-06 11:12:59 -06:00
Christian Koop
776ead9870
Version 2.6.1 2021-12-02 20:30:26 +01:00
Christian Koop
6c8c8a3a29
Introduces a cross-version way to send packets via NMSManager 2021-12-02 20:29:28 +01:00
Christian Koop
4f5300f44c
Version 2.6.0 2021-12-02 16:42:09 +01:00
Christian Koop
1c441e755a
Restore compatibility after commit reverts
I'm currently reverting some breaking changes so I can introduce them later and some imports broke in future commits. This fixes them


One of the related commits (may not exist anymore): 3d328df7ad
2021-12-02 16:42:09 +01:00
Christian Koop
7ff7a46bf5
Implement NMS stuff for Minecraft 1.18 2021-12-02 16:33:24 +01:00
Christian Koop
d64dfbf5c6
Add unit tests for CompatibleMaterial
This especially eases adding support for new Minecraft versions
2021-12-02 16:32:48 +01:00
Christian Koop
fd2809f982
Version 2.5.14 2021-11-01 22:30:51 +01:00
Christian Koop
6453c7b6f6
Recode BlockUtils#updateAdjacentComparators to work in older versions
The old implementation relied on methods that were only available in newer versions - This should be more future proof
2021-11-01 22:27:12 +01:00
Christian Koop
7c6817c470
Minor cleanup of #27
* Code style
* Method name and access modifier
* JavaDoc
2021-11-01 20:29:16 +01:00
Christian Koop
af9def96b3
Merge branch 'Exortions/SongodaCore:master' into development (#27) 2021-11-01 20:18:04 +01:00
Exortions
3aaed3bcde
Remove duplicate code
This commit removes the duplicate error message run when the plugin crashes and turns it into one method 'crash'. This method takes in a throwable, which will be printed once the error message is logged.
2021-11-01 11:23:42 -07:00
Christian Koop
e379ae601d
Fixed typo 2021-10-30 23:45:22 +02:00
Christian Koop
ba7054c1e7
Fix failing test cases
The disabled test cases have been written without looking at the implementation - But it looks like the implementation is faulty and needs a patch.

We'll take a look at a later time and decide about backwards compatibility etc.
2021-10-30 15:19:53 +02:00
Christian Koop
b4d1f4fc60
Implement first unit tests 2021-10-30 14:53:23 +02:00
Christian Koop
93fbc6463f
General code cleanup [DEV-2]
Hopefully no breaking changes
2021-10-30 14:10:57 +02:00
Christian Koop
97feaf3b9c
Removes @author and @since from class comments
These kind of information can easily be found in git/on GitHub
2021-10-30 14:10:22 +02:00
Christian Koop
39bdd862fb
Apply new code style [DEV-2] 2021-10-30 14:10:22 +02:00
Christian Koop
749c3a9a28
Version 2.5.13 2021-10-27 19:51:54 +02:00
Christian Koop
aa587361ed
Version 2.5.13-SNAPSHOT 2021-10-26 23:05:54 +02:00
Christian Koop
6a858c9c30
DataManagerAbstract: Add single threaded task queue (experimental)
We had some reports about server outright crashing because EpicFurnaces (maybe others too) because there are too many async tasks queue at once. Every async task scheduled to spigot (as of 1.17) creates a new thread

This should help a bit and the `FIXME` has to be taken care of when more time is at hand... The whole data storing stuff is just bad which shows as soon as servers (or the plugin use e.g. many furnaces) get bigger... (am a bit annoyed 🤷)
2021-10-26 23:05:37 +02:00
Christian Koop
0bdb0af890
Merge branch 'development' 2021-10-26 21:19:53 +02:00
Fernando Pettinelli
fb8d38f54b Version 2.5.12 2021-10-16 21:37:26 -03:00
Christian Koop
9605ac5ded
Prevents #getRandomPlayer from throwing an Exception on 0 online players 2021-10-02 14:58:14 +02:00
Christian Koop
ce72ab7291
Fix numbers being formatted wrong on some machines [DEV-5]
My system is configured to use German causing the method to use the wrong decimal seperator for the given format
2021-10-02 11:27:18 +02:00
Fernando Pettinelli
820b7ffbd3 Version 2.5.11 2021-09-30 13:03:36 -03:00
divios
c0a2bc8cc5
Added asyncFuture
Added a method to run a task async but return a CompletableFuture. Useful if you want the task to be asynchronous but also wait for it to finish and concatenate another task or more functionalities with the CompletableFuture API
2021-09-12 11:08:08 +02:00
Christian Koop
799bf30651
Version 2.5.10 2021-08-30 21:53:47 +02:00
Fernando Pettinelli
a601b86d68 Added Residence support. 2021-08-29 17:44:17 -04:00
Fernando Pettinelli
6951a7f4ad Merge remote-tracking branch 'origin/development' into development 2021-08-29 16:03:20 -04:00
Fernando Pettinelli
3ee798fe23 Add PIGLIN_BRUTE_SPAWN_EGG material. 2021-08-29 16:03:08 -04:00
Christian Koop
5921be70bb
Version 2.5.9 2021-08-29 15:49:06 +02:00
Christian Koop
2ed245389f
Allows respecting Unbreaking-Enchantment [SD-8182] 2021-08-29 15:49:06 +02:00
Christian Koop
03e2360a98
Updated logging to mostly use java.util.logging.Logger [SD-8645] 2021-08-29 13:49:01 +02:00
Christian Koop
c5569adc10
Change formatting a bit 2021-08-18 20:56:05 +02:00
ajgeiss0702
9f5daa2503
Don't try to change item meta when there is none 2021-08-06 20:40:56 -07:00
Christian Koop
60ceac5eb6 Version 2.5.8 2021-07-08 17:50:13 +02:00
Christian Koop
8eefbce68d Change dependency com.github.Zrips.Jobs version from LATEST to v4.17.2 2021-07-08 17:50:13 +02:00
Christian Koop
6dbf806e7d EditorConfig 2021-07-08 15:37:37 +02:00
Christian Koop
a73ed7908e Update pom.xml files and project structure
* Should fix IntelliJ sometimes not finding classes
* Should make things easier to understand and maintain
* Rename `LICENSE.md` to `LICENSE`
2021-07-08 15:37:37 +02:00
Christian Koop
f5bf5903c7
Dependency: Update mcMMO from v2.1.50 to v2.1.200
This fixes failing maven builds reporting a http repo being used and blocked - As only the patch version has been increased, there should be no problem related to this update (Core's only getting compiled against it's API anyway)
2021-07-06 13:15:17 +02:00
Fernando Pettinelli
e6398bca1f Version 2.5.7 2021-06-30 10:24:50 -04:00
Brianna
dddbc32459 version 2.5.6 2021-06-21 17:18:51 -05:00
Brianna
711125aa67 Added support for Worldborders in 1.17 2021-06-21 17:18:18 -05:00
Brianna
ebf0d06434 version 2.5.5 2021-06-13 18:08:18 -05:00
Brianna
c861aafe82 Added Lootables to SongodaCore. 2021-06-13 18:04:16 -05:00
Brianna
7430fcc34a version 2.5.4 2021-06-13 16:58:57 -05:00
Brianna
947e0d5b2d version 2.5.3 2021-06-13 13:23:29 -05:00
Brianna
76ea7f128f Ease of access. 2021-06-13 13:23:21 -05:00
Brianna
a608ac4cc7 version 2.5.2 2021-06-13 10:26:16 -05:00
Brianna
7c0ce2505c Use JDK 16 on the 1.17 module while using JDK 8 on everything else 2021-06-13 10:26:08 -05:00
Brianna
ff1c267de7 version 2.5.1 2021-06-13 10:10:46 -05:00
Brianna
b27d07dc47 version 2.5 2021-06-12 20:15:56 -05:00
dependabot[bot]
1ee756504a Bump snakeyaml from 1.25 to 1.26 in /Core
Bumps [snakeyaml](https://bitbucket.org/asomov/snakeyaml) from 1.25 to 1.26.
- [Commits](https://bitbucket.org/asomov/snakeyaml/branches/compare/snakeyaml-1.26..snakeyaml-1.25)

---
updated-dependencies:
- dependency-name: org.yaml:snakeyaml
  dependency-type: direct:production
...

Signed-off-by: dependabot[bot] <support@github.com>
2021-06-12 20:10:36 -05:00
Brianna
7ab0c4d106 1.17 Support 2021-06-12 20:04:20 -05:00
Brianna
3d415d6da6 Removed some illegal access reflection. 2021-06-09 12:33:53 -05:00
Brianna
e0bed2d80e Added WorldBorder support. 2021-06-01 16:14:23 -05:00
Brianna
4c4c80734c version 2.4.57 2021-06-01 12:13:43 -05:00
Brianna
ca4da1f748 Added String equation handler. 2021-06-01 12:13:39 -05:00
Brianna
462479d476 version 2.4.56 2021-05-27 17:16:49 -05:00
Brianna
07cb02a4ca Removed Songoda ads. Ugh. 2021-05-27 10:39:37 -05:00
Brianna
f2fb4bb65e version 2.4.55 2021-05-27 09:57:21 -05:00
Christian Koop
3d5ab04c79 CompatibleParticleHandler: Add support to send to a specific player 2021-05-27 09:56:20 -05:00
Brianna
1dd3f00978 Added WorldCore with some spawner functions. 2021-05-27 09:56:15 -05:00
Brianna
a818050daf Moved the compatibility API to its own module. 2021-05-27 09:56:04 -05:00
Brianna
07eb0d5710 Stacker plugin hook adjustment. 2021-05-27 09:55:55 -05:00
Brianna
853c6b2b40 version 2.4.54 2021-05-27 09:55:02 -05:00
Brianna
108ec6a2ed Allow updating holograms in bulk
This improves performance when using *HolographicDisplays* drastically on many holograms.

Plugins like *EpicAnchors* might need to manage and update a lot of holograms frequently, causing SongodaCore to fetch all the holograms from the external API (My test setup reduced the time needed to update from ~30ms to ~1ms)
2021-05-27 09:53:45 -05:00
Christian Koop
e218704d5b Fix bulk hologram update
Fixing a bug introduced in 1474980b63a9d4dd26bd84a5e433e585b54d51d5 causing some holograms to not update properly
2021-05-27 09:53:02 -05:00
Christian Koop
1db6c9bf79 Version 2.4.53 2021-05-27 09:52:08 -05:00
Christian Koop
dde2fd36c6 Allow updating holograms in bulk
This improves performance when using *HolographicDisplays* drastically on many holograms.

Plugins like *EpicAnchors* might need to manage and update a lot of holograms frequently, causing SongodaCore to fetch all the holograms from the external API (My test setup reduced the time needed to update from ~30ms to ~1ms)
2021-05-27 09:52:04 -05:00
Christian Koop
040eb14982 Fix NPE when using uppercase color chars in lang files (SD-7134) 2021-05-27 09:51:58 -05:00
Fernando Pettinelli
5b5bb17df9 Version 2.4.52 2021-04-15 12:19:12 -04:00
Fernando Pettinelli
17077dff78 Fix NoSuchMethodError on older versions. 2021-04-15 12:18:50 -04:00
Brianna
398d47c915 version 2.4.51 2021-04-12 13:03:52 -05:00
Fernando Pettinelli
9b9f0b9a52 Version 2.4.50 2021-04-11 15:20:47 -04:00