杂项
获取消息平台实例
v3.4.34 后
python
from astrbot.api.event import filter, AstrMessageEvent
@filter.command("test")
async def test_(self, event: AstrMessageEvent):
from astrbot.api.platform import AiocqhttpAdapter # 其他平台同理
platform = self.context.get_platform(filter.PlatformAdapterType.AIOCQHTTP)
assert isinstance(platform, AiocqhttpAdapter)
# platform.get_client().api.call_action()调用 QQ 协议端 API
py
@filter.command("helloworld")
async def helloworld(self, event: AstrMessageEvent):
if event.get_platform_name() == "aiocqhttp":
# qq
from astrbot.core.platform.sources.aiocqhttp.aiocqhttp_message_event import AiocqhttpMessageEvent
assert isinstance(event, AiocqhttpMessageEvent)
client = event.bot # 得到 client
payloads = {
"message_id": event.message_obj.message_id,
}
ret = await client.api.call_action('delete_msg', **payloads) # 调用 协议端 API
logger.info(f"delete_msg: {ret}")关于 CQHTTP API,请参考如下文档:
Napcat API 文档:https://napcat.apifox.cn/
Lagrange API 文档:https://lagrange-onebot.apifox.cn/
获取载入的所有插件
py
plugins = self.context.get_all_stars() # 返回 StarMetadata 包含了插件类实例、配置等等获取加载的所有平台
py
from astrbot.api.platform import Platform
platforms = self.context.platform_manager.get_insts() # List[Platform]
