Skip to content

Releases

CommonerVote 2.0.1 for Minecraft 26.2

Choose a tag to compare

@q220 q220 released this 06 Nov 15:36
f40112e

[2.0.1] - 2026-11-06

Changed

  • The promotion command and the commoner group are set in each server's config.yml, under the keys 1.2.9 used
    (promotionCommand, commonerGroupName), and no longer with /vote config. A missing key gets the default, and the
    first start deletes the two old rows from commonervote_settings.
  • A value in those two keys that cannot be used logs a SEVERE line and disables the plugin on that server. The group
    must be one name of letters, digits, _ and -, and the command must be one line that contains <player>. Both must
    be text, so a number or no needs quotes.
  • The welcome, announcement and guest texts allow colours and formatting only. Any other tag stays in the text as typed.

Added

  • Every save of the settings is logged: who made it and, for each setting it changed, the old and the new value.
  • The startup log states the promotion command and group in use.

Fixed

  • A stored text that MiniMessage cannot parse, such as one with an old § colour code, now shows as typed. It used to
    stop whatever was showing it, which could leave a promotion without its welcome and announcement.

Installing

  • Put the jar on every Paper backend where players vote or are voted for. It is not needed on the Velocity proxy.
  • Requires Paper 26.2, Java 25 and LuckPerms.
  • Upgrading from 2.0.0: read Upgrading from 2.0.0 in the README before you swap the first jar.

sha256: b3c3191779923212cbd2e1e1f245c9245ea6ccdfe1db46b783341ab5bb0d57a0

CommonerVote 2.0.0 for Minecraft 26.2

Choose a tag to compare

@q220 q220 released this 21 Oct 17:54
400f3f1

[2.0.0] - 2026-10-21

A rewrite for Paper 26.2 and Java 25. The votes table is unchanged, so every existing vote carries over.

Added

  • Six dialogs, built with Paper's Dialog API:
    • for the team, the list of guests online on the server and the vote dialog (cast, renew or withdraw, with an optional
      reason);
    • for guests, a "Becoming a Commoner" dialog with their progress, and a welcome dialog at the promotion;
    • for admins, the review dialogs (the candidates, and the votes for one player) and the settings dialogs.
  • Shared settings, kept in the new commonervote_settings table and edited in game with /vote config
    (commonervote.config). Every server on the same database uses them.
  • "Promote now" in the review dialog and /vote promote <player>, behind the new permission commonervote.promote.
    Each asks a player for confirmation first.
  • A LuckPerms guard on every promotion: a player with a direct group other than default and the groups in the
    promotableGroups setting is not promoted, so the promotion command can no longer demote a ranked player. The review
    list marks such a player, the log gets one INFO line per player and session, and "Promote now" tells the admin which
    group blocks it.
  • An action-bar note for a guest who was voted for, on any server of the network. It never names the voter.
  • A network-wide promotion announcement, and a welcome dialog for a guest who was promoted while offline, shown at
    their next join.
  • The commonervote_promotions table, which records who was promoted and whether they have seen the welcome.
  • Permission-aware tab completion, and plain-text review, clear and promote for the console.
  • /vote review without a name, which lists the candidates.
  • Automated tests, and a GitHub Actions build that runs mvn -B verify.

Changed

  • The XP bar is a progress meter only for players without commonervote.exempt. Everyone with commonervote.exempt
    gains XP as normal.
  • /vote help lists only the subcommands you may use, and no longer crashes from the console.
  • There is one vote lifetime for the whole network, validityDays (100 days by default), instead of one per server.
  • Expired votes are kept in the table as history and only stop counting. Before, /vote score and /vote review
    deleted them.
  • /vote is a Brigadier command, with permission-aware tab completion, and /commonervote:vote works too. Player
    names are found in any case and through LuckPerms, so a player who has only been on another server is found as well.
  • Settings now live in the database (/vote config). config.yml only keeps the database section and useBungee:
    the other 1.2.9 keys are ignored, and the startup log names the ones still in the file.
  • Changing votesNeeded rescales every stored vote, so each keeps its worth in whole votes.
  • <player> in the promotion command is replaced by the player's UUID, which LuckPerms accepts, instead of their name.
    A name can be out of date, and a renamed guest's old name could point the command at somebody else.
  • A failure of the database tells the player "The vote database is unreachable. Try again in a minute." and logs a
    WARNING line with a stack trace at most once a minute.
  • Database work runs on one dedicated thread, over a fresh connection for each piece of work, with the MySQL driver that
    Paper provides.
  • Requires Paper 26.2, Java 25 and LuckPerms (depend).
  • Jars are named CommonerVote-<version>-<DEV|SNAPSHOT|RELEASE>-<commit id>.jar.

Fixed

  • A -voter review dropped the last recipient, and showed nothing when there was only one; the option is gone (see
    Removed).
  • Reasons lost their spaces ("great builder" became "greatbuilder").
  • /vote score and /vote review ran a database DELETE on the main thread, which could stall the server.
  • Servers with different vote lifetimes deleted votes that the other servers still counted.
  • The keep-alive task wrote three log lines every minute, and it raced with the queries over one shared connection
    ("Packets out of order" errors).
  • Nobody gained XP: every XP gain of every player was cancelled, whatever the useXpBar option said.
  • /vote help from the console threw a ClassCastException.
  • A fresh install crashed on every join and command, because the jar shipped no config.yml.
  • The plugin declared commonervote.voter while the code checked commonervote.vote.
  • Two quick votes could promote a guest twice, because LuckPerms applies the promotion command late. The command also
    ran without a look at the player's other groups, and parent set then dropped them.
  • Looking up an offline player could block the main thread: a typed name could make the server ask Mojang, and a name
    shown was read from the player's data file on disk. Typed names are now looked up in LuckPerms off the main thread,
    and the names shown come from memory or LuckPerms. A player who had only been on another server was also reported as
    unknown.
  • Sending a message through the proxy while nobody was online threw a NullPointerException.
  • /commonervote:vote printed the usage instead of running.
  • Scores showed raw decimals such as 33.33333333333333%.
  • Values set with /vote config were saved with a trailing space, which broke numbers such as the vote lifetime.
  • File storage gave a normal vote a staff vote's weight and could not read back its own file; it is gone (see Removed).

Removed

  • File storage (votes.yml); the votes are always in the database.
  • The apply command and its commonervote.apply permission, and the applicationNeeded, allowMultipleVotes and
    useDatabase options.
  • /vote review <player> -voter (the list of what one voter voted for).
  • The PluginUtils dependency, and the bundled MariaDB driver.
  • The Votifier loadbefore entry and load: STARTUP in plugin.yml.
  • The commonervote.voter permission, which nothing checked.

Installing

  • Put the jar on every Paper backend where players vote or are voted for. It is not needed on the Velocity proxy.
  • Requires Paper 26.2, Java 25 and LuckPerms. For cross-server updates, the proxy needs bungee-plugin-message-channel = true.
  • Upgrading from 1.x: see Upgrading in the README. The database: block of the existing config.yml keeps working unchanged.

sha256: 11bc19f25a059de123813dbd19b62011dc6b9f81121999f572e562d9c614bd30

version 1.2.5 for mc 1.13

Choose a tag to compare

@EriolEandur EriolEandur released this 27 Apr 14:20
ff2e7ea
Merge pull request #18 from MCME/development

version 1.2.5