Geyser and Floodgate auto uploaderСкачатьСкачатьСкачатьСкачатьСкачатьСкачатьСкачатьСкачатьСкачатьСкачатьСкачатьСкачатьСкачатьСкачатьСкачатьСкачатьСкачатьСкачатьСкачатьСкачатьСкачатьСкачать
ВЕРСИИ (22)
release
Updater fixes, delayed restart & improved platform support
1.316 сент. 2026 г.4,6 тыс.Minecraft: 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, 26.2, 26.3bungeecord
Что нового
## GeyserUpdater 1.3
This release improves updater reliability, platform detection, and automatic restart handling.
### Added
- Added `postUpdate.restartDelaySeconds`
- Allows delaying the configured restart command after an update
- Default: `0` seconds
- Delayed automatic restart support for:
- Paper / Spigot
- BungeeCord
- Velocity
- Added platform-aware Geyser and Floodgate JAR detection
- Added automatic detection to prevent GeyserUpdater itself from being mistaken for a Geyser JAR
- Added automated tests for updater JAR detection and restart delay configuration
### Fixed
- Fixed overly broad Geyser/Floodgate JAR matching
- Fixed cases where unrelated or incorrectly named JAR files could be selected for replacement
- Fixed GeyserUpdater potentially being detected as the plugin it was supposed to update
- Fixed MCXboxBroadcast extension installation paths on proxy platforms
- MCXboxBroadcast is now installed into the correct platform-specific Geyser extensions folder
Examples:
```text
Paper / Spigot:
plugins/Geyser-Spigot/extensions
BungeeCord:
plugins/Geyser-BungeeCord/extensions
Velocity:
plugins/Geyser-Velocity/extensions
````
### Automatic restart delay
You can now configure a delay before the automatic restart command is executed:
```yaml
postUpdate:
runRestartCommand: true
restartCommand: "restart"
restartDelaySeconds: 60
```
For BungeeCord, the restart command can for example be set to `end`.
Negative restart delay values are automatically treated as `0`.
### Changed
* Updated internal version information to `1.1.0`
* Updated the HTTP User-Agent to `GeyserUpdater/1.1.0`
* Improved resource handling while scanning plugin directories
* Updated English and Japanese documentation for the new restart delay and platform-specific extension paths
release
Updater fixes, delayed restart & improved platform support
1.316 сент. 2026 г.346Minecraft: 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, 26.2, 26.3velocity
Что нового
## GeyserUpdater 1.3
This release improves updater reliability, platform detection, and automatic restart handling.
### Added
- Added `postUpdate.restartDelaySeconds`
- Allows delaying the configured restart command after an update
- Default: `0` seconds
- Delayed automatic restart support for:
- Paper / Spigot
- BungeeCord
- Velocity
- Added platform-aware Geyser and Floodgate JAR detection
- Added automatic detection to prevent GeyserUpdater itself from being mistaken for a Geyser JAR
- Added automated tests for updater JAR detection and restart delay configuration
### Fixed
- Fixed overly broad Geyser/Floodgate JAR matching
- Fixed cases where unrelated or incorrectly named JAR files could be selected for replacement
- Fixed GeyserUpdater potentially being detected as the plugin it was supposed to update
- Fixed MCXboxBroadcast extension installation paths on proxy platforms
- MCXboxBroadcast is now installed into the correct platform-specific Geyser extensions folder
Examples:
```text
Paper / Spigot:
plugins/Geyser-Spigot/extensions
BungeeCord:
plugins/Geyser-BungeeCord/extensions
Velocity:
plugins/Geyser-Velocity/extensions
````
### Automatic restart delay
You can now configure a delay before the automatic restart command is executed:
```yaml
postUpdate:
runRestartCommand: true
restartCommand: "restart"
restartDelaySeconds: 60
```
For BungeeCord, the restart command can for example be set to `end`.
Negative restart delay values are automatically treated as `0`.
### Changed
* Updated internal version information to `1.1.0`
* Updated the HTTP User-Agent to `GeyserUpdater/1.1.0`
* Improved resource handling while scanning plugin directories
* Updated English and Japanese documentation for the new restart delay and platform-specific extension paths
release
Updater fixes, delayed restart & improved platform support
1.316 сент. 2026 г.25,6 тыс.Minecraft: 1.19, 1.19.1, 1.19.2, 1.19.3, 1.19.4, 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, 26.2, 26.3paper, purpur, spigot
Что нового
## GeyserUpdater 1.3
This release improves updater reliability, platform detection, and automatic restart handling.
### Added
- Added `postUpdate.restartDelaySeconds`
- Allows delaying the configured restart command after an update
- Default: `0` seconds
- Delayed automatic restart support for:
- Paper / Spigot
- BungeeCord
- Velocity
- Added platform-aware Geyser and Floodgate JAR detection
- Added automatic detection to prevent GeyserUpdater itself from being mistaken for a Geyser JAR
- Added automated tests for updater JAR detection and restart delay configuration
### Fixed
- Fixed overly broad Geyser/Floodgate JAR matching
- Fixed cases where unrelated or incorrectly named JAR files could be selected for replacement
- Fixed GeyserUpdater potentially being detected as the plugin it was supposed to update
- Fixed MCXboxBroadcast extension installation paths on proxy platforms
- MCXboxBroadcast is now installed into the correct platform-specific Geyser extensions folder
Examples:
```text
Paper / Spigot:
plugins/Geyser-Spigot/extensions
BungeeCord:
plugins/Geyser-BungeeCord/extensions
Velocity:
plugins/Geyser-Velocity/extensions
````
### Automatic restart delay
You can now configure a delay before the automatic restart command is executed:
```yaml
postUpdate:
runRestartCommand: true
restartCommand: "restart"
restartDelaySeconds: 60
```
For BungeeCord, the restart command can for example be set to `end`.
Negative restart delay values are automatically treated as `0`.
### Changed
* Updated internal version information to `1.1.0`
* Updated the HTTP User-Agent to `GeyserUpdater/1.1.0`
* Improved resource handling while scanning plugin directories
* Updated English and Japanese documentation for the new restart delay and platform-specific extension paths
release
Geyser and Floodgate auto uploader 1.0.1
1.2.217 июн. 2026 г.32,6 тыс.Minecraft: 1.19, 1.19.1, 1.19.2, 1.19.3, 1.19.4, 26.2bukkit, paper, purpur, spigot
Что нового
suppots
release
Geyser and Floodgate auto uploader 1.0.1
1.2.217 июн. 2026 г.1,2 тыс.Minecraft: 1.19, 1.19.1, 1.19.2, 1.19.3, 1.19.4, 26.2spigot
Что нового
supports 26.2
release
Geyser and Floodgate auto uploader 1.1.2
1.1.217 июн. 2026 г.627Minecraft: 26.2velocity
Что нового
supports 26.2
release
Geyser and Floodgate auto uploader 1.1.1
1.1.14 июн. 2026 г.1,5 тыс.Minecraft: 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.2bungeecord
Что нового
## 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.
release
Geyser and Floodgate auto uploader 1.0.1
1.1.14 июн. 2026 г.219Minecraft: 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.2velocity
Что нового
## 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.
release
Geyser and Floodgate auto uploader 1.1.1
1.1.14 июн. 2026 г.18,2 тыс.Minecraft: 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.2bukkit, paper, purpur, spigot
Что нового
## 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.
release
Geyser and foodgate auto uploader 1.0.1
1.113 апр. 2026 г.4,2 тыс.Minecraft: 26.1, 26.1.1, 26.1.2bungeecord
Что нового
**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.
release
Geyser and foodgate auto uploader 1.0.1
1.113 апр. 2026 г.258Minecraft: 26.1, 26.1.1, 26.1.2velocity
Что нового
**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.
release
Geyser and foodgate auto uploader 1.0.1
1.113 апр. 2026 г.15 тыс.Minecraft: 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-2paper, purpur, spigot
Что нового
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.
release
Supports multiple languages and mcbroadcast.
1.0.211 янв. 2026 г.4,4 тыс.Minecraft: 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.11bungeecord
Что нового
Users who installed previous versions must delete config.yml located at plugins/geyseruploader/config.yml.
release
Supports multiple languages and mcbroadcast.
1.0.211 янв. 2026 г.26 тыс.Minecraft: 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.11paper, purpur, spigot
Что нового
Users who installed previous versions must delete config.yml located at plugins/geyseruploader/config.yml.
release
Supports multiple languages and mcbroadcast.
1.0.211 янв. 2026 г.326Minecraft: 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.11velocity
Что нового
Supports multiple languages and mcbroadcast.Users who installed previous versions must delete config.yml located at plugins/geyseruploader/config.yml
release
Geyser and foodgate auto uploader 1.0.1
1.0.121 окт. 2025 г.3,4 тыс.Minecraft: 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.10velocity
Что нового
Bug fixes.
release
Geyser and foodgate auto uploader 1.0.1
1.0.121 окт. 2025 г.85Minecraft: 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.10bungeecord
Что нового
Bug fixes.
release
Geyser and foodgate auto uploader 1.0.1
1.0.121 окт. 2025 г.7,1 тыс.Minecraft: 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.10paper, purpur, spigot
Что нового
Bug fixes.
release
Geyser and foodgate auto uploader 1.0.0
1.0.119 окт. 2025 г.143Minecraft: 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.10bungeecord
release
Geyser and foodgate auto uploader 1.0.0
1.0.023 авг. 2025 г.8,6 тыс.Minecraft: 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.8paper, purpur, spigot
Что нового
# 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.
release
Geyser and foodgate auto uploader 1.0.0
1.0.023 авг. 2025 г.98Minecraft: 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.8velocity
Что нового
# 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.
release
Geyser and foodgate auto uploader 1.0.0
1.0.023 авг. 2025 г.68Minecraft: 25w34bbungeecord
Что нового
# 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.