{"id":19503772,"url":"https://github.com/jankin-wu/bullet-keyboard-mapper","last_synced_at":"2026-05-09T14:15:54.255Z","repository":{"id":224297905,"uuid":"762939227","full_name":"Jankin-Wu/bullet-keyboard-mapper","owner":"Jankin-Wu","description":"弹幕-键盘映射器，基于 Spring Native 开发，使用 WebSocket 获取哔哩哔哩直播弹幕映射键位并通过 JNA 模拟为键盘输入指令，支持编译为原生可执行文件，可用于开发弹幕互动游戏","archived":false,"fork":false,"pushed_at":"2024-04-10T04:33:56.000Z","size":756,"stargazers_count":1,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"master","last_synced_at":"2025-01-08T10:40:05.811Z","etag":null,"topics":["bilibili-live","danmuji","danmuku","spring","spring-boot"],"latest_commit_sha":null,"homepage":"","language":"Java","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"apache-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/Jankin-Wu.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2024-02-25T05:39:36.000Z","updated_at":"2024-09-16T04:28:41.000Z","dependencies_parsed_at":"2024-04-10T05:32:49.627Z","dependency_job_id":"76f43136-3b06-4b0b-951f-82c71133d57f","html_url":"https://github.com/Jankin-Wu/bullet-keyboard-mapper","commit_stats":null,"previous_names":["jankin-wu/bilibili-aoe2-interactor","jankin-wu/bullet-keyboard-mapper"],"tags_count":4,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Jankin-Wu%2Fbullet-keyboard-mapper","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Jankin-Wu%2Fbullet-keyboard-mapper/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Jankin-Wu%2Fbullet-keyboard-mapper/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Jankin-Wu%2Fbullet-keyboard-mapper/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/Jankin-Wu","download_url":"https://codeload.github.com/Jankin-Wu/bullet-keyboard-mapper/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":240754295,"owners_count":19852186,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["bilibili-live","danmuji","danmuku","spring","spring-boot"],"created_at":"2024-11-10T22:22:56.551Z","updated_at":"2026-05-09T14:15:49.222Z","avatar_url":"https://github.com/Jankin-Wu.png","language":"Java","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Bullet Keyboard Mapper\n\n## 简介\n\n+ 弹幕-键盘映射器，基于 Spring Native 开发，使用 WebSocket 获取哔哩哔哩直播弹幕映射键位并通过 JNA 模拟为键盘输入指令，支持编译为原生可执行文件，通过简单的配置即可用于开发弹幕互动游戏\n+ `native-release-v1.0.0` 分支为使用 maven + GraalVM native image 打包的版本，之后的版本使用 Spring Boot Native 进行重构，简化打包流程\n\n![image-20240305010917887](http://oss.jankinwu.com/img/image-20240305010917887.png)\n\u003cp style=\"text-align: center;\"\u003e运行效果\u003c/p\u003e\n\n## 特性\n\n### 本地可执行文件\n基于 Spring Boot Native 技术开发，支持编译为原生可执行文件，不依赖 Java 运行环境即可运行。\n\n### 支持多对一配置按键映射规则\n弹幕和执行计划多对一映射\n\n### 支持按键执行计划\n把每一次操作指令（键盘 or 鼠标）设置为一个`stage`（阶段）, 每个`stage`里可定制组合键、按压时长、按压次数、前/后间隔时间和重复执行时相邻两次的间隔时间，连续的相同按键指令可通过设置`repeatTimes`（重复次数）属性放进一个`stage`里，若干个`stage`组合起来即为一个`Process`（执行计划）。\n\n### 支持定时任务队列\n可根据实际需求配值任务队列大小和执行间隔\n\n### 支持插件扩展\n**目前支持的插件：**\n+ 执行信息弹幕：https://github.com/Jankin-Wu/bullet-comment-plugin\n  + 可以将执行的操作以弹幕形式悬浮显示在桌面上\n\n### 配置文件\n+ `application-release.yml`：账户信息和功能配置文件，其中除身份码以外的账户信息需要注册哔哩哔哩开放平台获取，身份码在直播姬中即可获取。\n+ `keyMapping.json`：弹幕内容和执行计划的映射关系，其中`msg`为弹幕内容，`processName`为对应执行计划名称。\n+ `process 目录下的文件`: 执行计划文件，可配置按键执行流程，默认已配置好所有单键的执行计划。\n## 使用说明\n**release-v1.0.0 版**\n\n解压`Bullet_Keyboard_Mapper.zip`后配置`config.yml`即可开始使用，修改`config.yml`或`keyMapping.json`文件需要重启应用后才能生效\n\n**release-v1.0.0 之后版本**\n\n解压`Bullet_Keyboard_Mapper.zip`后配置`application-release.yml`即可开始使用，修改`config`目录下的文件需要重启应用后才能生效\n\n## 打包方式\n\n### Jar 包\n配置`config`目录下的`application-release.yml`文件后使用 Maven 打包：\n\n```shell\nman clean package\n```\n打包成功后运行 jar 包：\n``` shell\n java -jar bullet-keyboard-mapper-1.0.jar\n```\n### Native 包\n**打包前准备**\n\n电脑里需要安装 `Microsoft Visual Studio 2022`以及 `GraalVM JDK17`并配置好环境变量，\n具体可以参照这篇博客：https://huaweicloud.csdn.net/638754f0dacf622b8df8b0cc.html\n\n运行以下命令安装 `native-image`\n```shell\ngu install native-image\n```\n\n**打包**\n\n管理员权限运行 `x64 Native Tools Command Prompt for VS 2022` cd 到项目目录后执行：\n\n```shell\nmvn native:compile -Pnative -Prelease\n```\n由于打 native 包的时候会启动项目获取元数据（代理、配置文件、反射信息等），打包前请先配置好 `application-release.yml`中的各项参数，否则打包将会失败\n\n## 计划功能\n- [x] 支持组合键\n- [x] 支持长按操作\n- [x] 支持按键执行计划\n- [x] 支持鼠标指令\n- [ ] 支持更多平台\n- [ ] 支持弹幕消息限流\n- [ ] 可视化交互界面（待定）\n- [x] 支持获取礼物信息\n  \n  More...\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fjankin-wu%2Fbullet-keyboard-mapper","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fjankin-wu%2Fbullet-keyboard-mapper","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fjankin-wu%2Fbullet-keyboard-mapper/lists"}