Haxe Plugin Loader icon

Haxe Plugin Loader -----

A loader for Spigot plugins written in Haxe using the Haxe Minecraft API.




Loader changes
Compatibility
  • Plugins written for previous versions that add a crafting recipe may not be compatible with this version and need a small update if they are not.
  • The api-version values in plugin.yml is changed from 1.19 to 1.13 to allow using the loader on older Spigot versions.
  • Haxe has been updated to 4.3.1 (which probably does not impact compatibility).
New features
  • Items can now be created from the same input that Minecraft's /give command accepts, allowing plugins to create much more detailed items.
  • Plugins can now execute any "slash" command from code.
  • Methods getValue and setValue on Items now grants access to some underlying metadata. As of now this probably only works for potion types.
  • The console now displays thread priority for Haxe plugins aside from thread count.
  • Added a timeout of 2 minutes to all threads that are run from the loader (from Haxe plugins).
  • Better error logging: the stacktrace of anything Throwable is now printed from anything executed in the thread pool (including plugin code). Previously, anything thrown that was not an Exception would just be ignored.
  • Better handling of plugin enable/disable error logs.
Bug fixes
  • Fixed SpawningItemFactory not able to spawn items that also exist as entity (reported by Frizzus).
  • Small bug fixes in version checking.
  • Fixed ShapedRecipe not registering correctly (reported by Frizzus).
Miscellaneous
  • Updated Reflections API from 0.9.12 to 0.10.2 (latest) and refactored related deprecated code.
API changes
Compatibility
  • Changed Recipe.getResult function signature (from collection of items to a single item) since the game does not allow recipe result amounts more than 1. This unfortunately can not be backwards compatible since the method name is the same and Haxe does not support this kind of overloading.
  • Updated to Haxe 4.3.1.
Additions
  • Expanded the ItemFactory: aside from just the material name, it now allows you give it the same input that Minecraft's /give command accepts to create items, allowing you to create much more detailed items.
  • Added executeCommand(command, arguments) to Game. This allows you to let the console execute any command (both vanilla and plugin commands) from your plugin's code.
  • Using key "meta" in Item's getValue and setValue functions, you can access the item's MetaData. However, this only works for potion types, as deserializing items is hardly possible in Spigot. Below is an example on how to change a potion's type to invisibility of 8 minutes:
Code (Haxe):
item. setValue ( "meta", "POTION_META:{meta-type=POTION, potion-type=minecraft:long_invisibility}" ) ;
For now it is better to use the new ItemFactory functionality instead, if possible.
----------, Apr 30, 2023

a0.21 is a bugfix update with no changes to the API

- This update improves the initial loading of plugins. The loader will no longer attempt to load every single jar file in your plugins folder. Instead it will first try to recognize it as a Haxe plugin and load it when it has detected it as one.
Some plugins would cause the loader to crash because it tried to load the plugin. This bug was reported to me on Discord, feel free to report bugs!

- To help developers, the loader now gives a warning when a supposed Haxe plugin does not implement the Gate interface.

- Events that should get cancelled are now cancelled before the "occurrence" logic is called.

- The PlayerMoveEvent now runs synchronously by default and it won't log to the console when it's called, both to improve performance.

- The 'new update available' message is now just yellow and does not use underline.
----------, Jan 14, 2023

Loader changes
Compatibility

  • The loader is now compiled in Java 8 instead of 17 to increase backwards compatibility

New features

  • Implemented IniFiction (in Haxe) to support ini files
  • Haxe plugins can now be loaded and unloaded at runtime (without server reload) with commands /hxp load <name> and /hxp unload <name>
  • Added shared plugin memory access to Java plugins running on the same server. Plugins need to add the HaxePluginLoader as a dependency and can then use HaxePluginHolder.getInstance().getSharedPluginMemoryForSpigotPlugin(yourPluginInstance);
  • The loader now checks for new available updates (every time it enables)

Minor changes

  • Fixed setGameMode not working
  • Fixed getDataFolderPath ignoring given sub folders
  • Fixed DisplayableMessage not being displayed to players
  • Fixed async error when setting a potion effect
  • Fixed async error when spawning a tree
  • Spawning a tree now returns the block at the location the tree was generated on
  • Exceptions on opening inventories that cannot be opened are now caught
  • Exceptions that happen within a response to a shared memory value change are now caught, printing the stacktrace

API changes
Compatibility
The API is backwards compatible with the a0.1 loader, however, the behaviour of damage() is now different!

  • Changed Scale and Inventory API to match 'get' and 'set' naming convention
  • Scale now has getCurrent() instead of multiplier() making it easier and more intuitive to use
  • Renamed Breakable interface to Damageable and changed semantics of damage()
  • damage() now takes an actual damage value instead of a scaled (0 to 1) value
  • Added backwards compatibility for API changes (deprecated functions)
  • getOtherLoadedPlugins now returns instances of the Bukkit Plugin objects, accessible as Dynamics in Haxe

Additions / new features

  • Added heal() to Damageable
  • Added setMax to encounter condition to set max health
  • Added getIniFile to FileSystemManager
  • Added getOtherLoadedHaxePlugins which returns Plugin instances of other Haxe plugins loaded on this server
  • Added interface for SemanticVersion
  • Added getLoaderVersion() to Plugin, which returns the SemanticVersion of the HaxePluginLoader the plugin is loaded by
  • Added asDynamic() to EventData for potentially more access to specific event methods/fields
----------, Dec 12, 2022

Resource Information
Author:
----------
Total Downloads: 578
First Release: Jul 14, 2022
Last Update: Apr 30, 2023
Category: ---------------
All-Time Rating:
0 ratings
Find more info at github.com...
Version -----
Released: --------------------
Downloads: ------
Version Rating:
----------------------
-- ratings