Geyser and Floodgate auto uploader 图标

Minecraft 服务端插件

Geyser and Floodgate auto uploader

An automatic updater plugin for GeyserMC / Floodgate/MCXboxBroadcast. Supports Spigot (and forks like Paper), BungeeCord, and Velocity.

游戏机制管理类科技类bukkitbungeecordpaperpurpurspigotvelocity
版本范围
1.16–26.2
下载量
8.9 万

插件介绍

GeyserUpdater

An automatic updater plugin for GeyserMC / Floodgate. Supports Spigot (and forks like Paper), BungeeCord, and Velocity.

Features

  • Fetches the latest stable versions of GeyserMC and Floodgate from the Jenkins/download API and overwrites the existing JARs in the plugins directory
  • Fetches the latest MCXboxBroadcast (from Modrinth) and places it in the Geyser extensions folder (optional)
  • Automatic update checks
    • On server startup
    • At a specified interval (e.g., every 12 hours)
    • When a player with a specific permission logs in (can be enabled/disabled)
  • Manual command: /geyserupdate (Permission: geyserupdater.admin)
  • Configurable language, messages, targets, intervals, and restart commands

Build

  • Prerequisites: Java 17, Maven 3.8+
  • Instructions:
    • Run mvn package in the directory where you cloned the repository
    • Artifacts:
      • spigot/target/GeyserUpdater-Spigot-1.0.0.jar
      • bungee/target/GeyserUpdater-Bungee-1.0.0.jar
      • velocity/target/GeyserUpdater-Velocity-1.0.0.jar

Installation

  • Place the appropriate JAR for your server platform into the plugins folder
  • Start the server to generate the config.yml file (it will be identical to the default config included in this README)
  • The plugin automatically detects existing Geyser / Floodgate JARs by searching for files in the plugins directory that contain "geyser" or "floodgate" in their names
    • If no existing JARs are found, it will create new ones with standard names (e.g., Geyser-Spigot.jar, floodgate-velocity.jar)

Commands & Permissions

  • /geyserupdate
    • Description: Immediately runs an update check
    • Permission: geyserupdater.admin

Configuration File (config.yml)

  • enabled: Enables or disables the plugin
  • language: Language setting (ja / en / de / ko, default: ja)
  • checkOnStartup: Enables or disables the update check on startup
  • periodic.enabled: Enables or disables the periodic update check
  • periodic.intervalHours: The interval for periodic checks (in hours)
  • adminLogin.enabled: Enables or disables the update check when a privileged player logs in
  • adminLogin.permission: The permission that triggers the check on login (default: geyserupdater.admin)
  • targets.geyser | targets.floodgate | targets.mcxboxbroadcast: Choose which plugins to update
  • postUpdate.notifyConsole: Notifies the console after an update
  • postUpdate.notifyPlayersWithPermission: Sends an in-game chat notification to players with permission
  • postUpdate.runRestartCommand: Automatically executes a restart command after an update
  • postUpdate.restartCommand: The restart command to execute (e.g., restart or end)
  • messages.<lang>.*: Customize messages (e.g., messages.ja.*)
    • For compatibility, messages.* is also read when language=ja

How it Works

  • Download URLs:
    • Geyser: https://download.geysermc.org/v2/projects/geyser/versions/latest/builds/latest/downloads/{platform}
    • Floodgate: https://download.geysermc.org/v2/projects/floodgate/versions/latest/builds/latest/downloads/{platform}
    • MCXboxBroadcast: https://api.modrinth.com/v2/project/mcxboxbroadcast/version
    • {platform} is spigot | bungeecord | velocity
  • The latest JAR is downloaded to a temporary file and its SHA-256 hash is compared with the existing JAR
    • If the hashes are identical, it is considered "up to date," and the file is not replaced
    • If they differ, the existing file is overwritten using an atomic replacement operation
  • A server or proxy restart is required after an update is applied
    • To enable automatic restarts, set postUpdate.runRestartCommand to true and configure restartCommand to match your environment
  • MCXboxBroadcast is placed in the Geyser extensions folder
    • Example: plugins/Geyser-Spigot/extensions

