beanbeanjuice / SimpleProxyChat

A bungeecord/waterfall plugin to send chat messages between servers.
GNU General Public License v3.0
8 stars 3 forks source link

SimpleProxyChat Logo

This is a Bungeecord Chat Sync, Velocity Chat Sync, and Proxy Chat Sync plugin. It is a simple plugin to allow global cross-server communication and messaging with support for PlaceholderAPI, LuckPerms, LiteBans, AdvancedBan, NetworkManager, and Discord.

installation

With PlaceholderAPI

1) You must use the helper plugin which you can download here. 1) Drag the helper plugin to each Spigot/Paper/Bukkit server that you want PlaceholderAPI support on.

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

1) Simply place the plugin in your plugins folder on BungeeCord/Waterfall/Velocity and restart your proxy!

With Discord

1) Go to discord.com/developers and select New Application. You can select any name you want. 1) Go to the OAuth2 section. 1) Go to the OAuth2 URL Generator and give it the bot scope. 1) Under bot permissions select;


features


configuration

config.yml

# ==========================================================
#                       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

# ==========================================================
#                       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

commands


permissions


placeholders


caveats

1) 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. 1) In order for prefixes and suffixes to work, you must have LuckPerms installed on the proxy. Then, you can use %prefix% and %suffix%. 1) %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... 😔


statistics

Velocity Statistics

velocity statistics

BungeeCord/Waterfall Statistics

bungeecord/waterfall statistics