All Projects → vectrix-space → ignite

vectrix-space / ignite

Licence: MIT license
A Mixin and Access Widener mod loader for Spigot/Paper

Programming Languages

java
68154 projects - #9 most used programming language
kotlin
9241 projects

Projects that are alternatives of or similar to ignite

Orion
Mixin loader for Paper
Stars: ✭ 46 (-60%)
Mutual labels:  bukkit, mixins, paper, mod, paper-server
Minecraftdev
Plugin for IntelliJ IDEA that gives special support for Minecraft modding projects.
Stars: ✭ 645 (+460.87%)
Mutual labels:  bukkit, mixins, spigot, paper
Slimefun4
Slimefun 4 - A unique Spigot/Paper plugin that looks and feels like a modpack. We've been giving you backpacks, jetpacks, reactors and much more since 2013.
Stars: ✭ 369 (+220.87%)
Mutual labels:  bukkit, spigot, paper
Yatopia
The Most Powerful and Feature Rich Minecraft Server Software!
Stars: ✭ 408 (+254.78%)
Mutual labels:  bukkit, spigot, paper
Essentials
The essential plugin suite for Minecraft servers.
Stars: ✭ 957 (+732.17%)
Mutual labels:  bukkit, spigot, paper
Purpur
Purpur is a fork of Paper, Tuinity, and Airplane with the goal of providing new and interesting configuration options, which allow for creating a unique gameplay experience not seen anywhere else
Stars: ✭ 286 (+148.7%)
Mutual labels:  bukkit, spigot, paper
Akarin
Akarin is a powerful (not yet) server software from the 'new dimension'
Stars: ✭ 332 (+188.7%)
Mutual labels:  bukkit, spigot, paper
Mohist
Minecraft Forge Hybrid server implementing the Paper/Spigot/Bukkit API, formerly known as Thermos/Cauldron/MCPC+
Stars: ✭ 489 (+325.22%)
Mutual labels:  bukkit, spigot, paper
Hyperverse
A Minecraft world management plugin
Stars: ✭ 53 (-53.91%)
Mutual labels:  bukkit, spigot, paper
grakkit
A modern JavaScript development environment for Minecraft.
Stars: ✭ 184 (+60%)
Mutual labels:  spigot, paper, mod
Minecraft Optimization
Minecraft server optimization guide
Stars: ✭ 77 (-33.04%)
Mutual labels:  bukkit, spigot, paper
Cardboard
The Bukkit/Spigot/Paper API implementation for Fabric
Stars: ✭ 220 (+91.3%)
Mutual labels:  bukkit, spigot, paper
Plotsquared
PlotSquared - Reinventing the plotworld
Stars: ✭ 284 (+146.96%)
Mutual labels:  bukkit, spigot, paper
Arclight
A Bukkit(1.15/1.16) server implementation on Forge using Mixin. ⚡
Stars: ✭ 262 (+127.83%)
Mutual labels:  bukkit, mixins, spigot
Item Nbt Api
Add custom NBT tags to Items/Tiles/Entities without NMS!
Stars: ✭ 163 (+41.74%)
Mutual labels:  bukkit, spigot, paper
Crucible
Crucible is a Thermos fork containing various patches for bug fixes and performance improvements. Join our discord to stay updated with the project development.
Stars: ✭ 67 (-41.74%)
Mutual labels:  bukkit, mixins, spigot
Betonquest
An advanced and powerful quest scripting plugin for Minecraft. Features built-in RPG style conversations and integration for over 25 other plugins.
Stars: ✭ 121 (+5.22%)
Mutual labels:  bukkit, spigot, paper
VeinMiner
Minecraft Bukkit/Spigot/Paper plugin with Fabric client side mod. Mine multiple blocks of the same type in quick succession.
Stars: ✭ 67 (-41.74%)
Mutual labels:  bukkit, spigot, mod
Islands
A spigot plugin for creating customisable home islands with different biomes. https://www.spigotmc.org/resources/islands-home-islands-system.84303/
Stars: ✭ 18 (-84.35%)
Mutual labels:  bukkit, spigot, paper
Guilds
Adding RPG to your server has never been more fun and action-packed!
Stars: ✭ 66 (-42.61%)
Mutual labels:  bukkit, spigot, paper

Ignite Discord

GitHub Workflow Status (branch) MIT License Maven Central Sonatype Nexus (Snapshots)

A Mixin and Access Widener mod loader for Spigot/Paper.

Running a Server

Download the ignite-launcher.jar from here.

Place the ignite-launcher.jar into the same directory with your Minecraft Server jar (i.e paper.jar, spigot.jar or server.jar).

Start your server with the following command depending on the server software you are running:

  • Paper (1.18+): java -Dignite.service=paper -jar ignite-launcher.jar (with Minecraft Server jar named paper.jar)
  • Spigot (1.18+): java -Dignite.service=spigot -jar ignite-launcher.jar (with Minecraft Server jar named spigot.jar)
  • Legacy Paper: java -javaagent:./ignite-launcher.jar -Dignite.service=legacy_paper -jar ignite-launcher.jar (with Minecraft Server jar named paper.jar)

