Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

People can use color codes in chat even without the permission and config nodes disabled #8701

Open
potatoru opened this issue May 7, 2024 · 2 comments
Labels
bug report Reports of bugs/inconsistencies

Comments

@potatoru
Copy link

potatoru commented May 7, 2024

Description of Issue

Players are still able to use colour codes (and hex colours) in the chat, even if they do not have the permission nodes and the options in Settings/Chat.yml dictates they are disabled.

Version Information

[23:58:47 INFO]: Версия плагина CMI: 9.7.2.5 MySQL
[23:58:47 INFO]: CMILib: 1.4.7.5
[23:58:47 INFO]: Версия сервера: Purpur(2175) 1.20.4-R0.1-SNAPSHOT-
[23:58:47 INFO]: CMI Экономика: Enabled Версия Vault: 1.7.3-CMICMI Чат: Enabled
[23:58:47 INFO]: Модули -> 24 включено 35 отключено: spawnerProximity, cuffed, mirror, tablist, versionCheck, armorEffects, moneyCheque, skin, elytraBoost, eventCommands, rideAnimation, elytraLaunch, bossBarCompass, chatBubble, playerCombat, votifier, shulkerBackpack, attachedCommands, spawnerCharge, namePlates, hpBossBar, launchPad, elytraExploit, anvilRenameColor, spawners, playerChatTag, flightCharge, deathMessages, disabledEnchants, worldLimitsElytra, worldLimits, ranks, sitAnimation, warmup, totemBehavior

Errors

No response

Relevant Config Sections

Chat:
  Colors:
    # If set to true then all public messages will be filtered from color codes and will allow to colorize them with appropriate permission node
    # cmi.colors.publicmessage.[colorName]
    # Colors: black(&0), darkblue(&1), darkgreen(&2), darkaqua(&3), darkred(&4), darkpurple(&5), gold(&6), gray(&7), darkgray(&8), blue(&9), green(&a), aqua(&b), red(&c), lightpurple(&d), yellow(&e), white(&f), magic(&k), bold(&l), strikethrough(&m), underline(&n), italic(&o), reset(&r)
    PublicMessage: false # tested with both these options as 'true' and 'false'
    PrivateMessage: false


### Relevant Plugins

_No response_

### Agreements

- [X] My server is supported by CMI.
- [X] My version of CMI at the time of this report is up to date.
- [X] I have searched the github and asked around before making this report.
@potatoru potatoru added the bug report Reports of bugs/inconsistencies label May 7, 2024
@Zrips
Copy link
Owner

Zrips commented May 16, 2024

Show me your entire chat.yml file

@potatoru
Copy link
Author

