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_
相关产品推荐
相关产品推荐

