|
| 1 | +# ModNVote |
| 2 | + |
| 3 | +**Modern, transparent community voting for PaperMC 1.21.x** |
| 4 | + |
| 5 | +A privacy-first, lightweight, and production-ready **yes/no voting plugin** for Minecraft servers — designed for modern communities that value fairness, trust, and data integrity. |
| 6 | +ModNVote is built by [**MODN METL LTD**](https://modnmetl.com) and open-sourced to promote transparent community decision-making. |
| 7 | + |
| 8 | + |
| 9 | + |
| 10 | + |
| 11 | + |
| 12 | + |
| 13 | + |
| 14 | +--- |
| 15 | + |
| 16 | +## ✨ Features |
| 17 | + |
| 18 | +- `/modnvote yes` or `/modnvote no` — anonymous voting (1 per UUID). |
| 19 | +- `/modnvote status` — displays live YES/NO tallies. |
| 20 | +- `/modnvote verify` — cryptographically validates vote integrity. |
| 21 | +- `/modnvote audit` — shows how many votes came from bypass-permitted users. |
| 22 | +- `/modnvote fullaudit` — groups voters by IP to check for irregularities (no vote disclosure). |
| 23 | +- `/modnvote reset` — admin command to clear all votes. |
| 24 | +- `/modnvote reload` — reloads configuration without restarting the server. |
| 25 | +- **IP-based duplicate prevention** with configurable bypass permission. |
| 26 | +- **SQLite persistence** for reliability and restart safety. |
| 27 | +- **Integrity hashing** ensures tallies cannot be silently altered. |
| 28 | +- **PlaceholderAPI support** for scoreboard and UI integration. |
| 29 | + |
| 30 | +> ModNVote is a successor to the PineVote plugin, rebuilt for broader use under the MODN METL brand. |
| 31 | +
|
| 32 | +--- |
| 33 | + |
| 34 | +## ⚙️ Configuration |
| 35 | + |
| 36 | +Default excerpt from `config.yml`: |
| 37 | + |
| 38 | +```yaml |
| 39 | +permissions: |
| 40 | + bypass_node: modnvote.bypass # or use your existing alt-protection node (e.g. noaltsexploit.bypass) |
| 41 | + |
| 42 | +logging: |
| 43 | + audit_votes_to_console: true # Logs when a vote is recorded (never reveals who voted for what) |
| 44 | + audit_bypass_to_console: true # Logs bypass usage (without disclosing vote choice) |
| 45 | +``` |
| 46 | +
|
| 47 | +> 🧠 ModNVote never logs **what** a player voted — only that a valid vote was recorded. |
| 48 | +> This keeps your voting process auditable yet fully private. |
| 49 | +
|
| 50 | +--- |
| 51 | +
|
| 52 | +## 🧭 Roadmap |
| 53 | +
|
| 54 | +- [ ] MySQL database support for large networks |
| 55 | +- [ ] Configurable voting periods with automatic start/end |
| 56 | +- [ ] Player login reminders about active votes |
| 57 | +- [ ] Admin confirmation before vote resets |
| 58 | +- [ ] `/modnvote stop` command to end voting early (without wiping results) |
| 59 | +- [ ] Multi-question polls and rich voting UIs |
| 60 | + |
| 61 | +Want to contribute ideas or code? Open an issue or pull request! |
| 62 | + |
| 63 | +--- |
| 64 | + |
| 65 | +## 🤝 Contributing |
| 66 | + |
| 67 | +Contributions are welcome and encouraged. |
| 68 | +Please fork the repository and submit a pull request via GitHub — following standard Java + Paper plugin best practices. |
| 69 | + |
| 70 | +Before submitting, ensure your code: |
| 71 | +- Passes `gradlew build` without warnings or errors |
| 72 | +- Uses modern Java 21 syntax and adheres to the existing style |
| 73 | +- Includes concise comments for non-trivial logic |
| 74 | + |
| 75 | +--- |
| 76 | + |
| 77 | +## 🔐 Security |
| 78 | + |
| 79 | +If you discover a vulnerability, please **do not** post it publicly. |
| 80 | +Instead, email the maintainers at **security@modnmetl.com**. |
| 81 | +Responsible disclosure ensures fixes can be deployed before details are released. |
| 82 | + |
| 83 | +--- |
| 84 | + |
| 85 | +## 📜 License |
| 86 | + |
| 87 | +This project is licensed under the **MIT License** — see the [LICENSE](./LICENSE) file for details. |
| 88 | +You are free to use, modify, and distribute this software with attribution. |
| 89 | + |
| 90 | +``` |
| 91 | +Copyright (c) 2025 MODN METL LTD |
| 92 | +Developed by Jamie Edward Thompson (@jamjet3) |
| 93 | +``` |
| 94 | +
|
| 95 | +--- |
| 96 | +
|
| 97 | +## 🏗️ Credits |
| 98 | +
|
| 99 | +- **Development Lead:** [Jamie Edward Thompson](https://github.com/jamjet3) |
| 100 | +- **Maintainer:** [MODN METL LTD](https://github.com/MODNMETL) |
| 101 | +- **Community Testing:** Pinecraft Equestrian SMP |
| 102 | +- **Build System:** Gradle + ShadowJar |
| 103 | +- **Supported Platforms:** PaperMC 1.21.x |
| 104 | +
|
| 105 | +--- |
| 106 | +
|
| 107 | +> “Trust, but verify.” — The guiding principle behind **ModNVote** |
| 108 | +> Built to help communities make fair, transparent decisions — the modern way. |
0 commit comments