1. Time Format Logic
SkyBans uses a flexible time-parsing engine. You can combine units or use them individually for temporary punishments. If no time is specified, the punishment defaults to Permanent.
d Days /tempban Notch 30d Chargeback
h Hours /tempmute Notch 12h Spamming
m Minutes /tempban Notch 30m Take a break
s Seconds /tempmute Notch 60s Test
2. The IP-Intelligence System
SkyBans doesn't just store a list of names; it builds a relational map between UUIDs and IP addresses.
- Automatic Mapping: Every time a player joins, their current IP is linked to their UUID in the player_data table.
- IP-Banning: When you /banip, the plugin flags that specific IP. Even if the player switches to a brand-new Minecraft account, the IP-Check at the login gateway will block the connection.
- Alt Detection: Staff with the skybans.staff permission will receive an alert if a player joins with an IP that is already associated with other accounts in your database
3. Asynchronous Mojang Integration
One of the most powerful features is the ability to punish players who have never set foot on your server.
- How it works: When you run a command for an unknown player, SkyBans initiates an asynchronous web request to the Mojang API.
- Performance: Because this is Asynchronous, your server's TPS (Ticks Per Second) will not drop while the plugin waits for a response from Mojang's servers.
4. Permission Hierarchy
For the best setup, we recommend a three-tier permission structure using a plugin like LuckPerms:
Tier 1: Helper
- skybans.mute
- skybans.warn
- skybans.check
Tier 2: Moderator
- All Helper permissions
- skybans.ban
- skybans.kick
- skybans.staff (To see Alt alerts)
Tier 3: Admin
- All Moderator permissions
- skybans.banip
- skybans.unban
- skybans.unmute
- skybans.unwarn
5. Database Management
SkyBans uses
SQLite, meaning all your data is stored in a single file: /plugins/SkyBans/storage.db.
- Portability: You can easily move this file between servers to keep your ban history intact.
- Safety: The plugin automatically handles database "locks" to prevent data corruption during heavy traffic.
6. Customising the User Experience
You can use the following placeholders in your config.yml to create professional-looking kick and mute screens:
- {banner}: The name of the staff member who issued the punishment.
- {reason}: The reason provided for the punishment.
- {expires}: The time remaining (e.g., "2d 5h 10m") or "Never".
- {date}: The current calendar date.