榴莲自定义功能
关于
该功能为基于 JavaScript 虚拟执行环境的被动响应式可编程功能,仅在附属群机器人研究室内开启内测。如果您不熟悉编程也没关系,可以来尝试由大家开发的最新小功能,或者对机器人进行简单的“调教”;如果您熟悉 JavaScript,非常欢迎来发散您的创意;如果您有意愿学习 JavaScript 编程语言,那同样欢迎您加入来利用虚拟环境练习、测试、开发属于自己的专属功能。
由于该功能向群内完全开放了自定义能力,因此严禁出现包括但不限于有关政治、色情、暴力、恐怖等敏感话题或违规话题,严禁任何违反 QQ 软件许可及服务协议 8.2 条款的功能开发或调用,如果
- 您开发违反以上内容的功能,例如从色情网站上搬运照片等,则您会被拉黑,该功能会被直接删除
- 您利用他人开发的中立性功能有意调用导致出现违反以上内容的情况,例如利用他人开发的维基百科搬运功能搜索政治人物事件等,则您会被拉黑
另外,由于在群内所有群友共享一个 JavaScript 执行上下文,因此请不要恶意攻击虚拟执行环境,不要恶意覆盖、删除他人定义的变量或函数。屡犯不改的群友同样可能会被拉黑。
基本使用方法
本节列举了无需编程知识就可以使用的功能列表,其中一些进阶的说明会用注释罗列到本节的最后。
计算器
此功能可以当作一个简单的计算器来用,支持 +, -, *, /, % (模), ** (幂)
等运算[注释 1]和 sin, cos, exp, log
等数学函数[注释 2]。
发送 | 回应 |
---|---|
1 + 1
|
2
|
sqrt(3 ** 2 + 4 ** 2)
|
5
|
PI * 10 ** 2
|
314.1592653589793
|
(100 + 200 + 300) / 12
|
50
|
定义自动回复
此功能可以当作另一个”调教榴莲“的方式使用,并且支持图片和表情。语法为 触发语句='回复语句'
或 触发语句="回复语句"
或 触发语句=`回复语句`
,只有最后一种表达式支持多行定义[注释 3],触发语句不能包含标点、空格或其它特殊字符。如果需要删除定义的自动回复,发送 delete 触发语句
即可。
查找功能
如果您想查找别人定义的功能,发送 .find 关键词
可以进行搜索,兼容句号前缀。注意,名称是大小写敏感的,错误的大小写无法得到预期的结果。
查看功能帮助
如果您想查看某个功能的帮助信息,发送 .help 功能名
即可,兼容句号前缀。具体的帮助信息由开发此功能的人员提供。
调用功能
发送 .功能名
可以调用该功能。如果这个功能需要参数,可以用空格分隔功能名称和参数,例如 .功能名 参数1 参数2
。兼容句号前缀。
查看源码
如果您好奇别人开发的功能是如何实现的,可以发送 .view 功能名
查看源代码。兼容句号前缀。
进阶使用方法
内置 API
内置对象
该功能是纯 JavaScript V8 执行环境,因此不像 Node.js 一样包含 require, process
等方法,也不像 Chrome 一样包含 window, document
等对象,只有标准 ECMAScript 6 内置的对象。
- 值对象:
Infinity, NaN, undefined, globalThis
- 函数属性:
eval, isFinite, isNaN, parseFloat, parseInt, decodeURI, decodeURIComponent, encodeURI, encodeURIComponent, escape, unescape
- 基本对象:
Object, Function, Boolean, Symbol
- 错误对象:
Error, EvalError, RangeError, ReferenceError, SyntaxError, TypeError, URIError
- 错误对象:
- 数字和日期对象:
Number, BigInt, Math, Date
- 字符串:
String, RegExp
- 可索引的集合对象:
Array, Int8Array, Uint8Array, Int8Array, Uint16Array, Int16Array, Uint32Array, Int32Array, Float32Array, Float64Array, Uint8ClampedArray, BigUint64Array, BigInt64Array
- 使用键的集合对象:
Map, Set, WeakMap, WeakSet
- 结构化数据:
ArrayBuffer, SharedArrayBuffer, Atomics, DataView, JSON
- 控制抽象对象:
Promise
- 反射:
Proxy, Reflect
具体的内置对象使用方法请参考 JavaScript 标准内置对象。
内置函数
本节包括针对 QQ 环境注入的函数和方便开发功能注入的函数。这部分内容会随着开发频繁更改。如果您需要什么其它方便的函数请尽管提出。
函数定义 | 参数类型 | 返回值类型 | 备注 |
---|---|---|---|
qq()
|
(可选) ?string | number | 返回 QQ 号,默认为发送消息者 |
messageTime()
|
无 | number | 消息的秒级时间戳 |
groupID()
|
无 | number | 消息所在的群号 |
groupName()
|
无 | string | 消息所在的群名称 |
qqName()
|
无 | string | 名称 |
qqSex()
|
无 | string | 性别 |
qqArea()
|
无 | string | 地区 |
qqAge()
|
无 | number | 年龄 |
qqLevel()
|
无 | number | 等级 |
qqRole()
|
无 | string | 群员类型 |
qqTitle()
|
无 | string | 头衔 |
qqHead(qq)
|
(可选) ?(number | string) | string | 生成 QQ 头像消息片段(默认发送消息者) |
at(qq)
|
number | string | string | 生成 at 此人的消息片段 |
img(imgURL)
|
string | string | 生成图片消息片段 |
env()
|
无 | object | 消息环境变量,一般以上函数足够使用,不需要手动处理环境变量 |