Skip to main content

Contributing

Thank you for your interest in contributing to SigmaTools! This guide will help you get started.

Development Setup

Prerequisites

  • Java 17 or higher
  • Maven 3.6+
  • IDE (IntelliJ IDEA recommended)
  • Git

Getting Started

  1. Fork the Repository

  2. Clone Your Fork

    git clone https://github.com/yourusername/SigmaTools.git
    cd SigmaTools
  3. Set Up Remote

    git remote add upstream https://github.com/sigmatools/SigmaTools.git
  4. Build the Project

    mvn clean package
  5. Test Locally

    • Copy JAR to test server
    • Test your changes

Coding Standards

Java Style

  • Follow Java naming conventions
  • Use meaningful variable and method names
  • Add Javadoc comments for public methods
  • Keep methods focused and small
  • Use proper indentation (4 spaces)

Code Structure

  • Keep classes focused on single responsibility
  • Use managers for feature-specific logic
  • Follow existing code patterns
  • Maintain consistency with existing code

Example

/**
* Manages tool cooldown system
*/
public class CooldownManager {

/**
* Check if player can use tool
*
* @param player The player
* @param toolType The tool type
* @return true if player can use tool
*/
public boolean canUseTool(Player player, ToolType toolType) {
// Implementation
}
}

Making Changes

Branch Naming

Use descriptive branch names:

  • feature/tool-name - New features
  • fix/issue-description - Bug fixes
  • docs/documentation-update - Documentation
  • refactor/component-name - Code refactoring

Commit Messages

Write clear, descriptive commit messages:

Good:
- "Add support for custom tool materials"
- "Fix economy deduction not working with CoinsEngine"
- "Improve performance of block scanning"

Bad:
- "fix"
- "update"
- "changes"

Pull Request Process

  1. Create Feature Branch

    git checkout -b feature/your-feature
  2. Make Changes

    • Write code
    • Add tests if applicable
    • Update documentation
  3. Commit Changes

    git add .
    git commit -m "Descriptive commit message"
  4. Push to Your Fork

    git push origin feature/your-feature
  5. Create Pull Request

    • Go to GitHub
    • Click "New Pull Request"
    • Select your branch
    • Fill out PR template
    • Submit for review

Pull Request Guidelines

Before Submitting

  • Code follows style guidelines
  • Changes are tested
  • Documentation is updated
  • No breaking changes (or documented)
  • Commits are clean and descriptive

PR Description

Include:

  • What - What changes were made
  • Why - Why these changes are needed
  • How - How the changes work
  • Testing - How to test the changes

Example PR Description

## What
Adds support for custom tool materials in configuration.

## Why
Allows server admins to customize tool appearance without code changes.

## How
- Reads `item-material` from config
- Validates material exists
- Uses material when creating tools

## Testing
1. Set `tools.pickaxe.item-material: GOLDEN_PICKAXE` in config
2. Give tool: `/sigmatools give pickaxe PlayerName`
3. Verify tool is golden pickaxe

Areas for Contribution

Code Contributions

  • Bug Fixes - Fix reported issues
  • New Features - Add requested features
  • Performance - Optimize existing code
  • Refactoring - Improve code quality

Documentation

  • Documentation Updates - Improve existing docs
  • Examples - Add code examples
  • Tutorials - Write guides
  • Translations - Translate messages

Testing

  • Test Cases - Add unit tests
  • Integration Tests - Test with other plugins
  • Bug Reports - Report issues with details

Code Review Process

  1. Automated Checks

    • Code compiles
    • No obvious errors
    • Follows style guidelines
  2. Maintainer Review

    • Code quality
    • Functionality
    • Documentation
    • Testing
  3. Feedback

    • Address review comments
    • Make requested changes
    • Resolve discussions
  4. Approval

    • Maintainer approves
    • Changes merged

Getting Help

Questions?

  • Discord: Join Discord
  • GitHub Issues: Create an issue
  • Documentation: Check the docs

Stuck?

  • Ask for help in Discord
  • Create a draft PR for feedback
  • Check existing issues/PRs

License

By contributing, you agree that your contributions will be licensed under the same license as the project.

Thank You!

Thank you for contributing to SigmaTools! Every contribution, no matter how small, is appreciated.