Geyser and foodgate auto uploader
2025-08-21Auto-update plugin for GeyserMC / Floodgate. Supports Spigot (Paper, etc.), BungeeCord, and Velocity
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).
- On server startup.
- 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
- spigot/target/GeyserUpdater-Spigot-1.0.0.jar
- Run mvn package in the directory where you cloned the repository.
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).
- 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
- Description: Immediately runs an update check.
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.
- Geyser: https://download.geysermc.org/v2/projects/geyser/versions/latest/builds/latest/downloads/{platform}
- 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.
- If the hashes are identical, it is considered "up to date," and the file is not replaced.
- 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.
- 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.
Similar projects
Plugin →Let Me Despawn
Improves performance by tweaking mob despawn rules. Say bye to pesky unintentional persistent mobs.
25MSueta
JourneyMap
Real-time map used for mapping in-game or your browser as you explore.
14.7MSueta
Emotecraft
Create your own emotes in Minecraft.
7.5MSueta
Simple Tpa
A simple tpa plugin which sends requests
5.4MSueta
Common Network
Forge and Fabric Unified Networking Solution
3.9MSueta
Set Home
A lightweight plugin for players to set their homes.
3.8MSueta