{"repo":"Jannyboy11/ScalaPluginLoader","free":true,"listed":false,"github":"https://github.com/Jannyboy11/ScalaPluginLoader","clone":"git clone https://github.com/Jannyboy11/ScalaPluginLoader.git","description":"PluginLoader for Bukkit that provides Scala runtime classes and enhanced APIs.","language":"Java","stars":30,"topics":["scala","minecraft","bukkit","plugin-loader","spigot","paper"],"license":"LGPL-3.0","category":"game-templates","readme_excerpt":"Motivation So you want to write plugins in Scala? Great! Or not so great? Scala runtime classes are not on the class/module path by default. Server administrators could add them using the -classpath commandline option, but in reality most bukkit servers run in managed environments by minecraft-specialized server hosts. The standard workaround for this problem is to include the classes in your own plugin and relocate them using a shading plugin in your build process. While this does work, it is not ideal because your plugin will increase in size by a lot. As of Scala 2.12.6, the standard library has a size of 3.5 MB. The reflection library is another 5 MB. Using both libraries in multiple plugins results unnecessarily large plugins sizes, while really those Scala classes should only be loaded once. Spigot 1.16.5 introduced a new library loading api, but it has similar problems. Introducing... ScalaLoader ScalaLoader uses a custom PluginLoader that loads the Scala runtime classes for you! Javadoc available here! Pros - Write idiomatic Scala! - No need to shade anymore! - Supports different (binary incompatible) Scala versions at the same time! ScalaLoader uses classloader magic to make that work. - Supports custom scala versions by adding/changing URLs in the config file. - Annotation-based detection of the plugin's main class - no need to write a plugin.yml. If you wish to use a plugin.yml still, you can, however I always found it a pain. - A boilerplate-free event api! #getHa","default_branch":null,"files":null,"tree":[],"storefront":"/r/Jannyboy11","claimed":false,"request_supported":{"post":"https://gitbuyer.com/r/Jannyboy11/ScalaPluginLoader/request-supported","requests":0},"note":"indexed from public GitHub; nothing is for sale on this page. Clone it from GitHub. Paid listings live at /search."}