Server Events

A Fabric mod enhancing server-side event handling with a Bukkit-inspired system, extending and encapsulating Fabric API events.

2,10k

Quick challenge

How far can you run before the mobs catch you?

Server Events

Server Events

Server Events is a support library for Fabric server development, designed to enhance the Fabric API's limited event system. It offers a Bukkit-like event framework while adhering to Fabric's minimalist philosophy.

The mod doesn't wrap `CommandRegistrationCallback` and `DynamicRegistrySetupCallback` from Fabric API.

Installation

1. Import this package to your project. 2. Add `serverevents` to your mod depends.

```groovy repositories { maven "https://mvn.suc.icu" }

dependencies { implementation "icu.suc.mc:serverevents:<version>" } ```

Since `2.0.0`, the groupId has been changed from `icu.suc` to `icu.suc.mc`.

Usage

ServerEvents provides a simple API for registering and processing events.

Here is an example of a player modifying broadcast information:

```java import net.fabricmc.api.ModInitializer; import net.minecraft.network.chat.Component; import net.minecraft.world.item.Items; import icu.suc.mc.serverevents.ServerEvents;

public class ExampleMod implements ModInitializer { @Override public void onInitialize() { ServerEvents.Player.MODIFY_JOIN_MESSAGE.register((player, message) -> Component.literal("[+] ").append(player.getName())); } } ```

Since `2.2.0`:

```java import icu.suc.mc.serverevents.Listener; import icu.suc.mc.serverevents.ServerEvents; import net.fabricmc.api.ModInitializer; import net.fabricmc.fabric.api.event.Event; import net.minecraft.network.chat.Component; import net.minecraft.server.level.ServerPlayer; import org.jetbrains.annotations.NotNull;

public class ExampleMod implements ModInitializer, Listener, ServerEvents.Player.Join.ModifyMessage { @Override public void onInitialize() { ServerEvents.register(this); }

@Override public @NotNull Event<?>[] events() { return new Event[]{ServerEvents.Player.Join.MODIFY_MESSAGE}; }

@Override public @NotNull Component modifyJoinMessage(@NotNull ServerPlayer player, @NotNull Component message) { return Component.literal("[+] ").append(player.getName()); } } ```

License

This project is licensed under the MIT License © 2025 sucj.

ADS