# 🆘 HelpOp

It allows players to request help from staff, staff members to reply to tickets, move tickets, view history, and optionally connect the system with Discord through webhooks or bot mode.

***

### What It Does

The HelpOp module adds a proxy-side support system for your network.

It can be used for:

* Player help requests
* Staff support notifications
* Staff ticket replies
* Ticket history
* Ticket movement
* Staff social spy for HelpOp activity
* Cooldown bypass
* Discord webhook integration
* Discord bot integration
* Discord buttons
* Ticket threads
* Replies from Discord
* Ticket deletion, depending on configuration

***

### When To Enable It

Enable this module if you want players to contact staff directly from the network.

This module is useful for:

* Player support
* Bug reports
* Rule questions
* Staff assistance requests
* Moderation support
* Networks that want Discord-connected support tickets
* Networks that want ticket history stored in a database

***

### Requirements

The HelpOp module can work without external dependencies, but some features require optional integrations.

| Dependency        | Required    | Purpose                                                                |
| ----------------- | ----------- | ---------------------------------------------------------------------- |
| Redis             | No          | Not required for basic HelpOp usage.                                   |
| MySQL             | Recommended | Used for ticket history, depending on configuration.                   |
| MongoDB           | Recommended | Used for ticket history, depending on configuration.                   |
| PacketEvents      | No          | Not required.                                                          |
| Discord Webhooks  | Optional    | Used for simple Discord HelpOp logging.                                |
| Discord Bot / JDA | Optional    | Used for advanced Discord bot mode with buttons, threads, and replies. |
| PlaceholderAPI    | No          | Not required.                                                          |

{% hint style="info" %}
Database storage is recommended if you want HelpOp ticket history to persist after restarts.
{% endhint %}

{% hint style="info" %}
HelpOp bot mode uses JDA runtime libraries downloaded by NexusProxy into `plugins/NexusProxy/libraries/`.

A separate JDA addon jar is not required.
{% endhint %}

***

### Configuration File

The HelpOp module configuration file is located at:

```
plugins/NexusProxy/modules/helpop/helpop.yml
```

This file can contain settings for:

* Module status
* Command names
* Command aliases
* Permissions
* Ticket messages
* Staff notification format
* Reply format
* Cooldowns
* History settings
* Move button settings
* Discord webhook settings
* Discord bot settings
* Discord thread settings
* Ticket deletion behavior
* Storage-related options

{% hint style="warning" %}
Command names and aliases may be configurable in the module file.

The commands shown here are the default commands.
{% endhint %}

***

### Default Commands

| Command     | Description                                                              |
| ----------- | ------------------------------------------------------------------------ |
| `/helpop`   | Sends a help request to staff.                                           |
| `/helpcore` | Main HelpOp management command, depending on configuration.              |
| `/homove`   | Moves a HelpOp ticket, depending on configuration.                       |
| `/hor`      | Replies to a HelpOp ticket, depending on configuration.                  |
| `/hr`       | Short alias for replying to a HelpOp ticket, depending on configuration. |

***

### Permissions

| Permission                          | Description                                                           |
| ----------------------------------- | --------------------------------------------------------------------- |
| `nexusproxy.helpop.command`         | Allows access to HelpOp command features, depending on configuration. |
| `nexusproxy.helpop.report`          | Allows players to submit HelpOp reports or requests.                  |
| `nexusproxy.helpop.notify`          | Allows staff to receive HelpOp notifications.                         |
| `nexusproxy.helpop.history`         | Allows staff to view HelpOp history.                                  |
| `nexusproxy.helpop.socialspy`       | Allows staff to monitor HelpOp activity, depending on configuration.  |
| `nexusproxy.helpop.cooldown.bypass` | Allows bypassing HelpOp cooldowns.                                    |
| `nexusproxy.helpop.receive`         | Allows receiving HelpOp messages or tickets.                          |
| `nexusproxy.helpop.move`            | Allows moving HelpOp tickets, depending on configuration.             |

