luanti API 模组通信频道
模组通信频道(Modchannels)
用于服务端模组(SSM) 和客户端模组(CSM) 互相发消息、双向通信。
服务端 API(Server Side API)
函数(Functions)
core.mod_channel_join(channel_name)
channel_name:字符串,模组频道名称- 返回一个可调用方法的频道对象
- 频道不存在则自动创建,并立即加入该频道
core.register_on_modchannel_message(function(channel_name, sender, message))
channel_name:字符串,已加入的模组频道名sender:字符串,服务端发来则为空,客户端发来则为玩家名message:字符串,消息内容- 用于处理从客户端收到的消息
方法(Methods)
注意:下面的
channel均指core.mod_channel_join返回的对象
channel:leave()
- 服务端退出该频道
- 退出后
core.register_on_modchannel_message不再收到此频道消息
小贴士:退出后把频道变量设为
nil释放资源
channel:is_writeable()
- 返回布尔值:可写返回
true,不可写返回false
channel:send_all(message)
message:字符串,最大 65535 字节- 发给频道里所有服务端模组、客户端模组
说明:频道不可写或无效时,消息不会发送
客户端 API(Client Side API)
函数(Functions)
core.mod_channel_join(channel_name)
channel_name:字符串,模组频道名称- 返回频道对象,不存在则创建并加入
- 与服务端版本功能完全一致
core.register_on_modchannel_message(function(channel_name, sender, message))
channel_name:字符串,已加入且已收到确认的频道sender:字符串,服务端发来则为空,客户端发来则为玩家名message:字符串,消息内容- 用于处理收到的消息,与服务端功能一致
core.register_on_modchannel_signal(function(channel_name, signal))
channel_name:字符串,信号来源频道名signal:整数,0–5,对应以下状态:join_ok:加入成功join_failed:加入失败leave_ok:退出成功leave_failed:退出失败event_on_not_joined_channel:向未加入的频道发消息state_changed:频道状态变更
- 用于处理模组频道系统发出的信号
方法(Methods)
注意:下面的
channel均指core.mod_channel_join返回的对象
channel:leave()
- 客户端退出频道
- 退出后不再通过
core.register_on_modchannel_message接收该频道消息
小贴士:退出后设为
nil释放资源
channel:is_writeable()
- 返回布尔值:可写返回
true,不可写返回false
channel:send_all(message)
message:字符串,最大 65535 字节- 发送给频道内所有服务端/客户端模组
说明:频道不可写或无效时,消息不会发送