From d8b74f07bcf192a2d3ee5384f37fc6d7c9574a69 Mon Sep 17 00:00:00 2001 From: dmccoystephenson Date: Fri, 15 May 2026 15:44:38 +0000 Subject: [PATCH 1/2] Align repository with DPC conventions Co-Authored-By: Claude Sonnet 4.6 --- .github/copilot-instructions.md | 24 ++++++++++++++ .github/workflows/build.yml | 26 +++++++++++++++ .github/workflows/release.yml | 31 ++++++++++++++++++ CHANGELOG.md | 16 +++++++++ COMMANDS.md | 14 ++++++++ CONFIG.md | 3 ++ CONTRIBUTING.md | 58 +++++++++++++++++++++++++++++++++ USER_GUIDE.md | 36 ++++++++++++++++++++ 8 files changed, 208 insertions(+) create mode 100644 .github/copilot-instructions.md create mode 100644 .github/workflows/build.yml create mode 100644 .github/workflows/release.yml create mode 100644 CHANGELOG.md create mode 100644 COMMANDS.md create mode 100644 CONFIG.md create mode 100644 CONTRIBUTING.md create mode 100644 USER_GUIDE.md diff --git a/.github/copilot-instructions.md b/.github/copilot-instructions.md new file mode 100644 index 0000000..3f1d863 --- /dev/null +++ b/.github/copilot-instructions.md @@ -0,0 +1,24 @@ +# Copilot Instructions + +This repository follows the DPC (Dans Plugins Community) conventions defined at +https://github.com/Dans-Plugins/dpc-conventions. Read those conventions before +making any changes. + +## Technology Stack + +- Language: Java +- Build tool: Maven +- Target platform: Spigot / Paper (Minecraft plugin) +- API version: 1.13+ + +## Project Structure + +- `src/main/java/dansplugins/mailboxes/` – Plugin source code +- `src/main/java/dansplugins/mailboxes/commands/` – Command handlers +- `src/main/resources/` – `plugin.yml` + +## Contribution Workflow + +- Branch from `main` for all changes. +- Open a pull request against `main`. +- Reference the related GitHub issue in every pull request description. diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml new file mode 100644 index 0000000..123a136 --- /dev/null +++ b/.github/workflows/build.yml @@ -0,0 +1,26 @@ +name: Build + +on: + push: + branches: [ main ] + pull_request: + branches: [ main ] + +permissions: + contents: read + +jobs: + build: + runs-on: ubuntu-latest + + steps: + - uses: actions/checkout@v4 + + - name: Set up JDK 17 + uses: actions/setup-java@v4 + with: + java-version: '17' + distribution: 'temurin' + + - name: Build with Maven + run: mvn clean package diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml new file mode 100644 index 0000000..1fb66fa --- /dev/null +++ b/.github/workflows/release.yml @@ -0,0 +1,31 @@ +name: Release + +on: + release: + types: [ created ] + +permissions: + contents: write + +jobs: + build-and-attach: + runs-on: ubuntu-latest + + steps: + - uses: actions/checkout@v4 + + - name: Set up JDK 17 + uses: actions/setup-java@v4 + with: + java-version: '17' + distribution: 'temurin' + + - name: Build with Maven + run: mvn clean package + + - name: Upload JAR to release + uses: softprops/action-gh-release@v2 + with: + files: | + target/*.jar + !target/original-*.jar diff --git a/CHANGELOG.md b/CHANGELOG.md new file mode 100644 index 0000000..8423eb2 --- /dev/null +++ b/CHANGELOG.md @@ -0,0 +1,16 @@ +# Changelog + +All notable changes to this project will be documented in this file. + +The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/). + +## [Unreleased] + +## [1.3.0] + +### Added +- Player-to-player messaging with persistent storage +- Item attachment support (`-attach` flag) +- Message listing with type filter and pagination +- Archive and delete operations +- In-game config management via `/m config` diff --git a/COMMANDS.md b/COMMANDS.md new file mode 100644 index 0000000..6cdbf65 --- /dev/null +++ b/COMMANDS.md @@ -0,0 +1,14 @@ +# Mailboxes Commands + +All commands use `/m` or `/mailboxes` as the base. + +| Command | Description | Permission | +|---------|-------------|------------| +| `/m help` | View a list of commands. | `mailboxes.help` | +| `/m list [type] [page]` | List your messages with optional type filter and pagination. | `mailboxes.list` | +| `/m open` | Open a message. | `mailboxes.open` | +| `/m send ""` | Send a text message to a player. | `mailboxes.send` | +| `/m send "" -attach` | Send a message with the item in your hand attached. | `mailboxes.send.attach` | +| `/m delete` | Delete a message. | `mailboxes.delete` | +| `/m archive` | Archive a message. | `mailboxes.archive` | +| `/m config` | View or set config options (operators). | `mailboxes.config` | diff --git a/CONFIG.md b/CONFIG.md new file mode 100644 index 0000000..b7a25f6 --- /dev/null +++ b/CONFIG.md @@ -0,0 +1,3 @@ +# Mailboxes Configuration + +Mailboxes configuration can be managed in-game with `/m config`. A `config.yml` is generated in `plugins/Mailboxes/` on first run. diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md new file mode 100644 index 0000000..50f5648 --- /dev/null +++ b/CONTRIBUTING.md @@ -0,0 +1,58 @@ +# Contributing + +## Thank You + +Thank you for your interest in contributing to Mailboxes! This guide will help you get started. + +## Links + +- [Website](https://dansplugins.com) +- [Discord](https://discord.gg/xXtuAQ2) + +## Requirements + +- A GitHub account +- Git installed on your local machine +- A Java IDE or text editor +- A basic understanding of Java + +## Getting Started + +1. [Sign up for GitHub](https://github.com/signup) if you don't have an account. +2. Fork the repository by clicking **Fork** at the top right of the repo page. +3. Clone your fork: `git clone https://github.com//Mailboxes.git` +4. Open the project in your IDE. +5. Build the plugin: `mvn clean package` + If you encounter errors, please open an issue. + +## Identifying What to Work On + +### Issues + +Work items are tracked as [GitHub issues](https://github.com/Dans-Plugins/Mailboxes/issues). + +### Milestones + +Issues are grouped into [milestones](https://github.com/Dans-Plugins/Mailboxes/milestones) representing upcoming releases. + +## Making Changes + +1. Make sure an issue exists for the work. If not, create one. +2. Switch to `main`: `git checkout main` +3. Create a branch: `git checkout -b ` +4. Make your changes. +5. Test your changes. +6. Commit: `git commit -m "Description of changes"` +7. Push: `git push origin ` +8. Open a pull request against `main`, link the related issue with `#`. +9. Address review feedback. + +## Testing + + mvn clean package + +Place the built JAR from `target/` in your local Spigot server's `plugins/` folder. + +## Questions + +Ask in the [Discord server](https://discord.gg/xXtuAQ2). diff --git a/USER_GUIDE.md b/USER_GUIDE.md new file mode 100644 index 0000000..2b66f4f --- /dev/null +++ b/USER_GUIDE.md @@ -0,0 +1,36 @@ +# Mailboxes User Guide + +## What is Mailboxes? + +Mailboxes is a Spigot plugin that gives players an in-game messaging system. Players can send text messages and attach items to other players, even when they are offline. Messages are stored persistently and can be listed, opened, archived, or deleted. + +## Installation + +1. Download the latest `Mailboxes-.jar` from the [Releases](https://github.com/Dans-Plugins/Mailboxes/releases) page. +2. Place the JAR in your server's `plugins/` folder. +3. Restart the server. + +## Getting Started + +1. Send a message: `/m send "Hello!"` +2. Attach an item to a message: hold the item and add `-attach`: `/m send "Here is a gift" -attach` +3. List your messages: `/m list` +4. Open a message: `/m open` +5. Archive or delete messages you no longer need. + +## Permissions + +| Permission | Default | Description | +|------------|---------|-------------| +| `mailboxes.help` | `true` | View the help menu. | +| `mailboxes.list` | `true` | List messages. | +| `mailboxes.open` | `true` | Open a message. | +| `mailboxes.send` | `true` | Send a text message. | +| `mailboxes.send.attach` | `true` | Send a message with an item attached. | +| `mailboxes.delete` | `true` | Delete a message. | +| `mailboxes.archive` | `true` | Archive a message. | +| `mailboxes.config` | `op` | View or change config options. | + +## Support + +Ask questions in the [Discord server](https://discord.gg/xXtuAQ2) or open a [GitHub issue](https://github.com/Dans-Plugins/Mailboxes/issues). From 2bede68f4bff0152bce3dff68630644bad8cc271 Mon Sep 17 00:00:00 2001 From: dmccoystephenson Date: Sat, 16 May 2026 01:55:08 +0000 Subject: [PATCH 2/2] Expand CONFIG.md with full option table Co-Authored-By: Claude Sonnet 4.6 --- CONFIG.md | 16 +++++++++++++++- 1 file changed, 15 insertions(+), 1 deletion(-) diff --git a/CONFIG.md b/CONFIG.md index b7a25f6..704c58f 100644 --- a/CONFIG.md +++ b/CONFIG.md @@ -1,3 +1,17 @@ # Mailboxes Configuration -Mailboxes configuration can be managed in-game with `/m config`. A `config.yml` is generated in `plugins/Mailboxes/` on first run. +Configuration can be viewed and changed in-game with `/m config show` and `/m config set