Everything else

Changelog

What changed between releases, newest first. Only the things that change how the plugin behaves or how it is configured — the wiki itself always describes the current version.

0.1.5#

Every command can have conditions, actions and a log. Six new options, on any command in any module file — see Per-command rules.

  • permission and permission-message: the node a command takes instead of its own ('' for everyone), and what somebody without it is told.
  • requires: what has to be true first. Permission, placeholder, money, playtime or a kit they have taken — the same five types kits use.
  • on-success and on-fail: messages, titles, action bars, sounds, broadcasts and commands, once a command has worked or when it is refused.
  • log: true: every use goes into the staff log.

Custom commands take the same options, apart from permission, which they already had.

Fixes

  • /chorus reload picks up edits to an existing custom command. It used to need a restart, although the file said otherwise.
  • The startup check no longer calls a valid option — price on a command that did not show it — an option that does not exist.
  • A PlaceholderAPI installed while the server is running is noticed on /chorus reload.
  • /tpcancel has its cooldown, price and sound, like every other command.

0.1.4#

Config and admin

  • The plugin checks its own config at startup: unknown options with the closest real name, values of the wrong kind, materials, sounds and particles, each with its file and line.
  • /chorus check runs that by hand, and checks the worlds named in the config as well.
  • /chorus reload says what changed, and re-reads the messages folder and palette.yml.
  • /chorus permissions [group] lists every node, marking the ones you hold.
  • /chorus placeholders lists all twelve with your own value.
  • Update notifications work: the shipped check asks SpigotMC, where the plugin actually is.

Security

  • Text a player writes — /nick, /itemname, /lore, /editsign, and name: and lore: in /give — takes colours and formatting only.
  • Money amounts are read one way everywhere; negatives, NaN and Infinity are refused.
  • /tppos refuses coordinates past the world border.

Fixes

  • Balances are written in the order they changed, and a login loads after the last session has finished saving.
  • Chest shops created and removed quickly no longer leave a shop behind.
  • Data loaded at login is freed when the connection closes, refused logins included. Logging in over your own session keeps your data.
  • A restore waiting for a player who left again is kept. /speed refuses NaN.

Folia

  • Kits, backups, /invsee, teleports, prompts, nicknames, AFK kicks, vanish and commands on another player all run on that player's thread; console lines run on the global thread.

Performance

  • Hoppers and container clicks no longer copy containers, sign clicks check the block type first, a chunk load only looks at its own shops, the update check and GeoIP no longer hold up the database, mail counts letters rather than reading them, and nickname lookups use an index.

0.1.3#

  • Colours have names. palette.yml holds nineteen of them. Write <c:accent> in any message or on any screen and close it with </c>. One line changed there recolours the whole plugin. See Colours.
  • messages.yml and menus.yml are now the messages/ folder, one file per part of the plugin, read as one set of keys.
  • Translations are folders. messages/es/ instead of messages_es.yml. A language may translate as many or as few files as it likes.
  • A prefix per file. Any file in the folder may open with its own, and %prefix% then means that one inside it.
  • A command can say its own lines. A messages block in a command's config replaces a line for that command alone, and a blank one silences it. That is the eighth per-command option — see Per-command rules.
  • An older messages.yml or messages_es.yml is still read, so nothing edited on an earlier version is lost on the way up.
  • Fixed the Spanish kit editor preview, which was a different colour from the English one.

0.1.2#

  • /tp takes coordinates: /tp <x> <y> <z> and /tp <player> <x> <y> <z>. ~ and ~10 work on both /tp and /tppos.
  • Creative and spectator are no longer refused a teleport. There is no fall to take and no wall to suffocate in, so nothing is checked.
  • Flying in survival now checks the room and not the ground.
  • Water counts as ground, so teleports on a coast or a river stop being refused.
  • Typed coordinates are never nudged. /tp and /tppos go exactly where they were told.
  • /tp, /tphere and /tppos report on arrival rather than before the teleport.

0.1.1#

  • /locate, for structures and biomes, with a clickable result. See World tools.
  • /baltop refresh throws away the cached ranking.
  • The per-kit permission is now chorus.kit.<name>, not chorus.kits.use.<name>. A rank granted the old one has to be given the new one.
  • Confirmations ship switched off. confirmations.seconds is 0; raise it to put the second step back.
  • The enchantment restrictions now cover /give, not only /enchant.
  • A home or warp saved on a slab, a stair, a carpet or a snow layer lands where it was saved.