https://github.com/joaovl5/the-normal-project
⚔️ A custom Authentication system and Launcher for offline Minecraft Java Servers ⚔️
https://github.com/joaovl5/the-normal-project
authentication discord-bot fastapi forge kotlin minecraft minecraft-java minecraft-launcher oauth offline-mode papermc python
Last synced: about 1 month ago
JSON representation
⚔️ A custom Authentication system and Launcher for offline Minecraft Java Servers ⚔️
- Host: GitHub
- URL: https://github.com/joaovl5/the-normal-project
- Owner: joaovl5
- License: unlicense
- Created: 2024-10-27T08:01:21.000Z (over 1 year ago)
- Default Branch: main
- Last Pushed: 2024-10-27T08:12:23.000Z (over 1 year ago)
- Last Synced: 2025-04-23T22:25:58.933Z (11 months ago)
- Topics: authentication, discord-bot, fastapi, forge, kotlin, minecraft, minecraft-java, minecraft-launcher, oauth, offline-mode, papermc, python
- Language: Python
- Homepage:
- Size: 8.48 MB
- Stars: 3
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# 🎮 The Normal Project



_A comprehensive authentication ecosystem for Minecraft servers, powered by Discord OAuth2_
[Features](#-features) • [Architecture](#-architecture) • [Installation](#-installation) • [Components](#-components) • [Flow](#-authentication-flow)
## 🌟 Features
- **Seamless Authentication** via Discord OAuth2
- **Auto-updating System** for both launcher and modpacks
- **Achievement Tracking** with points and rewards
- **Cross-platform Support** for Windows, macOS, and Linux
- **Anti-alt Account System** through Discord account linking
- **Rich Discord Integration** with stats and commands
## 🏗️ Architecture
The project consists of six main components working in harmony:
### 🚀 Launcher
- **Tech Stack**: Electron, Vue.js, Python
- **Features**:
- Achievement display
- Points tracking
- Event announcements
- Newsletter updates
- Auto-updating system
### 💾 Installer
- **Tech Stack**: Python, Tkinter
- **Purpose**: Streamlined launcher deployment
- **Features**: One-click installation
### 🌐 Hub
- **Tech Stack**: Python, FastAPI, MongoDB
- **Role**: Central authentication service
- **Features**:
- OAuth2 handling
- Token management
- User data storage
- API endpoints
### 🤖 Discord Bot
- **Tech Stack**: Python, Interactions
- **Features**:
- Player statistics
- Admin controls
- Modpack management
- Update broadcasting
### 🔌 Client Mod
- **Tech Stack**: Java, Forge
- **Purpose**: Authentication bridge
- **Features**: Secure token handling
### 🛡️ Server Plugin
- **Tech Stack**: Kotlin, PaperMC
- **Purpose**: Server-side verification
- **Features**: Token validation
## 📁 Project Structure
```
normal-project/
├── minecraft/ # Java/Kotlin projects
│ ├── mod/ # Forge client mod
│ └── plugin/ # PaperMC plugin
├── installer/ # Python installer
├── launcher/ # Electron application
├── hub/ # Backend services
```
## 🔒 Authentication Flow
```mermaid
sequenceDiagram
participant User
participant Launcher
participant Discord
participant Hub
participant Minecraft
participant Server
User->>Launcher: Launch Game
Launcher->>Discord: OAuth2 Request
Discord-->>Hub: Authorization Code
Hub-->>Launcher: Auth Token
Launcher->>Minecraft: Start with -Dcode
Minecraft->>Server: Hidden /login
Server-->>Hub: Validate Token
Server->>User: Allow Connection
```
1. 🎮 User initiates login through launcher
2. 🔑 Discord OAuth2 flow begins
3. 🌐 Hub processes authentication
4. 🎯 Launcher receives auth token
5. ⚡ Minecraft starts with custom flag
6. 🔒 Server validates and allows connection
---
**Built with for the "Isso é Normal?" Minecraft community**