About Discord Admin Panel
This plugin adds extra useful commands usable in a specific discord channel with a specific discord role,
that gives access to an admin panel to do specific commands on players inside the server.
Features :
Gives access to a players list with a search interaction embedded in the buttons
Gives a list of certain commands that you can use on each player (Kick, Ban, Mute, Unban, Unmute)
Configurable to add each command's reason of command (If you're kicking a player you can put Toxicity or Warning as a reason for it)
With each command that allows timed punishments like ban and mute, you are given access to 5 durations depending on the command.
Adds a /auth command to DiscordCore that redirects to /dc join.
Gives access to a search command in-game that shows different information about players.
Optional :
Gives access to a deauth admin command to unlink players from discord.
Gives access to a link admin command to link players using their steamid and discordid.
Gives access to buttons like Economics and Timed Permissions (configurable)
Gives access to customizable buttons for commands on players (configurable)
Permissions:
DiscordAdminPanel.emberban allows player to use the /ember.ban command (Only functional with Ignore Ember set to false and Ember loaded)
DiscordAdminPanel.emberunban allows player to use the /ember.ban command (Only functional with Ignore Ember set to false and Ember loaded)
DiscordAdminPanel.auth allows player to use the /auth command
DiscordAdminPanel.deauth allows admins to use the /deauth command to unlink players (Only functional with changing certain settings in DiscordCore or using DiscordAuth)
DiscordAdminPanel.link allows admins to use the /link command to link players (Only functional with changing certain settings in DiscordCore or using DiscordAuth)
DiscordAdminPanel.search allows admins to search for players details (SteamID and DiscordID)
In-Game Commands:
/search <steamID/DiscordID> : Searches for player details like SteamID, DiscordID, and his discord name.
/auth : uses "/dc join" command from DiscordCore (Only usable if DiscordCore is loaded)
/deauth <steamID/DiscordID> : Unlinks a player from discord (Only functional with changing certain settings in DiscordCore or using DiscordAuth)
/link <steamID> <DiscordID> : Links a player with discord using their steamID and DiscordID (Only functional with changing certain settings in DiscordCore or using DiscordAuth)
Discord Commands:
/dap players : Shows a list of online players on the server
/search <steamID/SteamName/DiscordID> : Gives an extended search on players details
!deauth <steamID/DiscordID> : Unlinks a player from discord (Only functional with changing certain settings in DiscordCore or using DiscordAuth)
!link <steamID> <DiscordID> : Links a player with discord using their steamID and DiscordID (Only functional with changing certain settings in DiscordCore or using DiscordAuth)
Discord Interactions:
When using !players, a list of online players will show up as interaction buttons.
Once you use one of the buttons, an extensive search will show up and will give you more interaction buttons to use different commands on the searched player.
Kick Command shows reasons after clicking on it :
Similarly Ban Command and Mute Command shows periods then reason : (Reasons are configurable)
Timed Permissions shows the roles then the period of time: (Both configurable)
Economics shows the available commands then the amount : (amount is configurable)
Configuration :
{ "LogFileName": "DiscordAdminPanel", "Bot token": "BOTTOKEN", "Ignore Roles": false, "Discord Channel ID where the command can be used": [ "1234567891234567890" ], "Embed's color": "#ff0000", "Show Clan Tag (Make sure clans is loaded)": false, "Show Oxide Groups": false, "Show Server Armour Profile (search)": false, "Show Team Info (search)": false, "Show Last Names (search) (PlayerInformations plugin required)": false, "Timed Permissions": { "Use Timed Permissions (true/false)": false, "Oxide Groups to give": [ "VIP", "Admin" ], "Time to give (Use 'd' for days, 'h' for hours, 'm' for minutes, 'wipe' for using wipe period)": [ "24h", "7d", "30d", "Wipe" ], "Discord Role ID (Can be left empty to use the first role id)": [] }, "Economics": { "Use Economics (true/false)": false, "Economy Amount (Use '.' for decimal)": [ "1500.5", "3000.3" ], "Discord Role ID (Can be left empty to use the first role id)": [] }, "Ban": { "Time to give (Use 'd' for days, 'h' for hours, 'm' for minutes, 'wipe' for using wipe period)": [ "24h", "7d", "30d", "Wipe" ], "Ban Reasons (One Word)": [ "Cheat", "Script", "OverToxicity", "Abuse" ], "Ignore Ember": true, "Ember Global (Only usable if ember is loaded)": false, "Discord Role ID (Can be left empty to use the first role id)": [] }, "Mute": { "Time to give (Use 'd' for days,'h' for hours, 'm' for minutes, 'wipe' for using wipe period)": [ "1h", "24h", "30d", "Wipe" ], "Mute Reasons (One Word)": [ "Toxicity", "Racism" ], "Discord Role ID (Can be left empty to use the first role id)": [] }, "Kick": { "Kick Reasons (One Word)": [ "Toxicity", "Warning" ], "Discord Role ID (Can be left empty to use the first role id)": [] }, "Custom": { "Use Custom (true/false)": false, "Use Confirmation (true/false)": false, "Custom Commands (Use '{player}' for player id, 'command name' 'command to send on console')": { "dogdoo": "dog {player}", "pacifism": "pf {player}" }, "Discord Role ID (Can be left empty to use the first role id)": [] }, "Link Commands": [ "link" ], "Auth Commands": [ "auth", "authenticate" ], "Deauth Commands": [ "dapdeauth", "deauthenticate" ], "Search Commands": [ "search", "look" ], "logs": { "Log to console (true/false)": true, "Log to discord (true/false)": false, "Log Data Type (Embed/Simple)": "Embed", "Discord Extension Log Level (Verbose/Debug/Info/Warning/Error/Exception/Off)": "Info", "Delete message after command": true, "Delete message after interaction": true, "Log Discord Channel ID": "" }, "Discord Guild ID (optional if the bot is in one guild)": "", "Discord Role ID": [ "1234567891234567890" ] }
How to install :
If you're using DiscordAuth as your link plugin, you can simply copy the plugin and use it as is.
If you're using DiscordCore as your link plugin, and you want to use /link and /deauth commands, Follow these steps:
1- Open DiscordCore in Notepad
2- Search and replace :
public void HandleLeave(IPlayer player, DiscordUser user, bool backup, bool message)
with
private void HandleLeave(IPlayer player, DiscordUser user, bool backup, bool message)
3- Search and replace :
public void CompletedLink(LinkActivation activation)
with
private void CompletedLink(LinkActivation activation)
4- Search and replace :
MJSU
with
Aimon
5- Save the file
You can also load the plugin without any link plugin.
Configure :
Set Bot Token, ChannelID and RoleID in config.
Reload Plugin.
To Do List :
Add logs to plugin.
Add customizable commands in config.
Add support for TimedPermissions.
Add support for Economics.
Make some infos in search command optional.
You can suggest new functionalities or plugin ideas on discord : Aimon#9899 .