本插件将酷Q扩展可以间接使用Java进行开发
本文档适用于有一定Java基础的开发者阅读
以下提供详细步骤,推荐使用maven进行开发
文档不够详细的部分可以源码,源码的注释也是非常全的
视频教学:待续~ 酷Q帖子:https://cqp.cc/t/37318
根目录 (例:酷Q/data/app/com.sobte.cqp.jcq/)
目录 | 描述 |
---|---|
bin/ | 存放重要的JCQ插件管理工具和酷QAPI工具 |
app/ | 插件放置处,即放置您所编写并打包好的jar |
conf/ | 核心配置目录 |
lib/ | 全局lib目录,需手动创建 |
小提示
jar插件同名文件夹下创建lib,可以使用独立lib(可在json中修改此位置)
优先级:独立lib > 全局lib > JCQ自带lib
每个插件都是独立的,互不影响,各插件加载类时优先级越高的最先加载
全局lib 和 独立lib 根据需求使用 注意类加载优先级
配置文件
文件 | 描述 |
---|---|
setting.ini | JCQ配置文件 |
JCQ.cfg | JCQ应用配置文件,此文件较为重要,不做解释 |
JavaVM 相关
key | value |
---|---|
JrePath | 自定义JRE路径配置 (默认从注册表读JRE目录) |
ClassPath | 设置JVM启动加载类路径 |
MinSize | JVM堆内存最小设置 |
MaxSize | JVM堆内存最大设置 |
MinPermSize | JVM非堆内存最小设置 |
MaxPermSize | JVM非堆内存最大设置 |
JVM内存限制
32位虽然可控内存空间有4GB,但是具体的操作系统会给一个限制,这个限制一般是2GB-3GB 一般来说Windows系统下为1.5G-2G,Linux系统下为2G-3G,而64bit以上的处理器就不会有限制了
JavaCQ 相关
key | value |
---|---|
Version | JCQ Tool版本(清空此值,则重新生成核心文件) |
正常插件是由以下两部分组成的
JSON文件是用于存储插件信息的文本文件 下面介绍下Json基本信息,详情查看Demo中json注释
整体部分
{
"ret" : 1, // 返回码,固定为1
"apiver" : 9, // Api版本,本SDK为9
"name" : "name", // 应用的名称
"version" : "1.0.0", // 应用文本版本号 例:1.0.0
"version_id" : 1, // 应用顺序版本(每次发布时至少+1)
"author" : "author", // 应用作者
//"path" : "lib", // 应用lib加载处,默认插件同名文件夹目录下lib文件夹,此目录可以填相对路径和绝对路径,相对:应用同名文件夹
//"class" : "com.example.Demo", // 应用加载主类,注意必须填写全类名,默认使用appid加载,如需使用则删除前面注释
"description": "", // 应用描述
"event" : [], // 事件列表,同一事件类型可重复定义(发布前请删除无用事件)
"menu" : [], // 设置菜单
"status" : [], // 悬浮窗状态 (暂无实际功能,后期加入)
"auth" : [] // 应用权限
}
事件部分
{
// 这是事件部分json,其他部分与上面一致
"event":
[
// 这里列举私聊事件为例,其他参考Demo中的json
{
"id" : 1, // 事件ID,保持唯一即可
"type" : 21, // 事件类型,事件类型,用于区分各函数的功能
"name" : "私聊消息处理", // 事件名称
"function": "privateMsg", // 事件对应主类中的函数
"priority": 30000 // 事件优先级 (参见 cqp.im/deveventpriority)
}
]
}
菜单部分
{
// 这是事件部分json,其他部分与上面一致
"event":
[
// 菜单会在管理器中被调用
{
"name": "设置A", //菜单名称
"function": "menuA" //菜单对应主类中的函数
}
]
}
最后必须将文件名改为 [appid].json 并和你的jar插件放置到app目录下
如果有一定Java基础,则可以转到下文的快速开发
lib
目录,导入其中所需jar文件 // 群消息事件,详情参考Demo中的主类
public int groupMsg(int subType, int msgId, long fromGroup, long fromQQ, String fromAnonymous, String msg, int font) {
// 以下是群消息要执行的代码
CQ.sendGroupMsg(fromGroup, msg + "Java插件");
return 0;
}
app
目录下此步骤面向一定Java基础的开发者
Maven 导入
<groupId>org.meowy.cqp</groupId>
<artifactId>jcq-coolq</artifactId>
<version>1.3.0</version>
JCQ JavaDoc http://sobte.gitee.io/jcq-wiki/
其中包括JCQ所有类的注释
CoolQ 类
酷Q操作的核心类
方法 | 说明 |
---|---|
deleteMsg | 撤回消息,需Pro版 |
getAppDirectory | 获取应用目录,如果目录不存在则自动创建,目录末尾带 "" |
getCookies | 获取Cookie,慎用,此接口需要严格授权 |
getCsrfToken | 获取CsrfToken,即QQ网页用到的bkn/g_tk等 慎用,此接口需要严格授权 |
getGroupList | 获取群列表 |
getGroupMemberInfo | 获取群成员信息 |
getGroupMemberInfoV2 | 获取群成员信息 |
getGroupMemberList | 获取群成员列表 |
getLoginNick | 获取登录昵称 |
getLoginQQ | 获取登录QQ |
getRecord | 接收消息中的语音(record) |
getFont | 转换数据到字体信息 |
getGroupFile | 获取群文件信息 |
getAnonymous | 获取匿名信息 |
getStrangerInfo | 获取陌生人信息 |
addLog | 不推荐使用本方法,请使用log开头的方法 |
logDebug | 添加日志,级别:调试,颜色:灰色 |
logError | 添加日志,级别:错误,颜色:红色 |
logFatal | 添加日志,级别:致命错误,颜色:深红 |
logInfo | 添加日志,级别:信息,颜色:黑色 |
logInfoRecv | 添加日志,级别:信息(接收),颜色:蓝色 |
logInfoSend | 添加日志,级别:信息(发送),颜色:绿色 |
logInfoSuccess | 添加日志,级别:信息(成功),颜色:紫色 |
logWarning | 添加日志,级别:警告,颜色:橙色 |
sendDiscussMsg | 发送讨论组消息 |
sendGroupMsg | 发送群消息 |
sendLike | 发送手机赞 |
sendLikeV2 | 发送手机赞 |
sendPrivateMsg | 发送私聊消息 |
setDiscussLeave | 退出讨论组 |
setFatal | 置错误提示 |
setFriendAddRequest | 处理好友添加请求 |
setGroupAddRequest | 处理群添加请求 |
setGroupAddRequestV2 | 处理群添加请求 |
setGroupAdmin | 设置群管理员 |
setGroupAnonymous | 群匿名设置 |
setGroupAnonymousBan | 禁言匿名群员 |
setGroupBan | 禁言群员 |
setGroupCard | 设置群成员名片 |
setGroupKick | 移除群员 |
setGroupLeave | 退出QQ群,慎用,此接口需要严格授权 |
setGroupSpecialTitle | 设置群成员专属头衔,需群主权限 |
setGroupWholeBan | 全群禁言 |
getLastStatus | 获取最后状态 |
CQCode 类
CQ码 ,用于辅助开发加快开发效率,以下方法均返回 CQ码 文本
方法 | 说明 |
---|---|
decode | 特殊字符,反转义 |
encode | 特殊字符,转义,避免冲突 |
anonymous | 匿名发消息(anonymous) - 仅支持群 |
analysis | 解析CQ码 |
getFaceId | 从CQ码中获取QQ表情ID,错误返回 -1 |
getFaceIds | 从CQ码中获取所有QQ表情ID |
at | 提醒某人,@某人(at) |
getAt | 从CQ码中获取at的QQ号,-1 为全体,错误为 -1000 |
getAts | 从CQ码中获取所有at的QQ号 |
contact | 发送名片分享(contact) |
emoji | emoji表情(emoji) |
getEmoji | 从CQ码中获取emoji表情ID,错误返回 -1 |
getEmojis | 从CQ码中获取所有emoji表情ID |
face | 表情QQ表情(face) |
image | 发送图片(image),需Pro版 |
imageUseGet | 使用Get方式获取图片并发送图片(image),需Pro版 |
imageUsePost | 使用Post方式获取图片并发送图片(image),需Pro版 |
getImage | 从CQ码中获取图片的路径,如 [CQ:image,file=1.jpg] 则返回 1.jpg |
getCQImage | 从CQ码中获取图片的 CQImage 对象 |
getCQImages | 从CQ码中获取所有 CQImage 对象 |
location | 发送位置分享(location) |
music | 发送音乐(music) |
record | 发送语音(record) |
getRecord | 从CQ码中获取语音的路径,如 [CQ:record,file=1.amr] 则返回 1.amr |
getRecordFile | 从CQ码中获取语音的文件对象 |
shake | 窗口抖动(shake) - 仅支持好友 |
isShake | 判断CQ码中是否包含 窗口抖动(shake) |
share | 发送链接分享(share) |
可以加入交流群赞助:427984429
此处可能存在不合适展示的内容,页面不予展示。您可通过相关编辑功能自查并修改。
如您确认内容无涉及 不当用语 / 纯广告导流 / 暴力 / 低俗色情 / 侵权 / 盗版 / 虚假 / 无价值内容或违法国家有关法律法规的内容,可点击提交进行申诉,我们将尽快为您处理。