Contributing to HyperPerms
HyperPerms is open source software licensed under the GPL-3.0 license. We welcome contributions from the community!
Repository
GitHub: https://github.com/HyperSystemsDev/HyperPerms
License: GPL-3.0 (GNU General Public License v3.0)
Getting Started
Prerequisites
Before you start contributing, make sure you have:
| Requirement | Version |
|---|---|
| Java | 25+ (Temurin recommended) |
| Gradle | 9.3+ |
| Git | Latest |
Clone the Repository
git clone https://github.com/HyperSystemsDev/HyperPerms.git
cd HyperPerms
Build the Project
# Build the shadow JAR (fat JAR with relocated dependencies)
./gradlew shadowJar
# Output location
ls build/libs/HyperPerms-*.jar
Run Tests
./gradlew test
How to Contribute
1. Fork the Repository
Click the "Fork" button on GitHub to create your own copy of the repository.
2. Create a Branch
Create a branch for your changes:
git checkout -b feature/my-new-feature
# or
git checkout -b fix/bug-description
3. Make Your Changes
- Follow the existing code style
- Write clear, concise commit messages
- Add tests for new functionality
- Update documentation if needed
4. Test Your Changes
# Build and test
./gradlew clean build test
# Test on a local Hytale server
cp build/libs/HyperPerms-*.jar ~/path/to/hytale/mods/
5. Submit a Pull Request
Push your branch and open a pull request on GitHub:
git push origin feature/my-new-feature
Then open a PR at https://github.com/HyperSystemsDev/HyperPerms/pulls
Code Style
Java Code
- Use 4 spaces for indentation (no tabs)
- Follow standard Java naming conventions
- Add JavaDoc comments for public APIs
- Keep methods focused and concise
Commit Messages
Write clear, descriptive commit messages:
# Good
Add LuckPerms migration command with dry-run support
# Bad
fixed stuff
Types of Contributions
Bug Fixes
Found a bug? We appreciate bug fixes! Please:
- Check if the bug is already reported in Issues
- If not, open a new issue describing the bug
- Submit a PR with the fix
New Features
Want to add a feature? Please:
- Open an issue first to discuss the feature
- Get feedback before implementing
- Submit a PR with your implementation
Documentation
Documentation improvements are always welcome:
- Fix typos and unclear explanations
- Add examples and use cases
- Improve API documentation
Translations
Help translate HyperPerms:
- Translation files are in
src/main/resources/lang/ - Submit PRs with new or improved translations
Development Tips
Shadow Plugin
HyperPerms uses the Shadow plugin (v9.3.1+) for creating fat JARs with relocated dependencies. This version is required for Java 25 support.
Testing Locally
To test your changes:
# Build
./gradlew shadowJar
# Copy to Hytale mods folder
cp build/libs/HyperPerms-*.jar ~/Documents/Hytale/mods/
# Start your test server
Debugging
Use your IDE's debugger with remote debugging:
- Start your test server with debug flags
- Attach your IDE debugger
- Set breakpoints in your code
Getting Help
- Discord: Join our server
- Issues: GitHub Issues
License
By contributing to HyperPerms, you agree that your contributions will be licensed under the GPL-3.0 license.
HyperPerms - Permission management for Hytale
Copyright (C) 2024 HyperSystems Development
This program is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation, either version 3 of the License, or
(at your option) any later version.
This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
See Also
- Developer API - Build integrations with HyperPerms
- Events - Listen to permission changes
- Placeholders - Available placeholders