matrix-spec/content/rooms/fragments/v1-stringy-power-levels.md
Travis Ralston 1653b43cde
Apply suggestions from code review
Co-authored-by: Richard van der Hoff <1389908+richvdh@users.noreply.github.com>
2022-06-07 11:38:42 -06:00

1,000 B

toc_hide
true
m.room.power_levels events accept values as strings

In order to maintain backwards compatibility with early implementations, power levels can optionally be represented in string format instead of integer format. A homeserver must be prepared to deal with this by parsing the power level from a string. In these cases, the following formatting of the power level string is allowed:

  • a single base 10 integer, no float values or decimal points, optionally with any number of leading zeroes ("100", "000100");
  • optionally with any number of leading or trailing whitespace characters (" 100 ", " 00100 ");
  • optionally prefixed with a single - or + character before the integer but after leading whitespace padding (" +100 ", " -100 ", "+100", "-100").

{{% boxes/note %}} The integer represented by the string must still be within the [-(2**53)+1, (2**53)-1] range accepted by normal, non-string, power level values. {{% /boxes/note %}}