Ecosyste.ms: Awesome

An open API service indexing awesome lists of open source software.

Awesome Lists | Featured Topics | Projects

https://github.com/leveltranic/mavenloader

A custom external dependency loader is prepended to easily reduce the package size.
https://github.com/leveltranic/mavenloader

bukkiit dependency folia library library-loader maven minecraft paper plugin purpur shreddedpaper spigot tools velocity

Last synced: 18 days ago
JSON representation

A custom external dependency loader is prepended to easily reduce the package size.

Awesome Lists containing this project

README

        

# MavenLoader
A custom external dependency loader is prepared to easily reduce the package size.











## Required
- Java 17+
- Velocity 3.3.0 ↔ latest (Optional)
- BungeeCord 1.18 ↔ latest (Optional)
- Spigot/Paper/Folia 1.18.2 ↔ latest (Optional)

## Plugin Compatibility
- PlugManX (1.6-SNAPSHOT will not be provided, and it may be provided in future updates.)

## Test Information
Versions starting from 1.18.2 should work fine.

if you have problems, please open an issues and give me the log and your environment information.

- Java 23 (Specified as 21 in Spigot and BungeeCord)
- Spigot 1.21 latest
- Folia 1.21.1 latest
- ShreddedPaper 1.20.6 latest
- BungeeCord 1.21 a89cf5f:1869
- Velocity 3.3.0-SNAPSHOT git-2016d148-b436

## Download
All places use the same build pack, I just left these links to let you know I'm only releasing it in these places.

- **Github**: https://github.com/LevelTranic/MavenLoader/releases
- **Spigot**: https://www.spigotmc.org/resources/mavenloaderapi.119660/
- **CurseForge**: https://www.curseforge.com/minecraft/bukkit-plugins/mavenloaderapi
- **Modrinth**: https://modrinth.com/plugin/mavenloader-api
- **Hangar**: https://hangar.papermc.io/Tranic/MavenLoaderAPI

## Usage
1.4-SNAPSHOT introduced a repository whitelist mechanism to try to avoid some untrusted repositories from loading malicious dependencies.

### Server
You need to add the following parameters to the Java startup parameters to enable it normally.

```bash
--add-opens=java.base/java.net=ALL-UNNAMED
```

Then download MavenLoader and put it in the Server plugin directory. It is recommended to keep MavenLoader the latest version.

**Please confirm whether the plugin that relies on MavenLoaderAPI loads trusted dependencies and pay attention to safety.**

### Developer
Docs in: [DEVELOPER_DOCS](DEVELOPER_DOCS.md)

Updater API in: [USE_UPDATER](USE_UPDATER.md)

Example in: [MavenLoader-Example](https://github.com/LevelTranic/MavenLoader-Example)

## Compatibility
- 1.2-SNAPSHOT: Implementing `maven.yml`
- 1.4-SNAPSHOT: Implementing repository whitelist
- 1.5-SNAPSHOT: Support Bukkit
- 1.6-SNAPSHOT (Coming soon): Support BungeeCord. `maven.yml` support `platform`, `reference-load` keyword. Remove external API (now only allow maven.yml)

## Config
```yaml
enable_whitelist: true # Enable repository whitelist, default is true
# repository whitelist list
whitelist:
- https://repo.maven.apache.org/maven2
- https://repo.maven.apache.org/maven2
- https://oss.sonatype.org/content/groups/public/
- https://repository.jboss.org/nexus/content/groups/public
- https://maven-central-asia.storage-download.googleapis.com/maven2/
- https://maven-central-eu.storage-download.googleapis.com/maven2/
- https://maven-central.storage-download.googleapis.com/maven2/
- https://jitpack.io
- https://hub.spigotmc.org/nexus/content/repositories/snapshots/
- https://repo.papermc.io/repository/maven-public/
- https://repo.repsy.io/mvn/rdb/default
updater:
check: true
source: github # Update Channel, Support: github, spigot, spiget, modrinth, hangar
simple-mode: true # Sacrifice some detection accuracy in exchange for some performance. (default: true)
```

## Statistics
- Velocity: https://bstats.org/plugin/velocity/MavenLoader/23396
- Spigot: https://bstats.org/plugin/bukkit/MavenLoader-Spigot/23501
- Bungee: https://bstats.org/plugin/bungeecord/MavenLoader-Bungee/23524