Do you want to send Discord embed messages with ease? Do you want to announce things with nice and customizable messages using commands? This plugin is for you!
Wiki:
>>> https://foresttech.gitbook.io/discordsender/ <<<
- Customize every single detail of the embed message.
- No Discord bot required, it's not self-hosted either - it just works with webhooks!
- RGB support in MC messages. (1.16+)
- PlaceholderAPI support! (requires PlaceholderAPI)
- Changeable color (RGB) of embed messages.
- Pass infinite amount of arguments using commands.
- Multiple webhooks support, so you can send different messages to different channels/server.
- Pre-define messages in config.yml, so you don't need huge commands.
- Commands also work from the console and command-blocks (good for events, etc.)
- If your plugins support commands (like Crates plugin), you can add simple command to announce winner to the Discord.
- Prepare your webhooks (see our wiki)
- Put DiscordSender.jar into your plugins folder
- Restart server
- Edit config files in plugins/DiscordSender directory (see Configuration below)
- Reload plugin using /dsend reload command
Spoiler: config.yml
######################################################
#
# General Configuration Section
#
######################################################
# It loads messages from "messages_<lang>.yml' file. You can copy the english file and rename it,
# or you can just translate the english file and let this be.
lang : en
# In case you want to pass multi-word arguments, you need to use this placeholder instead of regular space
# This is because plugin cannot differ between more arguments or one multi-word argument.
# Example: Instead of 'This is test text' you need to use 'This#is#test#text'
spacePlaceholder : "#"
# In case you want to split the line, you can use this placeholder.
# Example: 'Line1:n:Line2'. You can combine it with spaces (see above).
newLinePlaceholder : ":n:"
# Default webhook used when no-one is defined. Can be set to "NONE", if you don't want default webhook.
defaultWebhook : "https://discord.com/api/webhooks/XXX/YYY"
# Here you can define default color, if no-one is defined.
defaultColor:
red : 255
green : 0
blue : 0
# List of your webhooks. You can add as many as you want. Names are then used in messages section below.
webhooks:
global_chat : "https://discord.com/api/webhooks/XXX/YYY"
staff_chat : "https://discord.com/api/webhooks/XXX/YYY"
######################################################
#
# Messages List Section
#
######################################################
# List of your messages. In 'full_example' you can see every feature it contains.
# Placeholders %arg_<number>% can be used. These are replaced by the plugin when using command.
#
# INGAME USAGE:
#
# Syntax: /dsend send <message_name> <arg_1> <arg_2> ... <arg_x>
# Permission: discordsender.use.<message_name>
#
# NOTE! Use 'NONE' if you don't want to set the option, or just remove the line!
#
# Every line below is removable except message_name!!! But be careful, see examples before.
messages :
# This is an example of short message with only basic features. For explanation of individual
# fields, check full example below or our wiki page: https://foresttech.gitbook.io/discordsender
# If you want to try this example: /dsend send short_example <banned_user> <banned_user>
short_example:
description : "Player %arg_1% was banned for %arg_2%!"
title:
text : "Banned! [**%arg_1%**]"
footer:
text : "Do NOT break the rules! It's not worth it!"
# This is an example of full feature usage. You can see every possible options. You can remove any option you want.
# But be careful with what are you doing.
# If you want to try this: /dsend send full_example <player> <event_name> <starting_in>
full_example :
# If you remove this line or set it to 'NONE', default webhook will be used.
webhookName : "global_chat"
# Color of the embed (RGB)
color:
red : 20
green : 200
blue : 20
# Description of the embed
description : "Event was announced! It is held by **%arg_1%**!"
# URL to image under the embed
imageUrl : "NONE"
# URL to small image displayed inside the embed
thumbnailUrl : "https://minotar.net/avatar/%arg_1%/100.png"
# Set properties of author. You can remove this section if you don't want to display author.
author:
text : "*Held by: %arg_1%*"
iconUrl : "NONE"
url : "NONE"
# Set the title. You can remove 'url' line, or set it to NONE if you want.
title:
text : "Event starting soon!"
url : "https://google.com"
# Self explaining.
footer:
text : "Be careful and join as soon as you can!"
iconUrl : "NONE"
# List of fields. You can add as many as you want.
# If you don't want to use fields, remove this section completely.
fields:
my_field :
# Shall the field be inline?
inline : false
title : "Event Type:"
text : "%arg_2%"
my_field_2:
inline : false
title : "It will start:"
text : "in %arg_3%"
Code (YAML):
######################################################
#
# General Configuration Section
#
######################################################
# It loads messages from "messages_<lang>.yml' file. You can copy the english file and rename it,
# or you can just translate the english file and let this be.
lang : en
# In case you want to pass multi-word arguments, you need to use this placeholder instead of regular space
# This is because plugin cannot differ between more arguments or one multi-word argument.
# Example: Instead of 'This is test text' you need to use 'This#is#test#text'
spacePlaceholder : "#"
# In case you want to split the line, you can use this placeholder.
# Example: 'Line1:n:Line2'. You can combine it with spaces (see above).
newLinePlaceholder : ":n:"
# Default webhook used when no-one is defined. Can be set to "NONE", if you don't want default webhook.
defaultWebhook : "https://discord.com/api/webhooks/XXX/YYY"
# Here you can define default color, if no-one is defined.
defaultColor:
red : 255
green : 0
blue : 0
# List of your webhooks. You can add as many as you want. Names are then used in messages section below.
webhooks:
global_chat : "https://discord.com/api/webhooks/XXX/YYY"
staff_chat : "https://discord.com/api/webhooks/XXX/YYY"
######################################################
#
# Messages List Section
#
######################################################
# List of your messages. In 'full_example' you can see every feature it contains.
# Placeholders %arg_<number>% can be used. These are replaced by the plugin when using command.
#
# INGAME USAGE:
#
# Syntax: /dsend send <message_name> <arg_1> <arg_2> ... <arg_x>
# Permission: discordsender.use.<message_name>
#
# NOTE! Use 'NONE' if you don't want to set the option, or just remove the line!
#
# Every line below is removable except message_name!!! But be careful, see examples before.
messages :
# This is an example of short message with only basic features. For explanation of individual
# fields, check full example below or our wiki page: https://foresttech.gitbook.io/discordsender
# If you want to try this example: /dsend send short_example <banned_user> <banned_user>
short_example:
description : "Player %arg_1% was banned for %arg_2%!"
title:
text : "Banned! [**%arg_1%**]"
footer:
text : "Do NOT break the rules! It's not worth it!"
# This is an example of full feature usage. You can see every possible options. You can remove any option you want.
# But be careful with what are you doing.
# If you want to try this: /dsend send full_example <player> <event_name> <starting_in>
full_example :
# If you remove this line or set it to 'NONE', default webhook will be used.
webhookName : "global_chat"
# Color of the embed (RGB)
color:
red : 20
green : 200
blue : 20
# Description of the embed
description : "Event was announced! It is held by **%arg_1%**!"
# URL to image under the embed
imageUrl : "NONE"
# URL to small image displayed inside the embed
thumbnailUrl : "https://minotar.net/avatar/%arg_1%/100.png"
# Set properties of author. You can remove this section if you don't want to display author.
author:
text : "*Held by: %arg_1%*"
iconUrl : "NONE"
url : "NONE"
# Set the title. You can remove 'url' line, or set it to NONE if you want.
title:
text : "Event starting soon!"
url : "https://google.com"
# Self explaining.
footer:
text : "Be careful and join as soon as you can!"
iconUrl : "NONE"
# List of fields. You can add as many as you want.
# If you don't want to use fields, remove this section completely.
fields:
my_field :
# Shall the field be inline?
inline : false
title : "Event Type:"
text : "%arg_2%"
my_field_2:
inline : false
title : "It will start:"
text : "in %arg_3%"
Plugin has two commands and three permissions:
- /dsend reload Reloads the plugin and it's config files
- /dsend send <message_name> <arguments> Sends the message configured in config.yml with passed arguments.
- NEW! /dsend sendPlaceholders <player_name> <message_name> <arguments> Sends the message configured in config.yml with passed arguments and also replaces placeholders using PAPI.
- /dsend full_example apik007 Spleef#(PvP) 15#minutes Sends the message "full_example" with 3 arguments. # means space (can be changed in config.yml)
- discordsender.reload Allows player to use /dsend reload command
- discordsender.use Required in order to send messages
- discordsender.use.<message_name> Allows player to use /dsend <message_name> <args> command.
- discordsender.use.* Allows player to send all messages.
Plugin has also simple API usage. You can register your own messages and send it using the DiscordSender.
Code (Java):
public
void sample
(
)
{
DiscordSender discordSender = (DiscordSender ) Bukkit. getPluginManager ( ). getPlugin ( "DiscordSender" ) ;
DiscordSenderManager discordSenderManager = discordSender. getDiscordSenderManager ( ) ;
// Registering new webhook
DiscordIntegration discordIntegration = discordSenderManager. registerWebhook ( "test_hook", "https://webhook.url" ) ;
// Preparing discord message
DiscordSenderMessage discordSenderMessage = new DiscordSenderMessage ( new int [ ] { 255, 0, 0 } ) ;
discordSenderMessage. title ( "Example title", null ) ;
discordSenderManager. registerMessage ( "test_msg", discordSenderMessage ) ;
// Sending message
discordSenderManager. sendMessage ( "test_msg", "my_first_arg", "my_second_arg" ) ;
}
DiscordSender discordSender = (DiscordSender ) Bukkit. getPluginManager ( ). getPlugin ( "DiscordSender" ) ;
DiscordSenderManager discordSenderManager = discordSender. getDiscordSenderManager ( ) ;
// Registering new webhook
DiscordIntegration discordIntegration = discordSenderManager. registerWebhook ( "test_hook", "https://webhook.url" ) ;
// Preparing discord message
DiscordSenderMessage discordSenderMessage = new DiscordSenderMessage ( new int [ ] { 255, 0, 0 } ) ;
discordSenderMessage. title ( "Example title", null ) ;
discordSenderManager. registerMessage ( "test_msg", discordSenderMessage ) ;
// Sending message
discordSenderManager. sendMessage ( "test_msg", "my_first_arg", "my_second_arg" ) ;
}
- You won't decompile the code without our permission
- You won't redistribute or upload the plugin or it's files without our permission
- You won't provide access to download the plugin to others
- You can use the plugin on all servers you have
If you have any questions / suggestions / need support, contact us on Discord!
Please, DO NOT report bugs or ask for support in review section!
Discord support is the fastest way and we'll be glad to help you!
![[IMG]](http://proxy.spigotmc.org/ac747b999344421d8dc1bc8f5a7be179572074bd?url=https%3A%2F%2Fapi.mcbanners.com%2Fbanner%2Fsaved%2FYpMzRgrBuhenhT.png)
Quick facts
- Edition: Minecraft Java
- File type: .jar
- Minecraft versions listed: 1.8, 1.9, 1.10
- How to install: Install the matching mod loader (Forge, Fabric or NeoForge) for your Minecraft version. → Download the .jar. → Put it in the .minecraft/mods folder and launch that loader profile.
- Where to get it: Opens on Spigot — not every file is mirrored on our own servers.
Install steps are the general flow for this file type — How to install Minecraft Java mods & modpacks walks through it step by step.
DiscordSender [1.8 - 1.21] CUSTOM DISCORD MESSAGES is a free Minecraft Java mod. Compatible with Minecraft 1.8, 1.9, 1.10, 1.11 and newer. Downloaded 1,402 times (via Spigot). Download it and open it directly in the game.