https://www.pkuxkx.com/wiki/tools/pymud
https://github.com/crapex/pymud
https://pypi.org/project/pymud
554672580
本WIKI未来仅发布更新历史,由于文档内容较多,详细使用文档请查阅文档地址。
# 原来为确保await triggered的任务在输入前等待,有时候需要这么写: task = self.create_task(self.tri1.triggered()) await asyncio.sleep(0.05) self.session.writeline('dazuo') await task # 现在可以一句话简写: await self.session.waitfor('dazuo', self.create_task(self.tri1.triggered()))
功能新增: Session类新增addObject, addObjects, delObject, delObjects用于操作别名、定时器、触发器、GMCP触发器、命令等对象。
# 所有对象均可以使用 addObject 直接添加到会话中,而不用管是什么具体类型。当然,现在已经不需要自己调用addObject了,在创建对象实例时,系统将自动调用 session.addObject(Timer(...)) session.addObject(Trigger(...)) session.addObject(Alias(...)) # 所有对象均可以使用 delObject 直接从会话中移除,会自动根据对象类型推断,无需通过函数名区分 session.delObject(self.tri1) session.delObject(self.ali1) session.delObject(self.timer1) objs = [ Trigger(session, xxx, xxx), Alias(session, xxx), SimpleCommand(session, xxx), Timer(session, xxx), GMCPTrigger(session, xxx) ] session.addObjects(objs) # 可以直接将一个数组中所有对象添加到会话中,会自动判断各对象类别 session.delObjects(objs) # 可以直接从会话中移除一个数组中的所有对象,会自动判断对象类别
功能新增: Session类型新增idletime属性,可以获取本会话发呆秒数(float类型)。当会话处于未连接状态时,返回 -1。可以利用定时器,在其中检测 idletime 值,以在机器人出错后处理恢复
本版对模块功能进行了整体调整,支持加载/卸载/重载/预加载多个模块,具体内容如下:
一个新的修改后的pymud.cfg示例如下
{ "sessions": { "pkuxkx" : { "host" : "mud.pkuxkx.com", "port" : "8081", "encoding" : "utf8", "autologin" : "{0};{1}", "default_script": ["pkuxkx.common", "pkuxkx.commands", "pkuxkx.main"], "chars" : { "char1": ["yourid1", "yourpassword1"], "char2": ["yourid2", "yourpassword2", "pkuxkx.wudang"], "char3": ["yourid3", "yourpassword3", "pkuxkx.wudang,pkuxkx.lingwu"], "char4": ["yourid4", "yourpassword4", ["pkuxkx.shaolin","pkuxkx.lingwu"]] } } } }
问题修复:修复enableGroup中定时器处的bug
名称 | 类型 | 状态 | 含义 |
---|---|---|---|
PLUGIN_NAME | str | 必须有 | 插件唯一名称 |
PLUGIN_DESC | dict | 必须有 | 插件描述信息的详情,必要关键字包含VERSION(版本)、AUTHOR(作者)、RELEASE_DATE(发布日期)、DESCRIPTION(简要描述) |
PLUGIN_PYMUD_START | func(app) | 函数定义必须有,函数体可以为空 | PYMUD自动读取并加载插件时自动调用的函数, app为PyMudApp(pymud管理类)。该函数仅会在程序运行时,自动加载一次 |
PLUGIN_SESSION_CREATE | func(session) | 函数定义必须有,函数体可以为空 | 在会话中加载插件时自动调用的函数, session为加载插件的会话。该函数在每一个会话创建时均被自动加载一次 |
PLUGIN_SESSION_DESTROY | func(session) | 函数定义必须有,函数体可以为空 | 在会话中卸载插件时自动调用的函数, session为卸载插件的会话。卸载在每一个会话关闭时均被自动运行一次。 |
首次发布到pip,增加模块使用