Muska-Ami / CatSero

一个基于MiraiMC的QQ群功能&MC功能插件
https://blog.ovome.icu
GNU Affero General Public License v3.0
29 stars 3 forks source link

关于白名单开关&自定义命令&捕获文本翻译的功能建议 #83

Closed Natsusomekeishi closed 1 year ago

Natsusomekeishi commented 1 year ago

功能描述

白名单开关,经测试,使用本插件或许要关闭服务器自带的白名单服务? 希望可以在新手教程/使用设置中加上本设置的前提

自定义命令建议,希望可以增加自定义命令 可以直接通过配置文件,添加QQ群内可输入的命令(文本也行),可选择操作台命令/对应绑定的玩家命令/OP命令等权限,也可以设置相关玩家,是否开启全部玩家可使用,或者定义个别QQ号使用,然后进行命令同步。 例如,我可以设置启用全部QQ可以通过在QQ群发送“玩家”一词,直接获取/clist内容,可以通过发送“TPS”一词直接获取/ctps around的内容,甚至可以通过设置其他内容进行游戏内对应的操作。

捕获文本翻译功能,可以自定义对外输出的文本翻译,例如玩家死亡/成就等内容,我们可以通过简单的设置,直接把那些英语翻译成中文输出,当然作者也可以罗列配置单直接使用,或自带游戏中开启。

使用方法

额外说明

No response

Natsusomekeishi commented 1 year ago

另外附加一个提问,我看文档站里也没写。 !catsero whitelist add | 添加白名单 !catsero whitelist change name | 更新白名单 !catsero whitelist change qq | 更新白名单 !catsero whitelist remove | 移除白名单 这四个命令是所有玩家都可以使用,还是服主可以使用的?

Muska-Ami commented 1 year ago

另外附加一个提问,我看文档站里也没写。 !catsero whitelist add | 添加白名单 !catsero whitelist change name | 更新白名单 !catsero whitelist change qq | 更新白名单 !catsero whitelist remove | 移除白名单 这四个命令是所有玩家都可以使用,还是服主可以使用的?

这4个只有在mirai-configs下设置的用户才能使用

Muska-Ami commented 1 year ago

Issue想法不错,又要大改力(悲)

Muska-Ami commented 1 year ago

小声提一句,文档仓库在 https://github.com/XiaMoHuaHuo-CN/XMDocs 可以开pr更新~

Natsusomekeishi commented 1 year ago

另外昨晚发现了一个大BUG 玩家申请白名单 如果发申请白名单 XXX(有个空格) 数据库会把空格作为白名单录入 介于机制问题,无法直接更改ID,只能将QQ替换出去,再重新绑定

增加解绑功能,玩家在QQ群中发送“解绑白名单”,可将QQ和白名单同时移除数据库,可以在配置文件开关解绑功能,默认玩家不可用,服主可用。但是考虑到万一玩家退群想以此清除数据,可以增加将解绑的内容记录在日志中,以便服主落实情况,哪个QQ绑定了哪个ID,解绑就在表格(或日志排版中)显示已于XX时间解绑,新建显示已于XXX新建。

同时再提一个功能性更新: 不知道QQ机器人是否可以修改群名片/头衔/群名片/群资料(群名片可以改,因为我之前在其他机器人上面看到过) 可以新增一个变量,用户可以把这个变量添加到上述位置,启动服务器之后,机器人匹配该变量,实时(可以调整延迟)更改为对应数据,比如在线玩家数量之类的,或者TPS之类的。例如,我关闭服务端,原本群名“XX服务器”我更改为“XX服务器 - !!C”,这个!!C就是变量,我启动游戏之后,新的配置文件中记录这个变量位置,我可以更改机器人修改的内容,例如改为“在线玩家数量”,重载之后,此位置改为“XX服务器 - 在线3人”,其中在线%人可以修改,同时关闭服务端之后,该位置会恢复成!!C,如果服务端重启或者关闭,也可以另行设置修改为“服务器已关闭”、“服务器重启中”,需要玩家重新添加变量才能使用该功能。同理,机器人群名片可以改为实时TPS显示之类的内容!这将是一个开创性的更新,希望CatSero作为目前兼容功能最多的插件,可以再添加新内容!阿里嘎多~