Notes / Known Limitations

  • If a download fails due to network issues or other errors, the existing plugin files will not be affected
  • The plugin cannot detect Geyser/Floodgate files if they have unusual names or are not located directly within the plugins folder (it only scans for *.jar files in the root of the plugins directory)
  • MCXboxBroadcast is always placed in plugins/Geyser-Spigot/extensions
  • The plugin does not display version numbers; it relies solely on hash comparison to determine if an update is available

License

  • Apache License 2.0

版本与下载

推荐下载

geyserupdater-spigot.jar版本 1.2.2 · 364.4 KBSHA-1 00d165b2ef0d06ef8143f365c27036152720a328下载 geyserupdater-spigot.jar

1.2.2

正式版
加载器
bukkit · paper · purpur · spigot
MC 版本
1.19 · 1.19.1 · 1.19.2 · 1.19.3 · 1.19.4 · 26.2
geyserupdater-spigot.jar364.4 KBSHA-1 00d165b2ef0d06ef8143f365c27036152720a328获取文件 geyserupdater-spigot.jar
展开更新日志

suppots

1.2.2

正式版
加载器
spigot
MC 版本
1.19 · 1.19.1 · 1.19.2 · 1.19.3 · 1.19.4 · 26.2
geyserupdater-spigot.jar364.4 KBSHA-1 00d165b2ef0d06ef8143f365c27036152720a328获取文件 geyserupdater-spigot.jar
展开更新日志

supports 26.2

1.1.2

正式版
加载器
velocity
MC 版本
26.2
geyserupdater-velocity.jar929.4 KBSHA-1 0224b0d8dfb7d3d3f441691840881399c3b432be获取文件 geyserupdater-velocity.jar
展开更新日志

supports 26.2

1.1.1

正式版
加载器
bungeecord
MC 版本
1.19 · 1.19.1 · 1.19.2 · 1.19.3 · 1.19.4 · 1.20 · 1.20.1 · 1.20.2 · 1.20.3 · 1.20.4 · 1.20.5 · 1.20.6 · 1.21 · 1.21.1 · 1.21.2 · 1.21.3 · 1.21.4 · 1.21.5 · 1.21.6 · 1.21.7 · 1.21.8 · 1.21.9 · 1.21.10 · 1.21.11 · 26.1 · 26.1.1 · 26.1.2
geyserupdater-bungee.jar373.7 KBSHA-1 017793b5c0cd922474af9295246002348d7fbfbd获取文件 geyserupdater-bungee.jar
展开更新日志

What's changed

  • Fixed an issue where MCXboxBroadcast was downloaded to the Geyser-Spigot extensions folder when running on Velocity.
  • On Velocity, MCXboxBroadcast is now correctly downloaded to the Geyser-Velocity extensions folder.

1.1.1

正式版
加载器
velocity
MC 版本
1.19 · 1.19.1 · 1.19.2 · 1.19.3 · 1.19.4 · 1.20 · 1.20.1 · 1.20.2 · 1.20.3 · 1.20.4 · 1.20.5 · 1.20.6 · 1.21 · 1.21.1 · 1.21.2 · 1.21.3 · 1.21.4 · 1.21.5 · 1.21.6 · 1.21.7 · 1.21.8 · 1.21.9 · 1.21.10 · 1.21.11 · 26.1 · 26.1.1 · 26.1.2
geyserupdater-velocity.jar929.4 KBSHA-1 121889c15ecaddc4147c677b78bf5a6101e402a6获取文件 geyserupdater-velocity.jar
展开更新日志

What's changed

  • Fixed an issue where MCXboxBroadcast was downloaded to the Geyser-Spigot extensions folder when running on Velocity.
  • On Velocity, MCXboxBroadcast is now correctly downloaded to the Geyser-Velocity extensions folder.

1.1.1

