服务器事件

服务器事件

一个基于Bukkit灵感系统增强服务端事件处理的Fabric模组,扩展并封装了Fabric API事件。

基础库

Server Events

GitHub License GitHub Actions Workflow Status GitHub Release

Modrinth Downloads

Server Events 是一个面向 Fabric 服务端开发的支撑库,旨在增强 Fabric API 有限的事件系统。它提供了类似 Bukkit 的事件框架,同时遵循 Fabric 的极简主义理念。

该模组不会包装 Fabric API 中的 CommandRegistrationCallback 和 DynamicRegistrySetupCallback。

安装

  1. 将此包导入到你的项目中。
  2. 将 serverevents 添加到你的模组依赖中。
repositories {
    maven "https://mvn.suc.icu"
}

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

自 2.0.0 起,groupId 已从 icu.suc 更改为 icu.suc.mc。

用法

ServerEvents 提供了用于注册和处理事件的简单 API。

以下是一个玩家修改广播信息的示例:

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()));
    }
}

自 2.2.0 起:

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());
    }
}

许可证

本项目基于 MIT License 许可协议,版权所有 © 2025 sucj。