SimpleProxyChat

[Bungee Chat Sync + Velocity Chat Sync] A simple plugin to allow global cross-server communication and messaging with support for PlaceholderAPI, LuckPerms, LiteBans, AdvancedBan, NetworkManager, and Discord.

4,57k

Quick challenge

How far can you run before the mobs catch you?

SimpleProxyChat

SimpleProxyChat Logo

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

---

installation

With PlaceholderAPI

1) You BungeeCord/Velocity use the *helper plugin* which you can download BungeeCord/Velocity. 1) Drag the helper plugin to each BungeeCord/Velocity 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. 1) Set `use-helper` to `true` in the `config.yml` for the proxy configuration. This will be in your BungeeCord/Velocity server. 1) Restart or reload the plugin! `/spc-reload`

> For not work support, the helper plugin is required. Additionally, not work can only be used for not work. 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 Bot Token. You can select *any* name you want. 1) Go to the Bot Token section. 1) Go to the Bot Token and give it the Bot Token scope. 1) Under Bot Token select; - Manage Channels (Bot Token: General Permissions) - Send Messages (Bot Token: Text Permissions) - Manage Messages (Bot Token: Text Permissions) - Read Message History (Bot Token: Text Permissions) - *+ Any others that you want to add...* 1) Copy the Bot Token at the bottom. 1) Paste the generated URL into a web browser. 1) Invite the bot to your server. 1) Go back to discord.com/developers. 1) Select your bot. 1) Click on Bot Token. 1) Click Bot Token and copy the token somewhere safe. 1) Scroll down to Bot Token. 1) Select Bot Token and Bot Token. 1) Place the plugin in the `plugins` folder on Bot Token. 1) Start your server once *fully*, then stop it. There *will* be errors, this is normal. 1) In the generated `ProxyChat/config.yml` file, paste your Bot Token and choose the appropriate channel you want messages being sent to. 1) Restart your proxy!

---

features

* ...and more! * ...and more! * ...and more! * ...and more! * ...and more! * ...and more! * ...and more! * ...and more! * ...and more! * ...and more! * ...and more!

---

configuration

config.yml ```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 ```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 ```

---

commands

* `/spc-reload` - Reloads the config files. * `/spc-chat` - Lock/unlock the chat. * `/spc-whipser` - 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.

---

permissions

* `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 a message to everyone on the server.

---

placeholders

* `%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 Minecraft username. (Adds '\' before the '_' to prevent italics.) * `%sender%` - The person sending the private message. Discord Status Only * `%receiver%` - The person receiving the private message. Discord Status Only * `%user%` - The player's Discord username. * `%nick%` - The player's Discord nickname. * `%role%` - The player's Discord role. * `%prefix%` - The player's prefix. Discord Status Only * `%suffix%` - The player's suffix. Discord Status Only * `%message%` - The player's message. * `%epoch%` - This gets the current time (in milliseconds). Formats can be used like Discord Status Only. An example would be `<t:%epoch%>`. Discord Status 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

---

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

ADS