List of Commands
===
A list of commands usable for the DPRG Automation bot.
## Information
`[argument]`: Required Argument
`(arguemnt)`: Optional Argument
---
## Main DPRG Server Commands
### version
##### Displays the bot version.
###### **Syntax:** /version
Displays the bot's version.
### push_update
:::danger
**Command Details Redacted**
:::
### remindme
##### Used to remind you of something.
###### **Syntax:** /remindme [time] [reminder]
Example: `/remindme [1h 2m 50s] [check logs]`
### event
##### Can be used to run various events without having to type a pre-determined message yourself.
###### **Syntax:** /event [event_type] [place] [beginning] (co_host) (supervisor)
When running this command, you will notice that you only have a limited amount of places for the "place" argument.

Simply select one by clicking them. Once you run the command, you will be prompted with a confirmation window:

Once you click send, it will send a message in `#events` pinging @here for the event.

To delete an event, please refer to `/delete_event`.
### delete_event
##### Can be used to delete the event after you host one in `#events`.
###### **Syntax:** /delete_event
Once you run this command, it will delete the event in `#events` **(you can't delete the events of other users using this command)**.
### suggestionban
##### Bans or UNBANS a user from posting in `#suggestions`.
###### **Syntax:** /suggestionban [user]
###### **Required Permission(s):** ManageRoles
This command prevents a user from ever chatting in `#suggestions` until their "suggestion ban" role is removed, or if someone executed the `/suggestionban` on them. If someone is already banned, and someone executes the `/suggestionban` command on them, it will display an option to unban them, rather than banning them again.


### grantbeta
##### Grants a user beta access.
###### **Syntax:** /grantbeta [user]
###### **Required Permission(s):** @Studio Development (1030588944351498310)
This command is mostly used by developers when needed to grand someone access to the beta branch. This command adds or removes the beta role from a user.


### gban
##### Bans a ROBLOX user from the main DPRG game.
###### **Syntax:** /gban [roblox_username] (reason)
###### **Required Permission(s):** KickMembers
This command can be used to directly ban a ROBLOX player from playing the main DPRG game forever, in order to avoid exploiting, and to make banning easier. This command executes in-game, so make sure there's at least ONE person playing the game before you execute it, otherwise it might take some time before they're actually banned.
### debug_command
##### Debug command.
###### **Syntax:** /debug_command [...] [...] [...] (...) (...) (...)
###### **Required Permission(s):** Become CassioTDS
This command can **ONLY** be used by CassioTDS for debug & testing purposes.
---
## DPRG Branch Server Commands
:::danger
**Unfortunately**, I have not ported DPRG automation into other branches just yet. The National Police has **exclusive** access to the commands below.
:::
### warn
##### Warns a user, and records it in order to keep track of recorded warnings in certain branches.
###### **Syntax:** /warn [roblox_username] [reason] (additional_notes)
###### **Required Permission(s):** Captain+
:::info
This command sends a log to `#department-logs`.
:::
This command is used whenever a branch officer deems necessary to warn a branch member. Any warnings are stored, and are then held on the user's profile until the warning gets removed. To get a user's warnings, do the `/getwarns` command.

### getwarns
##### Gets a user's total warnings/strikes in a branch.
###### **Syntax:** /getwarns [roblox_username]
This command is used whenever someone needs to get another branch member's total warnings or strikes.

### transfer_discord
##### LOGS a transfer of a ROBLOX user to a specific discord account.
###### **Syntax:** /transfer_discord [roblox_username] [discord account]
###### **Required Permission(s):** Captain+
:::info
This command sends a log to `#department-logs`.
:::
:::warning
This command does **NOT** do anything else than logging to `#department-logs`.
:::
This command is used whenever a branch officer needs to log a discord account transfer in order to warn the public and the national police to stop messaging their old account, and to message their new account instead.

### terminate
##### Terminates a ROBLOX user from a branch.
###### **Syntax:** /terminate [roblox_username] (additional_notes)
###### **Required Permission(s):** Lieutenant+
:::info
This command sends a log to `#department-logs`.
:::
This command kicks a user out of the group, and then logs it in `#department-logs`. **CAREFUL!** *If you're trying to **RESIGN** a player instead of forceful termination, please refer to the `/resign` command instead.*

### suspend
##### Puts someone ON or OFF suspension.
###### **Syntax:** /suspend [roblox_username] [date_start] [date_end] (additional_notes)
###### **Required Permission(s):** Captain+
:::info
This command sends a log to `#department-logs`.
:::
This command logs a suspension and adds the suspended role (if it can) to the target user. It does **NOT** remember the suspension nor blocks someone from joining the branch team. It simply adds the role and logs it. THAT'S ALL. Works similarly to the leave of absence command.

### start_log
##### Starts a shift and then logs it for command.
###### **Syntax:** /start_log
:::success
This command is still in **BETA** mode, and problems may occur. Please DM `CwasKio#3591` if they do.
:::
This command lets any rank of a branch able to start a shift, and automatically log it after they leave the game. It uses rather complicated technology to get information of your player while you're in-game, and may not be always accurate. Once you start your log, it will look for you in-game. If it doesn't find you on the branch team or in any server, it will deny you access to start a log. Otherwise, it will attempt to DM you with a confirmation. Once you click the start button, it will start the log and start recording the time. Around 1-2 minutes or so after you leave the game or you change team, it will notify the discord bot and it will then log the time, and stop the shift.
### setrank
##### Puts someone ON or OFF suspension.
###### **Syntax:** /setrank [roblox_username] [rank] (additional_notes)
###### **Required Permission(s):** Captain+
:::info
This command sends a log to `#department-logs`.
:::
This command lets any captain and above the ability to promote or demote someone to a specified rank. The ranking will automatically be calculated and will then accordingly send the department log as such. For example, if you set someone's rank from `Cadet` to `Deputy chief of the national police`, it will show a promotion:

And the opposite will show:

It will give the user of the command a preview before you send the department log and before you apply changes to the user.
### send_investigation_message
##### Sends a anonymous investigation message to a specific user.
###### **Syntax:** /send_investigation_message [discord account] [from] [subject] [body] (signature)
###### **Required Permission(s):** Captain+
:::info
This command sends a log to high command.
:::
For internal investigations, this command can be used to send a message to a specific user's DMs anonymously, to your liking. Example:

The "signature" field is optional. If you do not fill it in, it will automatically default to the "from" field. As seen in the example above.
### resign
##### Resigns a ROBLOX user from a branch.
###### **Syntax:** /resign [roblox_username] (additional_notes)
###### **Required Permission(s):** Captain+
:::info
This command sends a log to `#department-logs`.
:::
This command kicks a user out of the group, and then logs it in `#department-logs`. **CAREFUL!** *If you're trying to **TERMINATE** a player instead of resignation, please refer to the `/terminate` command instead.* This command also allows you to send a resignation letter to the user. As you execute the command, it will show three options:
- Resign & send resignation letter
- Resign (without letter)
- Cancel
If you select the option of sending a resignation letter, the user will receive a letter in their DMs stating when they've joined the branch, when they left, and for how long they've stayed!

### request_loa
##### Resigns a ROBLOX user from a branch.
###### **Syntax:** /request_loa [start date] [end date] [reason]
If you're unable to LOA yourself, you have to use this command in order to request command a leave of absence. You don't have to put a date in the "start" and "end" date arguments, but just give us an idea of when you'll be finished with your leave of absence. If command approves it, they will place you on LOA.
### remove_warn
##### Removes a warning/strike from a player.
###### **Syntax:** /remove_warn [roblox_username] [case_id]
###### **Required Permission(s):** Chief of National Police+
:::info
This command sends a log to command.
:::
To remove a warning/strike for a user, the chief of national police will have to approve it before you can remove it. This command also logs the removal of a warning in a private high-command channel. The `case_id` argument is obtainable from the `/getwarns` command.
### leaveofabsence
##### Puts someone ON or OFF leave of absence.
###### **Syntax:** /leaveofabsence [roblox_username] [start date] [end date] (additional_notes)
###### **Required Permission(s):** Lieutenant+
:::info
This command sends a log to `#department-logs`.
:::
This command can be used for LT+ to put some users on leave of absence. The bot also adds/removes the LOA role automatically, when it can.

### investigative_leave
##### Puts someone ON or OFF investigative_leave.
###### **Syntax:** /investigative_leave [roblox_username] (additional_notes)
###### **Required Permission(s):** Lieutenant+
:::info
This command sends a log to `#department-logs`.
:::
This command can be used for LT+ to put some users on investigative leave. The bot also adds/removes the IL role automatically, when it can. An investigate leave is a period of time in which the user is not able to go on-team or able to patrol, as they are currently under investigation.

### getpending
##### Gets the list of users pending to the branch group!
###### **Syntax:** /getpending
###### **Required Permission(s):** Lieutenant+
This command can be used to get a list of users pending to the branch group on roblox.

### blacklist
##### Blacklists a player from the group.
###### **Syntax:** /blacklist [username] [reason]
###### **Required Permission(s):** Major+
:::info
This command sends a log to `#department-logs`.
:::
This command can be used to log a blacklist in #department-logs for the public to see. This command keeps track of blacklists and prevents someone blacklisted from entering a branch they're blacklisted from.


### accept
##### Accepts a player into the group, and then logs it.
###### **Syntax:** /accept [username] (additional notes)
###### **Required Permission(s):** Captain+
:::info
This command sends a log to `#department-logs`.
:::
This command can be used to accept a user in the National Police group. This command will not work unless a user is pending, which you can check with `/getpending`.

### transfer
##### Logs a divisional transfer.
###### **Syntax:** /transfer [username] [from] [to] (additional notes)
###### **Required Permission(s):** Lieutenant+
:::info
This command sends a log to `#department-logs`.
:::
This command can be used to log transfers between divisions.