正式版
加载器
bukkit · paper · purpur · spigot
MC 版本
1.19 · 1.19.1 · 1.19.2 · 1.19.3 · 1.19.4 · 1.20 · 1.20.1 · 1.20.2 · 1.20.3 · 1.20.4 · 1.20.5 · 1.20.6 · 1.21 · 1.21.1 · 1.21.2 · 1.21.3 · 1.21.4 · 1.21.5 · 1.21.6 · 1.21.7 · 1.21.8 · 1.21.9 · 1.21.10 · 1.21.11 · 26.1 · 26.1.1 · 26.1.2
geyserupdater-spigot.jar364.4 KBSHA-1 9e3e5e0be2afc6bb15d8742d81f7cda87a97b3dc获取文件 geyserupdater-spigot.jar
展开更新日志

What's changed

  • Fixed an issue where MCXboxBroadcast was downloaded to the Geyser-Spigot extensions folder when running on Velocity.
  • On Velocity, MCXboxBroadcast is now correctly downloaded to the Geyser-Velocity extensions folder.

1.1

正式版
加载器
bungeecord
MC 版本
26.1 · 26.1.1 · 26.1.2
geyserupdater-bungee.jar373.6 KBSHA-1 12d882466af56e773206327142bafdadf1a3242e获取文件 geyserupdater-bungee.jar
展开更新日志

Update summary

  • Support for 26.1 2 has been added.
  • Known issues have been fixed.
  • Fixed an issue where only Floodgate was updated while Geyser and BroadcastExtension were downloaded but not replaced correctly.
  • Fixed an issue where update files remained in the temp folder instead of being moved to the server’s plugins folder.
  • Improved the reliability of the automatic update process after restart.

1.1

正式版
加载器
velocity
MC 版本
26.1 · 26.1.1 · 26.1.2
geyserupdater-velocity.jar929.3 KBSHA-1 3c8dd6c309275c91db03b87e444ceb3611959f24获取文件 geyserupdater-velocity.jar
展开更新日志

Update summary

  • Support for 26.1 2 has been added.
  • Known issues have been fixed.
  • Fixed an issue where only Floodgate was updated while Geyser and BroadcastExtension were downloaded but not replaced correctly.
  • Fixed an issue where update files remained in the temp folder instead of being moved to the server’s plugins folder.
  • Improved the reliability of the automatic update process after restart.

1.1

正式版
加载器
paper · purpur · spigot
MC 版本
26.1-snapshot-1 · 26.1-snapshot-2 · 26.1-snapshot-3 · 26.1-snapshot-4 · 26.1-snapshot-5 · 26.1-snapshot-6 · 26.1-snapshot-7 · 26.1-snapshot-8 · 26.1-snapshot-9 · 26.1-snapshot-10 · 26.1-pre-2 · 26.1-pre-3 · 26.1-rc-1 · 26.1-rc-2 · 26.1-rc-3 · 26.1 · 26.1.1-rc-1 · 26.1.1 · 26w14a · 26.2-snapshot-1 · 26.1.2-rc-1 · 26.1.2 · 26.2-snapshot-2
geyserupdater-spigot.jar364.2 KBSHA-1 e9b539dafd66cc4a9e1d5af63baa0f1a40f05fde获取文件 geyserupdater-spigot.jar
展开更新日志

Update summary

  • Support for 26.1 2 has been added.
  • Known issues have been fixed.
  • Fixed an issue where only Floodgate was updated while Geyser and BroadcastExtension were downloaded but not replaced correctly.
  • Fixed an issue where update files remained in the temp folder instead of being moved to the server’s plugins folder.
  • Improved the reliability of the automatic update process after restart.

1.0.2

正式版
加载器
bungeecord
MC 版本
1.18 · 1.18.1 · 1.18.2 · 1.19 · 1.19.1 · 1.19.2 · 1.19.3 · 1.19.4 · 1.20 · 1.20.1 · 1.20.2 · 1.20.3 · 1.20.4 · 1.20.5 · 1.20.6 · 1.21 · 1.21.1 · 1.21.2 · 1.21.3 · 1.21.4 · 1.21.5 · 1.21.6 · 1.21.7 · 1.21.8 · 1.21.9 · 1.21.10 · 1.21.11
bungee-1.0.2.jar357.7 KBSHA-1 45c945153f3241a5c88f7ad0e19af361f4dedda3获取文件 bungee-1.0.2.jar
展开更新日志

Users who installed previous versions must delete config.yml located at plugins/geyseruploader/config.yml.

1.0.2

