Releases: srnyx/annoying-api
Releases · srnyx/annoying-api
Release list
5.2.1: Selector improvements
Just a few minor changes, mainly to command selectors
- Add return to
AnnoyingLibraryManager#loadLibrary(...) - Fix selector invalid arguments message
- Mark SelectorOptional returns as unmodifiable
- ⭐ Allow selectors to be used in command blocks
- Also improved tab-completion for console/terminal
- Wiki updated too: https://github.com/srnyx/annoying-api/wiki/Commands#entity-selectors-
Full Changelog: 5.2.0...5.2.1
5.2.0: New repository & more
⚠️ NEW REPOSITORY ⚠️
Due to Jitpack being absolutely terrible, I've decided to self-host a repository for all my projects!
New repository link: https://repo.srnyx.com/releases/
Snapshots: https://repo.srnyx.com/snapshots/
I think you can technically still use Jitpack, but I'll no longer official support it :)
Changes
- Add more color utilities
- Add PluginOptions#libraries
- ⭐ Remove CommandRegister to ensure Folia support
- Don't disable plugin if a Registrable fails
- Load libraries after options declared
- Move Arguments to Java Utilities
- ⭐ Fix task timers for Folia
- Add AnnoyingSender#getFullCommand()
- Add / for command replacement
- Add log options to AnnoyingFile methods
- Make PlayableSound parameters mutable
- ⭐ Fix #16 (cache thread safety)
- Ensure thread safety for cache by just using ConcurrentHashMap for all the maps lmao
- Only affected SQL storage types
- Have #getPermissionValue(...) return long instead of integer
- To support bigger numbers
- ⭐ Add target selectors for commands
- Add more scheduling task methods
- Use Path for file paths
- To fix file separators across operating systems (Linux)
- ⭐ Fix #18
- Add gamerule reflections
- Add Annoying API version to user agent
- Improve AnnoyingReflections
- Use Blossom BuildProperties for runtime dependencies
- Use new publishing system
Full Changelog: 5.1.5...5.2.0
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_VERSIONinto separateBuildPropertiesclass ANNOYING_API_VERSIONis 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
useCacheto#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_convertedkey- 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_versionto bStats- Added
AnnoyingPlugin#ANNOYING_API_VERSIONfor this
- Added
Full Changelog: 5.1.1...5.1.2
5.1.1: Critical bug fixes and minor updates
- Use plugin
NamespacedKeyfor 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
RuntimeLibrarycan 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.storagetoxyz.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.Ignoreannotation - 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
PotionEffectgetters forAnnoyingFile - Fix custom events
- Fixed some inconsistencies with the custom events
- Fixed
NoSuchMethodErrorwithPlayerDamageByPlayerEventon 1.20.4+ servers
- Add more
AnnoyingMessage#broadcastmethods - 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.enabledto true! - Added new
Dataobject,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
EntityDatanow just extendsStringData, but uses the defaultentitiestable- If you use
EntityData, you MUST add your columns/keys tooptions.dataOptions.tablesby 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
AnnoyableClassand 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
RegistryandHoverEventreflection - 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
AnnoyingFilefor#setChain(...) - Make
ConfigurationUtilitymethods 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