Releases: srnyx/annoying-api
Releases · srnyx/annoying-api
5.1.5: Fix H2 Java 8 support
- Fix/clarify API running standalone
- Will now error out and let user know that they shouldn't install the API standalone
- Update Gradle
- 8.11 -> 8.11.1
- Downgrade H2 from 2.3.232 to 2.2.224
- 2.3.X requires Java 11+, we need to support Java 8+
- Update Blossom
- Blossom updated from 1.3.1 to 2.1.0
- Added gradle-idea-ext-plugin for Blossom
- Moved
ANNOYING_API_VERSION
into separateBuildProperties
class ANNOYING_API_VERSION
is no longer aSemanticVersion
, it's now just a regularString
- Update Java version for build processes
- 8 -> 11
- Bump version (5.1.5)
Full Changelog: 5.1.4...5.1.5
5.1.4: Data-related bug fixes & more
- Don't create entity table if it has no columns
- Replace
getSectionOrCreate(...)
withgetConfigurationSectionOptional(...)
inAnnoyingFile
- Move
useCache
to#useCache(boolean)
forStringData
- So that sub-classes, such as
EntityData
, don't need to specify multiple constructors that do/don't containuseCache
- So that sub-classes, such as
- Create
Arguments
- Use Blossom for
ANNOYING_API_VERSION
- Fix rare potential case for data loss
- I made it safer to disable the cache and then reload the plugin (which I don't think many people are doing). Not entirely sure if it would even cause data loss, but better safe than sorry.
- Prevent attempting to convert
annoyingapi_converted
key- For PDC 1.14+ in
EntityData#convertOldData(...)
- For PDC 1.14+ in
- Fix old connection permanence when reloading plugin
- Bump version (5.1.4)
Full Changelog: 5.1.3...5.1.4
5.1.3: New Value system for data to fix bugs
- Update Shadow and Item NBT API
- Shadow: 8.3.3 -> 8.3.5
- Item NBT API: 2.13.2 -> 2.14.0
- 5.1.3: New Value system for data to fix bugs
- There was a bug with the cache where it couldn't detect when a value was being set to null (as it was being removed from the cache).
- This fixes that and potentially other bugs that were occurring due to similar reasons.
Full Changelog: 5.1.2...5.1.3
5.1.2: ReflectionUtility improvements and new bStats chart
- Improve ReflectionUtility
- Fix incorrect Minecraft version comparison
- Limit
.reflection.
split to 2 - Add
#getDeclaredField(...)
- Minor code improvements
- Bump version (5.1.2)
- Add
annoying_api_version
to bStats- Added
AnnoyingPlugin#ANNOYING_API_VERSION
for this
- Added
Full Changelog: 5.1.1...5.1.2
5.1.1: Critical bug fixes and minor updates
- Use plugin
NamespacedKey
for data conversion key- Can't use API one cause if multiple API plugins need to convert they will clash :(
- Make
AnnoyingFile#create()
not async- Was causing issue with
#load()
- Was causing issue with
- Fix JSON and YAML dialects
- There were some issues related to cache and synchronization with database and such
- Add
AnnoyingSender#getArgument(...)
- Fix SQL database closure when plugin disables
- Add
AnnoyingSender#getArgumentsJoined(...)
- Rework cooldown system a bit (again...)
- Load H2 library isolated
- The H2 files generated by plugins weren't accessible with 3rd-party tools (database viewers and such) because it referenced classes from the plugin
- H2 now uses the raw H2 classes safely by loading into an isolated class loader (won't conflict with other plugins)
- Any
RuntimeLibrary
can be loaded isolated now
- Load PostgreSQL library isolated & more
- Added all runtime libraries to Gradle dependencies
- Added
AnnoyingPlugin#replaceBrackets(String)
- Added
AnnoyingLibrary
- Included method names in migration log messages
- Fixed getting tables for migration for SQL dialects
- Moved storage classes from
xyz.srnyx.annoyingapi.data.storage
toxyz.srnyx.annoyingapi.storage
- Add non-Optional argument get methods for
AnnoyingSender
- Add
AnnoyingSender#getArgumentOptionalFlat(...)
- Improve cooldowns
- Bump version (5.1.0 -> 5.1.1)
Full Changelog: 5.1.0...5.1.1
5.1.0: JSON/YAML storage, Optionals, bug fixes, & more
- Fix file order for publishing workflow
- Add
AnnoyingFile.Options#replace
- Update Item NBT API
- 2.13.1 -> 2.13.2
- Fix publish workflow permissions
- Update Libby
- 1.3.0 -> 1.3.1
- Fix some IDE warnings
- Use Optionals & move storage stuff
- Fix auto-update checker
- Update bStats & Gradle
- bStats: 3.0.2 -> 3.1.0
- Gradle: 8.8 -> 8.10.2
- Add
Registrable.Ignore
annotation - Update PlaceholderAPI
- 2.11.3 -> 2.11.6
- Allow additional properties for database connections
- Update Shadow
- 8.1.8 -> 8.3.3
- Fix
AnnoyingFile#load(ConfigurationSection)
- Add JSON & YAML storage methods and improve storage type migration
- Improve/fix
EntityData#convertOldData(...)
- Update dependencies
- Gradle Galaxy: 1.2.2 -> 1.3.2
- JetBrains Annotations: 24.1.0 -> 25.0.0
- Java Utilities: 1.1.0 -> 2.0.0
- Bump version (5.0.0 -> 5.1.0)
5.0.0: SQL storage, runtime dependency download, & more
- Add
BukkitUtility#getPermissionValue(...)
- Add
BukkitUtility#getPermissionValue(..., int)
- Added
PotionEffect
getters forAnnoyingFile
- Fix custom events
- Fixed some inconsistencies with the custom events
- Fixed
NoSuchMethodError
withPlayerDamageByPlayerEvent
on 1.20.4+ servers
- Add more
AnnoyingMessage#broadcast
methods - Add/modify a few Javadocs
- Add/modify logging methods
- Switch entity data from PDC/YML to SQL
- This is a MASSIVE change, please read below for important notes!
Data#set(...)
andData#remove(...)
methods now return a boolean rather than the data instance. The boolean is whether the action succeeded or not. This means chaining is no longer possible with data objects!- In order to use SQL data, you MUST set
options.dataOptions.enabled
to true! - Added new
Data
object,StringData
, where you can store values specific to a String (target) in an SQL table- Any custom tables/columns MUST be added to
options.dataOptions.tables
!
- Any custom tables/columns MUST be added to
EntityData
now just extendsStringData
, but uses the defaultentities
table- If you use
EntityData
, you MUST add your columns/keys tooptions.dataOptions.tables
by using one of theDataOptions#entityDataColumns(...)
methods
- If you use
- Data previously stored in PDC/YML can be converted to the new SQL system by using
EntityData#convertOldData(...)
- This method is NOT called automatically for ANY entities! You must run this yourself (for example, when a player joins the server)
- A new config file,
storage.yml
, has been made, please ensure nothing conflicts with this
- Bump version (5.0.0)
- Add
AnnoyingSender#equalsSender(CommandSender)
- Fix GitHub workflow
- Some reason having
&
in a Javadoc breaks it...
- Some reason having
- Revamp cooldown system
- Add data caching for
StringData
- Better support for 1.20+
- Add
AnnoyableClass
and make more things useStringable
- Fix blocking calls
- Put some stuff into their own threads using Bukkit's async scheduler
Hopefully this doesn't break anything :))
- Put some stuff into their own threads using Bukkit's async scheduler
- Remove example plugin
- Was messing with IntelliJ issue detection and was just pretty useless altogether
People may refer to my own plugins to use as examples, especially making use of GitHub's code search on their website
- Was messing with IntelliJ issue detection and was just pretty useless altogether
- Add
Data#setChain(...)
andData#removeChain(...)
- For chaining actions for Data objects
- Add
attemptRunAsync(...)
- Fix warning messages in
AnnoyingFile
- Fix
Registry
andHoverEvent
reflection - Add more cooldown check methods
- Optimize
BukkitUtility
- Use for-loops instead of streams
- Add caching to
AnnoyingMessage
- Don't return default if input recipe null
- Update Item NBT API
- 2.12.1 -> 2.13.0
- Add
AnnoyingFile#getSectionOrCreate(...)
- Fix Hangar update checker
- Not tested!
- Update Gradle
- Gradle: 8.3 -> 8.8
- Fix #7, fix #9, and MUCH more
- Add missing Javadocs
- Add type parameter to
AnnoyingFile
for#setChain(...)
- Make
ConfigurationUtility
methods returnMemoryConfiguration
- Update Gradle Galaxy
- 1.1.2 -> 1.2.2
- Now using package instead of author for relocated libs
- Make all
PluginPlatform.hangar(...)
non-null- Throw exceptions instead
- Suppress warnings
- Update Shadow
- 8.1.1 -> 8.1.8
- Automatically register custom events
- They'll only register if they're actually used, no need to provide a config options anymore!
- Update Java Utilities
- 1.0.0 -> 1.1.0
Full Changelog: 4.3.1...5.0.0
4.3.1: AnnoyingSender#getPlayerOrNull()
4.3.0: New registration options format
- Reformat registration management
- Added option methods to allow classes for registering
- Update Item NBT API
- 2.12.0 -> 2.12.1
- Add temporary logger
- Just in-case it's somehow used before the plugin is initialized
- Add override annotations in
AnnoyingListener
- Bump version (4.3.0)
- From 4.2.1
Full Changelog: 4.2.1...4.3.0