你学位证有了
yoonching 发布的帖子
-
RE: 怎么让机器人进行群管理
这个理解不太准确。一个事件只是给你一个发现这个成员需要修改的理由或者说是动机。比如他加群了你才能改名片(不在你的群肯定不能改),或者他发言时你发现他的名片不太对,机器人可以给他改。
由此,一般修改名片的业务场景及逻辑是这样的:
1、场景1:监听到入群事件 -> 稍等片刻 -> 调用相关API,获取这位新群成员的对象,修改该成员名片。
2、场景2:监听到群成员发言 -> 检查名片 -> 名片不符合群规定 -> 调用相关API,获取这位新群成员的对象,修改该成员名片。 -
RE: 问,协议在哪里设置,有什么可用的协议?
@user670 在 问,协议在哪里设置,有什么可用的协议? 中说:
@yoonching 然而我不是Mirai的开发者,我在使用已经编译好的Mirai(通过Mirai Console Loader)+Onebot HTTP接口。有哪个配置文件、环境变量或命令行参数可以设置协议吗,还是说我必须更改源码并自己编译?
我没有用Mirai Console Loader,从Mirai Console Loader公开的文档看,这里找到了关于协议的描述。
https://hub.fastgit.org/mamoe/mirai-console/blob/master/docs/BuiltInCommands.md#autologincommand -
RE: 问,协议在哪里设置,有什么可用的协议?
协议在哪里设置?
答:跟真机登录一样,肯定是发起登录的时候。见https://hub.fastgit.org/mamoe/mirai/blob/d3bfd4df04a6714e083d8714800699683dce182f/docs/Bots.md#%E5%88%87%E6%8D%A2%E7%99%BB%E5%BD%95%E5%8D%8F%E8%AE%AE有什么可用的协议?
答: 见第231行
https://hub.fastgit.org/mamoe/mirai/blob/2e1ec03daaf6a1e508bc1bc5baeb72796f10c270/mirai-core-api/src/commonMain/kotlin/utils/BotConfiguration.kt有什么例子可以参考?
答:把Mirai作为jar包依赖方式的开发,可以看这页代码第51行。代码的业务逻辑是构造一个机器人的配置并登录。
https://hub.fastgit.org/farewell12345/FAQ-Bot-QQ/blob/master/src/main/kotlin/io/farewell12345/github/faqbot/BotManager/BotManager.kt看文档、借鉴其他项目的代码,是开发软件的基本起步方法。
-
RE: 使用quartzScheduler定时发消息问题
一个简单的实现,目标是一分钟执行一次你的业务代码。
首先,在main.kt里,数据库初始化完毕、机器人启动(login)以后,joinAll之前,加入以下代码
val task = RobotTask() // RobotTask是自己写的
Timer().schedule(task,Date(),60000) // 从运行main'开始及之后的每60s执行一次上一行的task
// 上面RobotTask 的实现,它的业务代码是打印执行任务时的时间。
class RobotTask : TimerTask() {
override fun run() {
runBlocking {
try {
val sdf = SimpleDateFormat("yyyy-MM-dd HH:mm:ss:SSS")
val date = Date()
val str = sdf.format(date)
println(str)
}catch (e:Exception) {
e.printStackTrace()
}
}
}