Commit Graph

501 Commits

Author SHA1 Message Date
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
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
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
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
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
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
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
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
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
d25514743f
Improve exception message for the Eval class 2022-06-16 13:21:58 +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
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
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
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
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
7ff7a46bf5
Implement NMS stuff for Minecraft 1.18 2021-12-02 16:33:24 +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
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
6dbf806e7d EditorConfig 2021-07-08 15:37:37 +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
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
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
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
Christian Koop
f545dcc2d9
Fix charset not being detected correctly on UTF-8 files (SD-7843)
With this patch, the tested bytes are whole words/lines. This ensures that multi-byte characters (like in UTF-8) are not detected as malformed input and `ISO-8859-1` being detected because it just doesn't care about anything and replaces everything it doesn't know with something it does... Why no error? Would like to know that too :/

This *should* not be able to break existig files or plugins.
2021-04-06 18:46:56 +02:00
Christian Koop
21f8487988
Code cleanup and optimization
* I replaced some calls to the *Java Stream API*
* Using `new ArrayList<>()` instead of `new ArrayList()` because *SongodaCore* is compiled with Java 8
2021-04-06 18:46:56 +02:00