diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md new file mode 100644 index 0000000..79870fe --- /dev/null +++ b/CONTRIBUTING.md @@ -0,0 +1,123 @@ +# Contributing to CyberLevels + +Thank you for your interest in contributing to **CyberLevels**! We welcome community contributions, whether you are fixing a bug, adding a new feature, improving documentation, or optimizing code. + +By contributing to this repository, you help make CyberLevels better for thousands of Minecraft server owners. + +--- + +## 📜 Licensing & CLA + +By submitting a Pull Request (PR) or code contribution to this repository: +1. You agree that your contributions will be licensed under the project's [BitAspire Community & Public License (BCPL) v1.0](LICENSE.md). +2. You confirm that all submitted code is your own work or properly attributed under compatible open-source/source-available licenses. +3. You grant **BitAspire** / **ZeroToil LLC** the perpetual right to include, modify, and distribute your contribution as part of the CyberLevels plugin. + +--- + +## 🛠️ Getting Started + +### Prerequisites + +To build and test CyberLevels locally, you will need: +- **JDK 8 or higher** (JDK 17 or JDK 21 recommended for building modern target bytecode). +- **Gradle** (The project includes the Gradle wrapper `./gradlew`). +- A local **Spigot**, **Paper**, or **Folia** test server. + +### Repository Setup + +1. **Fork** the repository on GitHub. +2. **Clone** your fork locally: + +```bash + + git clone [https://github.com/YOUR_USERNAME/CyberLevels.git](https://github.com/YOUR_USERNAME/CyberLevels.git) + cd CyberLevels + + +``` + +3. **Build** the plugin using Gradle: + +```bash + + ./gradlew build + + +``` + +The output compiled `.jar` file will be located in `build/libs/`. + +--- + +## 🔄 How to Contribute + +### 1. Reporting Bugs & Support + +* **Discord:** For quick support, general questions, or minor bug reports, please join our [BitAspire Discord](https://discord.gg/DC4Gqj3y5V). +* **GitHub Issues:** If you encounter a reproducible bug, check existing issues before creating a new one. Include: +* Plugin version (`/clv about`). +* Server software & Minecraft version (e.g., Paper 1.20.4). +* Error logs / stack traces (use [Pastebin](https://pastebin.com/) or similar). +* Steps to reproduce the issue. + +### 2. Suggesting Features + +* Discuss proposed features on Discord or via GitHub Issues before starting significant work. This ensures your idea fits the plugin's roadmap and avoids duplicated effort. + +### 3. Submitting Pull Requests (PRs) + +Follow these steps when preparing a Pull Request: + +1. **Create a new branch** from `main` (or the active development branch): + +```bash + + git checkout -b feature/my-cool-feature + # or + git checkout -b fix/issue-description + + +``` + +2. **Follow Coding Standards:** +* Follow standard Java naming conventions and style guidelines. +* Keep code clean, readable, and well-commented where necessary. +* Maintain compatibility across supported Minecraft versions and platforms (Spigot, Paper, Folia). +* Ensure soft-dependency hooks (e.g., PlaceholderAPI, Vault) fail gracefully if the target plugin is absent. + + +3. **Test Your Changes:** +* Test your build thoroughly on a test server before opening a PR. +* Ensure existing features, commands, and events are not broken. + + +4. **Commit & Push:** +* Write clear, descriptive commit messages. +* Push your branch to your fork: + +```bash + + git push origin feature/my-cool-feature + + +``` + +5. **Open the Pull Request:** +* Select `main` as the base repository target. +* Provide a clear title and description of what your PR changes or fixes. +* Link any relevant issues solved by the PR (e.g., `Fixes #12`). + +--- + +## 💬 Code Style Guidelines + +* **Formatting:** Standard 4-space indentation for Java files. +* **Async Execution:** Mind Folia and Paper async requirements. Avoid blocking the main server thread with I/O or database queries. +* **Backward Compatibility:** Keep legacy API methods intact (use `@Deprecated` annotation if replacing older methods/events like `XPChangeEvent`). + +--- + +## 💙 Recognition + +All accepted contributors will be credited in release notes and contributor lists where applicable. Thank you for helping build CyberLevels! diff --git a/LICENSE b/LICENSE new file mode 100644 index 0000000..36e542d --- /dev/null +++ b/LICENSE @@ -0,0 +1,41 @@ +BitAspire Community & Public License (BCPL) v1.0 +Software: CyberLevels +Copyright (c) BitAspire.com / ZeroToil LLC (Authors: Kihsomray, CroaBeast) + +1. Grant of Rights + + Subject to the terms and conditions of this license, users are hereby granted a free, non-exclusive right to: + + 1. Use the compiled Software on any number of personal or managed Minecraft servers (including commercial server networks). + 2. Inspect, study, and modify the source code of the Software for personal use, server needs, or for contributing (via pull requests) to the official project repository. + 3. Distribute non-commercial forks or modifications exclusively under the condition of full compliance with all restrictions listed in Section 2. + +2. Restrictions and Conditions of Use + + The grant of rights under Section 1 is strictly subject to the following limitations: + + 2.1 No Resale + + The Software, its source code, compiled binary files (.jar), and any derivatives or modifications may not be sold, rented, leased, or monetized on any platform (e.g., SpigotMC, BuiltByBit/MC-Market, Tebex, custom web stores, etc.). + + 2.2 No Brand Reuse + + You may not re-upload, redistribute, or publish the original or modified Software under the names "CyberLevels", "BitAspire", or "ZeroToil". + * If you create a modified derivative (fork), you must clearly rename it to prevent confusion with the official CyberLevels project. + + 2.3 Required Attribution + + All copies of the Software or substantial portions thereof, as well as works derived from it, must retain the following in source code headers, the LICENSE file, and attached documentation: + * The original Copyright Notice, + * A link to the official repository (https://github.com/BitAspire/CyberLevels), + * The names of the original authors (Kihsomray, CroaBeast, BitAspire, ZeroToil LLC). + + 2.4 No Patenting or Exclusive Claims + + Users and contributors may not apply for patents, industrial designs, or assert any other exclusive intellectual property claims over the Software, its parts, algorithms, or underlying logic. + +3. Limitation of Liability and Disclaimer of Warranty + + THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE, AND NONINFRINGEMENT. + IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES, OR OTHER LIABILITY (INCLUDING LOSS OF DATA, SERVER DAMAGE, OR FINANCIAL LOSSES), WHETHER IN AN ACTION OF CONTRACT, TORT, OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + * For inquiries regarding commercial licensing or exceptions to this license, please contact the developers on the BitAspire Discord (https://discord.gg/DC4Gqj3y5V). diff --git a/README.md b/README.md index 4f23ce2..9528882 100644 --- a/README.md +++ b/README.md @@ -1,9 +1,21 @@ -# CyberLevels +# CyberLevels - Server Leveling System + +[![CI](https://github.com/BitAspire/CyberLevels/actions/workflows/build.yml/badge.svg)](https://github.com/BitAspire/CyberLevels/actions/workflows/build.yml) +[![Latest Release](https://img.shields.io/github/v/release/BitAspire/CyberLevels?sort=semver)](https://github.com/BitAspire/CyberLevels/releases) +[![License](https://img.shields.io/github/license/BitAspire/CyberLevels)](LICENSE) +[![Java 8+](https://img.shields.io/badge/Java-8%2B-orange)](https://www.oracle.com/java/technologies/javase/8all-relnotes.html) +[![Gradle](https://img.shields.io/badge/Gradle-9.7.1-02303A)](https://gradle.org/) A leveling system plugin for **Spigot** and **Paper** with **Folia support**. Store player levels and experience, reward activity across your server, sync progress through SQL storage, and show progression through chat, action bar, PlaceholderAPI, leaderboards, and more. --- +## 🔗 Downloads +Download our plugin only from these sources: +- [SpigotMC](https://www.spigotmc.org/resources/cyberlevels.98826/) +- [Releases](https://github.com/BitAspire/CyberLevels/releases/) +--- + ## 🧩 Supported versions - **Minecraft:** 1.8+ (check the resource page for the latest tested builds). @@ -228,9 +240,15 @@ public final class MyPlugin extends JavaPlugin { - **Bugs / questions:** primarily use our [Discord server](https://discord.gg/DC4Gqj3y5V). We do not check GitHub issues that often, and Spigot reviews should not be used as support tickets. - **Donations:** [PayPal: zerotoildev](https://paypal.me/zerotoildev) -### 📜 Resource terms (summary) +### 📜 License + +CyberLevels is a licensed plugin with our custom BCPL v1.0 license. Before using or contributing to our plugin, we recommend to read this document. + +--- + +### 👋 Contributing -Per the Spigot listing: do not redistribute or sell the resource as your own, do not decompile to claim ownership, and follow any updated terms on the resource page. +Contributions are welcome! Please select tab "Contributing" and read more information about how to contribute. We appreciate any help or bugfix from our community. --- @@ -240,6 +258,6 @@ Per the Spigot listing: do not redistribute or sell the resource as your own, do ## 🌟 Contributors -**Klema_LP** +**Klema_LP**, **Faln**, **Zsomi**, **hermes18974-jpg** © BitAspire.com | Product of ZeroToil LLC