Chat:
  # Will try to modify chat to display it in defined format
  ModifyChatFormat: true
  # When set to true, regular and private messages (excludes clean messages) will have additional information when hovering over it (PlaceHolderAPI supported) and can be clicked for quick reply option
  # To change default hover over messages seen on sent message, go to your locale file to Chat section
  ClickHoverMessages: true
  DiscordSRV:
    # Enables support for DiscordSRV plugin
    Enabled: true
    # Defines name of global chat channel in discordsrv
    GlobalChannel: global
    # Indicator which can be used as {discord} in chat format to indicate that message came from discord and not ingame
    Label: '&2[&7D&2]'
    UnlinkedLabel: '&4[&cD&4]'
    # When enabled and you have ranged messages enabled, we will send all of them to DiscordSRV
    # When disabled, only shouts and messages sent by players with cmi.chat.rangebypass permission node will be visible in discord
    RangedMessages: false
  # Enables support for DynMap web chat
  DynMapChat: false
  # When set to false, each time you will use /r you will reply to person you previously sent message directly or to person who sent you message if there is none you have conversion before
  # When this set to true, players with /r will reply to person who last sent private message. This can result in confusion when using /r while getting private messages from multiple players
  ReplyToLastMessenger: true
  # If ReplyToLastMessenger is set to false, then timeOut will be taken into consideration to who you should reply
  # If you had conversation in last 120 seconds (default) then even receiving message from 3rd person, you will still reply to original player
  # If you had conversation in longer then 120 seconds period, then you will reply to latest person who send you a message
  LastMessengerTimeOut: 120
  # When set to true players will need to have cmi.command.msg.[groupname].send where [groupName] is receivers main permission group
  PrivateMessagesGroups: false
  # When set to false, web pge links in a chat will not get shortened to default [LINK] format
  TranslateLink: true
  # Defines regex when replacing url in chat with short word
  # Examples:
  # (https?:\/\/(?:www\.|(?!www))[a-zA-Z0-9][a-zA-Z0-9-]+[a-zA-Z0-9]\.[^\s]{2,}|www\.[a-zA-Z0-9][a-zA-Z0-9-]+[a-zA-Z0-9]\.[^\s]{2,}|https?:\/\/(?:www\.|(?!www))[a-zA-Z0-9]\.[^\s]{2,}|www\.[a-zA-Z0-9]\.[^\s]{2,})
  # ((http|https|ftp|ftps)\:\/\/)?[a-zA-Z0-9\-]+\.[a-zA-Z]{2,3}(\/\S*)?
  # ((http|https|ftp|ftps)\:\/\/)?[a-zA-Z0-9\-]+\.[a-zA-Z]{2,3}(\/\S*)?([^\s]+)
  LinkRegex: (^| )((http|https|ftp|ftps)\:\/\/)?[a-zA-Z0-9\-]+\.[a-zA-Z]{1,3}(\/\S*)?([^\s|^\)^"^'^.]+)
  HoverItems:
    # When set to true, particular variables in chat will be translated into items player are holding. List of variables belove
    Enabled: true
    # Defines regex when replacing item line in chat with players item in hand information. Only works when CMI hover over chat format is enabled
    ItemRegex:
    - (\%item\%)
    - (\[item\])
    - (\%i\%)
  Bungee:
    # Attention! This will require you to have CMI Bungee plugin which can be found at zrips.net
    # Or direct download https://www.zrips.net/cmi/
    # Do you want to enable private messaging over bungeecord
    # Bungee cord support needs to be enabled for this to have any effect
    Messages: false
    # Do you want to enable public messaging over bungeecord
    # Player needs to have cmi.bungee.publicmessages.[servername] permission node to be able to send messages to target server
    PublicMessages: false
    # Do you want to enable staff messaging over bungeecord
    StaffMessages: false
  # Used for simple chat messages. Optional variables: {displayName} {world} {prefix} {suffix} {group} {shout} {message} {nicknameprefix}. Supporting PlaceHolderAPI variables like %player_server%
  # ATTENTION! Dont use gradient colors for {message} variable, if you want to apply gradient for it, utilize GeneralMessageFormat section
  GeneralFormat: '%luckperms_meta_cm_group_prefix% %simpleclans_tag_label%&f{displayName}&7:
    &r{message}'
  # Will define message format itself, this allows to have gradients in messages
  # It NEEDS to contain {message} otherwise we will ignore this setup
  # For 1.16+ servers you can use color gradients like '{#b3a28f>}{message}{#d7b8e6<}'
  # You can have more than 2 colors in gradient. To define it repeat {message} variable. For example '{#b3a28f>}{message}{#5c6999<>}{message}{#d7b8e6<}'
  # Use %cmi_user_chatcolor% to add players choosen chat color
  GeneralMessageFormat: '{message}'
  Ranged:
    # Defines range of regular messages to travel
    # Set to -1 to disable range restriction
    General: 500
    # Defines range of shout messages to travel
    # Shout messages should start with ! and player should have cmi.chat.shout permission
    # GeneralRange should be enabled
    # set to 0 to shout across all worlds, -1 to disable
    Shout: -1
    # Defines cost for each shout message
    ShoutCost: 0
    # List of message range limits
    # Player count fallowed by range
    # Player amount defines from how many we should use this range
    Dynamic:
      Use: false
      Limits:
      - 1-0
      - 10-1000
      - 20-500
      - 30-400
      - 40-300
      - 50-200
  # Prefix used to indicate that message should be sent to public chat instead of current players chat room
  # Set it to empty field if you want this feature to be disabled
  ChatRoomShout: '!'
  # Time in seconds you want to keep chat rooms alive before removing them
  # This only applies to empty rooms after last user leaves it
  ChatRoomLife: 3600
  # Defines suggested commands when you click on public, private and similar messages. [playerName], [playerDisplayName] and [playerNickName]  can be used to include players name
  ClickSuggestions:
    pubmsg: /msg [playerNickName]
    privmsg: ''
    staffmsg: ''
    helpop: ''
    chatroom: ''
    discord: ''
  # Defines command (one command per type) to be performed by player when clicked on players name
  # When this is defined then ClickSuggestions will be changed to shift+left click action for suggested command
  # Command is performed as player, if you want to perform it from console then add asConsole! variable at the start of it
  ClickCommands:
    pubmsg: ''
    privmsg: ''
    staffmsg: ''
    helpop: ''
    chatroom: ''
    discord: ''
  # Use numeric increments to separate groups from each other. If player has more than one, then line with higher number will be used
  # Add as many lines as you need too
  # cmi.chatgroup.[id] permnission node to use
  # Permission example: cmi.chatgroup.2

  # ATTENTION! Dont use gradient colors for {message} variable, if you want to apply gradient for it, utilize GroupMessageFormat section
  GroupFormat:
    '1': '{prefix}&f{displayName}&f: &r{message}'
    '2': '{prefix}&f{displayName}&7: &r{message}'
    '3': '{prefix}&f{displayName}&8: &r{message}'
  # Use numeric increments to separate groups from each other. If player has more than one, then line with higher number will be used
  # Add as many lines as you need too
  # cmi.chatmessagegroup.[id] permnission node to use
  # Permission example: cmi.chatmessagegroup.2
  GroupMessageFormat:
    '1': '{message}'
    '2': '{message}'
    '3': '{message}'
  Colors:
    # If set to true then all public messages will be filtered from color codes and will allow to colorize them with appropriate permission node
    # cmi.colors.publicmessage.[colorName]
    # Colors: black(&0), darkblue(&1), darkgreen(&2), darkaqua(&3), darkred(&4), darkpurple(&5), gold(&6), gray(&7), darkgray(&8), blue(&9), green(&a), aqua(&b), red(&c), lightpurple(&d), yellow(&e), white(&f), magic(&k), bold(&l), strikethrough(&m), underline(&n), italic(&o), reset(&r)
    PublicMessage: true
    PrivateMessage: true
    # If set to true then /me messages will be filtered from color codes and will allow to colorize them with appropriate permission node
    # cmi.colors.me.[colorName]
    me: true
    # If set to true, then color codes will get removed from text instead of leaving them if player dont have appropriate permission node for that color
    CleanUp:
      publicmessage: true
      privatemessage: true
      me: true
      signs: false
      books: true
      itemname: true
      itemlore: true
      # List of strings to ignore when checking chat for color codes player cant use.
      # This will bypass players colorcode restrictions and will allow usage of particular chat formats
      # Applies only for public and private messages
      WhiteList:
      - '&c❤&7'
    # If set to true then nickName will be filtered from color codes when player changes it
    # cmi.colors.nickname.[colorName]
    NickName: true
    # Determines /cmi chatcolor command contents. What player can pick will be determined by cmi.colors.publicmessage.[colorCode] and will be used in %cmi_user_chatcolor% placeholder
    Picker:
    - '&f'
    - '&2'
    - '&3'
    - '&7'
    - '&8'
    - '&a'
    - '&b'
    - '&c'
    - '&e'
    - '&6'
    - '{#00e625}'
    - '{#brown}'
  # If set to true, players public message who is in your ignore list will not be shown
  IgnorePublicMessage: true
  Tag:
    # Enable or not tag system. This will inform player with his name mentioning in public chat if name have @ in front of it
    Enabled: true
    # When this is set to true, any player mentionings in public messages will be colorized and player will get informed as usual
    # This is allot more heavier on server than usual tagging with @, so enable if you know what you are doing
    HardCoreMode: false
    # Determines color of taged user name in chat with @ in front of name/nickname. Sender should have cmi.tag.color
    Color: '&c'
    # Commands to be performed when player is tagged
    # Variables like [playerName] will be replaced with tagged player name
    # You can use [senderName] to include player name who tagged
    CommandsOnTag:
    - asConsole! cmi sound BLOCK_NOTE_BLOCK_HARP:3:1 [playerName] -s
    # Will performd tag commands only when player is afk
    OnlyWhenAfk: false
    # When set to true, @ simbol will be removed
    RemoveEta: false
ChatBubble:
  # Do you want to enable chat bubbles for public messages
  # Each player can disable this with /options command personally
  PublicMessages: false
  # How high we should show chat bubble
  Offset: 2.5
  # Base time in seconds for chat bubble to be visible
  ShowFor: 4
  # Maximum time bubble will be shown for
  MaxShowFor: 8
  # Extra seconds to be added for each letter in a message
  # This will allow to have shorter times for short messages and increase it for longer ones
  ExtraTime: 0.02
  # Scale of chat bubble, default 0.5
  Scale: 0.5
  # Line width before warping text to new line
  LineWidth: 255
  # Default Color code, this could be overriden if text itself was colorized
  # Leave it empty for default transparent color
  # Example of color code: {#gray}
  BackgroundColor: '{#gray}'
  # Do you want to add text shadow
  Shadow: true

Players can't use &1 codes (&1text), but still can use hex colors {#000000}123

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
bug report Reports of bugs/inconsistencies
Projects
None yet
Development

No branches or pull requests

2 participants