Comments (21)
I can confirm that i am experiencing a similar issue on my server
OS: Ubuntu MATE 18.04.3 LTS with Linux kernel 5.2.11 64 bit
Java:
openjdk version "1.8.0_242"
OpenJDK Runtime Environment (build 1.8.0_242-8u242-b08-0ubuntu3~18.04-b08)
OpenJDK 64-Bit Server VM (build 25.242-b08, mixed mode)
MC ver: 1.7.5
Proxy Ver: Waterfall-Bootstrap:1.15-SNAPSHOT:87d2873:326
Local Ver: 1.15.2 paper-137
from development.
Hi guys,
Thanks for the report. I am currently working on v1.8.
I cannot seem to re-create this issue? My luckperms is definitely checking for the colour code permission:
https://i.imgur.com/4FT2Qcc.png
I will investigate further!
from development.
I think the issue is more a lack of finer control of colors.
Like, i think we should be able to control color usage per chat type.
like separate permissions for using color in global, local, groups etc
from development.
I was under the impression that the issue was stating there was a problem with the functioning of the global chat colour permissions?
It would be possible to allocate permissions for each of the different types of chat, but it is not necessarily a quick fix as they all operate in slightly different ways. I will add it to my list.
from development.
well, this issue could be due to some sort of error in configured permissions for a particular server or some plugin conflict.
although, when i made my comment, for some reason we randomly could or couldnt use colors in chat (even tho donors and staff have the color permission) but then sometimes we randomly could.
it is possible that we are having problems with our connection between LP and our Mysql database.
although, it doesnt seem to have happened since then. our daily server restart could have fixed it
from development.
My issue is that it does not check, period. I am using LuckPerms on an sql database with plugin messaging installed on each server and the proxy server. I have no other affecting chat plugins (I disabled all plugins that I thought could intefere, nothing). I haven't tested since the report but I can maybe look at it again later.
from development.
Did you try /lpb verbose? Just to check. As MultiChat checks for colour permissions on the bungeecord side not the spigot side.
I can't seem to re-create the issue just yet so any additional info would help. You can also try running /multichat debug and sending me the console logs
from development.
Ohhhhh, there's a separate Bungee command!!! I didn't know that. I'll try both of those.
from development.
Here's the logs
>....�=>.... [01:03:16 INFO]: [LP] Verbose logging enabled for checks matching its_meow.
>.... [01:03:19 INFO]: [MC] CHAT > [Survival] G- wyatt: &4<est
>.... [01:03:19 INFO]: [LP] VB > its_meow - multichat.spam.bypass - undefined
>.... [01:03:19 INFO]: [LP] VB > its_meow - multichat.chat.link - undefined
>.... [01:03:19 INFO]: [LP] VB > its_meow - multichat.chat.colour - false
>.... [01:03:19 INFO]: [LP] VB > its_meow - multichat.chat.color - false
>.... [01:03:19 INFO]: [LP] VB > its_meow - multichat.chat.colour - false
>.... [01:03:19 INFO]: [LP] VB > its_meow - multichat.chat.color - false
>....[01:03:50 INFO]: [MC] [DEBUG] Debug mode toggled
�=>.... [01:03:55 INFO]: [MC] [DEBUG] its_meow- about to check for spam
>.... [01:03:55 INFO]: [MC] [DEBUG] its_meow - checking for spam...
>.... [01:03:55 INFO]: [MC] [DEBUG] its_meow - does not have bypass perm...
>.... [01:03:55 INFO]: [MC] [DEBUG] Sent message on multichat:ch channel!
>.... [01:03:55 INFO]: [MC] [DEBUG] [PlayerMetaManager] Updating display name...
>.... [01:03:55 INFO]: [MC] [DEBUG] [PlayerMetaManager] Player is present!
>.... [01:03:55 INFO]: [MC] [DEBUG] [PlayerMetaManager] Fetch Spigot Display Names is true
>.... [01:03:55 INFO]: [MC] [DEBUG] [PlayerMetaManager] MultiChat is in charge of display names
>.... [01:03:55 INFO]: [MC] [DEBUG] [PlayerMetaManager] Set as: wyatt
>.... [01:03:55 INFO]: [MC] [DEBUG] [multichat:world] Got an incoming channel message!
>.... [01:03:55 INFO]: [MC] [DEBUG] [multichat:world] Player is online!
>.... [01:03:55 INFO]: [MC] [DEBUG] [multichat:world] Got their meta data correctly
>.... [01:03:55 INFO]: [MC] [DEBUG] [multichat:world] Set their world to: spawn
>.... [01:03:55 INFO]: [MC] [DEBUG] [PlayerMetaManager] Updating display name...
>.... [01:03:55 INFO]: [MC] [DEBUG] [PlayerMetaManager] Player is present!
>.... [01:03:55 INFO]: [MC] [DEBUG] [PlayerMetaManager] Fetch Spigot Display Names is true
>.... [01:03:55 INFO]: [MC] [DEBUG] [PlayerMetaManager] MultiChat is in charge of display names
>.... [01:03:55 INFO]: [MC] [DEBUG] [PlayerMetaManager] Set as: wyatt
>.... [01:03:55 INFO]: [MC] [DEBUG] [PlayerMetaManager] Updating display name...
>.... [01:03:55 INFO]: [MC] [DEBUG] [PlayerMetaManager] Player is present!
>.... [01:03:55 INFO]: [MC] [DEBUG] [PlayerMetaManager] Fetch Spigot Display Names is true
>.... [01:03:55 INFO]: [MC] [DEBUG] [PlayerMetaManager] MultiChat is in charge of display names
>.... [01:03:55 INFO]: [MC] [DEBUG] [PlayerMetaManager] Set as: wyatt
>.... [01:03:55 INFO]: [MC] [DEBUG] [multichat:dn] Got an incoming channel message!
>.... [01:03:55 INFO]: [MC] [DEBUG] [multichat:dn] Player exists!
>.... [01:03:55 INFO]: [MC] [DEBUG] [multichat:dn] Player meta exists!
>.... [01:03:55 INFO]: [MC] [DEBUG] [multichat:dn] The displayname received is: wyatt
>.... [01:03:55 INFO]: [MC] [DEBUG] [PlayerMetaManager] Updating display name...
>.... [01:03:55 INFO]: [MC] [DEBUG] [PlayerMetaManager] Player is present!
>.... [01:03:55 INFO]: [MC] [DEBUG] [PlayerMetaManager] Fetch Spigot Display Names is true
>.... [01:03:55 INFO]: [MC] [DEBUG] [PlayerMetaManager] MultiChat is in charge of display names
>.... [01:03:55 INFO]: [MC] [DEBUG] [PlayerMetaManager] Set as: wyatt
>.... [01:03:55 INFO]: [MC] [DEBUG] [PlayerMetaManager] Updating display name...
>.... [01:03:55 INFO]: [MC] [DEBUG] [PlayerMetaManager] Player is present!
>.... [01:03:55 INFO]: [MC] [DEBUG] [PlayerMetaManager] Fetch Spigot Display Names is true
>.... [01:03:55 INFO]: [MC] [DEBUG] [PlayerMetaManager] MultiChat is in charge of display names
>.... [01:03:55 INFO]: [MC] [DEBUG] [PlayerMetaManager] Set as: wyatt
>.... [01:03:55 INFO]: [MC] [DEBUG] [multichat:world] Got an incoming channel message!
>.... [01:03:55 INFO]: [MC] [DEBUG] [multichat:world] Player is online!
>.... [01:03:55 INFO]: [MC] [DEBUG] [multichat:world] Got their meta data correctly
>.... [01:03:55 INFO]: [MC] [DEBUG] [multichat:world] Set their world to: spawn
>.... [01:03:55 INFO]: [LP] VB > its_meow - multichat.spam.bypass - undefined
>.... [01:03:55 INFO]: [LP] VB > its_meow - multichat.chat.link - undefined
>.... [01:03:55 INFO]: [MC] [DEBUG] [PlayerMetaManager] Updating display name...
>.... [01:03:55 INFO]: [MC] [DEBUG] [PlayerMetaManager] Player is present!
>.... [01:03:55 INFO]: [LP] VB > its_meow - multichat.chat.colour - false
>.... [01:03:55 INFO]: [MC] [DEBUG] [PlayerMetaManager] Fetch Spigot Display Names is true
>.... [01:03:55 INFO]: [LP] VB > its_meow - multichat.chat.color - false
>.... [01:03:55 INFO]: [MC] [DEBUG] [PlayerMetaManager] MultiChat is in charge of display names
>.... [01:03:55 INFO]: [MC] [DEBUG] [PlayerMetaManager] Set as: wyatt
>.... [01:03:55 INFO]: [MC] [DEBUG] [PlayerMetaManager] Updating display name...
>.... [01:03:55 INFO]: [MC] [DEBUG] [PlayerMetaManager] Player is present!
>.... [01:03:55 INFO]: [MC] [DEBUG] [PlayerMetaManager] Fetch Spigot Display Names is true
>.... [01:03:55 INFO]: [MC] [DEBUG] [PlayerMetaManager] MultiChat is in charge of display names
>.... [01:03:55 INFO]: [MC] [DEBUG] [PlayerMetaManager] Set as: wyatt
>.... [01:03:55 INFO]: [MC] [DEBUG] [multichat:dn] Got an incoming channel message!
>.... [01:03:55 INFO]: [MC] [DEBUG] [multichat:dn] Player exists!
>.... [01:03:55 INFO]: [MC] [DEBUG] [multichat:dn] Player meta exists!
>.... [01:03:55 INFO]: [MC] [DEBUG] [multichat:dn] The displayname received is: wyatt
>.... [01:03:55 INFO]: [MC] [DEBUG] [PlayerMetaManager] Updating display name...
>.... [01:03:55 INFO]: [MC] [DEBUG] [PlayerMetaManager] Player is present!
>.... [01:03:55 INFO]: [MC] [DEBUG] [PlayerMetaManager] Fetch Spigot Display Names is true
>.... [01:03:55 INFO]: [MC] [DEBUG] [PlayerMetaManager] MultiChat is in charge of display names
>.... [01:03:55 INFO]: [MC] [DEBUG] [PlayerMetaManager] Set as: wyatt
>.... [01:03:55 INFO]: [MC] [DEBUG] [PlayerMetaManager] Updating display name...
>.... [01:03:55 INFO]: [MC] [DEBUG] [PlayerMetaManager] Player is present!
>.... [01:03:55 INFO]: [MC] [DEBUG] [PlayerMetaManager] Fetch Spigot Display Names is true
>.... [01:03:55 INFO]: [MC] [DEBUG] [PlayerMetaManager] MultiChat is in charge of display names
>.... [01:03:55 INFO]: [MC] [DEBUG] [PlayerMetaManager] Set as: wyatt
>.... [01:03:55 INFO]: [MC] [DEBUG] [multichat:world] Got an incoming channel message!
>.... [01:03:55 INFO]: [MC] [DEBUG] [multichat:world] Player is online!
>.... [01:03:55 INFO]: [MC] [DEBUG] [multichat:world] Got their meta data correctly
>.... [01:03:55 INFO]: [MC] [DEBUG] [multichat:world] Set their world to: spawn
>.... [01:03:55 INFO]: [MC] [DEBUG] [PlayerMetaManager] Updating display name...
>.... [01:03:55 INFO]: [MC] [DEBUG] [PlayerMetaManager] Player is present!
>.... [01:03:55 INFO]: [MC] [DEBUG] [PlayerMetaManager] Fetch Spigot Display Names is true
>.... [01:03:55 INFO]: [MC] [DEBUG] [PlayerMetaManager] MultiChat is in charge of display names
>.... [01:03:55 INFO]: [MC] [DEBUG] [PlayerMetaManager] Set as: wyatt
>.... [01:03:55 INFO]: [MC] [DEBUG] [PlayerMetaManager] Updating display name...
>.... [01:03:55 INFO]: [MC] [DEBUG] [PlayerMetaManager] Player is present!
>.... [01:03:55 INFO]: [MC] [DEBUG] [PlayerMetaManager] Fetch Spigot Display Names is true
>.... [01:03:55 INFO]: [MC] [DEBUG] [PlayerMetaManager] MultiChat is in charge of display names
>.... [01:03:55 INFO]: [MC] [DEBUG] [PlayerMetaManager] Set as: wyatt
>.... [01:03:55 INFO]: [MC] [DEBUG] [multichat:dn] Got an incoming channel message!
>.... [01:03:55 INFO]: [MC] [DEBUG] [multichat:dn] Player exists!
>.... [01:03:55 INFO]: [MC] [DEBUG] [multichat:dn] Player meta exists!
>.... [01:03:55 INFO]: [MC] [DEBUG] [multichat:dn] The displayname received is: wyatt
>.... [01:03:55 INFO]: [MC] [DEBUG] [PlayerMetaManager] Updating display name...
>.... [01:03:55 INFO]: [MC] [DEBUG] [PlayerMetaManager] Player is present!
>.... [01:03:55 INFO]: [MC] [DEBUG] [PlayerMetaManager] Fetch Spigot Display Names is true
>.... [01:03:55 INFO]: [MC] [DEBUG] [PlayerMetaManager] MultiChat is in charge of display names
>.... [01:03:55 INFO]: [MC] [DEBUG] [PlayerMetaManager] Set as: wyatt
>.... [01:03:55 INFO]: [MC] [DEBUG] {multichat:chat} Got a plugin message
>.... [01:03:55 INFO]: [MC] [DEBUG] {multichat:chat} UUID = 81d9726a-56d4-4419-9a2a-be1d7f7f7ef1
>.... [01:03:55 INFO]: [MC] [DEBUG] {multichat:chat} Message = test
>.... [01:03:55 INFO]: [MC] [DEBUG] {multichat:chat} Format (before removal of double chars) = [Survival] G- wyatt:
>.... [01:03:55 INFO]: [MC] [DEBUG] {multichat:chat} Format = [Survival] G- wyatt:
>.... [01:03:55 INFO]: [MC] [DEBUG] {multichat:chat} Got player successfully! Name = its_meow
>.... [01:03:55 INFO]: [MC] [DEBUG] {multichat:chat} Global Channel Available? = true
>.... [01:03:55 INFO]: [MC] [DEBUG] CHANNEL #global: Got a message for the channel
>.... [01:03:55 INFO]: [MC] [DEBUG] CHANNEL #global: SENDER = its_meow
>.... [01:03:55 INFO]: [MC] [DEBUG] CHANNEL #global: MESSAGE = test
>.... [01:03:55 INFO]: [MC] [DEBUG] CHANNEL #global: FORMAT = [Survival] G- wyatt:
>.... [01:03:55 INFO]: [MC] CHAT > [Survival] G- wyatt: &4<est
>.... [01:03:55 INFO]: [LP] VB > its_meow - multichat.chat.colour - false
>.... [01:03:55 INFO]: [LP] VB > its_meow - multichat.chat.color - false
from development.
Thanks for that, what other other plug-ins do you have that could affect the chat? Particularly on your paper server?
from development.
Not many. Out of my plugins I identified StaffChat (I prefer vs MultiChat's), and ChatInjector. Disabling both made no change at all. I've also noticed that on other servers it also retains the color in global.
Full plugin list, just in case:
- AdvancedNMOTD
- Annoucements
- ASyncWorldEdit
- BetterMending
- BetterSleeping
- BileTools
- BKCommonLib
- BossShopPro
- BuycraftX
- Chairs
- ChatInjector
- Citizens
- CommandAliases
- CoreProtect
- Dynmap
- Dynmap-GriefPrevention
- EssentialsX (I do not have Chat, and also have denied color perms either way)
- EssentialsX-Spawn
- FastLeafDecay
- GriefPrevention
- HolographicDisplays
- LagMonitor
- LibsDisguises
- LuckPerms
- MultiChat-Spigot
- Multiverse
- Multiverse-Portals
- MyCommand
- NuVotifier
- OldCombatMechanics
- PlaceholderAPI
- ProtocolLib
- SilkSpawners
- StaffChat
- SuperVanish
- TreeCapitator
- Vault
- VotingPlugin
- Wild
- WitherAC
- WorldBorder
- WorldEdit
- WorldGuard
On Bungee/Waterfall I have:
- BungeeAdminTools
- LuckPerms
- MultiChat
- MyCommand-Bungeecord
- NuVotifier
- Yamler
from development.
Okay thank you, can you also send your multichat config files from bungee and spigot? I’m really struggling to see why this is happening. I want to say it must be another plugin but not sure I can rule out multichat yet.
Thanks.
from development.
I also just want to check if it could still be a lp error. Do you have the * permission set at all?
Or some kind of multichat.* permission anywhere
multichat.chat.*?
Im sure thats probably not the issue, but I want to rule out all possibilities.
from development.
Here's my configs.
configs.zip
from development.
Okay so I tested it on my hub server which has less plugins, and colors were NOT displaying. So obviously one of my plugins is misbehaving.
I also updated to 1.8.1
from development.
Possible workaround that should work: Add a configuration option to remove &(x) color codes from chat altogether if a user doesn't have permission. I've done the same with regex rules but regex rules don't have permission nodes (which would also allow the same workaround to exist if added), so staff can't do it either.
from development.
I am starting to be pretty sure another plugin is causing this issue. Because In the console you showed me, Multichat prints out the colour codes not translated. It says "&c&l", whereas in game you are seeing them translated into a blank message. But MultiChat logs things in the console exactly how they will be sent.
For example, if I sent "&4test", the console shows "test" shown in red.
I am not saying it definitely isn't multichat, but I am confused why MultiChat displays it correctly in the console and it is not appearing correctly on the screen.
I just did some testing of my own and it seems to be working correctly as far as I can tell.
Perhaps you could try updating to MultiChat 1.8.1 in case this makes a difference? It shouldn't do, but it will also allow me to send you a jar with some extra debug messages in to try and figure out what is causing the problem for you.
from development.
Sorry ignore my last message. For some reason I didn't see either of your two appear before it!
Yes in that case it is definitely one of your plugins misbehaving. I could potentially look to strip away the colour codes if the player doesn't have permission, but plugins should always maintain changes from other plugins where possible. For example, a faction leader in some instances might be allowed to chat in colours and the faction plugin could deal with this. Then it would be respected by MultiChat. I know it is a random scenario, but in general any changes by other plugins should be left alone.
Glad that is sorted out. You will just have to remove the plugins one by one until you discover which one is the culprit!
If you need anything else just let me know :)
from development.
Is it possible to add a permission check to regex rules? This way I could implement a workaround easily by just setting the permission to the color permission, and only applying the regex rule to global/local chat.
from development.
Yes it would be possible. I will look to add it in a version as soon as possible :)
from development.
This has now been implemented and will be released in v1.9 (which is due for release VERY soon!)
regex_rules:
# Example rule to replace [bold] with the format code %l to make bold text
- look_for: '\[bold\]'
replace_with: "&l"
permission: "multichat.regexrules.bold" # You can choose to specify permissions in order for the regex rules to apply
# Example rule to replace [italic] with the format code %o to make italic text
- look_for: '\[italic\]'
replace_with: "&o"
regex_actions:
# Example rule to kick someone who says a specific phrase
- look_for: 'kickmeplzrightnow'
command: "kick %PLAYER% You asked for it!"
cancel: false
spigot: true
- look_for: 'thisisabadword'
command: "kick %PLAYER% You are now allowed to say that here!"
permission: "!multichat.chat.badwords" # If the permission starts with !, then the action will only apply to players WITHOUT that permission.
cancel: true
spigot: true```
from development.
Related Issues (20)
- Add customizable messages for Local (e.g. Nicknames)
- Mute durations
- Quitmessages are visible even when premiumvanish vanishmode active HOT 1
- Aliases for modchat (conflict with mcMMO)
- Chat messages containing hex colour codes don't appear in chat.
- an '@' feature! where someone can ping you in game HOT 3
- MultiChat Prefix Not Showing With LuckPerms, Even With %PREFIX%
- Velocity Support
- Add tab completions in commands
- Feature request: Bypass permission for regex_actions
- multi bungeecord setup breaks /msg and /gc
- Support for a /separate command
- Add support for Fabric
- Private Message Event
- Private Messages are in Actionbar at 1.19 HOT 1
- Question PostEvents
- Option to cancel chat events for not global chat
- Not working correctly with 1.20.4
- Received chat packet with missing or invalid signature.
- Chat won't sync between 1.20 and 1.8 servers HOT 1
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from development.