- Java 100%
| Filename | Latest commit message | Latest commit date |
|---|---|---|
|
Some checks failed
Verify Axiom / verify (push) Has been cancelled
Refresh zstd-jni (1.5.7-24), slf4j (2.0.20) and logback (1.6.5), move the demo server onto the version catalog, drop its unused fullbright dimension, and add `./gradlew :demo-server:run` to boot it locally. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> |
||
| .forgejo/workflows | ||
| buildSrc | ||
| demo-server | ||
| docs | ||
| gradle | ||
| src | ||
| .gitignore | ||
| build.gradle.kts | ||
| gradle.properties | ||
| gradlew | ||
| gradlew.bat | ||
| LICENSE.txt | ||
| README.md | ||
| settings.gradle.kts | ||
Axiom for Minestom
A server-side integration library that enables Minestom servers to work seamlessly with the Axiom mod.
Overview
Axiom is a powerful client-side mod that provides advanced world editing tools, 3D annotations, region markers, and building capabilities.
This library implements the server-side protocol and functionality needed to support Axiom clients on Minestom servers.
This development branch targets Axiom API 10 and the exact Minecraft protocol/data version of the linked Minestom build. It replaces the pre-tunnel handshake; it is not yet published as 0.0.5. See owned-world editing and protocol limits before enabling it on valuable map data. Wire/unit checks are not a substitute for client acceptance.
Quick Start
1. Add Dependency
repositories {
maven("https://git.neo.smolder.fr/api/packages/SmolderOSS/maven")
}
dependencies {
implementation("fr.ghostrider584:axiom-minestom:0.0.8")
}
2. Initialize Axiom
import fr.ghostrider584.axiom.AxiomMinestom;
public class MyServer {
public static void main(String[] args) {
var server = MinecraftServer.init();
// Initialize Axiom support
AxiomMinestom.initialize();
// Your server setup...
server.start("0.0.0.0", 25565);
}
}
3. Configure Permissions (Optional)
import fr.ghostrider584.axiom.restrictions.AxiomPermissions;
// Set custom permission logic
AxiomPermissions.setPermissionPredicate((player, permission) -> {
// Your permission logic here
if (player instanceof PermissionPlayer permissionPlayer) {
return permissionPlayer.hasPermission(permission.getPermissionNode());
}
return false;
});
Events
Listen to Axiom-specific events:
eventNode.addListener(AxiomSpawnEntityEvent.class, event -> {
Player player = event.getPlayer();
Entity entity = event.spawnedEntity();
if (entity.getEntityType() == EntityType.PIG) {
event.setCancelled(true);
}
});
Demo Server
Check out the included demo server in demo-server/ for an example implementation. Start it on localhost:25565 with ./gradlew :demo-server:run.
Contributing
Contributions are welcome! Please feel free to submit issues, feature requests, or pull requests.
License
This project is licensed under the MIT License.