BlazeBans/Investigating

Profiles

Two menus that put everything about a player, or a staff member, on one screen. They read the same data as `/history` and `/staffhistory`, arranged instead of scrolled.

Player profile

minecraft
/blazebans profile <player>

Needs blazebans.command.profile. Players only, since there is no menu to show console.

A 27-slot menu with eight panels:

PanelShows
IdentityName, UUID, last seen, and current status
SummaryTotal records, how many are active, alt count, and the latest record
Punishment countsBans, mutes, warns, and kicks as separate totals
Active banThe current ban, or nothing
Active muteThe current mute, or nothing
Linked accountsOther accounts on the same stored IP
Proof linksEvidence attached to this player's punishments
Latest recordFull detail on the most recent punishment

Status combines online state with punishment state, so a player can read as offline and banned at once.

This is the right starting point for most moderation decisions. Someone reports a player, you open their profile, and you can see whether they have been warned for this before, whether they are already muted, and whether they are the fourth account on an address you banned last week. Then you act.

Staff profile

minecraft
/blazebans staffprofile <staff>

Needs blazebans.command.staffprofile.

PanelShows
IdentityThe staff member
Punishments issuedTotals by type
Reversal ratesHow many of their punishments were later revoked
Revocations performedPunishments they lifted
Appeals against their punishmentsRecords that were appealed
Audit logA paginated list of their recent actions

Reversal rate is the number worth watching. Everyone gets one wrong occasionally. A moderator whose bans are overturned far more often than their colleagues' is either misreading the rules or being handed the difficult cases, and both are worth a conversation rather than a guess.

The audit log paginates, so a long-serving staff member's history is browsable rather than truncated.

If something in there looks wrong, /staffrollback reverses everything they issued in a time window.

Time formatting

Both menus show relative times: 3 days ago, in 2 hours, just now. The wording lives in the profile-time-* message keys, so a non-English server or a different phrasing is a config change rather than a limitation.

Values that are not available show profile-value-unknown rather than a blank slot, which makes "we do not have this" distinguishable from "this is zero".

Styling

Both menus are configured in menus.yml under menus.profile and menus.staff-profile. Every panel has a fixed slot you can move, a material, a name, and lore:

yaml
menus:
  profile:
    inventory:
      size: 27
      items:
        summary:
          slot: 10
          material: "RECOVERY_COMPASS"
          name: "<color:{color_positive}>Summary</color>"
          lore:
            - "<color:{color_text}>Total:</color> <color:{color_accent}>{history_total}</color>"
            - "<color:{color_text}>Active:</color> <color:{color_accent}>{active_count}</color>"

Placeholders are per-panel. The summary panel takes {history_total}, {active_count}, {alts_count}, and {latest_record}; the counts panel takes {ban_count}, {mute_count}, {warn_count}, and {kick_count}; the linked panel takes {linked_accounts}. Full detail in Menus.

Privacy

Linked accounts respect your privacy settings. With IP storage disabled there is nothing to link and the panel says so. Players on the alt blacklist, and anyone with blazebans.alts.exempt, do not appear in someone else's linked list.

IP addresses themselves are only shown to staff with blazebans.see.ips, and only when privacy.show-ip-to-staff is enabled.