Commit Graph

515 Commits

Author SHA1 Message Date
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