{"id":32796328,"url":"https://github.com/teamvastsea/signinplus","last_synced_at":"2026-03-04T14:01:08.570Z","repository":{"id":320384931,"uuid":"1080199142","full_name":"TeamVastsea/SignInPlus","owner":"TeamVastsea","description":" A modern, full-featured check-in system for Spigot servers: daily sign-ins, streak and total tracking, make-up cards, top rankings, points economy, PlaceholderAPI placeholders, optional Web API, and rich configurable rewards.","archived":false,"fork":false,"pushed_at":"2026-03-02T02:51:37.000Z","size":280,"stargazers_count":5,"open_issues_count":2,"forks_count":0,"subscribers_count":0,"default_branch":"main","last_synced_at":"2026-03-02T06:40:10.880Z","etag":null,"topics":["bukkit","check-in","mc","minecraft","paper","plugin","signin","signinplus","spigot","vastsea"],"latest_commit_sha":null,"homepage":"","language":"Kotlin","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/TeamVastsea.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"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,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2025-10-21T02:36:54.000Z","updated_at":"2026-03-02T02:47:51.000Z","dependencies_parsed_at":null,"dependency_job_id":"11fa373c-65f4-4c38-847a-410c054bced7","html_url":"https://github.com/TeamVastsea/SignInPlus","commit_stats":null,"previous_names":["teamvastsea/signinplus"],"tags_count":6,"template":false,"template_full_name":null,"purl":"pkg:github/TeamVastsea/SignInPlus","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/TeamVastsea%2FSignInPlus","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/TeamVastsea%2FSignInPlus/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/TeamVastsea%2FSignInPlus/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/TeamVastsea%2FSignInPlus/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/TeamVastsea","download_url":"https://codeload.github.com/TeamVastsea/SignInPlus/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/TeamVastsea%2FSignInPlus/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":30082995,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-03-04T13:22:36.021Z","status":"ssl_error","status_checked_at":"2026-03-04T13:20:45.750Z","response_time":59,"last_error":"SSL_read: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"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":["bukkit","check-in","mc","minecraft","paper","plugin","signin","signinplus","spigot","vastsea"],"created_at":"2025-11-05T22:00:56.865Z","updated_at":"2026-03-04T14:01:08.530Z","avatar_url":"https://github.com/TeamVastsea.png","language":"Kotlin","funding_links":[],"categories":[],"sub_categories":[],"readme":"# SignInPlus\n\n**插件介绍**\n- 面向 Paper/Spigot 的现代化每日签到插件：支持默认奖励、累计签、连签、特殊日期与排行榜奖励；内置补签卡、积分、PAPI、可选 Web API。\n- 颜色码友好；消息前缀可配；多语言内置。\n- 版本：1.5.0\n- 作者：[Snowball_233](https://github.com/SnowballXueQiu)，[zrll_](https://github.com/zrll12)\n\n**配置与文档**\n- 配置文件示例与完整注释：`src/main/resources/config.yml`\n- Web API OpenAPI 文档：`openapi.json`\n\n**模块一览**\n- 基础签到/首签/连签/累计签\n  - 基础签到：玩家执行 `/signin`（别名：`/checkin`、`/qd`）触发 `default.actions`。\n  - 首签：可用 `top` 模块配置当日首位签到（`rank: 1`）的额外奖励。\n  - 连签与累计签：分别由 `streak` 与 `cumulative` 块定义阈值与奖励，支持多档配置与去重发放。\n  - 特殊日期：`special_dates` 支持按具体日期、每年、每月或每周匹配触发，可设重复次数限制。\n- PAPI（PlaceholderAPI）\n  - 标识符：`signinplus`\n  - 占位符（支持后缀玩家名，例如 `total_days_Steve`）：\n    - `amount_today` 今日签到人数\n    - `status` 今日是否签到（带颜色）\n    - `total_days` 累计天数\n    - `streak_days` 连签天数\n    - `last_check_in_time` 上次签到时间\n    - `rank_today` 今日排名\n    - `points` 积分（两位小数显示）\n    - `corr` 补签卡数量\n- 签到积分\n  - 存储为“分”（整数）以避免浮点误差，显示统一格式化为两位小数。\n  - 奖励动作支持：`[POINTS] 64`、`[POINTS] 1..5 .2f`、`[POINTS] 1..5 z` 等（范围与格式说明见配置）。\n  - 指令支持查看、设置、增加、扣减与清空积分（详见下文“指令详解”）。\n- Web API（只读查询）\n  - 开启方式：`web_api.enable_web_api: true` 后，插件启动 HTTP 服务，默认 `http://\u003caddr\u003e:\u003cport\u003e\u003cendpoint\u003e`。\n  - 端点（GET）：`/ifsignin?player=...`、`/total?player=...`、`/streak?player=...`、`/last_check_in_time?player=...`、`/ranktoday?player=...`、`/points?player=...`、`/info?player=...`、`/amounttoday`。\n  - 外部签到：待开发（WIP）。完整定义参见 `openapi.json`。\n- 概率系统（详见配置文件）\n  - `default.actions` 中支持：`[PROB=X]` 概率触发；`[RANDOM_WEIGHTED]` + `[WEIGHT=X]` 权重触发；`[RANDOM_PICK=N]` 互斥抽取。\n  - 支持嵌套与与其他动作组合（消息、标题、物品、音效、状态、延迟等）。\n- 多语言\n  - `locale: zh_CN / en_US`，语言文件位于 `src/main/resources/lang`。\n  - 占位符 `{name}` 等按需替换；消息与标题文本支持 `\u0026` 自动转换为 `§`。\n- 排行榜\n  - `/signinplus top [total|streak]` 展示前十；支持 `top` 模块为当日排名发放额外奖励（如 rank=1/2/3）。\n- Debug 调试器\n  - 需在配置 `debug: true` 并具备 `signinplus.admin` 权限。\n  - 用法：`/signinplus debug trigger \u003cdefault|cumulative|streak|top|special_dates\u003e [previous_value]`（例如 `streak 7`、`top 1`、`special_dates Thursday`）。\n\n**指令详解**\n- `/signin` | `/checkin` | `/qd`：玩家签到；权限 `signinplus.user`。\n- `/signinplus gui`：打开签到 GUI；权限 `signinplus.user`。\n- `/signinplus status [player]`：查询状态；权限 `signinplus.user`。\n- `/signinplus reload`：重载配置与语言并重启 Web API；权限 `signinplus.admin`。\n- `/signinplus points set \u003cplayer\u003e \u003camount\u003e`：设置积分；权限 `signinplus.admin`。\n- `/signinplus points add|decrease \u003cplayer\u003e \u003camount\u003e`：增/扣积分；权限 `signinplus.admin`。\n- `/signinplus points clear \u003cplayer\u003e`：清空积分；权限 `signinplus.admin`。\n- `/signinplus correction_slip give|decrease|clear \u003cplayer\u003e [amount]`：管理补签卡；权限 `signinplus.admin`。\n- `/signinplus make_up [cards] [player] [force]`：补签自己或他人；权限 `signinplus.make_up`（给他人补签需 `signinplus.admin`）。\n- `/signinplus top total|streak`：查看排行榜；权限 `signinplus.user`。\n- `/signinplus debug trigger ...`：触发奖励用于验证；权限 `signinplus.admin` 且 `debug: true`。\n\n**数据库支持**\n- 支持数据库：`sqlite` / `mysql` / `postgresql`\n- 配置键：`database.type`、`database.url`、`database.username`、`database.password`\n- 驱动版本：\n  - SQLite JDBC：3.46.0.0\n  - MySQL Connector/J：9.2.0\n  - PostgreSQL JDBC：42.7.5\n  - 连接池 HikariCP：6.2.1\n  - ORM 框架 Exposed：0.58.0\n- 初始化：\n  - SQLite：自动创建 `plugins/SignInPlus/signinplus.db`\n  - MySQL/PostgreSQL：启动时尝试创建数据库（需账户具备建库权限）\n\n**构建与测试**\n- 推荐构建方式：`./gradlew build` 或 `./gradlew shadowJar`（产物位于 `build/libs`）\n- 本地测试：`./gradlew runServer` 启动 Paper 1.21 测试服（可用于快速验证指令与奖励）\n\n**技术栈**\n- Kotlin：2.2.20\n- 目标 JVM：21\n- Gradle 插件：Shadow 9.2.2, xyz.jpenilla.run-paper 2.3.1\n\n**兼容性**\n- 服务器：Paper/Spigot `1.20+`（测试版本：1.21）\n- Java：服务器运行环境 `Java 21+`\n- 依赖：PlaceholderAPI 2.11.5（推荐安装）；Kotlin runtime（自动包含）\n\n**其他功能**\n- 自动签到：`auto_check_in_on_login.enable` 可在玩家登录时自动签到。\n- 消息前缀：`message_prefix`；统一转换 `\u0026` → `§`。\n- NBT 物品：`[ITEM] \u003ctype\u003e \u003camount\u003e \u003cnbt\u003e` 支持复杂 NBT 内容。\n- 时区：`timezone` 可指定服务器统计时区。\n- 统计：集成 bStats 3.0.2（可在配置中开关）\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fteamvastsea%2Fsigninplus","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fteamvastsea%2Fsigninplus","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fteamvastsea%2Fsigninplus/lists"}