This is a generic solution for a basic XAMP stack Authentication Portal for a Minecraft Server. It utilizes the Discord Server roles and authentication to manage access and Minecraft's built in RCON functionality to automatically manage the whitelist and banlist for the server(s). Users do not need to create any accounts in order to interact with the portal and their access is limited by the roles that are setup in the associated Discord Server.
This web application features:
- Independent public portal to allow for convienence: users can submit applications for the server and privileged users can approve or deny those applications
- View Applications, Whitelists, and Banlists with each users' Discord Id and Minecraft Account so there's no confusion over who's who
- Automatically add users to the servers' whitelists and banlists without accessing the server or logging in
- Automatically verifies users are in the associated Discord server and has appropriate roles before application submission and validates that the provided Minecraft Account exists
- Automatically posts when submissions have been approved or denied into a channel in the Discord server
The files listed in the sitefiles
directory are almost ready to go out of the box. There are a few pieces that need the be configured in order for the site to function properly (outside of updating for content):
- Web Server Setup:
- OS: choice of Linux distro (recommended), Windows, etc
- Web Server: Apache
- Database: MariaDB / MySQL
- Update
scripts/db.inc
with the database connection information - Run
schema.sql
to load the default database table schema
- Update
- Scripting Language: PHP
- Discord Server Information (enable developer mode in Discord and update
scripts/globals.priv
):- Roles and their Ids
- User roles
- Admin/Mod roles
- Discord Server Id
- Roles and their Ids
- Create Discord Application
- Update
scripts/client-info.priv
with the required information - Update
scripts/redirecturl.priv
with the appropriate redirect url - Invite the Discord application to the server that is intended to be used and attach a webhook with the app to a channel
- Update
scripts/globals.priv
$onboarding_webhook_url
with the webhook url taken from the channel so the application can post to it
- Update
- Minecraft Server Setup
- Enable RCON in
server.properties
- Update
scripts/globals.priv
with the appropriate RCON information
- Enable RCON in
- Update the HTML pages to fit your server, if necessary
- Update other items throughout the codebase as necessary