[SALE] Aqua Punishments Bans | Mutes | Blacklists | Kicks | Warns | History Saved [PunishmentGUI] 1.8.3

This plugins allows you to punish your players.
Supported software
Supported versions
bans punish punishments spigot

Aqua Punishments is a punishment plugin that includes all types of punishments such as Bans, Mutes, Kicks, and others.
Author: FaceSlap_/Activated_ | Now managed by BGHDDevelopment
Other required plugins: None
Other requirements: MongoDB & Redis

  • /blacklist <user> [reason]
  • /ban <user> [duration] [reason] [-s]
  • /mute <user> [duration] [reason] [-s]
  • /ipban <user> [duration] [reason] [-s]
  • /warn <user> [duration] [reason] [-s]
  • /unban <user> [reason] [-s]
  • /unmute <user> [reason] [-s]
  • /unblacklist <user> [reason]
  • /kick <user> [message]
  • /checkpunishments [name]
  • /punishinfo
  1. Bans
    You can ban players permanent or for an entered period of time. Players can be IP-banned or just banned. If a player is IP-banned no one from the banned IP can't join the server.
  2. Mutes
    You can mute players permanent or for an entered period of time. If a player has active mute the player can't be muted until mute expire.
  3. Warns
    You can warn players as much as you want. You can warn them permanent or for an entered period of time.
    If a player reaches a configurable amount of the warns they will be banned for a configurable amount of time. Also, all warns can be set to inactive after they get banned.
  4. Blacklists
    Player and the IP of the player will be blacklisted and no one from the IP won't be able to join the server.
  5. Alts
    You can check all players potential alts and alts from the last IP of the user.
    - Potential alts are alts that are scanned on all IPs that user was joning from.
    - Regular alts are alts that are scanned on the last IP of the user.
  6. History
    All punishments are saved in Mongo Data Base, it will save or active and in-active punishments which means that you can check them by doing /checkpunishments <user>.
    Also, things like IP, all IPs that user was joining from, first joined, last seen, UUID and such, can be viewed in history.

















punishments.command.ban - access to /ban
punishments.command.banip - access to /banip
punishments.command.blacklist - access to /blacklist
punishments.command.check - access to /check
punishments.command.kick - access to /kickpunishments.command.mute
punishments.command.mute - access to /mute
punishments.command.warn - access to /warn
punishments.command.unban - access to /unban
punishments.command.unblacklist - access to /unblacklist
punishments.command.unmute - access to /unmute
punishments.see.silent - access to see silent punishments
package me.activated.punishments.api;

import lombok.AllArgsConstructor;
import lombok.Getter;
import lombok.RequiredArgsConstructor;
import me.activated.punishments.PunishmentPlugin;
import me.activated.punishments.player.PlayerData;
import me.activated.punishments.utilities.punishments.Alt;
import me.activated.punishments.utilities.punishments.Punishment;
import me.activated.punishments.utilities.punishments.PunishmentType;

import java.rmi.UnexpectedException;
import java.util.List;
import java.util.Set;
import java.util.UUID;
import java.util.stream.Collectors;

public class PunishmentsAPI {
    private final PunishmentPlugin plugin;

    public boolean isUserLoaded(UUID uuid) {
        return getPlayerData(uuid) != null;

    public PlayerData loadUser(UUID uuid, String name) throws UnexpectedException {
        if (isUserLoaded(uuid)) {
            throw new UnexpectedException("User is already loaded!");
        plugin.getProfileManager().createPlayerDate(uuid, name);
        return getPlayerData(uuid);

    public PlayerData getPlayerData(UUID uuid) {
        return plugin.getProfileManager().getPlayerDataFromUUID(uuid);

    public boolean isBanned(UUID uuid) {
        PlayerData playerData = getPlayerData(uuid);
        return playerData.getPunishData().isBanned();

    public boolean isIPBanned(UUID uuid) {
        PlayerData playerData = getPlayerData(uuid);
        return playerData.getPunishData().isIPBanned();

    public boolean isMuted(UUID uuid) {
        PlayerData playerData = getPlayerData(uuid);
        return playerData.getPunishData().isMuted();

    public boolean isBlacklisted(UUID uuid) {
        PlayerData playerData = getPlayerData(uuid);
        return playerData.getPunishData().isBlacklisted();

    public Set<Punishment> getPunishments(UUID uuid) {
        PlayerData playerData = getPlayerData(uuid);
        return playerData.getPunishData().getPunishments();

    public Set<Punishment> getPunishments(UUID uuid, PunishmentType punishmentType) {
        PlayerData playerData = getPlayerData(uuid);
        return playerData.getPunishData().getPunishments().stream().filter(punishment -> punishment.getPunishmentType() == punishmentType).collect(Collectors.toSet());

    public List<Alt> getAlts(UUID uuid) {
        PlayerData playerData = getPlayerData(uuid);
        return playerData.getAlts();

    public List<Alt> getPotentialAlts(UUID uuid) {
        PlayerData playerData = getPlayerData(uuid);
        return playerData.getPotentialAlts();

    public String getAddress(UUID uuid) {
        PlayerData playerData = getPlayerData(uuid);
        return playerData.getAddress();

    public List<String> getAddresses(UUID uuid) {
        PlayerData playerData = getPlayerData(uuid);
        return playerData.getAddresses();
Crediting original

Latest updates

  1. Fix

    Apparently jar had an issue, should be fixed.
  2. Fixes

    Fixed a duplicate error message
  3. Required Update

    Required Update, old versions won't work.

Latest reviews

10/10 plugin, please add punishment wipes!
Awesome plugin! Recommended
Epic developer, epic plugin as always! :)
vouch, have used alot of plugins made by FaceSlap all work with out fail if you report a bug he fixs it fast
You need to upgrade!
Our dark style is reserved for our Premium members. Upgrade here.