All Projects → StageGuard → OsuMapSuggester

StageGuard / OsuMapSuggester

Licence: AGPL-3.0 license
A Mirai console plugin that can provide osu!std players some appropriate beatmap (WIP)

Programming Languages

kotlin
9241 projects
javascript
184084 projects - #8 most used programming language
HTML
75241 projects

Projects that are alternatives of or similar to OsuMapSuggester

mappool-generator
A Mappool Generator for osu! Tournament Livestreams
Stars: ✭ 20 (-31.03%)
Mutual labels:  osu, osugame
OppaiSharp
A C# port of oppai-ng
Stars: ✭ 16 (-44.83%)
Mutual labels:  osu, osugame
OsuParsers
Library for parsing/writing files associated with osu!
Stars: ✭ 60 (+106.9%)
Mutual labels:  osu, osugame
dontsteal
Python 3 script to compare two osu! replays for similarities. (Kind of anti-cheat for replay stealing)
Stars: ✭ 13 (-55.17%)
Mutual labels:  osu, osugame
ultimate osu analyzer
Python rewrite of my old osu analyzer that aims to be a lot more useful
Stars: ✭ 26 (-10.34%)
Mutual labels:  osu, osugame
tau
A customized osu! mode surrounding a paddle and some notes.
Stars: ✭ 150 (+417.24%)
Mutual labels:  osu, osugame
Osu-Ingame-Downloader
Just a simple Osu! ingame downloader
Stars: ✭ 31 (+6.9%)
Mutual labels:  osu, osugame
fnf-osu-mania-skin
A Friday Night Funkin' skin for all osu! modes.
Stars: ✭ 45 (+55.17%)
Mutual labels:  osu, osugame
IngameOverlay
Overlay in-game
Stars: ✭ 21 (-27.59%)
Mutual labels:  osu, osugame
Gosumemory
Cross-Platform memory reader for osu!
Stars: ✭ 112 (+286.21%)
Mutual labels:  osu
Raindrop
yet another beatgame.
Stars: ✭ 113 (+289.66%)
Mutual labels:  osu
Osu Resources
assets used by osu!
Stars: ✭ 102 (+251.72%)
Mutual labels:  osu
Osu Player
A multifunctional media player for osu and osuer. Modern interface with WPF.
Stars: ✭ 123 (+324.14%)
Mutual labels:  osu
KeysPerSecond
A keys-per-second meter & counter. Written for osu! but should work for other rhythm games too.
Stars: ✭ 238 (+720.69%)
Mutual labels:  osu
Mapping Tools
Collection of tools for manipulating osu! beatmaps
Stars: ✭ 85 (+193.1%)
Mutual labels:  osugame
Realtimeppdisplayer
A Sync Plugin, calculate and display your Osu game data in real time.
Stars: ✭ 88 (+203.45%)
Mutual labels:  osu
Flowabot
Modular Discord bot with fun features including twitch commands and advanced osu! commands. 🌷
Stars: ✭ 86 (+196.55%)
Mutual labels:  osu
circleguard
An osu! replay analysis program
Stars: ✭ 108 (+272.41%)
Mutual labels:  osu
rurusetto
A wiki that contain all osu! rulesets
Stars: ✭ 31 (+6.9%)
Mutual labels:  osu
Danser Go
Dancing visualizer of osu! maps and custom osu! client written in Go.
Stars: ✭ 224 (+672.41%)
Mutual labels:  osu

OsuMapSuggester

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

English: README-en.md

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 曲线图等属性,并以图片显示。
  • ...

插件如何实现处理 OAuth 链接和绑定 osu 账号

当用户点击 OAuth 链接并且授权之后,将会自动重定向 OAuth 配置中的回调网址。

OsuMapSuggester 将会开启一个 HTTP 前端来处理这些数据。

开始

使用

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

部署

准备工作

运行

  1. 克隆(包括子模块)并用 IntelliJ IDEA 打开工程. 同步 gradle 项目后运行 :mirai:buildPlugin gradle 任务来构建项目。

在构建之前,首先需要安装 rust 工具链 cargo,gradle 同步过程中会检测 cargo 安装状态,请保证 cargo 已添加到在 PATH 环境变量中。

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

  1. 把构建好的 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 'root'@'localhost' (using password: YES).
2021-07-26 20:22:37 E/OsuMapSuggester: Retry to connect database in 10 seconds.
  1. 停止 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 # 前端端口
  1. 保存,重新运行 mirai console,登录设定的账号后,看到以下输出则意味着工作正常:
2021-07-26 20:34:27 I/OsuMapSuggester: Subscribed group and friend messages.

问题反馈

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

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

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

使用到的库

许可证

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/>.
Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].