File Details
neobans-1.0-SNAPSHOT.jar
- R
- Apr 26, 2026
- 84.91 KB
- 10
- 1.21.11+19
- NeoForge
File Name
neobans-1.0-SNAPSHOT.jar
Supported Versions
- 1.21-Snapshot
- 1.21.2-Snapshot
- 1.21.6-snapshot
- 1.21.1-Snapshot
- 1.21.5-Snapshot
- 1.21.4-Snapshot
- 1.21.9-snapshot
- 1.21.11-snapshot
- 1.21.11
- 1.21.10
- 1.21.9
- 1.21.8
- 1.21.7
- 1.21.6
- 1.21.5
- 1.21.4
- 1.21.3
- 1.21.2
- 1.21.1
- 1.21
Curse Maven Snippet
# NeoBans
A server-side punishment management mod for **Minecraft 1.21.1** running **NeoForge 21.1.x**.
Adds a full suite of ban, mute, kick, and warn commands along with an in-game GUI for staff to issue punishments. All punishment history is stored on the server and persists across restarts. **Players do not need the mod installed to join** — it is only required on the client if staff want to use the GUI.
---
## Features
- Permanent and temporary bans (player and IP)
- Permanent and temporary mutes
- Kick and warn commands
- In-game ban GUI with configurable preset reasons and durations (requires mod on staff client)
- Full punishment history per player
- Server-side ban list browser
- Fully configurable ban disconnect message with placeholder support
- Optional appeal link appended to ban messages
- Data stored as JSON in the world folder — no database required
---
## Requirements
| Requirement | Version |
|---|---|
| Minecraft | 1.21.1 |
| NeoForge | 21.1.x (tested on 21.1.222) |
| Java | 21 |
The mod is **server-side only**. Players without NeoBans can connect normally. Staff who want the `/ban` GUI need the mod on their client as well.
---
## Installation
1. Download the NeoBans `.jar` file.
2. Place it in your server's `mods/` folder.
3. Start the server once to generate the config file.
4. Edit `world/serverconfig/neobans-server.toml` to your liking (see [Configuration](#configuration) below).
5. Restart the server (or use `/reload` — the config will reload automatically).
For staff who want the GUI, they also place the same `.jar` in their client `mods/` folder.
---
## Commands
All commands require operator permission level 2 or higher.
### Ban
| Command | Description |
|---|---|
| `/ban` | Opens the player-select GUI (requires mod on client) |
| `/ban <player> [reason]` | Permanently bans a player |
| `/ban-ip <player\|ip> [reason]` | Permanently IP-bans a player or raw IP address |
| `/tempban <player> <duration> [reason]` | Temporarily bans a player |
| `/tempban-ip <player\|ip> <duration> [reason]` | Temporarily IP-bans a player or raw IP |
| `/unban <player>` | Pardons a player's active ban |
### Mute
| Command | Description |
|---|---|
| `/mute <player> [reason]` | Permanently mutes a player |
| `/tempmute <player> <duration> [reason]` | Temporarily mutes a player |
| `/unmute <player>` | Removes a player's active mute |
### Other
| Command | Description |
|---|---|
| `/kick <player> [reason]` | Kicks a player from the server |
| `/warn <player> <reason>` | Issues a formal warning |
| `/history <player>` | Opens the punishment history GUI for a player |
| `/banlist` | Opens the active ban list GUI |
### Duration format
Used by `/tempban`, `/tempban-ip`, and `/tempmute`.
| Suffix | Meaning |
|---|---|
| `m` | Minutes — e.g. `30m` |
| `h` | Hours — e.g. `2h` |
| `d` | Days — e.g. `7d` |
| `w` | Weeks — e.g. `2w` |
| `M` | Months — e.g. `1M` |
| `y` | Years — e.g. `1y` |
| `permanent` | No expiry |
---
## Configuration
The config file is generated at:
```
<world folder>/serverconfig/neobans-server.toml
```
### Options
#### `banReasons`
List of preset reasons shown in the `/ban` GUI. Editable without restarting — changes take effect the next time a staff member opens the GUI.
```toml
banReasons = [
"Griefing",
"Hacking / Cheating",
"Harassment",
"Inappropriate Content",
"Spam",
"Exploiting",
"Racism / Hate Speech",
"Other"
]
```
#### `appealLink`
URL shown at the bottom of every ban disconnect message. Set to `""` to hide the appeal line entirely.
```toml
appealLink = "https://your-server.com/appeal"
```
#### `banMessage`
The full disconnect message shown to a banned player. Supports Minecraft colour codes (`§` or `&`). Use `\n` for newlines.
```toml
banMessage = "§c§lYou are banned from this server!\n\n§fReason: §e{reason}\n§fBanned by: §e{banned_by}\n§fExpires: §e{expires}\n\n§7Punishment ID: {id}\n\n§eAppeal your ban: §b{appeal_link}"
```
**Available placeholders:**
| Placeholder | Value |
|---|---|
| `{reason}` | The ban reason |
| `{banned_by}` | The staff member who issued the ban |
| `{expires}` | `Permanent` or a human-readable time remaining (e.g. `3d 2h 15m`) |
| `{id}` | The internal punishment ID |
| `{appeal_link}` | The appeal URL — the **entire line** is removed if `appealLink` is empty |
---
## Data Storage
Punishments are saved to:
```
<world folder>/neobans/punishments.json
```
This file is written on every punishment action and on server shutdown. It is safe to back up while the server is running.
---
## Permissions
NeoBans uses vanilla operator levels — no external permissions plugin is required.
| Level | Access |
|---|---|
| 2+ | All NeoBans commands |
---

