ZZZ-Plugin/guoba.support.js
2025-10-18 21:22:54 +08:00

499 lines
15 KiB
JavaScript
Raw Permalink Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

import settings from './lib/settings.js';
import lodash from 'lodash';
import { resourcesPath } from './lib/path.js';
import path from 'path';
// 支持锅巴
export function supportGuoba() {
let allGroup = [];
Bot.gl.forEach((v, k) => {
allGroup.push({ label: `${v.group_name}(${k})`, value: k });
});
return {
pluginInfo: {
name: 'ZZZ-Plugin',
title: '绝区零插件',
author: '@别调P',
authorLink: 'https://github.com/bietiaop',
link: 'https://github.com/ZZZure/ZZZ-Plugin',
isV3: true,
isV2: false,
description: '提供绝区零相关查询功能',
icon: 'bi:box-seam',
iconColor: '#7ed99e',
iconPath: path.join(resourcesPath, 'common/images/logo.png'),
},
// 配置项信息
configInfo: {
// 配置项 schemas
schemas: [
{
component: 'SOFT_GROUP_BEGIN',
label: '通用设置',
},
{
field: 'config.render.scale',
label: '渲染精度',
bottomHelpMessage:
'设置插件的渲染精度可选值50~200建议100。设置高精度会提高图片的精细度但因图片较大可能会影响渲染与发送速度官方QQBot建议不要超过85否则可能会因为文件过大发送失败',
component: 'InputNumber',
required: true,
componentProps: {
min: 50,
max: 200,
placeholder: '请输入数字',
},
},
{
field: 'config.url',
label: '绑定设备下载url',
bottomHelpMessage: '设置自定义的绑定绑定设备下载url',
component: 'Input',
componentProps: {
placeholder: '请输入绑定设备apk下载url',
},
},
{
field: 'config.enkaApi',
label: '自定义enkaApi地址',
bottomHelpMessage: '设置自定义的enkaApi地址',
component: 'Input',
componentProps: {
placeholder: '请输入enkaApi地址',
},
},
{
field: 'config.query.others',
label: '查询他人信息',
bottomHelpMessage: '是否允许查询他人信息',
component: 'Switch',
},
{
field: 'config.update.autoCheck',
label: '更新推送',
bottomHelpMessage: '是否开启自动检查更新推送(仅检查,不更新)',
component: 'Switch',
},
{
field: 'config.update.cron',
label: '推送时间',
bottomHelpMessage: '设置自动检查更新推送的时间cron表达式',
component: 'EasyCron',
componentProps: {
placeholder: '请输入或选择cron表达式',
},
},
{
field: 'config.mysCode',
label: '过🐎',
bottomHelpMessage:
'设置米游社接口返回的错误码,遇到这些错误码会触发过🐎',
component: 'Select',
componentProps: {
mode: 'multiple',
options: [
{ label: '1034', value: 1034 },
{ label: '10035', value: 10035 },
{ label: '10102', value: 10102 },
{ label: '10041', value: 10041 },
{ label: '5003', value: 5003 },
],
},
},
{
component: 'SOFT_GROUP_BEGIN',
label: '抽卡分析设置',
},
{
field: 'gacha.interval',
label: '冷却时间',
bottomHelpMessage:
'设置刷新抽卡记录的冷却时间单位为秒取值范围为01000',
component: 'InputNumber',
required: true,
componentProps: {
min: 0,
max: 1000,
placeholder: '请输入数字',
addonAfter: "s",
},
},
{
field: 'gacha.allow_group',
label: '群聊链接刷新',
bottomHelpMessage: '是否允许群聊通过发送链接刷新抽卡记录',
component: 'Switch',
},
{
field: 'gacha.white_list',
label: '白名单群聊',
bottomHelpMessage: '在关闭群聊链接刷新时,允许通过链接刷新的群聊',
component: 'Select',
componentProps: {
mode: 'multiple',
options: allGroup,
},
},
{
field: 'gacha.black_list',
label: '黑名单群聊',
bottomHelpMessage: '在开启群聊链接刷新时,禁止通过链接刷新的群聊',
component: 'Select',
componentProps: {
mode: 'multiple',
options: allGroup,
},
},
// {
// component: 'SOFT_GROUP_BEGIN',
// label: '深渊设置',
// },
// {
// field: 'abyss.interval',
// label: '冷却时间',
// bottomHelpMessage:
// '设置刷新深渊信息的冷却时间单位为秒取值范围为01000',
// component: 'InputNumber',
// required: true,
// componentProps: {
// min: 0,
// max: 1000,
// placeholder: '请输入数字',
// addonAfter: "s",
// },
// },
{
component: 'SOFT_GROUP_BEGIN',
label: '面板设置',
},
{
field: 'panel.interval',
label: '冷却时间',
bottomHelpMessage:
'设置刷新面板的冷却时间单位为秒取值范围为01000',
component: 'InputNumber',
required: true,
componentProps: {
min: 0,
max: 1000,
placeholder: '请输入数字',
addonAfter: "s",
},
},
{
field: 'panel.roleInterval',
label: '冷却时间',
bottomHelpMessage:
'设置刷新角色的冷却时间单位为毫秒取值范围为10010000',
component: 'InputNumber',
required: true,
componentProps: {
min: 100,
max: 10000,
placeholder: '请输入数字',
addonAfter: "ms",
},
},
{
component: 'SOFT_GROUP_BEGIN',
label: '提醒功能设置',
},
{
field: 'remind.enable',
label: '开启提醒功能',
bottomHelpMessage: '是否启用式舆防卫战/危局强袭战的定时提醒功能',
component: 'Switch',
},
{
field: 'remind.globalRemindTime',
label: '全局提醒时间',
bottomHelpMessage: '设置全局默认提醒时间,格式如"每日20时"或"每周一20时40分"',
component: 'Input',
componentProps: {
placeholder: '每日20时',
},
},
{
field: 'remind.abyssCheckLevel',
label: '默认式舆S评级阈值',
bottomHelpMessage: '新用户订阅时S评级数量低于此值会收到提醒',
component: 'InputNumber',
componentProps: {
min: 1,
max: 7,
placeholder: '请输入数字(1-7)',
},
},
{
field: 'remind.deadlyStars',
label: '默认危局星星阈值',
bottomHelpMessage: '新用户订阅时,星星总数低于此值会收到提醒',
component: 'InputNumber',
componentProps: {
min: 0,
placeholder: '请输入数字',
},
},
{
component: 'SOFT_GROUP_BEGIN',
label: '攻略设置',
},
{
field: 'guide.default_guide',
label: '默认攻略',
bottomHelpMessage: '设置默认攻略,攻略合集即为多个攻略的合集',
component: 'Select',
required: true,
componentProps: {
options: [
{
value: 0,
label: '攻略合集',
},
{
value: 1,
label: '新艾利都快讯',
},
{
value: 2,
label: '清茶沐沐Kiyotya',
},
{
value: 3,
label: '小橙子阿',
},
{
value: 4,
label: '猫冬',
},
{
value: 5,
label: '月光中心',
},
{
value: 6,
label: '苦雪的清心花凉糕Suki',
},
{
value: 7,
label: 'HoYo青枫',
},
],
},
},
{
field: 'guide.max_forward_guides',
label: '合集最大数量',
bottomHelpMessage: '当查询攻略合集时,返回攻略的最大数量',
component: 'InputNumber',
required: true,
componentProps: {
min: 1,
max: 7,
placeholder: '请输入数字17',
},
},
{
label: '其他设置',
component: 'SOFT_GROUP_BEGIN'
},
{
component: 'Divider',
label:
'默认设备信息设置(通过"%设置默认设备"进行设置,如果不知道这是什么请勿修改)',
},
{
field: 'device.productName',
label: 'productName(deviceProduct)',
bottomHelpMessage: '设置默认设备productName字段',
component: 'Input',
componentProps: {
placeholder: '请输入productName',
},
},
{
field: 'device.productType',
label: 'productType(deviceName)',
bottomHelpMessage: '设置默认设备productType字段',
component: 'Input',
componentProps: {
placeholder: '请输入productType',
},
},
{
field: 'device.modelName',
label: 'modelName(deviceModel)',
bottomHelpMessage: '设置默认设备modelName字段',
component: 'Input',
componentProps: {
placeholder: '请输入modelName',
},
},
{
field: 'device.osVersion',
label: 'osVersion(androidVersion)',
bottomHelpMessage: '设置默认设备osVersion字段',
component: 'Input',
componentProps: {
placeholder: '请输入osVersion',
},
},
{
field: 'device.deviceInfo',
label: 'deviceInfo(deviceFingerprint)',
bottomHelpMessage: '设置默认设备deviceInfo字段',
component: 'Input',
componentProps: {
placeholder: '请输入deviceInfo',
},
},
{
field: 'device.board',
label: 'board(deviceBoard)',
bottomHelpMessage: '设置默认设备board字段',
component: 'Input',
componentProps: {
placeholder: '请输入board',
},
},
{
component: 'Divider',
label: '优先级设置(-10001000',
},
{
field: 'priority.card',
label: '卡片查询',
bottomHelpMessage: '设置玩家信息卡片查询指令优先级',
component: 'InputNumber',
required: true,
componentProps: {
min: -1000,
max: 1000,
placeholder: '请输入数字',
},
},
{
field: 'priority.abyss',
label: '深渊查询',
bottomHelpMessage: '设置深渊查询指令优先级',
component: 'InputNumber',
required: true,
componentProps: {
min: -1000,
max: 1000,
placeholder: '请输入数字',
},
},
{
field: 'priority.gachalog',
label: '抽卡记录查询',
bottomHelpMessage: '设置抽卡记录查询指令优先级',
component: 'InputNumber',
required: true,
componentProps: {
min: -1000,
max: 1000,
placeholder: '请输入数字',
},
},
{
field: 'priority.guide',
label: '攻略查询',
bottomHelpMessage: '设置攻略查询指令优先级',
component: 'InputNumber',
required: true,
componentProps: {
min: -1000,
max: 1000,
placeholder: '请输入数字',
},
},
{
field: 'priority.help',
label: '帮助查询',
bottomHelpMessage: '设置帮助指令优先级',
component: 'InputNumber',
required: true,
componentProps: {
min: -1000,
max: 1000,
placeholder: '请输入数字',
},
},
{
field: 'priority.manage',
label: '管理',
bottomHelpMessage: '设置管理指令优先级',
component: 'InputNumber',
required: true,
componentProps: {
min: -1000,
max: 1000,
placeholder: '请输入数字',
},
},
{
field: 'priority.note',
label: '体力查询',
bottomHelpMessage: '设置体力查询指令优先级',
component: 'InputNumber',
required: true,
componentProps: {
min: -1000,
max: 1000,
placeholder: '请输入数字',
},
},
{
field: 'priority.panel',
label: '面板查询',
bottomHelpMessage: '设置面板查询指令优先级',
component: 'InputNumber',
required: true,
componentProps: {
min: -1000,
max: 1000,
placeholder: '请输入数字',
},
},
{
field: 'priority.remind',
label: '挑战提醒',
bottomHelpMessage: '设置挑战提醒指令优先级',
component: 'InputNumber',
required: true,
componentProps: {
min: -1000,
max: 1000,
placeholder: '请输入数字',
},
},
{
field: 'priority.update',
label: '更新插件',
bottomHelpMessage: '设置更新插件指令优先级',
component: 'InputNumber',
required: true,
componentProps: {
min: -1000,
max: 1000,
placeholder: '请输入数字',
},
},
],
getConfigData() {
return settings.merge();
},
// 设置配置的方法(前端点确定后调用的方法)
setConfigData(data, { Result }) {
let config = {};
for (let [keyPath, value] of Object.entries(data)) {
lodash.set(config, keyPath, value);
}
config = lodash.merge({}, settings.merge, config);
settings.analysis(config);
return Result.ok({}, '保存成功~');
},
},
};
}