***

### Recommended LuckPerms Setup

#### Default players

```
/lp group default permission set nexusproxy.helpop.report true
```

#### Staff

```
/lp group staff permission set nexusproxy.helpop.notify true
/lp group staff permission set nexusproxy.helpop.receive true
/lp group staff permission set nexusproxy.helpop.command true
```

#### Senior staff

```
/lp group seniorstaff permission set nexusproxy.helpop.history true
/lp group seniorstaff permission set nexusproxy.helpop.move true
/lp group seniorstaff permission set nexusproxy.helpop.socialspy true
```

#### Admin

```
/lp group admin permission set nexusproxy.helpop.cooldown.bypass true
```

{% hint style="warning" %}
Give HelpOp history, move, and social spy permissions only to trusted staff members.
{% endhint %}

***

### Player Help Requests

Players can submit help requests using:

```
/helpop
```

Example concept:

```
/helpop I need help with a purchase.
```

Staff members with the correct permissions can receive and handle the request.

***

### Staff Notifications

Staff members can receive HelpOp notifications when a player submits a request.

Useful permissions:

```
nexusproxy.helpop.notify
nexusproxy.helpop.receive
```

These permissions should be assigned to staff groups that handle support.

***

### Staff Replies

Staff can reply to HelpOp tickets using the configured reply command.

Default commands:

```
/hor
```

```
/hr
```

Example concept:

```
/hr <ticket> <message>
```

{% hint style="info" %}
The exact reply syntax depends on your `helpop.yml` configuration.
{% endhint %}

***

### Ticket History

The HelpOp module can store ticket history when database storage is configured.

Supported database types:

```yaml
mysql
mongodb
mongo
```

Ticket history is useful for:

* Reviewing past support requests
* Staff accountability
* Moderation follow-up
* Repeated issue tracking
* Discord-connected workflows

{% hint style="warning" %}
If database storage is disabled, HelpOp history may not persist after restarts depending on your setup.
{% endhint %}

***

### Move Buttons

HelpOp can support ticket movement behavior, depending on configuration.

The default move command is:

```
/homove
```

This can be useful when a ticket needs to be moved, reassigned, or handled through a different support flow.

Permission:

```
nexusproxy.helpop.move
```

***

### Discord Webhook Mode

HelpOp supports Discord webhook mode.

Webhook mode is useful if you want HelpOp requests to be logged or forwarded to a Discord channel.

Webhook mode usually requires only a Discord webhook URL.

Example concept:

```yaml
discord:
  webhook:
    enabled: true
    url: "https://discord.com/api/webhooks/..."
```

{% hint style="warning" %}
Keep Discord webhook URLs private.

Anyone with the webhook URL may be able to send messages to that Discord channel.
{% endhint %}

***

### Discord Bot Mode

HelpOp also supports Discord bot mode.

Bot mode is more advanced than webhook mode and can support features such as:

* Discord buttons
* Ticket threads
* Replies from Discord
* Override handling
* Ticket deletion

Bot mode uses JDA runtime libraries downloaded by NexusProxy into:

```
plugins/NexusProxy/libraries/
```

{% hint style="info" %}
You do not need a separate NexusProxy HelpOp JDA addon jar.

The JDA bridge is part of the main plugin runtime system.
{% endhint %}

***

### Discord Bot Configuration

Bot mode may require settings such as:

* Bot token
* Log channel ID
* Ticket channel ID
* Thread settings
* Button settings
* Reply settings
* Delete behavior

Example concept:

```yaml
discord:
  bot:
    enabled: true
    token: "YOUR_BOT_TOKEN"
    log_channel_id: "123456789012345678"
```

{% hint style="danger" %}
Never share your Discord bot token publicly.

If your bot token is leaked, regenerate it immediately from the Discord Developer Portal.
{% endhint %}

