This is a discussion topic for the Ore project, MultiChat. View the full project on Ore for downloads and more information.
MultiChat - Sponge Bridge
The essential BungeeCord chat management system has now arrived for Sponge!
Want to link together multiple sponge servers using BungeeCord? Now you can adjoin their chats, send private messages, make group chats, talk to other staff members, create announcements, bulletins and so much more!
Simply drop this JAR file into your sponge server’s “mods” folder, and also into your BungeeCord server’s “plugins” folder and you are good to go!
By prefix support do you mean the ability to set them from the plugin? If so, yes it is something I could look into.
But if you mean the ability to use the prefixes you have set On sponge then this feature should already be there haha. So if you are having issues with that feel free to drop me a message and I’ll try and figure out what could be going wrong, I’m guessing it’s probably down to the plugin setting the prefixes but it could be configuration.
Thanks for the fast and kind respons. We don’t get that around here very often =/
Yes that is exactly what I have been looking for, A cut and dry chat system for bungee! You are the only DEV I have seen so far to offer that, now what I was requesting was plugin prefix support VIA Luckperms or/and other permission plugins. As of now the only thing I have seen all require VAULT and only support Bukkit permissions, which is not supported by Sponge obviously. It can be very confusing, stressful and overwhelming for server/website DEVS like myself.
I’m so happy you put out this plugin! It’s going to help me so much.
One small request though, can you make it so their are custom server prefixes?
Here’s an example if I’m not making any sense.
any message from the survival server would say [Survival][Rank][Name]:message
and any message from say the creative server would say [Creative][Rank][Name]:message
It’s very interesting you should say that as I tested the plugin with LuckPerms exactly when I was making the sponge bridge, and I tested prefixes and it worked fine. I have built in support for LuckPerms prefixes right into the plugin, a couple of things you should check:
In the config file for MultiChat is the “fetch_display_names” part (which probably still talks about spigot even though it now works for sponge too…) set to true? If so then it should get the prefixes from your Sponge server, and should work with luckperms
If it isn’t working, then that is very odd, and I will right away go and investigate!
Finally returned home from stuffing my face with turkey and pie!
I have put about an hour with the settings and I still cant seem to get the Prefix from Luckperms to show in chat. I know for a fact that I set Luckperms up correctly as it shows the prefix if I disable Multichat.
Is there a config handle that I dont know about? Example %Prefix% %Suffix%
I feel like that should be a thing lol =P
Mmm, okay. So, is the luckperms you are using the BungeeCord version or the Local sponge version? Or both I guess. But the real thing I need to know is where you are setting the players prefixes. If you are setting them on the bungee luck perms then turn off the “fetch_display_names” bit of the multichat config. (i.e. set it to false) If you are setting the prefixes on the local sponge versions then “fetch_display_names” needs to be true. At the moment I haven’t distinguished between prefix/suffix in the config and just refer to the entire [Prefix]Name[Suffix] as their display name, but this is definitely something I can separate out
If that doesn’t work could you send me the MultiChat config file, along with a brief overview of how your bungeecord network is set up (i.e. what servers exist) and what kinds of prefixes luckperms is using, i.e. per group, per player etc.
I hope that my first paragraph solves the issue but if not then I shall have to do some hunting! Just seems odd as I managed to get it to work with LuckPerms when I tried
Sorry I sent a reply but forgot to actually click the reply button so I don’t know if it will notify you. I’m guessing it will anyway but I thought I’d send this in case not
Its taken me this long to realise that this feature pretty much already exists, I just forgot about it!
Take a look at this section of the config!
You can use things such as "[%SERVER%][%DISPLAYNAME%]: "
(Displayname includes any prefixes or suffixes that have been set)
##############################################################
# USES STANDARD MINECRAFT '&X' COLOUR/FORMAT CODES
# %NAME% = The name of the sender
# %DISPLAYNAME% = The display name of the sender
# %SERVER% = The server of the sender
#Global Chat Format
#Will display as [FORMAT] [MESSAGE]
globalformat: "&f%DISPLAYNAME%&f: &d"
##############################################################
Hey while Sponge are updating their plugin section, the old system ORE was replaced with a forum which is hard to host my files from. MultiChat is an all in one plugin, so the same JAR file works on Sponge, Spigot and BungeeCord. So you can just download it from spigot here: https://www.spigotmc.org/resources/multichat.26204/
Hey I was wondering if you could help me out. I keep receiving these errors and it disconnects players and won’t let them join. It’s occurring on multiple servers all connected to BungeeCord (waterfall) and all different kinds of servers. Do you know what this is about?
[15:49:54] [Netty Epoll Server IO #13/ERROR] [FML]: There was a critical exception handling a packet on channel MultiChat
java.util.NoSuchElementException: No value present
at java.util.Optional.get(Optional.java:135) ~[?:1.8.0_45-internal]
at com.olivermartin410.plugins.MultiChatRawDataListener.handlePayload(MultiChatRawDataListener.java:24) ~[MultiChatRawDataListener.class:?]
at org.spongepowered.mod.network.SpongeRawChannel.handlePacket(SpongeRawChannel.java:91) ~[SpongeRawChannel.class:1.10.2-2202-5.1.0-BETA-2078]
at org.spongepowered.mod.network.SpongeRawDataInboundHandler.channelRead0(SpongeRawDataInboundHandler.java:50) ~[SpongeRawDataInboundHandler.class:1.10.2-2202-5.1.0-BETA-2078]
at org.spongepowered.mod.network.SpongeRawDataInboundHandler.channelRead0(SpongeRawDataInboundHandler.java:36) ~[SpongeRawDataInboundHandler.class:1.10.2-2202-5.1.0-BETA-2078]
at io.netty.channel.SimpleChannelInboundHandler.channelRead(SimpleChannelInboundHandler.java:105) ~[SimpleChannelInboundHandler.class:?]
at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:333) ~[AbstractChannelHandlerContext.class:?]
at io.netty.channel.AbstractChannelHandlerContext.fireChannelRead(AbstractChannelHandlerContext.java:319) ~[AbstractChannelHandlerContext.class:?]
at io.netty.channel.DefaultChannelPipeline.fireChannelRead(DefaultChannelPipeline.java:787) ~[DefaultChannelPipeline.class:?]
at io.netty.channel.embedded.EmbeddedChannel.writeInbound(EmbeddedChannel.java:169) ~[EmbeddedChannel.class:?]
at net.minecraftforge.fml.common.network.internal.FMLProxyPacket.func_148833_a(FMLProxyPacket.java:100) [FMLProxyPacket.class:?]
at net.minecraft.network.NetworkManager.channelRead0(NetworkManager.java:149) [eo.class:?]
at net.minecraft.network.NetworkManager.channelRead0(NetworkManager.java:51) [eo.class:?]
at io.netty.channel.SimpleChannelInboundHandler.channelRead(SimpleChannelInboundHandler.java:105) [SimpleChannelInboundHandler.class:?]
at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:333) [AbstractChannelHandlerContext.class:?]
at io.netty.channel.AbstractChannelHandlerContext.fireChannelRead(AbstractChannelHandlerContext.java:319) [AbstractChannelHandlerContext.class:?]
at net.minecraftforge.fml.common.network.handshake.NetworkDispatcher.handleServerSideCustomPacket(NetworkDispatcher.java:446) [NetworkDispatcher.class:?]
at net.minecraftforge.fml.common.network.handshake.NetworkDispatcher.channelRead0(NetworkDispatcher.java:269) [NetworkDispatcher.class:?]
at net.minecraftforge.fml.common.network.handshake.NetworkDispatcher.channelRead0(NetworkDispatcher.java:73) [NetworkDispatcher.class:?]
at io.netty.channel.SimpleChannelInboundHandler.channelRead(SimpleChannelInboundHandler.java:105) [SimpleChannelInboundHandler.class:?]
at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:333) [AbstractChannelHandlerContext.class:?]
at io.netty.channel.AbstractChannelHandlerContext.fireChannelRead(AbstractChannelHandlerContext.java:319) [AbstractChannelHandlerContext.class:?]
at io.netty.handler.codec.ByteToMessageDecoder.channelRead(ByteToMessageDecoder.java:163) [ByteToMessageDecoder.class:?]
at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:333) [AbstractChannelHandlerContext.class:?]
at io.netty.channel.AbstractChannelHandlerContext.fireChannelRead(AbstractChannelHandlerContext.java:319) [AbstractChannelHandlerContext.class:?]
at io.netty.handler.codec.ByteToMessageDecoder.channelRead(ByteToMessageDecoder.java:163) [ByteToMessageDecoder.class:?]
at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:333) [AbstractChannelHandlerContext.class:?]
at io.netty.channel.AbstractChannelHandlerContext.fireChannelRead(AbstractChannelHandlerContext.java:319) [AbstractChannelHandlerContext.class:?]
at io.netty.handler.codec.ByteToMessageDecoder.channelRead(ByteToMessageDecoder.java:163) [ByteToMessageDecoder.class:?]
at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:333) [AbstractChannelHandlerContext.class:?]
at io.netty.channel.AbstractChannelHandlerContext.fireChannelRead(AbstractChannelHandlerContext.java:319) [AbstractChannelHandlerContext.class:?]
at io.netty.handler.timeout.ReadTimeoutHandler.channelRead(ReadTimeoutHandler.java:150) [ReadTimeoutHandler.class:?]
at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:333) [AbstractChannelHandlerContext.class:?]
at io.netty.channel.AbstractChannelHandlerContext.fireChannelRead(AbstractChannelHandlerContext.java:319) [AbstractChannelHandlerContext.class:?]
at io.netty.channel.DefaultChannelPipeline.fireChannelRead(DefaultChannelPipeline.java:787) [DefaultChannelPipeline.class:?]
at io.netty.channel.epoll.EpollSocketChannel$EpollSocketUnsafe.epollInReady(EpollSocketChannel.java:722) [EpollSocketChannel$EpollSocketUnsafe.class:?]
at io.netty.channel.epoll.EpollEventLoop.processReady(EpollEventLoop.java:326) [EpollEventLoop.class:?]
at io.netty.channel.epoll.EpollEventLoop.run(EpollEventLoop.java:264) [EpollEventLoop.class:?]
at io.netty.util.concurrent.SingleThreadEventExecutor$2.run(SingleThreadEventExecutor.java:116) [SingleThreadEventExecutor$2.class:?]
at java.lang.Thread.run(Thread.java:745) [?:1.8.0_45-internal]
mmm, I cant say Ive ever seen anything like that before. I haven’t used waterfall myself so I dont know if that could make a difference… I shall have a look into it to see if there is anything obvious