A Paper plugin that brings GitHub PR reviews, Jira ticket management, Kanban boards, and AI assistance directly into Minecraft!
/git <owner/repo>- Change the GitHub repository (e.g.,/git vllm-project/vllm)/git <github-url>- Change repository using a full URL (e.g.,/git https://github.com/anthropics/anthropic-sdk-python)/git repo- Show the current GitHub repository/git pr-list- List all open pull requests/git pr-review <latest|number>- Get an AI-powered review of a pull request in a Minecraft book/git kanban-list- List all GitHub projects for the repository/git kanban-view <project-number>- View a GitHub project kanban board in a book
/jira-create <type> <summary> [| description]- Create a new Jira issue (Bug, Task, Story)/jira-view <issue-key>- View a Jira issue in a book/jira-list [mine|bugs|all]- List Jira issues (defaults to open issues)
/ai-chat <message>- Chat with an AI assistant/code-explain <file>- Get AI explanation of code from your repository
┌─────────────────────────────────┐
│ OpenShift Namespace │
│ │
│ ┌──────────────┐ │
│ │ Minecraft │ │
│ │ Paper Server │──────┐ │
│ │ + Plugin │ │ │
│ └──────────────┘ │ │
│ ▼ │
│ ┌──────────┐ │
│ │ vLLM │ │
│ │ Server │ │
│ │ (Service)│ │
│ └──────────┘ │
└─────────────────────────────────┘
mvn clean packageThis creates target/dev-commands-plugin-1.0.0.jar
Copy the JAR to your Paper server's plugins/ directory:
cp target/dev-commands-plugin-1.0.0.jar /path/to/server/plugins/Edit plugins/DevCommandsPlugin/config.yml:
github:
token: "${GITHUB_TOKEN}" # Or hardcode your token (not recommended)
repository: "cedricclyburn/minecraft-for-standup"
api-url: "https://api.github.com"Getting a GitHub Token:
- Go to GitHub Settings > Developer Settings > Personal Access Tokens
- Generate new token (classic)
- Select scopes:
repo(for private repos) or justpublic_repo - Set as environment variable:
export GITHUB_TOKEN=ghp_xxxxx
jira:
url: "${JIRA_URL}" # Your Jira instance (e.g., https://yourcompany.atlassian.net)
email: "${JIRA_EMAIL}" # Your Jira email
api-token: "${JIRA_API_TOKEN}" # Generate at https://id.atlassian.com/manage-profile/security/api-tokens
project-key: "PROJ" # Your default project keyGetting a Jira API Token:
- Go to https://id.atlassian.com/manage-profile/security/api-tokens
- Click "Create API token"
- Give it a label (e.g., "Minecraft Plugin")
- Copy the token and set as environment variable:
export JIRA_API_TOKEN=your_token_here
Uses the same GitHub token as PR reviews. Just set the default project number:
github:
project-number: 1 # Your default project board numberConfigure the AI endpoint (MaaS or self-hosted vLLM):
vllm:
url: "http://maas.apps.ocp.cloud.rhai-tmm.dev/kimi-k25/kimi-k2-5" # MaaS endpoint (no /v1 suffix)
model: "kimi-k2-5" # Model name
api-token: "${MAAS_TOKEN}" # Bearer token from environment variable
max-tokens: 2048
temperature: 0.7
timeout: 60 # Kimi k2.5 can handle longer requestsNote: The client automatically appends /v1/chat/completions to the URL.
In your Minecraft server startup script or OpenShift deployment:
export GITHUB_TOKEN=ghp_your_token_here
java -jar paper.jarOr in OpenShift, create a secret:
oc create secret generic github-token --from-literal=GITHUB_TOKEN=ghp_xxxxxThen mount it in your Minecraft server deployment.
/git vllm-project/vllm
Changes the repository to vllm-project/vllm
/git https://github.com/anthropics/anthropic-sdk-python
Changes repository using a full GitHub URL
/git repo
Displays the current GitHub repository being queried
/git pr-list
Gives you a book listing all open pull requests. Book title includes the repo name.
/git pr-review latest
Fetches the most recent open PR, sends it to vLLM for analysis, and gives you a book with the review.
/git pr-review 42
Reviews PR #42. Book title includes repo name and PR number.
/git kanban-list
Lists all GitHub project boards for the current repository
/git kanban-view 1
Views project board #1 in a book. Book title includes repo name.
/jira-create Bug Player cannot login after update
Creates a new Bug issue with the summary "Player cannot login after update"
/jira-create Story Add multiplayer support | Implement server-side logic for multiple players
Creates a Story with a description (use | separator)
/jira-view PROJ-123
Fetches issue PROJ-123 and displays it in a book
/jira-list mine # Show only your assigned issues
/jira-list bugs # Show all open bugs
/jira-list all # Show all issues in the project
/jira-list # Show all open issues (default)
/ai-chat How do I implement a binary search tree in Java?
Short responses appear in chat, long responses come as a book.
/code-explain src/main/java/Main.java
Fetches the file from your repo and gets an AI explanation.
devcommands.*- All commands (default: op)devcommands.review- Review PRsdevcommands.list- List PRsdevcommands.ai- AI chatdevcommands.explain- Code explanation
debug- Enable debug loggingmax-book-pages- Maximum pages per book (default: 50, max: 100)cache-duration- Cache PR data in secondsmax-concurrent-requests- Max simultaneous API requestscommand-cooldown- Seconds between commands per player
Edit the prompts section in config.yml to customize AI behavior:
prompts:
pr-review: |
Custom prompt for PR reviews...
Use {pr_data} placeholder
code-explain: |
Custom prompt for code explanation...
Use {code} placeholder- Check your GitHub token is valid and has correct permissions
- Verify the repository name is correct (owner/repo format)
- Ensure the PR number exists
- Check vLLM service is running:
oc get pods - Verify the service URL is correct
- Check vLLM logs:
oc logs deployment/vllm
- Check inventory is not full
- Look in server logs for errors
- Verify permissions
- Cooldown between commands (configurable)
- Prevents API spam
- Paper/Spigot 1.20.4+ (or compatible version)
- Java 17+
- Maven (for building)
- GitHub personal access token
- vLLM instance (or compatible OpenAI API endpoint)
Build:
mvn clean packageTest locally:
# Copy to local test server
cp target/*.jar ~/minecraft-server/plugins/MIT
PRs welcome! Test your changes thoroughly before submitting.