Skip to content

Updates

Oliver Martin edited this page Jul 20, 2020 · 27 revisions

This page provides instructions for updating MultiChat from one version to another. Please read and follow these instructions very carefully to prevent data loss or corruption.

Updating to v1.9.5 from v1.9.4

No steps required, see: https://www.spigotmc.org/resources/multichat-full-rgb-colour-support.26204/update?update=349646

Updating to v1.9.4 from v1.9.3

No steps required, see: https://www.spigotmc.org/resources/multichat-full-rgb-colour-support.26204/update?update=349616

Updating to v1.9.3 from v1.9.2

Version 1.9.3 predominantly focuses on adding integrated support for RGB colour codes. This can be done using all 3 commonly used methods: &#abcdef, &xabcdef, and even &x&a&b&c&d&e&f. With this there are some new colour code permissions added:

  • multichat.chat.color.simple / multichat.chat.colour.simple - Permission to use old style codes only
  • multichat.chat.color.rgb / multichat.chat.colour.rgb - Permission to use all colour codes including the new RGB hex codes

The old permission multichat.chat.color / multichat.chat.colour will still work, this grants access to all colour codes so as to maintain backwards compatibility.

These permissions are mirrored for MultiChatLocal and the /nick command:

  • multichatlocal.nick.color.simple / multichatlocal.nick.colour.simple - Permission to use old style codes only
  • multichatlocal.nick.color.rgb / multichatlocal.chat.nick.rgb - Permission to use all colour codes including the new RGB hex codes

Likewise, the old nickname colour permissions still work in the same way as described above.

While 1.16 is a welcome change, it presents challenges for servers running older versions of MC. Plugins like ViaVersion do a good job to allow previous versions to support the new RGB colour codes to an extent, but they are not perfect. For example, when developing this version I discovered that Sponge servers would automatically kick everyone anytime it encountered a RGB colour code. As such, MultiChat has developed its own in-built system for approximating RGB colour codes to their nearest old style colour code to support these legacy servers.

To list a server as a "legacy server" you just need to refer to the end of the config.yml file.

# Legacy (PRE-1.16) Servers
# Listing servers here will mark them as 'LEGACY' servers
# RGB colour codes will be approximated to their nearest value (i.e. &a, &b and so on)
# This prevents them displaying in chat as &x...
legacy_servers:
- MyOldLegacyServerHere

In addition to these changes, MultiChat v1.9.3 brings better support for PremiumVanish, namely silent joining of vanished staff members. Credit goes to Gadse for implementing this feature. There is a new config option in config.yml alongside the previous PremiumVanish settings:

# Settings for PremiumVanish
premium_vanish:
    prevent_message: true # Prevent players being able to /msg vanished staff
    prevent_staff_list: true # Prevent vanished staff showing up in /staff
    silence_join: true # Prevent vanished players sending a join message

And finally, there are now more database settings in localconfig.yml which means you can now specify if your database should use SSL etc.

# Should MultiChat use a database to store nicknames instead of regular files?
# (PLEASE NOTE THE SERVER MUST BE RESTARTED FOR THIS TO TAKE EFFECT)
nickname_sql: false

# If the above option is true, MultiChat will use SQLite by default. Set the below to true if you would prefer to use MySQL.
mysql: false
mysql_url: "" # For example "localhost:3306"
mysql_database: "" # Put the name of your MySQL database here
mysql_user: ""
mysql_pass: ""

# Advanced database settings
mysql_flags: []
#- useSSL=false
#- autoReconnect=true

For a full list of the changes in v1.9.3 see our Changelog

Updating to v1.9.2 from v1.9.1

Added PremiumVanish section to the end of config.yml:

# Settings for PremiumVanish
premium_vanish:
    prevent_message: true # Prevent players being able to /msg vanished staff
    prevent_staff_list: true # Prevent vanished staff showing up in /staff

This allows you to control to what extent MultiChat hooks with PremiumVanish (if it is enabled). You can stop your staff members being messaged when vanished (unless the player has multichat.chat.msg.vanished). And you can also stop your staff showing in the staff list unless the player has multichat.staff.list.vanished.

Also added permissions for individual types of format codes in nicknames (multichatlocal.nick.format.bold/italic/underline/strikethrough/obfuscated/reset) (multichatlocal.nick.format still grants permissions to ALL types of format codes)

Updating to v1.9.1 from v1.9

No steps required, see: https://www.spigotmc.org/resources/multichat.26204/update?update=333298

Updating to v1.9 from v1.8.1

MultiChat 1.9 features a complete re-code of the Spigot and Sponge parts of the plugin. This update acts as a "stepping stone" on the way to version 2.0 which will feature a full re-code for Bungeecord and feature SQL support across the whole of MultiChat. If you do not follow these instructions, then you WILL prevent MultiChat from working on your server.