***

### Cooldowns

HelpOp can use cooldowns to prevent spam.

Players with the cooldown bypass permission can ignore cooldowns:

```
nexusproxy.helpop.cooldown.bypass
```

Recommended for:

* Admins
* Senior staff
* Trusted support roles

Not recommended for normal players.

***

### Social Spy

HelpOp social spy allows trusted staff members to monitor HelpOp-related activity, depending on configuration.

Permission:

```
nexusproxy.helpop.socialspy
```

{% hint style="warning" %}
Only give HelpOp social spy permissions to trusted staff members.
{% endhint %}

***

### Common Use Cases

#### Submit a HelpOp request

```
/helpop I need staff assistance.
```

***

#### Reply to a ticket

```
/hr <ticket> <message>
```

***

#### Move a ticket

```
/homove
```

***

#### Give players HelpOp access

```
/lp group default permission set nexusproxy.helpop.report true
```

***

#### Give staff HelpOp notifications

```
/lp group staff permission set nexusproxy.helpop.notify true
/lp group staff permission set nexusproxy.helpop.receive true
```

***

### Setup Tips

* Give `/helpop` access to normal players.
* Give notification and receive permissions to staff.
* Use database storage if you want ticket history.
* Use webhook mode for simple Discord logging.
* Use bot mode for advanced Discord ticket workflows.
* Keep webhook URLs and bot tokens private.
* Give move, history, and social spy permissions only to trusted staff.
* Use cooldowns to prevent spam.
* Check `helpop.yml` if you want to change command names or aliases.

***

### Common Issues

#### Players cannot use `/helpop`

Check that:

* The HelpOp module is enabled.
* The player has `nexusproxy.helpop.report`.
* The command was not renamed in `helpop.yml`.
* Another plugin is not overriding `/helpop`.

***

#### Staff do not receive HelpOp notifications

Check that:

* Staff have `nexusproxy.helpop.notify`.
* Staff have `nexusproxy.helpop.receive`.
* Notification settings are enabled in `helpop.yml`.
* The staff member is online and connected correctly.
* The module was reloaded after configuration changes.

***

#### HelpOp history does not save

Check that:

* Database storage is enabled.
* MySQL or MongoDB is configured correctly.
* `/nexusproxy storage` shows the database as connected.
* History is enabled in the HelpOp configuration.

***

#### Discord webhook does not send messages

Check that:

* Webhook mode is enabled.
* The webhook URL is correct.
* The webhook still exists in Discord.
* The proxy can reach Discord.
* The HelpOp event is configured to send webhook messages.

***

#### Discord bot does not connect

Check that:

* Bot mode is enabled.
* The bot token is correct.
* The log channel ID is correct.
* The bot is invited to the Discord server.
* The bot has permissions to view, send messages, create threads, and manage messages if needed.
* The proxy can download and load JDA runtime libraries.
* Required libraries are present in `plugins/NexusProxy/libraries/`.

***

#### Replies from Discord do not work

Check that:

* Bot mode is enabled.
* Discord reply handling is enabled.
* The bot has the required channel and thread permissions.
* The ticket thread or channel still exists.
* The ticket was not deleted or closed.

***

#### HelpOp cooldown blocks staff

Check that:

* Staff have `nexusproxy.helpop.cooldown.bypass` if they should bypass cooldowns.
* Cooldown settings are configured correctly.
* The permission is assigned correctly in LuckPerms.

***

#### Another plugin is using the same commands

If another plugin registers the same command or alias, change the command names or aliases in:

```
plugins/NexusProxy/modules/helpop/helpop.yml
```

***

### Summary

The HelpOp module provides a complete support ticket system for NexusProxy.

It is recommended for networks that want player help requests, staff replies, ticket history, move actions, Discord webhook logging, or advanced Discord bot-based support workflows.


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://nexusproxy.nemesismc.net/modules/helpop.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
