6.0.1latest6.0.1: Fix PotionEffectSerializer#serialize(...)Sep 19, 2026 c852005Update Item NBT APISep 19, 2026 bdc3d1fFix `PotionEffectSerializer#serialize(...)`Sep 16, 2026 6.0.06.0.0: Better configs, stats, data, and moreSep 13, 2026 e9795c1Update Gradle Galaxy and FastStatsSep 13, 2026 47cd350Add `ConfigBuilder#saveDefaults`Sep 1, 2026 45ae893Update Gradle GalaxyAug 24, 2026 99e8121Add `DurationUtility#getRandomDuration(...)`Aug 23, 2026 c5c9987Fix testsAug 22, 2026 eb74d83Fix `NestedSoundMigration(String)`Aug 21, 2026 929ac38Fix NestedSoundMigrationAug 21, 2026 f1d9fd7Add NestedSoundMigrationAug 21, 2026 8402640Simplify MessagesProviderAug 20, 2026 dd4052cUpdate GradleAug 20, 2026 f783bf4Update Gradle Galaxy and use Semver4jAug 19, 2026 a94f930feat: add reflected getAmount method to RefAttributeModifierAug 1, 2026 e3e4df9Update Shadow and FastStatsJul 28, 2026 ab08072Use JsonObject for config metricsJul 19, 2026 dd4dc3eInitial support for HikariCP and jOOQJul 12, 2026 f2f5668Fix SubConfig rootJul 9, 2026 1aafb1eAdd `@Stat` annotationJul 9, 2026 309e654Improve UpdateChecker and `PluginPlatform.Multi`Jul 9, 2026 c9aab72Improve reflected class constructionsJul 8, 2026 bde7235Update Mod Publish PluginJul 3, 2026 2b74361Update Gradle pluginsJul 3, 2026 f4f8d33Add plugin options for test-related stuffJun 28, 2026 c158171Update Gradle Galaxy (again) 75f72f6 -> 2031dafJun 27, 2026 c799621Jun 27, 2026 5.2.15.2.1: Selector improvementsMay 24, 2026 5.2.05.2.0: New repository & moreApr 8, 2026 5.1.55.1.5: Fix H2 Java 8 supportNov 24, 2024 5.1.45.1.4: Data-related bug fixes & moreNov 19, 2024 5.1.35.1.3: New Value system for data to fix bugsNov 6, 2024 5.1.25.1.2: ReflectionUtility improvements and new bStats chartOct 27, 2024 5.1.15.1.1: Critical bug fixes and minor updatesOct 26, 2024 5.1.05.1.0: JSON/YAML storage, Optionals, bug fixes, & moreOct 3, 2024 5.0.05.0.0: SQL storage, runtime dependency download, & moreJun 27, 2024 4.3.14.3.1: AnnoyingSender#getPlayerOrNull()Dec 9, 2023 4.3.04.3.0: New registration options formatNov 8, 2023 4.2.14.2.1: Added AnnoyingFile#delete(boolean)Oct 7, 2023 4.2.04.2.0: Use Java Utilities librarySep 24, 2023 4.1.14.1.1: Minor fixes & changesSep 9, 2023 4.1.04.1.0: New data management utilitiesJul 31, 2023 4.0.24.0.2: Easier update-platforms settingJul 27, 2023 4.0.14.0.1: More AnnoyingDependency constructorsJul 20, 2023 4.0.04.0.0: Options organization and abstractionJul 16, 2023 3.1.03.1.0: Options loading from plugin.yml & moreJun 26, 2023 3.0.03.0.0: 1.8.8+ support and moreMay 29, 2023 - [Add Hangar link](https://github.com/srnyx/annoying-api/commit/dbde48a075d1… - [Remove API custom bStats charts](https://github.com/srnyx/annoying-api/commit/4fcf5db25298… - [Add example PAPI expansion](https://github.com/srnyx/annoying-api/commit/d5fe06f1dd04… - [RemoveAnnoyingCooldown#getDuration()](https://github.com/srnyx/annoying-api/commit/030e325ccf2a… - Instead, just madetypepublic so the duration can be accessed usingCooldownType#getDuration()- [Add moreAnnoyingSenderutility methods](https://github.com/srnyx/annoying-api/commit/af59c37e906b… - AddedAnnoyingSender#invalidArgument(Object)to send theAnnoyingOptions#invalidArgument message- AddedAnnoyingSender#invalidArguments()to send theAnnoyingOptions#invalidArgumentsmessage - AdjustedExampleCommandto reflect the above changes - [Add PAPI dependency & utility modifications](https://github.com/srnyx/annoying-api/commit/1404dd7e0f66… - If a PlaceholderAPI expansion is set, PlaceholderAPI will be added as a dependency - MovedAnnoyingUtilityinto theutilityfolder - AddedMapUtilityto more easily create maps (in Java 8, Java 9+ can just use staticMapmethods) - [ClarifyAnnoyingDownloaduse cases](https://github.com/srnyx/annoying-api/commit/4c008284fc08… - Also removed PlaceholderAPI dependency adding ifAnnoyingOptions#papiExpansionToRegisterwas set - [UseMapUtilityinExamplePlugin](https://github.com/srnyx/annoying-api/commit/b83912f52293… - [MakepapiExpansionToRegisteraSupplier<Object>](https://github.com/srnyx/annoying-api/commit/64a1a2c8e788… - This will fix plugins settingpapiExpansionToRegisterwhen PlaceholderAPI isn't installed on the server - [AddAnnoyingFile#getRecipe(...)](https://github.com/srnyx/annoying-api/commit/1fb93b9da557… - Allows for you to getRecipes from a YML file. You can see an example of the structure they should have in the example plugin's newconfig.yml- [Add Javadocs toMapUtility](https://github.com/srnyx/annoying-api/commit/d62d339a58c9… - [MakecommandRegisterstatic](https://github.com/srnyx/annoying-api/commit/e71e00d31b46… - [Add more custom getters toAnnoyingFile](https://github.com/srnyx/annoying-api/commit/5fb4122324d3… -getAttributeModifier(String, AttributeModifier)-getItemStack(String, ItemStack)- ImprovedgetRecipe(String, String, Recipe)- AddedMinecraftVersionto easily track the server's Minecraft version (for reflection) - AddedReflectionUtilityto manage class/method/constructor/etc... reflection - AdjustedExamplePluginto match new changes - [Add enchantment error logging forAnnoyingFile](https://github.com/srnyx/annoying-api/commit/7a1b7c75808c… - [Add enchantments usingItemMeta](https://github.com/srnyx/annoying-api/commit/7f87f0b45088… - [Add missing Javadocs and warning suppressions](https://github.com/srnyx/annoying-api/commit/ca24ec6ad20e… - [AddAnnoyingUpdate#checkUpdate()](https://github.com/srnyx/annoying-api/commit/134493105f16… - [FixAnnoyingFileformatting](https://github.com/srnyx/annoying-api/commit/c843a2092555… - [AddItemDataUtilityand improveMinecraftVersion](https://github.com/srnyx/annoying-api/commit/61d60a5a586c… -ItemDataUtilityallows you to add data to item stacks across all versions from 1.11-1.19.3 using their respective data management systems - 1.13-1.13.1 uses lore to store data which is very unreliable, so a warning message has been added for these versions - An example has been added inExampleListener-MinecraftVersionnow multiplies major version by10000to avoid future conflicts - [Delete qodana.yml](https://github.com/srnyx/annoying-api/commit/692a573a7c47… - [Delete qodana.yaml](https://github.com/srnyx/annoying-api/commit/700969e76cc1… - [1.8.8+ support and NBT API](https://github.com/srnyx/annoying-api/commit/d15a8c9e852b… - [Fix incorrect annotation](https://github.com/srnyx/annoying-api/commit/7456744cef5f… - [FixAnnoyingMessagefor console](https://github.com/srnyx/annoying-api/commit/ec5c18a0aeaa… - [Use new reflection organization](https://github.com/srnyx/annoying-api/commit/995254302ef2… - [Add support forCmdin command class names](https://github.com/srnyx/annoying-api/commit/d9efc4cc7005… - So now the API will also removeCmdfrom the class name when generating the command's name when one is not manually specified - Example: Instead ofShopCommandyou can now just doShopCmd- [AddedAnnoyingUtility#colorCollection(Collection<?)](https://github.com/srnyx/annoying-api/commit/173f1da1f005… - This allows you to translate the color codes for all objects in a collection.AnnoyingUtility#color(String)was also adjusted to allow for anObjectto be passed - [AddRefbefore each reflected class](https://github.com/srnyx/annoying-api/commit/dd784fda2aee… - [Fix #5](https://github.com/srnyx/annoying-api/commit/ea1463f369f4… - [Use new system for plugin platforms](https://github.com/srnyx/annoying-api/commit/c1e9583430db… - Had to do this because Hangar's API requires the author name :( - [Remove TODOs](https://github.com/srnyx/annoying-api/commit/65ac594b4e21… - [Update links to new format](https://github.com/srnyx/annoying-api/commit/367a1b8521d3… - [Bump version (3.0.0)](https://github.com/srnyx/annoying-api/commit/f5bf37438ebb… Full Changelog: https://github.com/srnyx/annoying-api/compare/2.1.2...3.0.02.1.22.1.2: bStats, PlaceholderAPI, & moreApr 27, 2023 This update includes 2.0.5, 2.1.0, 2.1.1, and 2.1.2 (I forgot to publish for the previous 3 oops...) Full Changelog: https://github.com/srnyx/annoying-api/compare/2.0.4...2.1.22.0.5
- [Adderror.invalid-argumentmessage](https://github.com/srnyx/annoying-api/commit/26861e9f72ca… - Not used by anything in the API, but I end up adding it eventually in my plugins anyways - [FixAnnoyingFileissue](https://github.com/srnyx/annoying-api/commit/66d569687d43… -AnnoyingResources wouldn't work because of a change from 2.0.4, this should fix it - [Add missing parameter Javadoc](https://github.com/srnyx/annoying-api/commit/abf7cb7c1d93… - [MadeAnnoyingSenderfields public](https://github.com/srnyx/annoying-api/commit/692a4d0ef253… - Removed getters too since they are no longer needed, also added Javadocs to the fields - [Bump version (2.0.5)](https://github.com/srnyx/annoying-api/commit/29b6f5e9b396… - I forgot to bump it for 2.0.4, oops... Full Changelog: https://github.com/srnyx/annoying-api/compare/2.0.4...2.0.52.1.0
- [Add usage instructions for Maven](https://github.com/srnyx/annoying-api/commit/25d7efc78588… by @MagicCheese1 in https://github.com/srnyx/annoying-api/pull/2 - [Create qodana.yml](https://github.com/srnyx/annoying-api/commit/9b909df81aac… - [Update qodana.yml](https://github.com/srnyx/annoying-api/commit/ffd6bacd7627… - [Qodana fixes](https://github.com/srnyx/annoying-api/commit/770124770c72… - [Update plugin.yml](https://github.com/srnyx/annoying-api/commit/55149483c87e… by @clickednebula3 in https://github.com/srnyx/annoying-api/pull/3 - [Remove@Contractfrom some methods](https://github.com/srnyx/annoying-api/commit/81bc6fcde2d6… - [Update Gradle](https://github.com/srnyx/annoying-api/commit/6a54f58bc3a8… - At least parts of it, can't update to 8.1 entirely yet! - [UpdateREADME.mdlinks](https://github.com/srnyx/annoying-api/commit/2e95d7b4a57a… - [bStats, update checking, file options, & more](https://github.com/srnyx/annoying-api/commit/5f6809b49dea… - Added bStats (bstats.org) - AddedAnnoyingOptions#bStatsId- AddedAnnoyingOptions#bStatsFileName- AddedAnnoyingOptions#bStatsOptions- AddedAnnoyingPlugin#bStats- Addedbstats.yml- Added update checking - AddedAnnoyingOptions#updateAvailable- AddedAnnoyingOptions#updatePlatforms- AddedAnnoyingPlugin#checkUpdate()- AddedAnnoyingUpdate- AddedAnnoyingUtility#getJson(String, String)- RenamedAnnoyingCommandRegistertoCommandRegister- Was also optimized - AddedAnnoyingFile(AnnoyingPlugin, String)- AddedAnnoyingFile.FileOptions- MovedAnnoyingFile#canBeEmptyinto this - AddedAnnoyingResource.ResourceOptionswhich extendsAnnoyingFile.FileOptions- Contains#createDefaultFile, which allows a default file that will always be updated to be created in adefaultfolder in the plugin's folder - Added new default messages tomessages.yml- Documentation has been moved to the GitHub - Removed commands and permissions fromplugin.yml- Reformatted the Gradle build files - Adjusted example plugin to reflect new API changes - [Bump version (2.1.0)](https://github.com/srnyx/annoying-api/commit/dd0ef1a1280c…New Contributors
* [@MagicCheese1](https://github.com/MagicCheese1) made their first contribution in https://github.com/srnyx/annoying-api/pull/2 * [@clickednebula3](https://github.com/clickednebula3) made their first contribution in https://github.com/srnyx/annoying-api/pull/3 Full Changelog: https://github.com/srnyx/annoying-api/compare/2.0.5...2.1.02.1.1
- [Fix Jitpack building](https://github.com/srnyx/annoying-api/commit/e59b42fc037b… - [Bump version (2.1.1)](https://github.com/srnyx/annoying-api/commit/2ac9bdd57f8d… Full Changelog: https://github.com/srnyx/annoying-api/compare/2.1.0...2.1.12.1.2
- [Remove deprecated constructor use](https://github.com/srnyx/annoying-api/commit/08f2277e2d99… - [Add PlaceholderAPI support (optional)](https://github.com/srnyx/annoying-api/commit/b59c9c2bb78e… -AnnoyingMessagewill now parse PlaceholderAPI placeholders - AddedAnnoyingOptions#papiExpansiontoRegisterto set a placeholder expansion when the plugin enables - AddedAnnoyingPAPIExpansionas an extendedPlaceholderExtensionto add default methods and such - AddedAnnoyingPlugin#papiInstalledto track whether PlaceholderAPI is installed - AddedPlaceholderAPIto soft-dependencies inplugin.yml- [AddAnnoyingPlugin#parsePapiPlaceholders(OfflinePlayer, String)](https://github.com/srnyx/annoying-api/commit/fc6650541690… - [Bump version (2.1.2)](https://github.com/srnyx/annoying-api/commit/3fbf104b254c… Full Changelog: https://github.com/srnyx/annoying-api/compare/2.1.1...2.1.22.0.42.0.4: Global placeholders & moreJan 22, 2023 - [Remove non-shaded dependency examples](https://github.com/srnyx/annoying-api/commit/029888c30d82… - [Global placeholders, AnnoyingFile changes, & more](https://github.com/srnyx/annoying-api/commit/30274f731077… - Added Global placeholders - RemovedAnnoyingOptions#colorLight- RemovedAnnoyingOptions#colorDark- AddedAnnoyingOptions#globalPlaceholders- AddedAnnoyingPlugin#globalPlaceholders- Removedmessages.yml#plugin.prefix- Addedmessages.yml#global-placeholders- Edited command/listener registration - RemovedAnnoyingListener#register(Event)- RemovedAnnoyingListener#unregister(Event)- RemovedAnnoyingCommand#register- RemovedAnnoyingCommand#unregister- ChangedAnnoyingOptions#commandstoAnnoyingOptions#commandsToRegister- ChangedAnnoyingOptions#listenerstoAnnoyingOptions#listenersToRegister- AddedAnnoyingPlugin#registeredCommands- AddedAnnoyingPlugin#registeredListeners- AddedAnnoyingPlugin#unregisterListeners- AddedAnnoyingPlugin#unregisterCommands- ChangedAnnoyingUtility#getPlayer(String)toAnnoyingUtility#getOfflinePlayer(String)-AnnoyingCommand#onTabComplete(AnnoyingSender)now returnsCollection<Object>- AddedAnnoyingSender#isPlayer- EditedAnnoyingCommandRegister- Removed#minecraftServerClass- Removed#getServerMethod- Removed#vanillaCommandDispatcherField- Added#commandDispatcher- EditedAnnoyingDependency- Added#file- Removed#getFile- MadeAnnoyingFileinto an abstract class instead of an interface - Made changes to example plugin in relation to API changes - [Changed AnnoyingCommand#onTabComplete](https://github.com/srnyx/annoying-api/commit/215e1a1fe226… - Now returns aCollection<String>instead of aCollection<Object>- [Fix global placeholders](https://github.com/srnyx/annoying-api/commit/909e96a77558… - [Remove AnnoyingOptions#prefix](https://github.com/srnyx/annoying-api/commit/e8869e524c4f… - Replaced by global placeholders which were added in an earlier commit Full Changelog: https://github.com/srnyx/annoying-api/compare/2.0.3...2.0.42.0.32.0.3: Reworked AnnoyingMessage replacementsJan 4, 2023 - [Fix Gradle placeholders](https://github.com/srnyx/annoying-api/commit/fcfa0893d50f… - [AddloadMessages()and more changes](https://github.com/srnyx/annoying-api/commit/1face9bf59eb… -messages.ymlloading has been moved into it's own method,AnnoyingPlugin#loadMessages()- Removed translating some of the message options keys into their strings frommessages.yml- Getting missing dependencies and their names improved - [Completely reworkedAnnoyingMessagereplacements](https://github.com/srnyx/annoying-api/commit/0aa2bacf28da… - AddedAnnoyingMessage#Replacement, which holds information about a replacement - Added#splitterPlaceholderwhich will keep the parameter placeholder splitter cached -#replacementsis now aSet<Replacement>instead of aMap<String, String>- Reorganized some methods - Parameter placeholder replacements will no longer be processed immediately. This will ensure that all parts of a message (sub-messages, JSON components, etc...) will get the replacement processed. - [Adjusted reload logic](https://github.com/srnyx/annoying-api/commit/16f2b080e62e… - Will no longer usePluginManagerto reload the plugin. Instead, it will only reloadAnnoyingPlugin#messagesand then runAnnoyingPlugin#reload(), which a plugin using the API can override. - [Multiple strings forAnnoyingSender#argEquals(int String...)](https://github.com/srnyx/annoying-api/commit/fd688f343201… - Instead of doingannoyingSender.argEquals(0, "string1") || annoyingSender.argEquals(0, "string2"), you can now do `annoyingSender.argEquals(0, "string1", "string2") - [AddPlayerDamageByPlayerEvent](https://github.com/srnyx/annoying-api/commit/5bf196135c40… [(#1)](https://github.com/srnyx/annoying-api/pull/1) - [Make Jetbrains Annotations usecompileOnlyApi](https://github.com/srnyx/annoying-api/commit/6c91c9291ce9… - [ChangePlayerJoinEventexample toPlayerDamageByPlayerEvent](https://github.com/srnyx/annoying-api/commit/565a9a61e43e… - [Addattackmessage key](https://github.com/srnyx/annoying-api/commit/7bf40f1c98a8… - [Bump version (2.0.3)](https://github.com/srnyx/annoying-api/commit/8e1935b9ee8a… Full Changelog: [github.com/srnyx/annoying-api/compare/2.0.2...2.0.3](https://github.com/srnyx/annoying-api/compare/2.0.2...2.0.3)1.1.111.1.11: Adjusted dependency handlingDec 18, 2022 - [Update README.md](https://github.com/srnyx/annoying-api/commit/6bbd97457c34… - [Removeapi-versionfromplugin.yml](https://github.com/srnyx/annoying-api/commit/1ffb5e725c56… - [AdjustAnnoyingFile#load()](https://github.com/srnyx/annoying-api/commit/8107c318bb3f… - Now checks#canBeEmpty()- [Addedrequiredoption toAnnoyingDependency](https://github.com/srnyx/annoying-api/commit/fb47a8bc9e0a… - [Adjusted how dependencies are handled](https://github.com/srnyx/annoying-api/commit/60e7fbacaf8b… - [Remove commands from map on unload](https://github.com/srnyx/annoying-api/commit/20fb0a1867bb… - [Use a more graceful command unregister](https://github.com/srnyx/annoying-api/commit/e222aa76d56c… - [Adjusted Javadocs](https://github.com/srnyx/annoying-api/commit/c3505f70ac01… - Added new Javadocs and modified existing ones - RenamedAnnoyingPlugin#reload()toAnnoyingPlugin#reloadPlugin()- [1.1.11: Adjusted messages and dependencies](https://github.com/srnyx/annoying-api/commit/00537922b05e… - MovedAnnoyingUtility#getString(AnnoyingPlugin, String)toAnnoyingPlugin(nowAnnoyingUtility#getMessagesString(String)) - RenamedAnnoyingPlugin#unloadPlugin()toAnnoyingPlugin#disablePlugin()- If required dependencies are missing it'll tell the user ALL of the missing required dependencies - Added/test disablecommand toTestPluginthat will disable/unregister the/testcommand - ModifiedTestPluginmsgs.ymlFull Changelog: [github.com/srnyx/annoying-api/compare/1.1.10...1.1.11](https://github.com/srnyx/annoying-api/compare/1.1.10...1.…1.1.101.1.10: Removed DiscordSRV dependencyDec 10, 2022 - FixedAnnoyingUtility#getFileNames(AnnoyingPlugin, String)(made it static) - RemovedAnnoyingMessage#send(TextChannel)- Removed DiscordSRV dependency and repositories Full Changelog: [github.com/srnyx/annoying-api/compare/1.1.9...1.1.10](https://github.com/srnyx/annoying-api/compare/1.1.9...1.1…1.1.91.1.9: Small improvementsDec 10, 2022 - Added DiscordSRV import - AddedAnnoyingMessage#send(TextChannel)- AddedAnnoyingUtility#getFileNames(AnnoyingPlugin, String)- AddedpadWithZerosoption toAnnoyingUtility#formatMillis(long, String)(nowAnnoyingUtility#formatMillis(long, String, boolean)) - Fixed incorrect key name foronly-player(nowplayer-only) inmessages.yml- RemovedAnnoyingCooldown#getRemainingPretty(String)Full Changelog: https://github.com/srnyx/annoying-api/compare/1.1.8...1.1.91.1.81.1.8: More utility methodsDec 10, 2022 - Added%permission%placeholder forerorr.no-permissionmessage - AddedAnnoyingPlugin#reload()- Added/test reloadto testAnnoyingPlugin#reload()in test JAR/plugin -onTabComplete(AnnoyingSender)now returns aCollection<String>to support bothLists andSets - MovedAnnoyingCommandRegister,AnnoyingDependency, andAnnoyingDownloadintodependencyfolder - RemovedAnnoyingPlugin#commandRegister- Added moreAnnoyingSendermethods -#getPlayer()-#argEquals(int, String)- Added moreAnnoyingUtilitymethods -#getPlayer(String)-#getOnlinePlayerNames()-#getOfflinePlayerNames()-#getAllPlayerNames()-#getWorldNames()Full Changelog: [github.com/srnyx/annoying-api/compare/1.1.7...1.1.8](https://github.com/srnyx/annoying-api/compare/1.1.7...1.1.8)1.1.71.1.7: Added User-Agent for connectionsDec 9, 2022 - AddedUser-Agentheader property for HTTP connections - Addedversioncomments inmessages.ymlFull Changelog: [github.com/srnyx/annoying-api/compare/1.1.6...1.1.7](https://github.com/srnyx/annoying-api/compare/1.1.6...1.1.7)
Similar projects
Plugin →VeinMiner
Mine the whole vein on mining a single ore/block. Make the tedious mining experience to something satisfying and fun! FTB Ultimine alternative
99.3MSueta
Simple Voice Chat
A working voice chat in Minecraft!
76.3MSueta
Chunky
Pre-generates chunks, quickly and efficiently
20.8MSueta
VeinMiner Enchantment
Veinminer Addon - Adds vineminer enchantment to enchanting tables. Only tools with the enchantment can veinmine
18MSueta
JourneyMap
Real-time map used for mapping in-game or your browser as you explore.
14.7MSueta
WorldEdit
A Minecraft Map Editor... that runs in-game! With selections, schematics, copy and paste, brushes, and scripting. Use it in creative, or use it temporarily in survival.
11.6MSueta