Note: Most other server jars are supported, however you may be required to add additional startup flags in order for it to work, which you can find in the Advanced Section below. It is recommended if you're not sure to ask for help.

The mods can then be placed into the mods directory that will be created, along with any mod configuration in configs.

Creating a Mod

The ignite-mod-template is a template you can use to start a project for Paper without needing to do all the setup yourself.

To depend on the Ignite API in order to create your mod, you will need to add the following to your buildscript:

  • Maven
<repositories>
  <repository>
    <url>https://repo.spongepowered.org/maven/</url>
  </repository>
</repositories>

<dependencies>
  <dependency>
    <groupId>space.vectrix.ignite</groupId>
    <artifactId>ignite-api</artifactId>
    <version>0.8.1</version>
  </dependency>
  <dependency>
    <groupId>org.spongepowered</groupId>
    <artifactId>mixin</artifactId>
    <version>0.8.5</version>
  </dependency>
</dependencies>
  • Gradle
repositories {
  mavenCentral()
  maven {
    url = "https://repo.spongepowered.org/maven/"
  }
}

dependencies {
  compile "space.vectrix.ignite:ignite-api:0.8.1"
  compile "org.spongepowered:mixin:0.8.5"
}

You will also need to depend on the server binary in order to compile your mod for your specified target(s).

Note: To support custom mappings you should check out ignite-mod-template if you're running Paper. For Spigot check out Pacifist Remapper.

Configuring your Mod

Your mod will require a ignite.mod.json in order to be located as a mod. The ignite.mod.json provides the metadata needed to load your mixins and access wideners.

Example ignite.mod.json:

{
  "id": "example",
  "version": "1.0.0",
  "entry": "space.vectrix.example.ExampleMod",
  "dependencies": [
    "ignite"
  ],
  "mixins": [
    "mixins.example.core.json"
  ]
}

The mods will need to be placed in the directory the launcher will be targeting to load.

Using Mixins

The Mixin configuration files will need to be available in your mods binary in order to be loaded. The name of each configuration file should be added to the mixins section in your ignite.mod.json, or alternatively could be added to your jar manifest.

Mixin Specification

Using Access Wideners

The Access Wideners configuration files will need to be available in your mods binary in order to be loaded. The name of each configuration file should be added to the access_wideners section in your ignite.mod.json, or alternatively could be added to your jar manifest with the AccessWidener key.

Warning: Access wideners should only be used in situations where Mixin will not work!

Access Widener Specification

Advanced Usage

Ignite has some properties that can be set on startup to change the launch target, mod directory and more. The following could be added to your startup script:

  • The bootstrap service to use. (e.g -Dignite.service=dummy)
  • The path to the server jar. (e.g -Dignite.jar=./server.jar)
  • The classpath to the server entry point. (e.g -Dignite.target=org.bukkit.craftbukkit.Main)
  • The directory ignite libraries will be located. (e.g -Dignite.libraries=./libraries)
  • The directory ignite mods will be located. (e.g -Dignite.mods=./mods)
  • The directory ignite mod configs will be located. (e.g -Dignite.configs=./configs)

Bootstrap Services

Bootstrap services provide platform specific modifications to the launch process. In most cases these platforms may not work without using their specified service. The following target jars will require you to use one:

  • Paper (1.18+):

    • Service name: paper (e.g -Dignite.service=paper)
    • The ignite.jar property will be overridden by this service, unless you set ignite.paper.override=false.
    • Extra properties:
      • The minecraft server version paperclip will be patching. (e.g -Dignite.paper.minecraft=1.19.3)
      • The path to the paperclip jar. (e.g -Dignite.paper.jar=./paper.jar)
      • The classpath to the paperclip entry point. (e.g -Dignite.paper.target=io.papermc.paperclip.Paperclip)
  • Spigot (1.18+):

    • Service name: spigot (e.g -Dignite.service=spigot)
    • The ignite.jar and ignite.libraries will be overridden by this service, so you should not set them.
    • Extra properties:
      • The spigot version will be using. (e.g -Dignite.spigot.version=1.19.3-R0.1-SNAPSHOT)
      • The path to the spigot bootstrap jar. (e.g -Dignite.spigot.jar=./spigot.jar)
      • The classpath to the spigot bootstrap entry point. (e.g -Dignite.spigot.target=org.bukkit.craftbukkit.bootstrap.Main)
  • Paper Legacy:

    • Service name: legacy_paper (e.g -Dignite.service=legacy_paper)
    • The ignite.jar property will be overridden by this service, unless you set ignite.paper.override=false.
    • Extra properties:
      • The minecraft server version paperclip will be patching. (e.g -Dignite.paper.minecraft=1.19.3)
      • The path to the paperclip jar. (e.g -Dignite.paper.jar=./paper.jar)
      • The classpath to the paperclip entry point. (e.g -Dignite.paper.target=io.papermc.paperclip.Paperclip)

Building

Note: If you do not have Gradle installed then use ./gradlew for Unix systems or Git Bash and gradlew.bat for Windows systems in place of any 'gradle' command.

In order to build Ignite you simply need to run the gradle command. You can find the compiled JAR file in ./target labeled 'ignite-launcher.jar'.

Inspiration

This project has many parts inspired by the following projects:

Initially designed for Mineteria.

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].