正式版
加载器
paper · purpur · spigot
MC 版本
1.19 · 1.19.1 · 1.19.2 · 1.19.3 · 1.19.4 · 1.20 · 1.20.1 · 1.20.2 · 1.20.3 · 1.20.4 · 1.20.5 · 1.20.6 · 1.21 · 1.21.1 · 1.21.2 · 1.21.3 · 1.21.4 · 1.21.5 · 1.21.6 · 1.21.7 · 1.21.8 · 1.21.9 · 1.21.10 · 1.21.11
spigot-1.0.2.jar347.3 KBSHA-1 cd6fc880f3267e04b785b8fbb60537187f53fc70获取文件 spigot-1.0.2.jar
展开更新日志

Users who installed previous versions must delete config.yml located at plugins/geyseruploader/config.yml.

1.0.2

正式版
加载器
velocity
MC 版本
1.16 · 1.16.1 · 1.16.2 · 1.16.3 · 1.16.4 · 1.16.5 · 1.17 · 1.17.1 · 1.18 · 1.18.1 · 1.18.2 · 1.19 · 1.19.1 · 1.19.2 · 1.19.3 · 1.19.4 · 1.20 · 1.20.1 · 1.20.2 · 1.20.3 · 1.20.4 · 1.20.5 · 1.20.6 · 1.21 · 1.21.1 · 1.21.2 · 1.21.3 · 1.21.4 · 1.21.5 · 1.21.6 · 1.21.7 · 1.21.8 · 1.21.9 · 1.21.10 · 1.21.11
velocity-1.0.2.jar855.1 KBSHA-1 c72b62ce0486049a6acce6241333f127835e2fc6获取文件 velocity-1.0.2.jar
展开更新日志

Supports multiple languages and mcbroadcast.Users who installed previous versions must delete config.yml located at plugins/geyseruploader/config.yml

1.0.1

正式版
加载器
velocity
MC 版本
1.19.4 · 1.20 · 1.20.1 · 1.20.2 · 1.20.3 · 1.20.4 · 1.20.5 · 1.20.6 · 1.21 · 1.21.1 · 1.21.2 · 1.21.3 · 1.21.4 · 1.21.5 · 1.21.6 · 1.21.7 · 1.21.8 · 1.21.9 · 1.21.10
velocity-1.0.1.jar849.7 KBSHA-1 a6de2b11e58f47e775a61a69ffff97af9cd578f0获取文件 velocity-1.0.1.jar
展开更新日志

Bug fixes.

1.0.1

正式版
加载器
bungeecord
MC 版本
1.17 · 1.17.1 · 1.18 · 1.18.1 · 1.18.2 · 1.19 · 1.19.1 · 1.19.2 · 1.19.3 · 1.19.4 · 1.20 · 1.20.1 · 1.20.2 · 1.20.3 · 1.20.4 · 1.20.5 · 1.20.6 · 1.21 · 1.21.1 · 1.21.2 · 1.21.3 · 1.21.4 · 1.21.5 · 1.21.6 · 1.21.7 · 1.21.8 · 1.21.9 · 1.21.10
bungee-1.0.1.jar352.3 KBSHA-1 f053e58bc5f329f0bafed8378cc06ec11cfb47c7获取文件 bungee-1.0.1.jar
展开更新日志

Bug fixes.

1.0.1

正式版
加载器
paper · purpur · spigot
MC 版本
1.19 · 1.19.1 · 1.19.2 · 1.19.3 · 1.19.4 · 1.21.5 · 1.21.6 · 1.21.7 · 1.21.8 · 1.21.9 · 1.21.10
spigot-1.0.1.jar342 KBSHA-1 fe281b25ee8f57b7243151ce7e3c6731fc9ff077获取文件 spigot-1.0.1.jar
展开更新日志

Bug fixes.

1.0.1

正式版
加载器
bungeecord
MC 版本
1.21 · 1.21.1 · 1.21.2 · 1.21.3 · 1.21.4 · 1.21.5 · 1.21.6 · 1.21.7 · 1.21.8 · 1.21.9 · 1.21.10
bungee-1.0.1.jar351.3 KBSHA-1 30243c414cc970ba7e0963714c2836be088167a5获取文件 bungee-1.0.1.jar