STEP 1: BACKUP
STEP 2: SPONGE SPECIFIC INSTRUCTIONS
STEP 3: SPIGOT SPECIFIC INSTRUCTIONS
STEP 4: CONFIG INSTRUCTIONS
STEP 5: PEMISSION CHANGES
STEP 6: OTHER INFORMATION

(1) Backup

Firstly, as with all MultiChat updates... BACKUP ALL YOUR SERVER FILES! Just in case.

(2) Sponge

If you use Sponge servers, follow these next instructions very carefully!

You might have noticed in the past that MultiChat placed its config file "multichatsponge.yml" in a strange place. It was in your server's root folder, rather than in the separate config folder dedicated to MultiChat.

This has now been ammended. HOWEVER, you need to MANUALLY move the file here before starting your server, otherwise MultiChat will just see the config folder is empty and generate you a blank file.

To do this, follow these simple steps:

  1. Shut down your Sponge server
  2. Locate the root folder of your Sponge server (contains your spongevanilla.jar or spongeforge.jar file)
  3. Copy the "multichatsponge.yml" config file and the "multichat_namedata" file (this is your file based nickname storage if you are not using SQL).
  4. Navigate to your "config" folder in your Sponge root folder
  5. If a subfolder called "multichat" already exists then go into this subfolder, otherwise you will need to create it.
  6. Paste the "multichatsponge.yml" file and "multichat_namedata" file into this folder. (There may already be a multichatsponge.db file there already. This is just your SQLite database used for nicknames.)

You should now be ready to move on to the next instructions for updating to v1.9.

(3) Spigot

If you use a Spigot server, then you need to re-name the config folder generated by multichat from "MultiChatSpigot" to "MultiChat".

If you do not do this then MultiChat will just generate new config files in the new "MultiChat" folder.

This is part of the effort to combine the spigot and sponge codebase. And to provide consistency across platforms.

(4) Configs

For BOTH Spigot AND Sponge, you need to re-name your config files to "localconfig.yml". The files you need to re-name are shown below:

SPONGE: "multichatsponge.yml" --> "localconfig.yml"
SPIGOT: "spigotconfig.yml" --> "localconfig.yml"

For BOTH Spigot AND Sponge you also need to rename your SQLite database file (if using SQL for nicknames and NOT using MySQL).

SPONGE: "multichatsponge.db" --> "multichatlocal.db"
SPIGOT: "multichatspigot.db" --> "multichatlocal.db"

For Sponge you need to rename the nickname data file called "multichat_namedata" to "namedata.dat" (in line with Spigot.)

SPONGE: "multichat_namedata" --> "namedata.dat"

Many of the config files now have new options. There are 3 courses of action you can take.

  1. BACKUP all your config files from multichat, then delete the original copies from the multichat folders and the newest versions will be automatically generated by the plugin. You can then manually re-enter all your config options from the backups you took.

  2. Look at the wiki pages for each of the multichat config files and manually add any new options to your existing files. If you are 100% confident you have done this correctly then you can change the version number at the top of the file to 1.9 (Yes... The one that says DO NOT EDIT!) But be warned, if you do this incorrectly then you could run into lots of issues!

  3. Leave your config files as they are (not recommended)... They should still work just fine, but you will obviously not have access to all the new options and this way of running your server is not supported.

If you wish to take option (2) then here is a brief summary of all the new changes to config files to help you with your manual updating process:

  • In localconfig.yml, you will need to add lots of options depending on if you were on Spigot or Sponge before. I advise you to read the linked page for this config in full. For Sponge many new options have been added all the way throughout the config. For Spigot the main new addition is the 'Channel Control' section at the bottom of the file.
  • In messages.yml, added command_execute_regex: "&cThe regex specified was invalid" for when a regex command is parsed incorrectly.
  • In chatcontrol.yml, added link_regex: '((https|http):\/\/)?(www\.)?([-a-zA-Z0-9@:%._\+~#=]{2,256}\.)+[a-zA-Z]{2,4}\b([-a-zA-Z0-9@:%_\+.~#?&\/\/=]*)' to the link control section so that you can customise how links are blocked. You can also now specify a permission in the regex rules and regex actions.

(5) Permissions

This update changes all the old multichatsponge and multichatspigot permissions! As such... YOU WILL NEED TO CHANGE ALL THE PERMISSIONS ON YOUR LOCAL SPONGE AND SPIGOT SERVERS.

This is again to facilitate the re-code to MultiChatLocal which combines the codebases for Spigot and Sponge for better maintainability and support.

These permissions are now all called: multichatlocal. The full list of up-to-date permissions can be found here.

Credit to @Gadse for the following SQL code to update a LuckPerms database automatically:

Quick query for people who need to replace multichatspigot with multichatlocal permissions:

UPDATE `luckperms_group_permissions`
SET `permission` = REPLACE(`permission`, 'multichatspigot', 'multichatlocal')
WHERE `permission` LIKE 'multichatspigot%';

replace luckperms_group_permissions according to your own needs

