- Add Hangar link
- Remove API custom bStats charts
- Add example PAPI expansion
- Remove
AnnoyingCooldown#getDuration()
- Instead, just made
type
public so the duration can be accessed usingCooldownType#getDuration()
- Instead, just made
- Add more
AnnoyingSender
utility methods- Added
AnnoyingSender#invalidArgument(Object)
to send theAnnoyingOptions#invalidArgument message
- Added
AnnoyingSender#invalidArguments()
to send theAnnoyingOptions#invalidArguments
message - Adjusted
ExampleCommand
to reflect the above changes
- Added
- Add PAPI dependency & utility modifications
- If a PlaceholderAPI expansion is set, PlaceholderAPI will be added as a dependency
- Moved
AnnoyingUtility
into theutility
folder - Added
MapUtility
to more easily create maps (in Java 8, Java 9+ can just use staticMap
methods)
- Clarify
AnnoyingDownload
use cases- Also removed PlaceholderAPI dependency adding if
AnnoyingOptions#papiExpansionToRegister
was set
- Also removed PlaceholderAPI dependency adding if
- Use
MapUtility
inExamplePlugin
- Make
papiExpansionToRegister
aSupplier<Object>
- This will fix plugins setting
papiExpansionToRegister
when PlaceholderAPI isn't installed on the server
- This will fix plugins setting
- Add
AnnoyingFile#getRecipe(...)
- Allows for you to get
Recipe
s from a YML file. You can see an example of the structure they should have in the example plugin's newconfig.yml
- Allows for you to get
- Add Javadocs to
MapUtility
- Make
commandRegister
static - Add more custom getters to
AnnoyingFile
getAttributeModifier(String, AttributeModifier)
getItemStack(String, ItemStack)
- Improved
getRecipe(String, String, Recipe)
- Added
MinecraftVersion
to easily track the server's Minecraft version (for reflection) - Added
ReflectionUtility
to manage class/method/constructor/etc... reflection - Adjusted
ExamplePlugin
to match new changes
- Add enchantment error logging for
AnnoyingFile
- Add enchantments using
ItemMeta
- Add missing Javadocs and warning suppressions
- Add
AnnoyingUpdate#checkUpdate()
- Fix
AnnoyingFile
formatting - Add
ItemDataUtility
and improveMinecraftVersion
ItemDataUtility
allows 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 in
ExampleListener
MinecraftVersion
now multiplies major version by10000
to avoid future conflicts
- Delete qodana.yml
- Delete qodana.yaml
- 1.8.8+ support and NBT API
- Fix incorrect annotation
- Fix
AnnoyingMessage
for console - Use new reflection organization
- Add support for
Cmd
in command class names- So now the API will also remove
Cmd
from the class name when generating the command's name when one is not manually specified - Example: Instead of
ShopCommand
you can now just doShopCmd
- So now the API will also remove
- Added
AnnoyingUtility#colorCollection(Collection<?)
- This allows you to translate the color codes for all objects in a collection.
AnnoyingUtility#color(String)
was also adjusted to allow for anObject
to be passed
- This allows you to translate the color codes for all objects in a collection.
- Add
Ref
before each reflected class - Fix #5
- Use new system for plugin platforms
- Had to do this because Hangar's API requires the author name :(
- Remove TODOs
- Update links to new format
- Bump version (3.0.0)
Full Changelog: https://github.com/srnyx/annoying-api/compare/2.1.2...3.0.0
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.2
2.0.5
- Add
error.invalid-argument
message- Not used by anything in the API, but I end up adding it eventually in my plugins anyways
- Fix
AnnoyingFile
issueAnnoyingResource
s wouldn't work because of a change from 2.0.4, this should fix it
- Add missing parameter Javadoc
- Made
AnnoyingSender
fields public- Removed getters too since they are no longer needed, also added Javadocs to the fields
- Bump version (2.0.5)
- I forgot to bump it for 2.0.4, oops...
Full Changelog: https://github.com/srnyx/annoying-api/compare/2.0.4...2.0.5
2.1.0
- Add usage instructions for Maven by @MagicCheese1 in https://github.com/srnyx/annoying-api/pull/2
- Create qodana.yml
- Update qodana.yml
- Qodana fixes
- Update plugin.yml by @clickednebula3 in https://github.com/srnyx/annoying-api/pull/3
- Remove
@Contract
from some methods - Update Gradle
- At least parts of it, can't update to 8.1 entirely yet!
- Update
README.md
links - bStats, update checking, file options, & more
- Added bStats (bstats.org)
- Added
AnnoyingOptions#bStatsId
- Added
AnnoyingOptions#bStatsFileName
- Added
AnnoyingOptions#bStatsOptions
- Added
AnnoyingPlugin#bStats
- Added
bstats.yml
- Added
- Added update checking
- Added
AnnoyingOptions#updateAvailable
- Added
AnnoyingOptions#updatePlatforms
- Added
AnnoyingPlugin#checkUpdate()
- Added
AnnoyingUpdate
- Added
- Added
AnnoyingUtility#getJson(String, String)
- Renamed
AnnoyingCommandRegister
toCommandRegister
- Was also optimized
- Added
AnnoyingFile(AnnoyingPlugin, String)
- Added
AnnoyingFile.FileOptions
- Moved
AnnoyingFile#canBeEmpty
into this
- Moved
- Added
AnnoyingResource.ResourceOptions
which extendsAnnoyingFile.FileOptions
- Contains
#createDefaultFile
, which allows a default file that will always be updated to be created in adefault
folder in the plugin's folder
- Contains
- Added new default messages to
messages.yml
- Documentation has been moved to the GitHub
- Removed commands and permissions from
plugin.yml
- Reformatted the Gradle build files
- Adjusted example plugin to reflect new API changes
- Added bStats (bstats.org)
- Bump version (2.1.0)
New Contributors
- @MagicCheese1 made their first contribution in https://github.com/srnyx/annoying-api/pull/2
- @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.0
2.1.1
Full Changelog: https://github.com/srnyx/annoying-api/compare/2.1.0...2.1.1
2.1.2
- Remove deprecated constructor use
- Add PlaceholderAPI support (optional)
AnnoyingMessage
will now parse PlaceholderAPI placeholders- Added
AnnoyingOptions#papiExpansiontoRegister
to set a placeholder expansion when the plugin enables - Added
AnnoyingPAPIExpansion
as an extendedPlaceholderExtension
to add default methods and such - Added
AnnoyingPlugin#papiInstalled
to track whether PlaceholderAPI is installed - Added
PlaceholderAPI
to soft-dependencies inplugin.yml
- Add
AnnoyingPlugin#parsePapiPlaceholders(OfflinePlayer, String)
- Bump version (2.1.2)
Full Changelog: https://github.com/srnyx/annoying-api/compare/2.1.1...2.1.2
- Remove non-shaded dependency examples
- Global placeholders, AnnoyingFile changes, & more
- Added Global placeholders
- Removed
AnnoyingOptions#colorLight
- Removed
AnnoyingOptions#colorDark
- Added
AnnoyingOptions#globalPlaceholders
- Added
AnnoyingPlugin#globalPlaceholders
- Removed
messages.yml#plugin.prefix
- Added
messages.yml#global-placeholders
- Removed
- Edited command/listener registration
- Removed
AnnoyingListener#register(Event)
- Removed
AnnoyingListener#unregister(Event)
- Removed
AnnoyingCommand#register
- Removed
AnnoyingCommand#unregister
- Removed
- Changed
AnnoyingOptions#commands
toAnnoyingOptions#commandsToRegister
- Changed
AnnoyingOptions#listeners
toAnnoyingOptions#listenersToRegister
- Added
AnnoyingPlugin#registeredCommands
- Added
AnnoyingPlugin#registeredListeners
- Added
AnnoyingPlugin#unregisterListeners
- Added
AnnoyingPlugin#unregisterCommands
- Added
- Changed
AnnoyingUtility#getPlayer(String)
toAnnoyingUtility#getOfflinePlayer(String)
AnnoyingCommand#onTabComplete(AnnoyingSender)
now returnsCollection<Object>
- Added
AnnoyingSender#isPlayer
- Edited
AnnoyingCommandRegister
- Removed
#minecraftServerClass
- Removed
#getServerMethod
- Removed
#vanillaCommandDispatcherField
- Added
#commandDispatcher
- Removed
- Edited
AnnoyingDependency
- Added
#file
- Removed
#getFile
- Added
- Made
AnnoyingFile
into an abstract class instead of an interface - Made changes to example plugin in relation to API changes
- Added Global placeholders
- Changed AnnoyingCommand#onTabComplete
- Now returns a
Collection<String>
instead of aCollection<Object>
- Now returns a
- Fix global placeholders
- Remove AnnoyingOptions#prefix
- 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.4
- Fix Gradle placeholders
- Add
loadMessages()
and more changesmessages.yml
loading has been moved into it's own method,AnnoyingPlugin#loadMessages()
- Removed translating some of the message options keys into their strings from
messages.yml
- Getting missing dependencies and their names improved
- Completely reworked
AnnoyingMessage
replacements- Added
AnnoyingMessage#Replacement
, which holds information about a replacement - Added
#splitterPlaceholder
which will keep the parameter placeholder splitter cached #replacements
is 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.
- Added
- Adjusted reload logic
- Will no longer use
PluginManager
to reload the plugin. Instead, it will only reloadAnnoyingPlugin#messages
and then runAnnoyingPlugin#reload()
, which a plugin using the API can override.
- Will no longer use
- Multiple strings for
AnnoyingSender#argEquals(int String...)
- Instead of doing
annoyingSender.argEquals(0, "string1") || annoyingSender.argEquals(0, "string2")
, you can now do `annoyingSender.argEquals(0, "string1", "string2")
- Instead of doing
- Add
PlayerDamageByPlayerEvent
(#1) - Make Jetbrains Annotations use
compileOnlyApi
- Change
PlayerJoinEvent
example toPlayerDamageByPlayerEvent
- Add
attack
message key - Bump version (2.0.3)
Full Changelog: github.com/srnyx/annoying-api/compare/2.0.2...2.0.3