1.0.0

正式版
加载器
paper · purpur · spigot
MC 版本
1.19 · 1.19.1 · 1.19.2 · 1.19.3 · 1.19.4 · 1.20 · 1.20.1 · 1.20.2 · 1.20.3 · 1.20.4 · 1.20.5 · 1.20.6 · 1.21 · 1.21.1 · 1.21.2 · 1.21.3 · 1.21.4 · 1.21.5 · 1.21.6 · 1.21.7 · 1.21.8
spigot-1.0.0.jar340.8 KBSHA-1 023514b0fe32f945e88c6b4ac8af640df37cdfcf获取文件 spigot-1.0.0.jar
展开更新日志

GeyserUpdater

An automatic updater plugin for GeyserMC / Floodgate. Supports Spigot (and forks like Paper), BungeeCord, and Velocity.

Features

  • Fetches the latest stable versions of GeyserMC and Floodgate from the Jenkins/download API and overwrites the existing JARs in the plugins directory.

  • Automatic Update Checks:

    • On server startup.
    • At a specified interval (e.g., every 12 hours).
    • When a player with a specific permission logs in (can be enabled/disabled).
  • Manual Command: /geyserupdate (Permission: geyserupdater.admin).

  • Configurable messages, update targets, check intervals, and restart commands.

Build

  • Prerequisites: Java 17, Maven 3.8+

  • Instructions:

    • Run mvn package in the directory where you cloned the repository.
  • Artifacts:

    • spigot/target/GeyserUpdater-Spigot-1.0.0.jar
    • bungee/target/GeyserUpdater-Bungee-1.0.0.jar
    • velocity/target/GeyserUpdater-Velocity-1.0.0.jar

Installation

  1. Place the appropriate JAR for your server platform into the plugins folder.
  2. Start the server to generate the config.yml file (it will be identical to the default config included in this README).
  3. The plugin automatically detects existing Geyser / Floodgate JARs by searching for files in the plugins directory that contain "geyser" or "floodgate" in their names.
    • If no existing JARs are found, it will create new ones with standard names (e.g., Geyser-Spigot.jar, floodgate-velocity.jar).

Commands & Permissions

  • /geyserupdate
    • Description: Immediately runs an update check.
    • Permission: geyserupdater.admin

Configuration File (config.yml)

  • enabled: Enables or disables the plugin.

  • checkOnStartup: Enables or disables the update check on startup.

  • periodic.enabled: Enables or disables the periodic update check.

  • periodic.intervalHours: The interval for periodic checks (in hours).

  • adminLogin.enabled: Enables or disables the update check when a privileged player logs in.

  • adminLogin.permission: The permission that triggers the check on login (default: geyserupdater.admin).

  • targets.geyser | targets.floodgate: Choose which plugins to update.

  • postUpdate.notifyConsole: Notifies the console after an update.

  • postUpdate.notifyPlayersWithPermission: Sends an in-game chat notification to players with permission.

  • postUpdate.runRestartCommand: Automatically executes a restart command after an update.

  • postUpdate.restartCommand: The restart command to execute (e.g., restart or end).

  • messages.*: Customize the messages sent by the plugin.

How it Works

  • Download URLs:

    • Geyser: https://download.geysermc.org/v2/projects/geyser/versions/latest/builds/latest/downloads/{platform}
    • Floodgate: https://download.geysermc.org/v2/projects/floodgate/versions/latest/builds/latest/downloads/{platform}
  • {platform} is replaced with spigot, bungeecord, or velocity.

  • The latest JAR is downloaded to a temporary file and its SHA-256 hash is compared with the existing JAR.

    • If the hashes are identical, it is considered "up to date," and the file is not replaced.
    • If they differ, the existing file is overwritten using an atomic replacement operation.
  • A server or proxy restart is required after an update is applied.

    • To enable automatic restarts, set postUpdate.runRestartCommand to true and configure the restartCommand to match your server's environment.

