# Millida Rating 插件 🎉
一个用于奖励在**Millida Rating**监控系统中投票的插件。🏆

## 支持的版本:
* `Bukkit/Spigot/Paper 1.8 — 1.21` 🎮
## 功能:
* 奖励分配 🎁
* 类似于战令的累积奖励系统 🏅
* 支持 MySQL 和 SQLite 数据库 💾
* 与 DecentHolograms 集成 🌟
* 与 PlaceholderAPI 集成 🔗
# 安装 ⚙️
将插件放置在 `plugins` 文件夹后,需要启动和停止服务器,因为插件在初步配置以确保安全之前无法正常工作。 对于首次启动,只需配置 `server_id`。 🔧
**[!!!]** 如果您不希望对插件安装前的投票奖励,请在首次启动插件前将 `rewards.enabled: false` 设置为真,然后在服务器启动后执行命令 `/rating admin clearrewards`。 🚫
为了在服务器运行时方便地进行配置,可以使用命令 `/rating admin reload`,但强烈建议仅在测试期间使用,而不是在已经有玩家的服务器上使用。 您可以仅添加 `holograms` 和 `gui` 到此命令以仅重新加载全息模块。 🔄
也有用于测试插件设置的命令:`/rating admin clear ` 和 `/rating admin vote `,分别清除玩家的进度并给予他们一个虚假投票。 🧪
**[!!!]** 如果出现问题,插件会立即关闭以确保安全,以防止玩家失去奖励或获得不应得的大量奖励。 ⚠️
# 权限 🔐
* `millida.rating.command` — 访问 `/rating` 命令本身。 默认情况下,授予所有玩家。 ✅
* `millida.rating.command.rewards` — 访问 `/rewards` 和 `/rating rewards` 命令。 默认情况下,授予所有玩家。 该命令可以通过修改 `config.yml` 和 `plugin.yml` 来更改。 ✅
* `millida.rating.command.admin` — 访问 `/rating admin` 命令。 默认情况下,授予所有操作员。 👑
# 集成 🤝
## DecentHolograms
如果服务器上安装了 `DecentHolograms` 插件,则在服务器文件夹中会出现额外的配置文件 `holograms.yml`。 默认情况下,全息图已禁用,但可以通过此配置文件启用和配置。 💡
## PlaceholderAPI
如果服务器上安装了 `PlaceholderAPI` 插件,则会自动注册以下占位符:📝
* `millidarating_top__<1-10>`
用法示例:
* `millidarating_top_day_1` — 每日前 1 名 *(最多 10 名)* 🥇
* `millidarating_top_week_2` — 每周前 2 名 *(最多 10 名)* 🥈
* `millidarating_top_month_3` — 每月前 3 名 *(最多 10 名)* 🥉
* `millidarating_top__<1-10>_votes`
用法示例:
* `millidarating_top_day_4_votes` — 每日前 4 名的投票数 *(最多 10 名)* ✨
* `millidarating_top_week_5_votes` — 每周前 5 名的投票数 *(最多 10 名)* ✨
* `millidarating_top_month_6_votes` — 每月前 6 名的投票数 *(最多 10 名)* ✨
# API 🌐
API 已经存在,但目前只能通过本地 Maven 仓库连接。为此,克隆存储库并使用命令 `gradle :api:publishToMavenLocal`,然后可以导入:
```xml
ru.leonidm.millida
millida-rating-api
1.0.0
```
## 使用 ⚙️
API 的主要入口点是 `MillidaRatingApi` 类,从中您可以获取 API 的实例并访问所有必要的服务。
还有 Bukkit 事件:
* `RatingVoteEvent` — 当 `RatingRequester` 找到一个新的投票时触发 🗳️
* `OfflinePlayerAwardedEvent` — 当玩家收到带有 `online: false` 属性的奖励时触发 🎁
* `PlayerAwardedEvent` — 当玩家收到带有 `online: true` 属性的奖励时触发 🎉
**[!!!]** 如果您想获取有关投票的信息,请使用存储哈希值的 `RatingRequester` 服务,而不是 `RatingRequestService`。