MiraiForum

    • 注册
    • 登录
    • 搜索
    • 热门
    • 最新
    • 未解决
    • 标签
    • 群组
    • 友情链接
    1. 主页
    2. StageGuard
    3. 主题
    • 资料
    • 关注 2
    • 粉丝 5
    • 主题 5
    • 帖子 121
    • 最佳 14
    • 有争议的 0
    • 群组 2

    StageGuard 创建的主题

    • StageGuard

      为测试 mirai 添加外置 EncryptService
      技术交流板块 • • StageGuard

      1
      0
      赞同
      1
      帖子
      573
      浏览

      StageGuard

      我们为 mirai 添加了新的协议内容,需要登录测试但被风控登不上时,就需要配置外置 EncryptService 辅助登录。

      关闭 android target

      PC 测试运行需要关闭 android target,在 mirai 项目根目录下创建 local.properties,添加以下属性:

      projects.mirai-core.targets=jvm;!android

      添加完后重新加载 gradle 项目即可。

      配置程序运行入口

      在 mirai-core/src/jvmTest/kotlin sourceSet 中创建一个新的文件 RunMirai.kt 作为程序入口。

      fun main() { prepareEnvironmentForDebugRun() val bot = DebugRunHelper.newBot(123456789L, BotAuthorization { session, info -> session.authByPassword("password") }) { protocol = BotConfiguration.MiraiProtocol.ANDROID_PHONE fileBasedDeviceInfo() } runBlocking { bot.login() bot.join() } }

      prepareEnvironmentForDebugRun() 和 DebugRunHelper.newBot() 是位于 jvmTest 的工具函数。

      为测试模块添加依赖

      以 fix-protocol-version 为例,从 release 下载 jar,放在 mirai-core/src/jvmTest/lib 中。

      编辑 mirai-core/build.gradle.kts,找到以下配置代码:

      findByName("jvmTest")?.apply { dependencies { // ... } }

      在 dependencies 里添加:

      implementation(files("src/jvmTest/lib/fix-protocol-version-1.9.6.mirai2.jar")) implementation("org.asynchttpclient:async-http-client:2.12.3") // fix-protocol-version 的依赖项 配置 EncryptService

      编辑 RunMirai.kt,在 DebugRunHelper.newBot() 之前手动注册 EncryptService。

      import net.mamoe.mirai.utils.Services import xyz.cssxsh.mirai.tool.KFCFactory fun main() { prepareEnvironmentForDebugRun() Services.register( EncryptService.Factory::class.qualifiedName!!, KFCFactory::class.qualifiedName!!, ) { KFCFactory(File("...")) } val bot = DebugRunHelper.newBot(...) } 添加运行配置

      IDEA 点击 Edit Configurations,添加运行配置

      9a152ff0-ee2a-4627-bd37-01731aea546c-image.png

      bc3fd953-563c-481f-910d-7c9d8fed03dd-image.png

      注意 classpath of module 选择 mirai.mirai-core.jvmTest ,main class 为 RunMirai.kt 的类名。

      保存之后直接运行即可。

      b4b408d0-581e-4759-bbdb-8d1c8eeb9a9a-image.png

      注意:若准备提交 Pull Request,请注意不要提交 mirai-core/build.gradle.kts 的修改,我们只是临时修改构建配置,目的是登录测试。

    • StageGuard

      console 插件接单
      摸鱼区 • • StageGuard

      8
      0
      赞同
      8
      帖子
      662
      浏览

      StageGuard

      如题,接收小型中型插件定制需求,大型项目需要经本人评估后决定是否接单。
      我写过的插件有 SuperCourseTimetableBot 和 OsuMapSuggester,都是长期维护的大型插件项目。
      你可以自己决定完成后是否提供长期技术支持,需要额外支付长期维护费用。
      如果有需求可以在论坛中私聊我或者发邮箱 beamiscool@qq.com。

    • StageGuard

      今天你写代码了吗?
      摸鱼区 • • StageGuard

      37
      0
      赞同
      37
      帖子
      3326
      浏览

      StageGuard

      再不努力就要被卷死了。

    • StageGuard

      OsuMapSuggester - 一个可以为 osu!standard 玩家推图的 mirai-console 插件
      插件发布 • • StageGuard

      19
      1
      赞同
      19
      帖子
      3275
      浏览

      StageGuard

      OsuMapSuggester

      一个可以为 osu!standard 玩家推图的 mirai-console 插件。

      CI CodeFactor

      查看开发进度:#1

      特性

      插件可以从 osu!standard 玩家的 Best Performance 分析 aim, speed and accuracy 能力和 PerformancePlus 以及其他因素来推断玩家的类型(跳跳人或串串人之类的)。

      然后插件可以针对这个玩家的弱点或强项给这个玩家推荐特定类型的谱面。(未实现)

      用户也可以通过以下方式来自定义谱面类型规则。

      除此之外,还有其他以下特性:

      查询玩家的 Best Performance 并以图片显示。 和其他玩家对比 Best Performance。 以 Full Combo 重新计算 Best Performance 和排名。 显示玩家技能雷达图。 查询玩家最近一次成绩,包括类似 osu!lazer 的 Accuracy Heatmap 和 PP 曲线图等属性,并以图片显示。 ... 开始 使用

      如果你已经加了拥有此功能的 BOT 所在的群,想查看使用方法,请前往 Wiki 界面。

      部署 准备工作

      MySQL 或 MariaDB 数据库, 并需要为插件创建一个数据库。

      有公网 IP 的服务器。

      mirai-console 运行环境

      osu! OAuth 应用

      osu! v1 api 密钥

      运行 克隆并用 IntelliJ IDEA 打开工程. 同步 gradle 项目后运行 mirai/buildPlugin gradle 任务来构建项目。

      如果你不想用 IntelliJ IDEA,也可以克隆后在命令行运行 chmod +x gradlew && ./gradlew buildPlugin 指令来构建. 构建完成后的 jar 输出在 build/mirai.

      把构建好的 jar 包放入 <mirai-console目录>/plugins/ 中,启动 mirai console,不出意外的话你会看到以下输出: 2021-07-26 20:22:37 E/OsuMapSuggester: Failed to connect database: com.zaxxer.hikari.pool.HikariPool$PoolInitializationException: Failed to initialize pool: Access denied for user 'user'@'host' (using password: YES/NO). 2021-07-26 20:22:37 E/OsuMapSuggester: Retry to connect database in 10 seconds. 停止 mirai console, 编辑配置文件 config/OsuMapSuggester/OsuMapSuggester.Config.yml qq: 1234567890 # 为这个 BOT 启用插件 database: address: localhost # 数据库地址 port: 3306 # 端口 user: root # 账号 password: testpwd # 密码 table: osu!beatmap suggester # 数据库名称(在准备工作第一步创建的数据库) maximumPoolSize: 10 osuAuth: clientId: 0 # OAuth clientId secret: '' # OAuth client secret # 回调地址,必须和 OAuth 设置的相同(不包含 /authCallback) # 注意这个地址是为了生成绑定账号的 OAuth 链接。 authCallbackBaseUrl: 'http://localhost:8081' v1ApiKey: '' # vi api 密钥 frontend: host: localhost # 前端主机地址,注意这个地址是实际主机地址 port: 8081 # 前端端口 保存,重新运行 mirai console,登录设定的账号后,看到以下输出则意味着工作正常: 2021-07-26 20:34:27 I/OsuMapSuggester: Subscribed group and friend messages. 问题反馈

      这个项目仍在活跃开发中,并不稳定并且有许多 BUG。

      如果你在使用过程中遇到了致命 BUG,请新建一个 Issue 并加上 bug 标签。

      同时欢迎 pr;或者如果有好的想法,也可以新建一个 Issue 加上feature 标签。

      效果

      最近成绩
      Recent Play

      与其他玩家最好成绩对比
      Best Performance VS

      自定义谱面规则
      Ruleset List

      触发推图
      Suggest

      在插件开启的前端创建 / 编辑自己的谱面集规则
      Edit Ruleset

      许可证 OsuMapSuggester Copyright (C) 2021 StageGuard This program is free software: you can redistribute it and/or modify it under the terms of the GNU Affero General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Affero General Public License for more details. You should have received a copy of the GNU Affero General Public License along with this program. If not, see <https://www.gnu.org/licenses/>. mirai Copyright (C) 2019-2021 Mamoe Technologies and contributors. This program is free software: you can redistribute it and/or modify it under the terms of the GNU Affero General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Affero General Public License for more details. You should have received a copy of the GNU Affero General Public License along with this program. If not, see <http://www.gnu.org/licenses/>.
    • StageGuard

      SuperCourseTimetableBot - 基于 mirai-console 的 超级课表上课提醒QQ机器人插件
      插件发布 • kotlin jvm plugin 课程提醒 • • StageGuard

      12
      1
      赞同
      12
      帖子
      4232
      浏览

      StageGuard

      SuperCourseTimetableBot

      一个基于 mirai 和 mirai-console 的 超级课程表 提醒 mirai-console 插件。

      开源地址:https://github.com/KonnyakuCamp/SuperCourseTimetableBot

      Gradle CI Status CodeFactor

      特性 Interactive Conversation Mode - 交互式聊天模式的用户接口

      抛弃了传统的命令式交互,采用了更友好的交互式聊天模式。

      允许用户更方便地修改时间表信息

      可能超级课表上的作息时间表与学校不吻合,用户可以发送 修改时间表 来修改。

      在 交互式聊天模式 的优势下,修改时间表的步骤变得非常容易。

      允许用户自定义提醒时间

      用户发送 修改提前提醒时间 即可通过步骤引导修改。

      适配几乎所有使用超级课程表的高校

      插件工作时,为每个正在使用的用户的高校分别计算当前周数和时间表,互不冲突。

      数据库存储数据

      使用 MySQL 或 MariaDB 存储用户的数据,当用户数量较多时依然保持良好的数据读取性能。

      使用 部署

      请前往 Github 主页查看详情。

      贡献

      欢迎任何使用者大佬们贡献这个项目,你可以通过反馈 BUG,提出 Pull Request 申请,在这个主题下回复,或修改文档错别字来贡献这个项目。

    • 1 / 1