Skip to content

Releases: xpdustry/distributor

v4.0.0-rc.1 release

11 Jun 14:36
d15bbaf
Compare
Choose a tag to compare
v4.0.0-rc.1 release Pre-release
Pre-release

Initial release candidate.
Javadocs are mostly done, the wiki is next.

v4.0.0-beta.3 release

25 May 22:00
127700f
Compare
Choose a tag to compare
v4.0.0-beta.3 release Pre-release
Pre-release

Final beta release.
All major feature I wanted for distributor 4 have been implemented.
It is now time to use it in more production plugins to asses the usability of the new APIs.

v4.0.0-beta.2 release

08 Apr 23:34
45b26b3
Compare
Choose a tag to compare
v4.0.0-beta.2 release Pre-release
Pre-release

Second beta release.
The API is now much more stable is terms of breaking changes.
There are still things to implement and finish like the new Lamp module.

v4.0.0-beta.1 release

28 Mar 23:07
71b31d2
Compare
Choose a tag to compare
v4.0.0-beta.1 release Pre-release
Pre-release

Initial beta release to finally start migrating xpdustry plugins to distributor 4, and be able to detect potential runtime and design issues.
The documentation is currently a copy of distributor 3.

v3.3.0 release

03 Jan 18:09
347cf4d
Compare
Choose a tag to compare

Features

  • Moved plugin annotation parsing to dedicated class (PluginAnnotationParser).

Bugfixes

  • Add missing translation for argument.parse.failure.duration.
  • Fixed annotation parsing failing for package private classes.
  • Fixed ArcLoggerFactory not taking into account common logger wrappers.

Deprecated

  • Scheduled EventBus#parse, ArcCommandManager#recipe and PluginScheduler#recipe for removal.

v3.2.1 release

13 Nov 12:46
95cfb81
Compare
Choose a tag to compare

Bugfixes

  • Added compliance tests for arc container wrappers. They now have the same behavior as the standard java container types.
  • Added accent normalization in Players#findPlayers.
  • Added missing player info parser to ArcCommandManager.
  • Fix arc container wrappers messing up the internal iterators of their internal collection. Concurrent reads goes BRRR...

v3.2.0 release

11 Oct 19:44
3842fac
Compare
Choose a tag to compare

Features

  • Added cloud Kotlin coroutines extensions to the distributor Kotlin module.
  • Added dedicated option for TRACE logging (config trace [true|false]), only active when debug is.

Bugfixes

  • Fixed inconsistent colors with the TRACE log level.

Chores

  • Bumped Mindustry version to v146 and more.
  • Renamed xpdustry.fr to xpdustry.com.
  • Removed Kotlin javadoc.

v3.1.0 release

26 Jul 22:48
63ef554
Compare
Choose a tag to compare

Features

  • Added List wrappers for entity groups.
  • Added JUL to SLF4J bridge.
  • Added plugin name along the class name for logger.
  • Added soft dependencies field to PluginDescriptor.
  • Added PluginDescriptor#from(ClassLoader).
  • Added method for super class event posting.
  • Added option to automatically grant admin to validated admin player with different usids.
  • Added DistributorProvider#isInitialized and DistributorProvider#clear.
  • Allowed plugin listeners to register sub-listeners in AbstractMindustryPlugin.
  • Implemented logger caller lookup for logger without an explicit class name.

Changes

  • Moved plugin and plugin listener annotation parsing after plugin load.
  • Separated details of error logging from stacktrace.

Bugfixes

  • Fixed missing stacktrace log when an exception occurs in a plugin task.
  • Fixed Players#findPlayers sometimes returning multiple players even with exact name match.
  • Fixed not sending the cause of a command execution exception to the sender.
  • Much more...

Chores

  • Bumped Mindustry version to v145.

v3.0.0 release

04 Apr 18:07
69691eb
Compare
Choose a tag to compare

This is it, fellow plugin enjoyers, the final release of Distributor (its breaking with the version v3.0.0-rc.3).

Features

  • Added entity id and uuid lookup in PlayerArgument.
  • Added PlayerInfoArgument.
  • Added dedicated methods for async and sync tasks for PluginScheduler.
  • Added usid player identity validation for the permission system.
  • Added support for asynchronous execution in Cloud commands.
  • Added distributor-kotlin for Kotlin extensions.
  • Added command name fallback system in Cloud commands.
  • Added permission lookup for group permissions.
  • Added Mindustry UUID utilities.
  • Added MindustryTimeUnit for the plugin scheduler.
  • Added annotation based APIs for the plugin scheduler and event bus.
  • Much more...

Changes

  • Use root parameter description when available instead of the command description.
  • Changed distributor plugin id from xpdustry-distributor-core to distributor-core.
  • Replaced ExtendedPlugin with the interface MindustryPlugin and its partial implementation AbstractMindustryPlugin.
  • Reduce Arc collection wrappers visibility to replace with the ArcCollections.
  • Implemented USID hashing in the player identity validator.
  • Much more...

Chores

  • Overhaul of the internals to be more performant.
  • Bumped Cloud commands.
  • Bumped Mindustry.
  • Bumped Toxopid.
  • More consistent Javadoc.

v3.0.0 Release candidate 3

21 Nov 02:23
07f628b
Compare
Choose a tag to compare

Final release candidate.

I made several breaking changes that aims to fix the design issues I encountered during testing in the Xpdustry servers and the feedback of some fellow plugin developers (thanks @Prosta4okua).

⚠️ Breaking changes ⚠️

  • Replaced the annotation based event API (EventBus) with a functional API (MoreEvents). Reasoning is that mindustry event bus only support very basic functions, that does not justify the use of a wrapper class.
  • Simplified the permission API by removing redundant.
  • Removed fr.xpdustry.distributor.api.manager package.
  • Removed MUUIDAuthenticator (Why using a dedicated class for authenticating MUUIDs while you can create an unauthenticated permission group with the permission API).
  • PluginScheduler has been overhauled to be more intuitive. It's not a plugin owned object with a fluent API, with builders to schedule tasks like PluginTaskBuilder and PluginTaskRecipe. More in the javadocs.
  • Forced the use of ExtendedPlugin in the Distributor API.
  • LocalizationSourceRegistry now requires a default locale.

Features

  • You can now send localized messages to CommandSender without using the global translator (CommandSender#sendLocalizedMessage, CommandSender#sendLocalizedWarning).
  • ExtendedPlugin has now listeners with ExtendedPlugin#addListener, a much better API compared to using a ApplicationListener.
  • Added recipes to the scheduler API with PluginScheduler#recipe. (Split your plugin tasks between async and sync steps very easily).
  • Added localization support for the permission commands.

Changes

  • Improved localization API.
  • Some stuff I may have forgotten...

Chores

  • Finished the overall javadoc of Distributor.

Bugfixes

  • Fixed a bug where content wasn't always localized if the language of the JVM wasn't english.