You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

FabricMC 1.20玩家加入世界事件监听实现方法咨询

FabricMC 1.20 监听玩家加入世界事件的实现方法

在FabricMC 1.20中,你可以通过Fabric封装的服务器玩家事件来监听玩家加入单人/多人世界的行为,具体实现如下:

核心逻辑

玩家加入世界的事件属于服务器端事件(单人世界本质是本地服务器),直接使用ServerPlayerEvents.JOIN事件即可覆盖两种场景。

代码示例

在你的Mod初始化类中注册事件并编写触发逻辑:

import net.fabricmc.api.ModInitializer;
import net.fabricmc.fabric.api.entity.event.v1.ServerPlayerEvents;
import net.minecraft.server.network.ServerPlayerEntity;
import net.minecraft.text.Text;

public class YourMod implements ModInitializer {
    @Override
    public void onInitialize() {
        // 注册玩家加入事件
        ServerPlayerEvents.JOIN.register((player, isFirstJoin) -> {
            // 示例:给玩家发送欢迎消息
            player.sendMessage(Text.literal("欢迎来到我的世界!"));
            
            // 判断是否为首次加入该世界
            if (isFirstJoin) {
                player.sendMessage(Text.literal("这是你第一次踏入这个世界,祝你旅途愉快!"));
                // 可添加首次加入专属逻辑,比如赠送新手物品
                // player.giveItemStack(new ItemStack(Items.DIAMOND_SWORD));
            } else {
                player.sendMessage(Text.literal("欢迎回来!"));
            }
        });
    }
}

关键说明

  • ServerPlayerEvents.JOIN:Fabric专为服务器玩家加入场景提供的事件,自动兼容单人本地服务器和多人服务器。
  • 回调参数:
    • player:当前加入的玩家实体,可通过它执行发送消息、修改属性、给予物品等操作。
    • isFirstJoin:布尔值,true表示玩家首次加入该世界(新存档第一次进入),false表示玩家重新加入(退出后再次进入)。
  • 注意:该事件运行在服务器线程,不要在此处执行客户端专属逻辑(如渲染操作),若需客户端交互,需通过网络数据包实现。

内容的提问来源于stack exchange,提问作者PansanGG_

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.20 22:30:03