A simple plugin to allow global cross-server communication and messaging with support for PlaceholderAPI, LuckPerms, LiteBans, AdvancedBan, NetworkManager, and Discord.
With PlaceholderAPI
- You must use the helper plugin which you can download here.
- Drag the helper plugin to each Spigot/Paper/Bukkit server that you want PlaceholderAPI support on.
- You do not need any additional configuration on the Spigot/Paper/Bukkit server as long as you have PlaceholderAPI installed.
- Set use-helper to true in the config.yml for the proxy configuration. This will be in your BungeeCord/Velocity server.
- Restart or reload the plugin! /spc-reload
For PlaceholderAPI support, the helper plugin is required. Additionally, PlaceholderAPI placeholders can only be used for Minecraft chat messages. It will not work for join/leave messages.
Without Discord
- Simply place the plugin in your plugins folder on BungeeCord/Velocity and restart your proxy!
With Discord
- Go to discord.com/developers and select New Application. You can select any name you want.
- Go to the OAuth2 section.
- Go to the OAuth2 URL Generator and give it the bot scope.
- Under bot permissions select;
- Manage Channels (REQUIRED: General Permissions)
- Send Messages (REQUIRED: Text Permissions)
- Manage Messages (REQUIRED: Text Permissions)
- Read Message History (REQUIRED: Text Permissions)
- + Any others that you want to add...
- Copy the Generated URL at the bottom.
- Paste the generated URL into a web browser.
- Invite the bot to your server.
- Go back to discord.com/developers.
- Select your bot.
- Click on bot.
- Click Reset Token and copy the token somewhere safe.
- Scroll down to Privileged Gateway Intents.
- Select SERVER MEMBER INTENT and MESSAGE CONTENT INTENT.
- Place the plugin in the plugins folder on BungeeCord/Velocity.
- Start your server once fully, then stop it. There will be errors, this is normal.
- In the generated ProxyChat/config.yml file, paste your Bot Token and choose the appropriate channel you want messages being sent to.
- Restart your proxy!
- Global Network Chat
- LuckPerms Support
- LiteBans Support
- AdvancedBan Support
- NetworkManager Support
- Discord Support
- Velocity/Waterfall/BungeeCord Support
- Colored Chat
- Cross-Server Communication
- PlaceholderAPI Support
- ...and more!
config.yml
Code (YAML):
# ==========================================================
# INFORMATION
# HEX Values are Supported
# Example: <#FFFFFF>Some text</#FFFFFF> this is a message!
# Supports Mini-Message/Legacy Color Codes
# ==========================================================
# True if you will be using Discord. The reload command does not work with this.
use-discord
: false
# Discord Bot Token (IGNORE IF use_discord = false).
BOT-TOKEN
:
"TOKEN_HERE"
# Channel to send Discord messages to (IGNORE IF use_discord = false).
CHANNEL-ID
:
"GLOBAL_CHANNEL_ID"
bot-activity
:
# Valid Types: ONLINE, DO_NOT_DISTURB, IDLE, INVISIBLE
status
: ONLINE
# Valid Types: PLAYING, STREAMING, LISTENING, WATCHING, COMPETING, CUSTOM_STATUS
type
:
"CUSTOM_STATUS"
# Valid placeholders are %online% and/or %max-players% (UPDATES EVERY 5 MINUTES)
text
:
"%online%/%max-players% - SimpleProxyChat by beanbeanjuice"
# The amount of seconds to check if a server is online/offline.
# Smaller numbers can cause errors. Beware.
server-update-interval
: 3
# Use this if you want to change the default aliases.
# It MUST be the same name you have in your bungee/velocity config.
# Simply set it to disabled: disabled to disable it.
aliases:
ServerInConfigExample
: ServerAliasExample
hub
: Hub1
smp
: smp1
# Whether to use the permission system.
# Some permissions (denoted with ➕) are always active even if this is false.
# simpleproxychat.read.chat - Read chat messages.
# simpleproxychat.read.join - Read join messages.
# simpleproxychat.read.leave - Read leave messages.
# simpleproxychat.read.fake - Read the fake join/leave messages. Players must also have the REAL join/leave permission.
# simpleproxychat.read.switch - Read switch messages.
# simpleproxychat.read.update - Read update messages. ➕
# simpleproxychat.toggle.chat - Toggle proxy chat for a single server. ➕
# simpleproxychat.toggle.chat.all - Toggle proxy chat for all servers. ➕
# simpleproxychat.reload - Reload the config. ➕
# simpleproxychat.ban - Ban a player from the proxy. ➕
# simpleproxychat.unban - Unban a player from the proxy. ➕
# simpleproxychat.whisper - Whisper to another player on the proxy. ➕
# simpleproxychat.broadcast - Broadcast a message to everyone on the server. ➕
use-permissions
: false
# Only messages that start with this character will be sent through the plugin.
# Set to '' to disable.
# Example: If it is set to '$', then when a player sends $hello, it will be sent through the proxy.
proxy-message-prefix
: ''
# Whether to send if the statuses of the servers connected to the proxy when the proxy starts up.
# THIS IS FOR DISCORD MESSAGES ONLY.
use-initial-server-status
: true
# Whether to send a fake join/leave message when vanishing/unvanishing.
use-fake-messages
: true
# Format: https://docs.oracle.com/javase/8/docs/api/java/time/format/DateTimeFormatter.html
# Timezone: https://www.joda.org/joda-time/timezones.html
timestamp
:
# If your server is prone to getting off-sync on the time you can use an API.
# WARNING: Using the API will make messages somewhat longer to send.
# Additionally, the maximum accuracy will only be up to 1 minute, rather than seconds.
use-api
: false
format
:
"hh:mm a"
timezone
:
"America/Los_Angeles"
# True if you will be using the helper plugin.
use-helper
: false
update-notifications
: true
# It is HIGHLY recommended to use a more robust proxy-wide banning system such as LiteBans or AdvancedBan.
# However, if you would rather a light-weight, simple, banning system. You can enable it here.
# A FULL PROXY RESTART IS REQUIRED TO USE THIS.
use-simple-proxy-chat-banning-system
: false
# This will store and re-send the last few chat messages when a player switches servers.
# This is here because sometimes Velocity/Bungee does not keep the previous messages when switching.
# This WILL retain old formatting if you change the formatting prior to reloading.
send-previous-messages-on-switch:
enabled
: false
amount
: 15
# These require a restart in order to take place.
commands:
reload-aliases
:
-
"spcreload"
chat-toggle-aliases
:
-
"chattoggle"
ban-aliases
:
-
"spcban"
unban-aliases
:
-
"spcunban"
whisper-aliases
:
-
"spc-msg"
reply-aliases
:
-
"spc-r"
broadcast-aliases
:
-
"spc-bc"
-
"broadcast"
# Disable servers from sending/receiving proxy messages.
disabled-servers
:
- example1
# DO NOT TOUCH THIS
file-version
: 15
messages.yml
Code (YAML):
# ==========================================================
# INFORMATION
# HEX Values are Supported
# Example: <#FFFFFF>Some text</#FFFFFF> this is a message!
# Supports Mini-Message/Legacy Color Codes
# ==========================================================
# Prefix for the plugin. %plugin-prefix% usable anywhere.
plugin-prefix
:
"&8[<bold><rainbow>SimpleProxyChat&r&8]"
# Minecraft Stuff
minecraft:
join:
enabled
: true
message
:
"&e%player% &ahas joined the network. (%server%)"
leave:
enabled
: true
message
:
"&e%player% &chas left the network. (%server%)"
chat:
enabled
: true
message
:
"&8[&3%server%&8] &e%player% &9» &7%message%"
vanished
:
"&cYou cannot send proxy messages while vanished. Your message must end with a '&e/&c' to speak."
switch:
enabled
: true
default
:
"&e%player% &7moved from &c%from% &7to &a%to%&7."
no-from
:
"&e%player% &7moved &7to &a%to%&7."
whisper:
send
:
"&8[&dyou&8] &f⇒ &8[&d%receiver%&8] &9» &e%message%"
receive
:
"&8[&d%sender%&8] &f⇒ &8[&dyou&8] &9» &e%message%"
error
:
"&c/spc-whisper (user) (message)"
discord:
enabled
: true
message
:
"**%server%** %player% » %message%"
embed:
use
: false
title
:
"[%server%] %player%"
message
:
"%message%"
color
:
"#FFC0CB"
use-timestamp
: true
command:
no-permission
:
"%plugin-prefix% &cSorry, you do not have permission to run this command."
unknown
:
"%plugin-prefix% &cUnknown command."
must-be-player
:
"%plugin-prefix% &cYou must be a player to run this command."
reload
:
"%plugin-prefix% &aThe plugin has been successfully reloaded!"
chat-lock:
usage
:
"%plugin-prefix% &cCorrect usage is &a/spc-chat all lock/unlock &c or &a/spc-chat lock/unlock"
single:
locked
:
"%plugin-prefix% &6%server% &cwill no longer send proxy chat messages."
unlocked
:
"%plugin-prefix% &6%server% &awill now send proxy chat messages."
all:
locked
:
"%plugin-prefix% &cAll servers will no longer send proxy chat messages."
unlocked
:
"%plugin-prefix% &aAll servers will now send proxy chat messages."
proxy-ban:
usage
:
"%plugin-prefix% &c/(un)ban (player)"
banned
:
"%plugin-prefix% &c%player% &7has been banned."
unbanned
:
"%plugin-prefix% &c%player% &7has been unbanned."
login-message
:
"&cYou have been banned from the proxy."
broadcast:
usage
:
"%plugin-prefix% &c/spc-broadcast (message)"
message
:
"%plugin-prefix% &8[&a&lBROADCAST&r&8] &6%message%"
# Discord Stuff
discord:
join:
enabled
: true
message
:
"%player% has joined the network. (%server%)"
use-timestamp
: true
# Incompatible with use-timestamp.
use-embed
: true
leave:
enabled
: true
message
:
"%player% has left the network. (%server%)"
use-timestamp
: true
# Incompatible with use-timestamp.
use-embed
: true
switch:
enabled
: true
message
:
"%player% has switched from %from% to %to%."
use-timestamp
: true
# Incompatible with use-timestamp.
use-embed
: true
chat:
enabled
: true
minecraft-message
:
"&8[&bDiscord&8] %role% &f%user% &9» &7%message%"
topic:
online
:
"There are %online% players online."
offline
:
"The proxy is offline."
proxy-status:
enabled
: true
messages:
enabled
:
"✅ Proxy enabled!"
disabled
:
"⛔ Proxy disabled."
title
:
"Server Status"
message
:
"Status: "
online
:
"Online ✅"
offline
:
"Offline ⛔"
use-timestamp
: true
# Console Stuff - Uses Minecraft Messages
console:
chat
: true
join
: true
leave
: true
switch
: true
discord-chat
: true
server-status
: true
# The message for any updates that are sent.
# The plugin-prefix is automatically appended to the beginning of this message.
update-message
:
"&7There is an update! You are on &c%old%. New version is &a%new%&7: &6%link%"
# DO NOT TOUCH THIS
file-version
: 10
- /spc-reload - Reloads the config files.
- /spc-chat - Lock/unlock the chat.
- /spc-whisper - Send a private message to someone.
- /spc-reply - Reply to a private message without specifying a user.
- /spc-ban - Ban a player from the proxy.
- /spc-unban - Unban a player from the proxy.
- /spc-broadcast - Broadcast a message to every player on the network.
- simpleproxychat.read.chat - Read chat messages.
- simpleproxychat.read.join - Read join messages.
- simpleproxychat.read.leave - Read leave messages.
- simpleproxychat.read.fake - Read fake join/leave messages. Must have the real permission too.
- simpleproxychat.read.switch - Read switch messages.
- simpleproxychat.read.update - Read update notifications.
- simpleproxychat.toggle.chat - Toggle proxy chat for a single server.
- simpleproxychat.toggle.chat.all - Toggle proxy chat for all servers.
- simpleproxychat.reload - Reload the config.
- simpleproxychat.ban - Ban someone.
- simpleproxychat.unban - Unban someone.
- simpleproxychat.whisper - Private messaging permissions.
- simpleproxychat.broadcast - Broadcast permissions.
- %plugin-prefix% - The plugin's designated prefix.
- %server% - The current connected server. Uses the alias if one is specified.
- %original_server% - Same as %server%, but does not use the alias.
- %to% - The current connected server. Uses the alias if one is specified.
- %original_to% - Same as %to%, but does not use the alias.
- %from% - The server the player just disconnected from. Uses the alias if one is specified.
- %original_from% - Same as %from%, but does not use the alias.
- %player% - The player's Minecraft username.
- %escaped_player% - The escaped player's Miencraft username. (Adds '\' before the '_' to prevent italics.)
- %sender% - The person sending the private message. Private Messaging Only
- %receiver% - The person receiving the private message. Private Messaging Only
- %user% - The player's Discord username.
- %nick% - The player's Discord nickname.
- %role% - The player's Discord role.
- %prefix% - The player's prefix. LuckPerms Only
- %suffix% - The player's suffix. LuckPerms Only
- %message% - The player's message.
- %epoch% - This gets the current time (in milliseconds). Formats can be used like this. An example would be <t:%epoch%>. Discord Only
- %time% - Similar to %epoch%, but uses a special formatting and timezone found in config.yml.
- %online% - Discord Status Only
- %max-players% - Discord Status Only
- As of right now, vanish support is only available on BungeeCord/Waterfall. The plugin will still function as normal, but if you go into vanish then it won't send a fake join/leave message.
- In order for prefixes and suffixes to work, you must have LuckPerms installed on the proxy. Then, you can use %prefix% and %suffix%.
- %epoch% and the timestamps only work in certain places on Discord. As an alternative, you can select some of the embeds to have use-timestamp: true. This is out of my control sadly...
BungeeCord/Waterfall Statistics
Velocity Statistics