如何设置服务器所有者(owner)加入时自动在聊天频道发送全服通知消息
服务器所有者加入自动发送通知功能实现方案
该功能的实现核心逻辑共三步,所有类型的服务器都可以参照该逻辑落地:
- 监听用户加入服务器的触发事件
- 校验加入用户的身份,确认是否为服务器所有者
- 调用对应聊天频道的消息发送接口推送指定通知
以下为三类常用场景的可直接使用的实现方案:
场景1:Minecraft Java版(Spigot/Paper/Folia服务端)
无需掌握Java开发,安装Skript插件后新建脚本文件写入以下内容即可生效:
on join: # 可将下方判断条件替换为指定UUID校验:if uuid of player is "你的账号UUID" if player is op: send colored "&e[服务器通知] &f服务器所有者%player%已加入游戏" to all players
如果需要指定发送到某一个聊天频道而非全服,对接你所用的频道插件的API做对应修改即可。
场景2:Discord服务器
基于Discord.js开发机器人即可实现,核心代码片段如下:
client.on('guildMemberAdd', member => { // 校验加入成员是否为当前服务器所有者 if (member.id === member.guild.ownerId) { // 替换为你要推送通知的频道ID const notifyChannel = member.guild.channels.cache.get('目标通知频道ID'); if (notifyChannel) { notifyChannel.send(`服务器所有者${member.user.tag}已加入服务器`); } } });
使用前需要在Discord开发者后台开启机器人的Server Members Intent权限。
场景3:QQ群/QQ频道机器人(基于OneBot协议)
基于nonebot2框架的实现示例如下:
@bot.on_event('group_increase') async def handle_owner_join(event: GroupIncreaseEvent): group_info = await bot.get_group_info(group_id=event.group_id) # 校验加入用户是否为群主 if event.user_id == group_info['owner_id']: await bot.send_group_msg( group_id=event.group_id, message='[通知] 服务器所有者已加入当前群' )
内容的提问来源于stack exchange,提问作者Guutionry
相关产品推荐
相关产品推荐