(6) Other Information

The older /multichatspigot or /multichatsponge commands that allowed you to reload the server, perform migration to SQL etc. are now also renamed to /multichatlocal.

Both spigot and sponge now have reload commands (and Sponge also supports /sponge plugins reload.) They also both new feature debug commands to help troubleshooting when you have an issue.

This update also has many new features:

  • Regex Channel Forcing is a new system available in MultiChat that allows us to support plugins like Towny without depending on them directly. Using this part of your localconfig.yml you are able to set up regular expressions to match particular chat formats, and force them into certain channels. For example, the Towny town chat format begins with [TC], and this is only supposed to be seen by those in the same town. But before this would get broadcast globally if the player was in /global mode. Now you can configure MultiChat to look for the [TC] prefix to chat messages and send the message in the local channel instead. This also works with many other plugins such as EssentialsXChat to be able to use their local chat range and shout features.
  • MultiChat for Sponge never used to be compatible with plugins such as NucleusChat or Magibridge, but now it has the same basic level of support that has already existed on Spigot. This means regular chat messages sent on Sponge will now be logged by Magibridge.
  • Sponge has a host of new chat formatting options to make it just as powerful as Spigot. You can control to what extend MultiChat formats the chat, and even use placeholders such as {multichat_nickname} in other plugins such as Nucelus for chat formatting.
  • There are new regex rule options in the chat control config. You can make permission based rules. See the separate config link for this file for more info.
  • This update also fixes an issue in our API Post Chat events which prevented them from being called correctly

In addition to the features listed above, several null pointer exceptions have been fixed, and there are MANY backend optimisations including database connection pooling and more!

Please see the changelog here for a full list of changes.

Updating to v1.8.1 from v1.8

Nothing is required, see post for more details: https://www.spigotmc.org/resources/multichat.26204/update?update=327216

Updating to v1.8 from v1.7.5

MultiChat 1.8 adds several new features and if you do not follow these steps to update carefully then you may corrupt your server files!

Backup

Firstly, as with all MultiChat updates... BACKUP ALL YOUR SERVER FILES! Just in case.

Configs

Many of the config files now have new options. There are 3 courses of action you can take.

  1. BACKUP all your config files from multichat, then delete the original copies from the multichat folders and the newest versions will be automatically generated by the plugin. You can then manually re-enter all your config options from the backups you took.

  2. Look at the wiki pages for each of the multichat config files and manually add any new options to your existing files. If you are 100% confident you have done this correctly then you can change the version number at the top of the file to 1.8 (Yes... The one that says DO NOT EDIT!) But be warned, if you do this incorrectly then you could run into lots of issues!

  3. Leave your config files as they are (not recommended)... They should still work just fine, but you will obviously not have access to all the new options and this way of running your server is not supported.

If you wish to take option (2) then here is a brief summary of all the new changes to config files to help you with your manual updating process:

  • In config.yml, added globalcommand and localcommand options for aliases in the "Chat Channels" section. Added privacy_settings option to the end of the file in the "Other" section.
  • In joinmessages.yml, added private_welcome and private_welcome_message option to the end of the file.
  • In spigotconfig.yml, added nickname_length_min option in the "Nicknames" section, and also added nickname_sql, and various MySQL options at the bottom.
  • In multichatsponge.yml, added nickname_length_limit, nickname_length_min and nickname_length_limit_formatting options in the "Nicknames" section, and also added nickname_sql, and various MySQL options at the bottom.

SQL

The biggest feature of this new update is MySQL and SQLite functionality for Spigot and Sponge nicknames. In order to use this, PLEASE BACKUP YOUR FILES FIRST! We provide a migration command to convert from the old file based storage to SQL, but errors can occur with any process like this so it is not worth risking losing your data!

Please see the new SQL wiki page for more details on this process.

Sponge

This update includes a load of new features for Sponge. Sponge has lagged behind spigot in terms for functionality, especially for things like nicknames, but no longer! This however does mean there could be lots of new bugs introduced!

Please pay careful attention to the permissions page which features lots of new permissions for sponge!

All of the features for nicknames are now available for sponge as well as spigot.

Other Information

This update includes lots of bug fixes and smaller changes. Commands such as /local and /global can now be used to send messages directly to those channels without swapping to them. You can use /local for example. There are also now aliases for these commands in config.yml to let you use things like /g as a shortcut.

This update adds the /pexecute command that lets you execute commands on your proxy server from spigot / sponge servers. This is the opposite of the /mce (multichat execute) command that was introduced a while ago now that lets you run spigot / sponge commands from the proxy server.

Please see the changelog here for a full list of changes.

Updating to v1.7.5 from v1.7.4

  • No major steps required, just backup all folders as usual in case of errors

Updating to v1.7.4 from v1.7.3

Updating to v1.7.3 from v1.7.2

Updating to v1.7.2 from v1.7.1

Updating to v1.7.1 from v1.7

Clone this wiki locally