Notes / Known Limitations

  • If a download fails due to network issues or other errors, the existing plugin files will not be affected.

  • The plugin cannot detect Geyser/Floodgate files if they have unusual names or are not located directly within the plugins folder (it only scans for *.jar files in the root of the plugins directory).

  • The plugin does not display version numbers; it relies solely on hash comparison to determine if an update is available.

License

A license (e.g., MIT) can be added upon request.

1.0.0

正式版
加载器
velocity
MC 版本
1.20.3 · 1.20.4 · 1.20.5 · 1.20.6 · 1.21 · 1.21.1 · 1.21.2 · 1.21.3 · 1.21.4 · 1.21.5 · 1.21.6 · 1.21.7 · 1.21.8
velocity-1.0.0.jar848.7 KBSHA-1 6eccfa1b965159b5fb70873977a8743dc2ff7a3f获取文件 velocity-1.0.0.jar
展开更新日志

GeyserUpdater

An automatic updater plugin for GeyserMC / Floodgate. Supports Spigot (and forks like Paper), BungeeCord, and Velocity.

Features

  • Fetches the latest stable versions of GeyserMC and Floodgate from the Jenkins/download API and overwrites the existing JARs in the plugins directory.

  • Automatic Update Checks:

    • On server startup.
    • At a specified interval (e.g., every 12 hours).
    • When a player with a specific permission logs in (can be enabled/disabled).
  • Manual Command: /geyserupdate (Permission: geyserupdater.admin).

  • Configurable messages, update targets, check intervals, and restart commands.

Build

  • Prerequisites: Java 17, Maven 3.8+

  • Instructions:

    • Run mvn package in the directory where you cloned the repository.
  • Artifacts:

    • spigot/target/GeyserUpdater-Spigot-1.0.0.jar
    • bungee/target/GeyserUpdater-Bungee-1.0.0.jar
    • velocity/target/GeyserUpdater-Velocity-1.0.0.jar

Installation

  1. Place the appropriate JAR for your server platform into the plugins folder.
  2. Start the server to generate the config.yml file (it will be identical to the default config included in this README).
  3. The plugin automatically detects existing Geyser / Floodgate JARs by searching for files in the plugins directory that contain "geyser" or "floodgate" in their names.
    • If no existing JARs are found, it will create new ones with standard names (e.g., Geyser-Spigot.jar, floodgate-velocity.jar).

Commands & Permissions

  • /geyserupdate
    • Description: Immediately runs an update check.
    • Permission: geyserupdater.admin

Configuration File (config.yml)

  • enabled: Enables or disables the plugin.

  • checkOnStartup: Enables or disables the update check on startup.

  • periodic.enabled: Enables or disables the periodic update check.

  • periodic.intervalHours: The interval for periodic checks (in hours).

  • adminLogin.enabled: Enables or disables the update check when a privileged player logs in.

  • adminLogin.permission: The permission that triggers the check on login (default: geyserupdater.admin).

  • targets.geyser | targets.floodgate: Choose which plugins to update.

  • postUpdate.notifyConsole: Notifies the console after an update.

  • postUpdate.notifyPlayersWithPermission: Sends an in-game chat notification to players with permission.

  • postUpdate.runRestartCommand: Automatically executes a restart command after an update.

  • postUpdate.restartCommand: The restart command to execute (e.g., restart or end).

  • messages.*: Customize the messages sent by the plugin.

How it Works

  • Download URLs:

    • Geyser: https://download.geysermc.org/v2/projects/geyser/versions/latest/builds/latest/downloads/{platform}
    • Floodgate: https://download.geysermc.org/v2/projects/floodgate/versions/latest/builds/latest/downloads/{platform}
  • {platform} is replaced with spigot, bungeecord, or velocity.

  • The latest JAR is downloaded to a temporary file and its SHA-256 hash is compared with the existing JAR.

    • If the hashes are identical, it is considered "up to date," and the file is not replaced.
    • If they differ, the existing file is overwritten using an atomic replacement operation.
  • A server or proxy restart is required after an update is applied.

    • To enable automatic restarts, set postUpdate.runRestartCommand to true and configure the restartCommand to match your server's environment.