Natsusomekeishi commented 1 year ago

喔,上述日志可以这样排版: 时间 操作者权限组(管理员或玩家) 操作者(QQ或ID) 操作 旧(无则填无) 新 2023.1.27 8:23:22 管理员 Keishi/123456789 更改KeishiID Keishi NKeishi 2023.1.27 8:24:44 玩家 ABC/123452313 解绑ABC白名单 ABC 无 2023.1.27 8:25:31 管理员 Keishi/123456789 添加ABC白名单 无 ABC

Natsusomekeishi commented 1 year ago

可以直接输出txt文本,我建议也可以输出csv文件,同时,如果该内容可以通过特定端口在外网访问就更好了,同时所有功能/内容可以实时于面板修改qwq(我是不是有点异想天开了)

Natsusomekeishi commented 1 year ago

甚至…既然都自建白名单库了…如果可能做面板…是不是可以再加上外置/内置验证登录一类功能……qwq

Natsusomekeishi commented 1 year ago

另外,我服其实是在做互通服,部分玩家没遵循Java版ID,能不能新加一个判定,例如名字“ABC ABC”中间有空格,如果玩家这样绑定,就提示,无法绑定,请绑定符合Java版的白名单名称,这样的功能

Natsusomekeishi commented 1 year ago

发现了个BUG,玩家添加白名单“申请白名单XXX”之后ID如果后面多加了个空格,也会作为ID记录到数据库 emm也不算BUG,希望可以优化一下,避免有大傻子犯错误

Muska-Ami commented 1 year ago

发现了个BUG,玩家添加白名单“申请白名单XXX”之后ID如果后面多加了个空格,也会作为ID记录到数据库 emm也不算BUG,希望可以优化一下,避免有大傻子犯错误

你把申请格式改为"申请白名单 变量"即可

Muska-Ami commented 1 year ago

面板已经涉及到JavaWeb了 我其实根本没看JavaWeb,虽然我以前是搞Web技术的,但是这个对我来说太难了😭

Muska-Ami commented 1 year ago

另外,我服其实是在做互通服,部分玩家没遵循Java版ID,能不能新加一个判定,例如名字“ABC ABC”中间有空格,如果玩家这样绑定,就提示,无法绑定,请绑定符合Java版的白名单名称,这样的功能

我也是互通服, 不过我可以想办法通过floodgate读取基岩版玩家列表,智能锁定

Muska-Ami commented 1 year ago

如果可以,请将你描述的每个功能按照以下标题新开Issue 功能 #83

Natsusomekeishi commented 1 year ago

好的qwq不是很会用github这玩意,我研究一下

另外申请白名单那个,我主动改成“申请白名单XX”了,忘记说了…既然能改我就寻思改一下qwq

Zhou-Shilin commented 1 year ago

94 这里给出了自定义指令的具体实现方案,可供参考 XD

Muska-Ami commented 1 year ago

@Natsusomekeishi 有个重要的说明: 你所说的翻译功能,可能无法正常实现,因为进度/成就在Minecraft中以原版数据包形式运行,能操作的API少之又少,而版本不同进度/成就的名称可能也不同,因此不太可能通过检测文本翻译,至于调用外部翻译(如谷歌,百度)......翻译出来看都看不懂是什么捏 :(

Natsusomekeishi commented 1 year ago

如果采取捕获控制台特定信息,比如我可以关闭玩家死亡提示,但通过自定义消息中“捕获控制台信息”,我自定义特殊信息“%死了,因为% was slain by Blaze”到QQ群输出为“%失败,是因为被烈焰人烧死”是否可信,这取决于服主是否有意愿自行添加。

Muska-Ami commented 1 year ago

不太可能

Muska-Ami commented 1 year ago

Bukkit没有可以直接操作的控制台日志读取接口,这么做也是不安全的

Muska-Ami commented 1 year ago

提及的内容过多,先Close,看分开的Issue