ForumPoster

Allow players to submit posts directly to a Discord forum channel.

9

ForumPoster

A Paper plugin that allows players to submit posts directly to a Discord forum channel. Create bug reports, suggestions, and feedback in-game that automatically appear as organized forum threads in Discord.

Features

- Hot Reload - Players submit categorized posts using simple commands - Hot Reload - Posts automatically create forum threads with appropriate tags - Hot Reload - Track reports through customizable statuses (Pending, In Progress, Resolved, etc.) - Hot Reload - Status changes in-game update the Discord thread title - Hot Reload - Automatically records where posts were submitted for easy teleportation - Hot Reload - Granular permissions for players and staff - Hot Reload - Posts survive server restarts - Hot Reload - Update configuration without restarting

Requirements

- Paper 1.21+ - Java 21+ - A Discord bot with permissions to manage threads in a forum channel

Installation

1. Download the latest release and place it in your `plugins` folder 2. Start your server to generate the default configuration 3. Stop the server and edit `plugins/ForumPoster/config.yml` 4. Add your Discord bot token and forum channel URL 5. Configure your categories with Discord forum tag IDs 6. Start your server

Configuration

```yaml bot: token: "YOUR_BOT_TOKEN_HERE" url: "https://discord.com/channels/GUILD_ID/CHANNEL_ID"

command: name: "forumpost" aliases: ["fp", "postforum"]

categories: - name: "bug" display: "Bug Report" id: 1122334455667788990 # Discord forum tag ID - name: "suggestion" display: "Suggestion" id: 1122334455667788991

status: statuses: ["PENDING", "IN_PROGRESS", "RESOLVED", "CLOSED"] default: "PENDING" ```

Finding Discord Forum Tag IDs

1. Enable Developer Mode in Discord (Settings > App Settings > Advanced > Developer Mode) 2. Go to your forum channel 3. Right-click on a tag and select "Copy Tag ID"

Discord Bot Setup

1. Create a bot at the Discord Developer Portal 2. Enable the bot and copy the token 3. Invite the bot to your server with permissions to: - View Channels - Send Messages - Create Public Threads - Manage Threads 4. Ensure the bot has access to your forum channel

Commands

| Command | Usage | Description | | ------------- | --------------------------------- | -------------------------------------------------- | | `/forumpost` | `/forumpost <category> <message>` | Submit a new report | | `/posts` | `/posts` | List your reports (or all reports with permission) | | `/postinfo` | `/postinfo <id>` | View details about a specific report | | `/setstatus` | `/setstatus <id> <status>` | Change a report's status | | `/deletepost` | `/deletepost <id>` | Delete a report | | `/tppost` | `/tppost <id>` | Teleport to where a report was made | | `/fpreload` | `/fpreload` | Reload the configuration |

Aliases: `/forumpost` can also be used as `/fp` or `/postforum`

Customizing the Command Name

The `/forumpost` command name is fully customizable in `config.yml`. You can rename it to fit your server's theme or terminology:

```yaml command: name: "report" # Changes /forumpost to /report aliases: ["r", "submit"] # Custom aliases ```

Examples: - `name: "report"` → Players use `/report bug My issue here` - `name: "ticket"` → Players use `/ticket suggestion Add more parkour` - `name: "feedback"` → Players use `/feedback bug The shop is broken`

After changing the command name, run `/fpreload` or restart your server for changes to take effect. The new command will have full tab completion for categories and statuses.

Permissions

| Permission | Default | Description | | ----------------------- | -------- | ----------------------------------- | | `forumposter.use` | Everyone | Submit reports with `/forumpost` | | `forumposter.seeall` | OP | View all reports, not just your own | | `forumposter.setstatus` | OP | Change report statuses | | `forumposter.delete` | OP | Delete reports | | `forumposter.teleport` | OP | Teleport to report locations | | `forumposter.reload` | OP | Reload the configuration |

How It Works

When a player submits a report:

1. A forum thread is created in your Discord channel with the configured tag 2. The thread contains the report ID, author, category, location, and full message 3. The report is saved locally for persistence 4. Staff can update the status in-game, which syncs to Discord

Discord Thread Format: ``` Thread Title: [PENDING] PlayerName - Report message preview...

Thread Content: Content: 1-abc1234-xyz5678 Content: PlayerName Content: Bug Report Content: world: 100, 64, -200 Content: <t:1234567890:R> Content: Full report message here... ```

Example Usage

Player submitting a bug report: ``` /forumpost bug The nether portal at spawn isn't working correctly ```

Staff checking reports: ``` /posts /postinfo 1-abc1234-xyz5678 ```

Staff updating status: ``` /setstatus 1-abc1234-xyz5678 IN_PROGRESS /setstatus 1-abc1234-xyz5678 RESOLVED ```

Teleporting to investigate: ``` /tppost 1-abc1234-xyz5678 ```

Support

Found a bug or have a suggestion? Open an issue on GitHub!

License

This project is open source. Feel free to use, modify, and distribute.

ADS