Millida Rating
Millida Rating — rating game servers Minecraft, this plugin allows you to quickly implement rewards for players without programming knowledge, and API connection skills for a couple of clicks.
Millida Rating
Millida Rating Plugin 🎉
A plugin for awarding voters on the <b>Millida Rating</b> monitoring system. 🏆

Supported Versions:
* `Bukkit/Spigot/Paper 1.8 — 1.21` 🎮
Features:
* Award distribution 🎁 * Cumulative reward system similar to battle passes 🏅 * Support for MySQL and SQLite databases 💾 * Integration with DecentHolograms 🌟 * Integration with PlaceholderAPI 🔗
Installation ⚙️
After placing the plugin in the `plugins` folder, you need to start and stop the server, as the plugin does not work without preliminary configuration for security purposes. For the initial launch, just configure `server_id`. 🔧
[!!!] If you do not want to issue rewards for votes made before the plugin installation, set `rewards.enabled: false` before the first launch of the plugin and simply execute the command `/rating admin clearrewards` after starting the server. 🚫
For convenient configuration while the server is running, there is the command `/rating admin reload`, but it is highly recommended to use it exclusively during testing, not during an already running server with players. You can add only `holograms` and `gui` to this command to reload only the hologram module. 🔄
There are also commands for testing plugin settings: `/rating admin clear <nickname>` and `/rating admin vote <nickname>`, which clear a player's progress and give them one fake vote, respectively. 🧪
[!!!] If something goes wrong, the plugin immediately shuts down for security reasons to prevent players from losing their rewards or receiving an undeservedly large amount. ⚠️
Permissions 🔐
* `millida.rating.command` — access to the `/rating` command itself. By default, granted to all players. ✅ * `millida.rating.command.rewards` — access to the `/rewards` and `/rating rewards` commands. By default, granted to all players. The command itself can be changed by modifying `config.yml` and `plugin.yml`. ✅ * `millida.rating.command.admin` — access to the `/rating admin` command. By default, granted to all operators. 👑
Integrations 🤝
DecentHolograms
If the `DecentHolograms` plugin is installed on the server, an additional configuration file `holograms.yml` appears in the server folder. By default, holograms are disabled, but they can be enabled and configured through this configuration file. 💡
PlaceholderAPI
If the `PlaceholderAPI` plugin is installed on the server, the following placeholders are automatically registered: 📝
* `millidarating_top_<day/week/month>_<1-10>`
Usage example: * `millidarating_top_day_1` — top-1 for the day *(maximum 10)* 🥇 * `millidarating_top_week_2` — top-2 for the week *(maximum 10)* 🥈 * `millidarating_top_month_3` — top-3 for the month *(maximum 10)* 🥉
* `millidarating_top_<day/week/month>_<1-10>_votes`
Usage example: * `millidarating_top_day_4_votes` — number of votes for top-4 of the day *(maximum 10)* ✨ * `millidarating_top_week_5_votes` — number of votes for top-5 of the week *(maximum 10)* ✨ * `millidarating_top_month_6_votes` — number of votes for top-6 of the month *(maximum 10)* ✨
API 🌐
The API already exists, but for now, it can only be connected through a local Maven repository. To do this, clone the repository and use the command `gradle :api:publishToMavenLocal`, after which it can be imported:
```xml <dependencies> <dependency> <groupId>ru.leonidm.millida</groupId> <artifactId>millida-rating-api</artifactId> <version>1.0.0</version> </dependency> </dependencies> ```
Usage ⚙️
The main entry point to the API is the `MillidaRatingApi` class, from which you can obtain an instance of the API and access all necessary services.
There are also Bukkit events: * `RatingVoteEvent` — triggered when `RatingRequester` finds a new vote 🗳️ * `OfflinePlayerAwardedEvent` — triggered when a player receives a reward with the property `online: false` 🎁 * `PlayerAwardedEvent` — triggered when a player receives a reward with the property `online: true` 🎉
[!!!] If you want to get information about votes, use the `RatingRequester` service, which stores hashed values, instead of `RatingRequestService`.