BlazeBans/Permissions

Duration limits

Cap how long each rank can ban or mute for. Without this, anyone with `blazebans.command.ban` can issue a permanent ban.

Configuring

In settings.yml:

yaml
duration-limits:
  tiers:
    - permission: "blazebans.duration.junior"
      max: "7d"
    - permission: "blazebans.duration.moderator"
      max: "30d"
    - permission: "blazebans.duration.admin"
      max: "permanent"

Each tier is a permission node and a maximum. Grant one node per rank.

max uses the same duration syntax as commands. permanent or 0s means no cap.

How a limit is chosen

BlazeBans finds every tier whose node the staff member holds, and uses the highest maximum among them.

That means holding several nodes gives you the longest, not the shortest. An admin who inherits the junior node from a parent group still gets permanent, which is what you want from an inheriting permission system.

Staff holding none of the nodes are unlimited. That is worth stating plainly: adding a duration-limits block does not restrict anyone until you also grant the nodes.

What a refusal looks like

A punishment over the limit is refused with a message naming the maximum. It is not silently shortened to the cap.

That is the right behaviour. A moderator who meant to ban for a year and quietly got seven days will not notice, and the player will be back before anyone realises.

Naming your own tiers

The three shipped tiers are only defaults. Rename them, add more, or use fewer:

yaml
duration-limits:
  tiers:
    - permission: "blazebans.duration.trial"
      max: "1d"
    - permission: "blazebans.duration.helper"
      max: "3d"
    - permission: "blazebans.duration.mod"
      max: "14d"
    - permission: "blazebans.duration.srmod"
      max: "90d"
    - permission: "blazebans.duration.admin"
      max: "permanent"

Any node name works. Matching it to your rank names makes the permission setup readable later.

What it applies to

Bans, mutes, IP bans, and IP mutes: anything with a duration.

Warns and kicks have no duration and are unaffected.

Template durations are checked the same way. A moderator capped at 30 days cannot apply a 60-day template, and gets the same refusal.

Suggested caps

There is no correct answer, but there is a reasonable shape: a new moderator should be able to handle the day-to-day, and escalation to a permanent ban should involve someone more senior.

RankCapReasoning
Trial1dEnough to stop something now, short enough that a mistake costs a day
Helper7dCovers most repeat offences
Moderator30dCovers everything short of removal
Senior90dLong enough to be serious, still reversible
AdminpermanentThe only rank that can remove someone for good

The point is not the exact numbers. It is that a permanent ban should be a decision someone senior makes deliberately, rather than the default anyone can reach for.

Working with hierarchy

Duration limits and staff weight answer different questions.

Weight decides who can be punished. Duration decides how long for.

Both are checked. A moderator with weight 50 and a 30-day cap can punish anyone below weight 50, for up to 30 days. Grant them together, one pair per rank, and the permission setup stays easy to reason about.

Checking a limit

--preview shows what would happen without writing anything:

minecraft
/ban Steve 60d Cheating --preview

If the duration is over your cap, the refusal comes back the same as it would on a real punishment. That is a safe way for a new moderator to find their own limit.

Bypassing

blazebans.admin is not checked against duration tiers, so administrators are unlimited whether or not they hold a tier node.

Console is unlimited.