Files
test-server-config-minecicd/plugins/DiscordSRV/alerts.yml
2024-10-05 22:23:51 -04:00

124 lines
5.9 KiB
YAML

# This is an /advanced/ feature of DiscordSRV that allows you to send messages to Discord when a game event happens
# or when a command is run. You will need a working knowledge of how Bukkit events work and their properties.
# If you aren't sure about what you're doing here, maybe ask a developer or join our support server @ discordsrv.com/discord
# Made something you'd like to share? You can do so in our Discord server's #alerts forum (invite above)
#
# Refer to the Bukkit API javadoc to find events & properties to use:
# https://hub.spigotmc.org/javadocs/bukkit
# Helpful resources for learning how to use SpEL:
# https://docs.spring.io/spring/docs/4.2.x/spring-framework-reference/html/expressions.html
# https://dzone.com/articles/learn-spring-expression-language-with-examples
#
# You can use the following placeholders:
# {tps} - server TPS
# {time} - formatted time
# {date} - formatted date
# {name} - if alert is for a player event, the name of the player
# {ping} - if alert is for a player event, the ping of the player
# {username} - if alert is for a player event, the username of the player
# {displayname} - if alert is for a player event, the display name of the player
# {usernamenoescapes} - if alert is for a player event, the username of the player without escaping discord format (for use in inline code & code block markdown)
# {displaynamenoescapes} - if alert is for a player event, the display name of the player without escaping discord format (for use in inline code & code block markdown)
# {world} - if alert is for a player event, the world the player is in
# {embedavatarurl} - if alert is for a player event, the avatar url for the player's head, otherwise, the bot's avatar url
# {botavatarurl} - the bot's avatar url
# {botname} - the bot's name
# %placeholder% - any PlaceholderAPI placeholders, can only use player ones when alert is for a player event
#
# You can also use SpEL expressions with ${expression...}, such as...
# - Getting a player's IP: ${#player.address.address.hostAddress}
# - Getting a player's game mode: ${#player.gameMode.name()}
# - Getting a player's linked Discord account ID: ${#discordsrv.accountLinkManager.getDiscordId(#player.uniqueId)}
# - Getting the online player count: ${#server.onlinePlayers.size()}
# - Getting the status of DiscordSRV's connection to Discord: ${#jda.status.name()}
# - Checking if a player is in a specific world: ${#player.world.name == 'world_the_end'}
# - Checking if it's day in the world that the player is in: ${#player.world.time > 0 && #player.world.time < 13000}
# You can use the following expression placeholders, as seen above:
# #plugins.<plugin> - the specified plugin instance, null if doesn't exist
# #event - the event that's triggering the alert if this alert is an event alert
# #server - the Bukkit API server instance, equivalent to Bukkit#getServer
# #discordsrv - the DiscordSRV plugin instance
# #player - the player that the event is for, if this is a player event or command
# #sender - the command sender, if this is a command alert
# #command - the full command, with no leading slash, if this is a command alert
# #args - the command arguments, if this is a command alert
# #allArgs - the command arguments as one string, if this is a command alert
# #channel - the destination channel for this alert
# #jda - DiscordSRV's JDA instance that it uses to communicate with Discord
#
# Syntax/defaults:
# - Trigger: <event name or /command>
# Async: true # optional, defaults to true, you should almost never have to change this
# Conditions:
# - property == < > <= >= value etc
# Channel: <discordsrv channel name>
# IgnoreCancelled: true # only for event alerts
# Content: ""
# Webhook:
# Enabled: false
# AvatarUrl: "{botavatarurl}"
# Name: "{botname}"
# Embed:
# Enabled: true
# Color: "#00ff00" # accepts a hex color code (eg. "#ffffff") or a rgb integer (eg. 0)
# Author:
# ImageUrl: "{embedavatarurl}"
# Name: "{username} did... something."
# Url: ""
# ThumbnailUrl: ""
# Title:
# Text: ""
# Url: ""
# Description: ""
# Fields: [] # format is "title;value;inline" (eg. "Who joined?;%displayname%;true") or "blank" to add a blank field
# ImageUrl: ""
# Footer:
# Text: ""
# IconUrl: ""
# Timestamp: false # set to true to use the time the message was sent or use a epoch timestamp for a specific time (https://www.epochconverter.com/)
#
Alerts:
# Example config to send messages to the "fish" DiscordSRV channel when a player successfully catches a fish
#- Trigger: PlayerFishEvent
# Channel: fish
# Conditions:
# - state.name() == 'CAUGHT_FISH'
# Embed:
# Color: "#00ff00"
# Author:
# ImageUrl: "{embedavatarurl}"
# Name: "{name} caught a ${caught.itemStack.type.name()}!"
# Example config to send Matrix anti-cheat messages
#- Trigger: PlayerViolationEvent
# Channel: matrix
# Conditions:
# - violations >= 5 # don't send events for players with < 5 violations
# Embed:
# Color: "#ff0000"
# Author:
# ImageUrl: "{embedavatarurl}"
# Name: "{username} failed ${hackType.name().toLowerCase()} check | ${component} | vl:${violations} ping:${player.handle.ping} tps:{tps}"
# Example config to send /gamemode messages
#- Trigger: /gamemode
# Channel: gamemode
# Conditions:
# - '#player.hasPermission("minecraft.command.gamemode") == true'
# Embed:
# Color: "#ff0000"
# Author:
# ImageUrl: "{embedavatarurl}"
# Name: "{username} changed gamemode to ${#args.get(0)}"
# Example config to send /me commands
#- Trigger: /me
# Channel: me
# Conditions:
# - '#player.hasPermission("minecraft.command.me") == true || #player.hasPermission("essentials.me") == true'
# Embed:
# Color: "#00ff00"
# Author:
# ImageUrl: "{embedavatarurl}"
# Name: "* {username} ${#allArgs}"