Notes / Known Limitations

  • If a download fails due to network issues or other errors, the existing plugin files will not be affected.

  • The plugin cannot detect Geyser/Floodgate files if they have unusual names or are not located directly within the plugins folder (it only scans for *.jar files in the root of the plugins directory).

  • The plugin does not display version numbers; it relies solely on hash comparison to determine if an update is available.

License

A license (e.g., MIT) can be added upon request.

1.0.0

正式版
加载器
bungeecord
MC 版本
25w34b
bungee-1.0.0.jar353.7 KBSHA-1 71c7cdd07f0bd30d58577967864f0fd81f4a8330获取文件 bungee-1.0.0.jar
展开更新日志

GeyserUpdater

An automatic updater plugin for GeyserMC / Floodgate. Supports Spigot (and forks like Paper), BungeeCord, and Velocity.

Features

  • Fetches the latest stable versions of GeyserMC and Floodgate from the Jenkins/download API and overwrites the existing JARs in the plugins directory.

  • Automatic Update Checks:

    • On server startup.
    • At a specified interval (e.g., every 12 hours).
    • When a player with a specific permission logs in (can be enabled/disabled).
  • Manual Command: /geyserupdate (Permission: geyserupdater.admin).

  • Configurable messages, update targets, check intervals, and restart commands.

Build

  • Prerequisites: Java 17, Maven 3.8+

  • Instructions:

    • Run mvn package in the directory where you cloned the repository.
  • Artifacts:

    • spigot/target/GeyserUpdater-Spigot-1.0.0.jar
    • bungee/target/GeyserUpdater-Bungee-1.0.0.jar
    • velocity/target/GeyserUpdater-Velocity-1.0.0.jar

Installation

  1. Place the appropriate JAR for your server platform into the plugins folder.
  2. Start the server to generate the config.yml file (it will be identical to the default config included in this README).
  3. The plugin automatically detects existing Geyser / Floodgate JARs by searching for files in the plugins directory that contain "geyser" or "floodgate" in their names.
    • If no existing JARs are found, it will create new ones with standard names (e.g., Geyser-Spigot.jar, floodgate-velocity.jar).

Commands & Permissions

  • /geyserupdate
    • Description: Immediately runs an update check.
    • Permission: geyserupdater.admin

Configuration File (config.yml)

  • enabled: Enables or disables the plugin.

  • checkOnStartup: Enables or disables the update check on startup.

  • periodic.enabled: Enables or disables the periodic update check.

  • periodic.intervalHours: The interval for periodic checks (in hours).

  • adminLogin.enabled: Enables or disables the update check when a privileged player logs in.

  • adminLogin.permission: The permission that triggers the check on login (default: geyserupdater.admin).

  • targets.geyser | targets.floodgate: Choose which plugins to update.

  • postUpdate.notifyConsole: Notifies the console after an update.

  • postUpdate.notifyPlayersWithPermission: Sends an in-game chat notification to players with permission.

  • postUpdate.runRestartCommand: Automatically executes a restart command after an update.

  • postUpdate.restartCommand: The restart command to execute (e.g., restart or end).

  • messages.*: Customize the messages sent by the plugin.

How it Works

  • Download URLs:

    • Geyser: https://download.geysermc.org/v2/projects/geyser/versions/latest/builds/latest/downloads/{platform}
    • Floodgate: https://download.geysermc.org/v2/projects/floodgate/versions/latest/builds/latest/downloads/{platform}
  • {platform} is replaced with spigot, bungeecord, or velocity.

  • The latest JAR is downloaded to a temporary file and its SHA-256 hash is compared with the existing JAR.

    • If the hashes are identical, it is considered "up to date," and the file is not replaced.
    • If they differ, the existing file is overwritten using an atomic replacement operation.
  • A server or proxy restart is required after an update is applied.

    • To enable automatic restarts, set postUpdate.runRestartCommand to true and configure the restartCommand to match your server's environment.

Notes / Known Limitations

  • If a download fails due to network issues or other errors, the existing plugin files will not be affected.

  • The plugin cannot detect Geyser/Floodgate files if they have unusual names or are not located directly within the plugins folder (it only scans for *.jar files in the root of the plugins directory).

  • The plugin does not display version numbers; it relies solely on hash comparison to determine if an update is available.

License

A license (e.g., MIT) can be added upon request.