Commit Graph

131 Commits

Author SHA1 Message Date
Christian Koop
796d71fb9c
perf: Lazily pre-populates cache for CompatibleMaterial#getFurnaceResult
The previous implementation would not cache the result for Materials without a furnace result.
So it would always check all recepies before return null.

We now just populate the whole cache instead of populating each Material<->Result combination one-by-one.
We are already iterating all the recepies anyways and EpicFurnaces should be the only plugin to use this method.
So there's actually not even a memory-consumtion trade-off right now because over time it would be
like this anyway – Just with worse performance
2024-02-25 18:01:29 +01:00
Christian Koop
56d46f4de0
chore: Updates XSeries to v9.8.0 for Spigot 1.20.4 compatibility 2023-12-12 14:27:33 +01:00
ceze88
e642980c2c Update XSeries 2023-11-06 14:21:29 +01:00
Christian Koop
e6b2e12eb3
chore: Updates XSeries to support Spigot 1.20.2 2023-10-19 17:14:08 +02:00
Christian Koop
e3d7b0d5af
refactor: CompatibleMaterial#getFurnaceResult(XMaterial) 2023-10-17 17:25:12 +02:00
ceze88
fc4c915791 FIx caching wrong item 2023-10-17 14:22:21 +02:00
ceze88
40992836b2 Add caching for recipes to improve performance 2023-10-05 11:11:41 +02:00
Christian Koop
8c22f5d141
Make CompatibleMaterial#getMaterial(String) with null and empty values
XMaterial throws an Exception if provided with `null` or `""`.
We make sure that an empty Optional is returned instead. Mainly for backwards compatibility reasons.
2023-08-16 17:54:37 +02:00
Christian Koop
d28a961216
Re-implement CompatibleMaterial#getEggType 2023-07-01 13:51:24 +02:00
Christian Koop
0d1bd6075d
Re-implement CompatibleMaterial#isBrewingStandIngredient 2023-06-29 09:22:59 +02:00
Christian Koop
132ea8d871
Re-code CompatibleMaterial#getBurnResult to be version-independant
It now is version, server-implementation independant and supports recipes from other plugins ^^
2023-06-29 09:20:34 +02:00
Christian Koop
2935009634
Implement getYieldForCrop and getSeedForCrop in CompatibleMaterial
Similar methods with different names existed before and are used in EpicFarming.
I decided on keeping them in here instead of moving them to the plugin.
2023-06-25 16:12:12 +02:00
Christian Koop
b7e64d17e6
Updates CompatibleHand to accept LivingEntity instead of Player
Needed in EpicEnchants plugin
2023-06-25 12:40:14 +02:00
Christian Koop
7ce74de993
Deprecates CompatibleSound in favor of XSound from the XSeries library 2023-06-24 15:58:38 +02:00
Christian Koop
f2c204ae89
Restore CompatibleMaterial#getGlassPaneColor(int)
Needed in default configuration of plugins using the Core's GUI APIs
2023-06-21 16:06:55 +02:00
Christian Koop
bac3c1b16e
Re-implemented CompatibleMaterial + changed usages to XMaterial 2023-06-20 20:22:29 +02:00
Christian Koop
d4fe43fd35
Adds XSeries's XMaterial class to the shaded dependencies 2023-06-18 01:01:28 +02:00
Christian Koop
2a7e5ceb34
Updates dependency com.viaversion:viaversion-api to v4.7.0 2023-06-18 00:42:18 +02:00
Christian Koop
82e8dd03c0
Extends ClientVersion mapping for 1.18, 1.19 and 1.20 2023-06-18 00:33:07 +02:00
Christian Koop
b00660942b
Adds some more server versions to Compatibility ServerVersion class 2023-06-18 00:33:07 +02:00
Christian Koop
3afc2aa6a4
Fixes some code style issues in Compatibility module 2023-06-18 00:33:07 +02:00
Christian Koop
421e515d85
Bump CraftaroCore version to v3.0.0-SNAPSHOT 2023-06-11 00:37:11 +02:00
Christian Koop
636775bbef
Rename Maven modules from SongodaCore to CraftaroCore 2023-06-11 00:37:11 +02:00
Christian Koop
e8639f3540
Fix forgotten package name changes
Forgotten in a33da058e29e4ed1ee018b8d51f503e07547d18a
2023-06-11 00:37:11 +02:00
Christian Koop
5da3769a47
Move every class from com.songoda package to com.craftaro 2023-06-11 00:37:11 +02:00
Christian Koop
9c4923cd42
Release v2.6.22
I'm creating this release to push the GitHub Actions and Dependabot changes to the main branch.
Dependabot should find at least 2 outdated actions dependencies and create a PR for them.


Please check #47 for a list of *most* changes.
2023-05-07 15:19:04 +02:00
Christian Koop
3e233cf021
Revert the project's version back to '2.6.21' 2023-05-06 22:54:50 +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
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
7a7d2e8b97
Release v2.6.20 2023-04-22 16:13:07 +02:00
Christian Koop
8d95084137
Adds missing Spawn Eggs to CompatibleMaterial, added in Minecraft 1.19.3
fixes #46
2023-04-22 16:13:07 +02:00
Christian Koop
eb76ba47ee
Deprecate the ClassMapping and MethodMapping classes
They are a huge pain to maintain... I should have put a stronger word against this when it got added...
2023-04-19 21:59:13 +02:00
Christian Koop
177ecb36e5
Release v2.6.19 2023-04-13 11:48:55 +02:00
Christian Koop
e33848adc5
Release v2.6.19-DEV 2023-03-29 21:16:28 +02:00
ceze88
386ff209a7 Release v2.6.18 2023-01-25 16:02:44 +01:00
Christian Koop
c29c4a5b09
Release v2.6.18-DEV 2023-01-11 22:00:36 +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
bba5fa5f3e
Adds additional information for deprecations as JavaDocs 2022-11-26 20:24:14 +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
500ac98f84
Release 2.6.17-SNAPSHOT 2022-10-26 21:59:06 +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
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
5c15d66415
Deprecate MethodMapping class
I do not intend to update it to support another version.
All implementations using it should be recoded and use the NMS modules instead if needed
2022-08-27 22:43:07 +02:00
Christian Koop
72c96bc09a
Adds Contract annotation to CompatibleMaterial#getMaterial 2022-08-21 20:39:50 +02:00
Christian Koop
a06d27ab90
Version v3.0.0-SNAPSHOT 2022-08-19 10:06:58 +02:00
Christian Koop
61b784b3e8
Merge branch 'development' into development-v3 2022-08-18 22:57:46 +02:00