Class MiniMessageConfigSerializer

java.lang.Object
net.blockhost.commons.message.MiniMessageConfigSerializer
All Implemented Interfaces:
de.exlll.configlib.Serializer<String,String>

public final class MiniMessageConfigSerializer extends Object implements de.exlll.configlib.Serializer<String,String>

ConfigLib serializer that converts legacy color codes to MiniMessage format.

Use this serializer with the @SerializeWith annotation to automatically convert legacy color codes (both ampersand and section sign) when loading config values.

Example Usage

@Configuration
public class MyConfig {
    @SerializeWith(serializer = MiniMessageConfigSerializer.class)
    public String welcomeMessage = "<green>Welcome!";

    @SerializeWith(serializer = MiniMessageConfigSerializer.class)
    public String legacyMessage = "&aThis will be converted";
}

When the config is loaded, any legacy color codes in the stored value will be converted to MiniMessage format:

  • &a becomes <reset><green>
  • §c becomes <reset><red>
  • &#FF0000 becomes <reset><#FF0000>
  • &l becomes <bold>

Values that are already in MiniMessage format are passed through unchanged.

See Also:
  • Constructor Details

    • MiniMessageConfigSerializer

      public MiniMessageConfigSerializer()
      Creates a new MiniMessage serializer.
  • Method Details

    • serialize

      public String serialize(String element)

      Serializes a MiniMessage string for storage.

      This method passes the value through unchanged, as MiniMessage is the target format for storage.

      Specified by:
      serialize in interface de.exlll.configlib.Serializer<String,String>
      Parameters:
      element - the MiniMessage string to serialize
      Returns:
      the same string unchanged
    • deserialize

      public String deserialize(String element)

      Deserializes a config value, converting legacy color codes to MiniMessage.

      This method uses MiniMessageConverter to convert any legacy color codes (ampersand or section sign format) to MiniMessage tags.

      Specified by:
      deserialize in interface de.exlll.configlib.Serializer<String,String>
      Parameters:
      element - the string from the config file
      Returns:
      the string with legacy codes converted to MiniMessage format