BlazeBans/Integrations

Addons

Two optional Paper plugins that extend BlazeBans. Both are separate jars, both require BlazeBans, and both are installed by dropping them into `plugins/`.

minecraft
/blazebans addons

Lists everything currently registered. Needs blazebans.command.addons.

Voice chat

BlazeBansVoiceChat adds voice mutes through Simple Voice Chat. A voice mute is a VOICE_MUTE record, so it appears in history, in placeholders, and in Discord like any other punishment.

Installing

  1. Install Simple Voice Chat.
  2. Drop BlazeBansVoiceChat.jar into plugins/.
  3. Restart.

BlazeBans is a hard dependency and Simple Voice Chat is soft. Without the voice plugin, voice mutes can still be created and managed; the audio just is not blocked, and the addon says so in console.

Commands

CommandAliasesPermission
/voicemute <player> [duration] <reason>/vmute, /gagblazebans.addon.voicechat.voicemute
/voiceunmute <player> [reason]/vunmute, /unvoicemute, /ungagblazebans.addon.voicechat.voiceunmute
/checkvoicemute <player>noneblazebans.addon.voicechat.voicemute
/blazebansvoicechat reload/bbvoicechat, /bbvcblazebans.addon.voicechat.reload
minecraft
/voicemute Steve 1h Shouting into the mic
/voicemute Steve permanent Slurs in voice
/voiceunmute Steve Appeal accepted

Durations use the same syntax as everything else.

Configuration

plugins/BlazeBansVoiceChat/settings.yml:

yaml
hooks:
  simple-voice-chat:
    enabled: true
    warn-when-missing: true

enforcement:
  auto-voice-mute-regular-mutes: true
  voice-block-notice-cooldown-seconds: 1
  cache-ttl-millis: 2000

punishments:
  voice-mute-type: "VOICE_MUTE"
  default-reason: "No reason provided."
  default-unmute-reason: "Voice mute revoked."
  scope: "server"
  server-id: ""
  silent: false

auto-voice-mute-regular-mutes is the important one. On by default, it extends an ordinary text mute to voice as well. Without it, a muted player can still talk in voice chat, which usually defeats the point of the mute.

voice-block-notice-cooldown-seconds throttles the reminder shown when a voice-muted player tries to speak, so a held push-to-talk key does not produce a wall of messages.

server-id blank means the addon uses BlazeBans' own server.id. Set it only when voice mutes should belong to a different server.

Permissions

NodeDefaultGrants
blazebans.addon.voicechat.voicemuteopMuting, and checking a mute
blazebans.addon.voicechat.voiceunmuteopUnmuting
blazebans.addon.voicechat.notifyopVoice mute notifications
blazebans.addon.voicechat.bypassfalseCannot be voice muted
blazebans.addon.voicechat.reloadopReloading the addon

Placeholders

txt
%blazebans_is_voice_muted%
%blazebans_active_voice_mute_reason%
%blazebans_active_voice_mute_remaining%
%blazebans_voice_mute_count%
%blazebans_active_voice_mutes%

Without the addon these return false and zero, since no voice mute records exist.

Ban effects

BlazeBansBanEffects plays an animation before a ban is enforced. The player is lifted, an effect runs, then they are removed.

This is presentation, not moderation. It changes nothing about the punishment.

Installing

Drop BlazeBansBanEffects.jar into plugins/ and restart. It requires BlazeBans and nothing else.

Commands

CommandAliasesPermission
/blazebaneffects reload/bbbaneffects, /bbfxblazebans.addon.baneffects.reload
/blazebaneffects preview <effect>sameblazebans.addon.baneffects.preview
/blazebaneffects preview allsameblazebans.addon.baneffects.preview

preview with no effect lists what is available.

Shipped effects

EffectLook
ban-hammerA mace and ancient debris, with an anvil impact
blaze-swarmBlaze rods, flame, and a fire charge
spear-stormDiamond spears, end rod particles, and a trident thunder hit
tnt-implosionTNT converging, then an explosion
meteor-cageFire charges and magma, with a respawn anchor charge
warden-shriekEcho shards, sculk, and a sonic boom

Configuration

plugins/BlazeBansBanEffects/settings.yml:

yaml
effects:
  enabled: true
  max-duration-ticks: 100
  default-effect: "ban-hammer"
  disabled-worlds:
    - "disabled_world_name"
  trigger-types:
    - "BAN"
    - "IP_BAN"
  cinematic:
    float-player: true
    float-height: 5.0
    block-commands: true
    block-chat: true
    block-item-use: true
    block-block-place: true
    block-block-break: true
    prevent-damage: true

max-duration-ticks caps how long enforcement waits. 100 ticks is five seconds, which is also the hard ceiling BlazeBans applies to any requested enforcement delay.

The cinematic block restricts what the player can do while the effect runs, so the last five seconds of a banned player's session are not spent breaking blocks.

Choosing an effect by reason

yaml
rules:
  - id: "cheating"
    match: "contains"
    reasons:
      - "cheat"
      - "hack"
      - "xray"
    effect: "ban-hammer"

  - id: "toxicity"
    match: "contains"
    reasons:
      - "toxicity"
      - "chat"
    effect: "blaze-swarm"

Rules are checked in order and the first match wins. No match uses default-effect.

Afterwards

yaml
effects:
  completion:
    enabled: true
    commands: []
    broadcast:
      enabled: false
      messages:
        - "{meta_prefix_long}<color:{color_accent}>{player}</color> <color:{color_text}>was banned with</color> <color:{color_positive}>{effect}</color>"
    proxy-broadcast:
      enabled: false
      commands:
        - "alert {player} was banned with {effect}"

Console commands, a public broadcast, or a proxy broadcast after the effect finishes. Individual effects can override each with completion-commands, completion-broadcasts, and completion-proxy-broadcast-commands.

Custom effects

Each effect is defined by an item display, an optional block display, particles, and sounds:

yaml
effects:
  definitions:
    my-effect:
      item-display:
        material: "NETHERITE_SWORD"
        count: 12
        scale: 1.2
      block-display:
        material: "OBSIDIAN"
      particles:
        primary: "FLAME"
        secondary: "SMOKE"
        impact: "EXPLOSION"
      sounds:
        charge: "minecraft:block.beacon.activate"
        impact:
          - "minecraft:entity.generic.explode"

Materials, particles, and sounds are vanilla identifiers. Preview it with /blazebaneffects preview my-effect.

Whether to use it

It costs five seconds of enforcement delay per ban. On a server where bans are rare and public, it is a moment other players notice. On a server banning bot accounts all day, it is five seconds of nothing, and trigger-types or disabled-worlds is how you narrow it.

Building your own

The BlazeBans API covers querying, creating, revoking, and reacting to punishments, and lets an addon register itself so it appears in /blazebans addons:

java
BlazeBansProvider.registerAddon(new BlazeBansAddon(
    "MyAddon",
    "My BlazeBans Addon",
    getPluginMeta().getVersion(),
    "Adds custom punishment effects.",
    "enabled"
));

The ban effects addon is built on the same public API, so anything it does is available to you.