Your staff screenshots a duped diamond chest and shares it as a Discord attachment. The attachment dies when the channel rolls. ServerOps Media gives you a public URL you own, with per-plugin token attribution.
Ship structured chat, command, block-action, and economy events from your Paper / Spigot listener directly to ServerOps. Search across 200M rows in under a second; save the filter as a dashboard.
Open a case from a log line. Attach the screenshot from MEDIA. The case has a state (open / investigating / closed), a timeline, and an audit of who touched it. Public appeal portal optional.
Forms on your custom domain (apply.yourmc.gg or a subdomain). Discord webhook pings staff on submission. Auto-detect duplicate IPs and previously-banned alts. Escalate any submission into a Case.
// In your plugin's onEnable, register a chat listener that
// logs to ServerOps. Token loaded from your plugin config file,
// never hardcoded.
@EventHandler(priority = EventPriority.MONITOR, ignoreCancelled = true)
public void onChat(AsyncPlayerChatEvent event) {
serverops.log("chat",
Map.of(
"player_id", event.getPlayer().getUniqueId().toString(),
"player_name", event.getPlayer().getName(),
"channel", "global",
"body", event.getMessage()
)
);
}