-
Notifications
You must be signed in to change notification settings - Fork 0
Align repository with DPC conventions #62
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Changes from 2 commits
8f9769f
ae48093
6ed2bf6
2446cea
File filter
Filter by extension
Conversations
Jump to
Diff view
Diff view
There are no files selected for viewing
| Original file line number | Diff line number | Diff line change | ||||
|---|---|---|---|---|---|---|
| @@ -0,0 +1,37 @@ | ||||||
| # 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+) | ||||||
| - Test framework: JUnit (via Maven Surefire) | ||||||
|
|
||||||
| ## Project Structure | ||||||
|
|
||||||
| - `src/main/java/dansplugins/spawnsystem/` – Plugin source code | ||||||
| - `commands/` – Command executor classes | ||||||
| - `listeners/` – Bukkit event listener classes | ||||||
| - `services/` – Business-logic services (command dispatch, storage) | ||||||
| - `utils/` – Utility helpers (block checking, UUID lookup, event registration) | ||||||
| - `data/` – Persistent data model | ||||||
| - `bstats/` – bStats metrics integration | ||||||
| - `src/main/resources/` – `plugin.yml` and other resources | ||||||
| - `src/test/java/` – Unit tests | ||||||
|
||||||
| - `src/test/java/` – Unit tests | |
| - `src/test/java/` – Unit tests (if/when a test suite is added) |
| Original file line number | Diff line number | Diff line change | ||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| @@ -0,0 +1,26 @@ | ||||||||||||||||||
| name: Build | ||||||||||||||||||
|
|
||||||||||||||||||
| on: | ||||||||||||||||||
| push: | ||||||||||||||||||
| branches: [ main, develop ] | ||||||||||||||||||
| pull_request: | ||||||||||||||||||
| branches: [ main, develop ] | ||||||||||||||||||
|
|
||||||||||||||||||
| 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' | ||||||||||||||||||
|
||||||||||||||||||
| - name: Set up JDK 17 | |
| uses: actions/setup-java@v4 | |
| with: | |
| java-version: '17' | |
| - name: Set up JDK 8 | |
| uses: actions/setup-java@v4 | |
| with: | |
| java-version: '8' |
| Original file line number | Diff line number | Diff line change | ||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| @@ -0,0 +1,29 @@ | ||||||||||||||||||
| 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' | ||||||||||||||||||
|
||||||||||||||||||
| - name: Set up JDK 17 | |
| uses: actions/setup-java@v4 | |
| with: | |
| java-version: '17' | |
| - name: Set up JDK 8 | |
| uses: actions/setup-java@v4 | |
| with: | |
| java-version: '8' |
Copilot
AI
Mar 22, 2026
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
files: target/*.jar will likely upload multiple jars when using the Maven Shade plugin (e.g., both the shaded jar and original-*.jar). Consider narrowing the glob to only the intended distributable (or explicitly excluding original-*) so releases don’t contain confusing/incorrect artifacts.
| files: target/*.jar | |
| files: | | |
| target/*.jar | |
| !target/original-*.jar |
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,20 @@ | ||
| # 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.2] – (date unknown) | ||
|
|
||
| ### Changed | ||
| - Internal refactoring of spawn storage and event handling. | ||
|
|
||
| ## [1.0] – (date unknown) | ||
|
|
||
| ### Added | ||
| - Initial release. | ||
| - `[Spawn]` sign mechanic: right-clicking a sign sets the player's respawn point. | ||
| - `/resetspawn` command to clear a player's custom spawn. | ||
| - bStats metrics integration (plugin ID 12161). |
| Original file line number | Diff line number | Diff line change | ||||
|---|---|---|---|---|---|---|
| @@ -0,0 +1,12 @@ | ||||||
| # Commands Reference | ||||||
|
|
||||||
| ## Spawn Commands | ||||||
|
|
||||||
| ### /resetspawn [player] | ||||||
|
|
||||||
| **Description:** Resets a player's custom spawn point, returning them to the world's default spawn on next death. | ||||||
| **Permission (no argument):** `spawnsystem.reset.self` or `spawnsystem.admin` | ||||||
| **Permission (with argument):** `spawnsystem.reset.others` or `spawnsystem.admin` | ||||||
| **Usage:** `/resetspawn` or `/resetspawn <player>` | ||||||
|
||||||
| **Usage:** `/resetspawn` or `/resetspawn <player>` | |
| **Usage:** (in-game players only) `/resetspawn` or `/resetspawn <player>` |
| Original file line number | Diff line number | Diff line change | ||||
|---|---|---|---|---|---|---|
| @@ -0,0 +1,17 @@ | ||||||
| # Configuration Guide | ||||||
|
|
||||||
| Dans-Spawn-System does not currently use a `config.yml` file. All configuration is performed through in-game signs and permissions. | ||||||
|
|
||||||
| ## Permissions Configuration | ||||||
|
|
||||||
| Permissions can be managed through any standard Bukkit permissions plugin (e.g. LuckPerms). | ||||||
|
|
||||||
| | Permission Node | Default | Description | | ||||||
| |-----------------|---------|-------------| | ||||||
| | `spawnsystem.placeSpawnSign` | op | Allows placing `[Spawn]` signs | | ||||||
| | `spawnsystem.breakSpawnSign` | op | Allows breaking `[Spawn]` signs | | ||||||
| | `spawnsystem.reset.self` | op | Allows a player to reset their own spawn | | ||||||
| | `spawnsystem.reset.others` | op | Allows resetting another player's spawn | | ||||||
| | `spawnsystem.admin` | op | Grants all plugin permissions | | ||||||
|
Comment on lines
+9
to
+15
|
||||||
|
|
||||||
| These defaults are defined in `src/main/resources/plugin.yml` and can be overridden by your permissions plugin. | ||||||
|
||||||
| These defaults are defined in `src/main/resources/plugin.yml` and can be overridden by your permissions plugin. | |
| By default, these permissions are granted to server operators (`op`) and can be overridden by your permissions plugin. |
| Original file line number | Diff line number | Diff line change | ||||||||||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| @@ -0,0 +1,59 @@ | ||||||||||||||||||||||||||
| # Contributing | ||||||||||||||||||||||||||
|
|
||||||||||||||||||||||||||
| ## Thank You | ||||||||||||||||||||||||||
|
|
||||||||||||||||||||||||||
| Thank you for your interest in contributing to Dans-Spawn-System! 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/<your-username>/Dans-Spawn-System.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/Dans-Spawn-System/issues). | ||||||||||||||||||||||||||
|
|
||||||||||||||||||||||||||
| ### Milestones | ||||||||||||||||||||||||||
|
|
||||||||||||||||||||||||||
| Issues are grouped into [milestones](https://github.com/Dans-Plugins/Dans-Spawn-System/milestones) representing upcoming releases. | ||||||||||||||||||||||||||
|
|
||||||||||||||||||||||||||
| ## Making Changes | ||||||||||||||||||||||||||
|
|
||||||||||||||||||||||||||
| 1. Make sure an issue exists for the work. If not, create one. | ||||||||||||||||||||||||||
| 2. Switch to `develop`: `git checkout develop` | ||||||||||||||||||||||||||
| 3. Create a branch: `git checkout -b <branch-name>` | ||||||||||||||||||||||||||
| 4. Make your changes. | ||||||||||||||||||||||||||
| 5. Test your changes. | ||||||||||||||||||||||||||
| 6. Commit: `git commit -m "Description of changes"` | ||||||||||||||||||||||||||
| 7. Push: `git push origin <branch-name>` | ||||||||||||||||||||||||||
| 8. Open a pull request against `develop`, link the related issue with `#<number>`. | ||||||||||||||||||||||||||
| 9. Address review feedback. | ||||||||||||||||||||||||||
|
|
||||||||||||||||||||||||||
| ## Testing | ||||||||||||||||||||||||||
|
|
||||||||||||||||||||||||||
| Run the unit tests with: | ||||||||||||||||||||||||||
|
|
||||||||||||||||||||||||||
| Linux: `mvn clean test` | ||||||||||||||||||||||||||
| Windows: `mvn.cmd clean test` | ||||||||||||||||||||||||||
|
|
||||||||||||||||||||||||||
|
||||||||||||||||||||||||||
| Run the unit tests with: | |
| Linux: `mvn clean test` | |
| Windows: `mvn.cmd clean test` | |
| There are currently no automated unit tests configured for this project. | |
| Please verify your changes manually by: | |
| - Building the plugin: `mvn clean package` | |
| - Copying the built JAR from `target/` into your test server's `plugins` folder | |
| - Starting the server and ensuring the plugin loads without errors in the console | |
| - Exercising relevant spawn-related functionality to confirm your changes behave as expected |
| Original file line number | Diff line number | Diff line change | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| @@ -1,13 +1,94 @@ | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| # Dans-Spawn-System | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| An open source plugin that allows players to use signs to select a custom spawn in their world. | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| ## Description | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| Dans-Spawn-System is a Minecraft plugin that allows players to use signs to select a custom spawn point in their world. Server operators place `[Spawn]` signs with coordinates, and players right-click those signs to set their personal respawn location. | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| ## Installation | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| ### First Time Installation | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 1. Download the plugin from [SpigotMC](https://www.spigotmc.org/resources/dans-spawn-system.95997/). | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 2. Place the jar in the `plugins` folder of your server. | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 3. Restart your server. | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| ## Usage | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| ### Documentation | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| - [User Guide](USER_GUIDE.md) – Getting started and common scenarios | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| - [Commands Reference](COMMANDS.md) – Complete list of all commands | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| - [Configuration Guide](CONFIG.md) – Detailed configuration options | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| ### Wiki & Additional Resources | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| - [Wiki Guide](https://github.com/Dans-Plugins/Dans-Spawn-System/wiki) | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| ## Support | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| You can find the support Discord server [here](https://discord.gg/xXtuAQ2). | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| ### Experiencing a bug? | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| Please fill out a bug report [here](https://github.com/Dans-Plugins/Dans-Spawn-System/issues/new). | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| - [Known Bugs](https://github.com/Dans-Plugins/Dans-Spawn-System/issues?q=is%3Aissue+is%3Aopen+label%3Abug) | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| ## Contributing | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| - [CONTRIBUTING.md](CONTRIBUTING.md) | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| - [Notes for Developers](https://github.com/Dans-Plugins/Dans-Spawn-System/wiki) | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| ## Testing | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| ### Unit Tests | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| Linux: | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| mvn clean test | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| Windows: | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| mvn.cmd clean test | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| If you see `BUILD SUCCESS`, the tests have passed. | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| ### Unit Tests | |
| Linux: | |
| mvn clean test | |
| Windows: | |
| mvn.cmd clean test | |
| If you see `BUILD SUCCESS`, the tests have passed. | |
| ### Automated Tests | |
| This project does not currently include automated unit tests. | |
| To verify that the project builds successfully, run: | |
| Linux: | |
| mvn clean package | |
| Windows: | |
| mvn.cmd clean package | |
| If you see `BUILD SUCCESS`, the project compiled successfully. | |
| For validating functional changes, follow the steps in the **Development** section below to run the plugin on a test server. |
Copilot
AI
Mar 22, 2026
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
This section mentions a “Docker-based test server”, but there are no Dockerfiles / docker-compose configs in the repo. Either add the referenced Docker setup (and link to it) or remove/adjust this wording so contributors aren’t sent looking for non-existent tooling.
Copilot
AI
Mar 22, 2026
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
PR description says the README follows the required section names/order (including an “Authors” section). The README uses “Authors and Acknowledgement” instead, which may not satisfy tooling or checklist expectations that look for the exact “Authors” heading. Consider renaming this heading to match the convention/PR claim.
Copilot
AI
Mar 22, 2026
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
The Developers table is using || at the start of the header/rows, which creates an extra empty column in Markdown. Use a single leading | (and consistent trailing |) so the table renders as intended.
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,55 @@ | ||
| # User Guide | ||
|
|
||
| ## Prerequisites | ||
|
|
||
| - A Spigot or Paper Minecraft server (1.13 or later) | ||
| - The Dans-Spawn-System plugin installed in your `plugins/` folder | ||
|
|
||
| ## First Steps | ||
|
|
||
| After installing the plugin and restarting your server, players can have their respawn location customised by interacting with spawn-selection signs placed by administrators. | ||
|
|
||
| ## Common Scenarios | ||
|
|
||
| ### Setting Up a Spawn Selection Sign (Admin) | ||
|
|
||
| 1. Place a sign in the world. | ||
| 2. On the **first line** of the sign, type `[Spawn]`. | ||
| 3. On the **second line**, enter the X coordinate of the target spawn location. | ||
| 4. On the **third line**, enter the Y coordinate. | ||
| 5. On the **fourth line**, enter the Z coordinate. | ||
| 6. Confirm placement — you will see a green confirmation message if you have the required permission. | ||
|
|
||
| **Example sign contents:** | ||
|
|
||
| ``` | ||
| [Spawn] | ||
| 100 | ||
| 64 | ||
| -200 | ||
| ``` | ||
|
|
||
| Players who right-click this sign will have their respawn point set to coordinates (100, 64, -200) in their current world. | ||
|
|
||
| ### Selecting a Spawn (Player) | ||
|
|
||
| Simply **right-click** any `[Spawn]` sign to set your personal respawn location to the coordinates written on that sign. | ||
|
|
||
| ### Resetting a Player's Spawn (Admin) | ||
|
|
||
| Use the `/resetspawn` command to clear a player's custom spawn: | ||
|
|
||
| - Reset your own spawn: `/resetspawn` | ||
| - Reset another player's spawn: `/resetspawn <player>` | ||
|
|
||
| See [COMMANDS.md](COMMANDS.md) for full command details. | ||
|
|
||
| ## Permissions | ||
|
|
||
| | Permission Node | Default | Description | | ||
| |-----------------|---------|-------------| | ||
| | `spawnsystem.placeSpawnSign` | op | Allows placing `[Spawn]` signs | | ||
| | `spawnsystem.breakSpawnSign` | op | Allows breaking `[Spawn]` signs | | ||
| | `spawnsystem.reset.self` | op | Allows resetting your own spawn with `/resetspawn` | | ||
| | `spawnsystem.reset.others` | op | Allows resetting another player's spawn with `/resetspawn <player>` | | ||
| | `spawnsystem.admin` | op | Grants all plugin permissions | | ||
|
dmccoystephenson marked this conversation as resolved.
dmccoystephenson marked this conversation as resolved.
|
||
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
This lists “Test framework: JUnit (via Maven Surefire)”, but
pom.xmlcurrently has no JUnit (or other test) dependency configured. Update this to match the actual setup (or add the missing test dependencies/config).