Implement update notifications for Geyser

Geyser installations will now get notified when a new Bedrock release is out and Geyser must be updated. The system works similarly to ViaVersion where OPs get a notification of an update when they join. The permission node for players to see update notifications is `geyser.update` and the backing JSON that controls this can be found at https://github.com/GeyserMC/GeyserSite/blob/gh-pages/versions.json. There is also a config option to disable update checking.

This update also fixes modern Paper installations not being able to see colored text logged from Geyser in the console.
This commit is contained in:
Camotoy 2022-08-21 21:22:15 -04:00
parent a3b1cf61ad
commit 67a65c45d3
No known key found for this signature in database
GPG key ID: 7EEFB66FE798081F
26 changed files with 558 additions and 34 deletions

View file

@ -31,11 +31,10 @@ import org.apache.logging.log4j.Level;
import org.apache.logging.log4j.core.config.Configurator;
import org.geysermc.geyser.GeyserImpl;
import org.geysermc.geyser.GeyserLogger;
import org.geysermc.geyser.command.CommandSender;
import org.geysermc.geyser.text.ChatColor;
@Log4j2
public class GeyserStandaloneLogger extends SimpleTerminalConsole implements GeyserLogger, CommandSender {
public class GeyserStandaloneLogger extends SimpleTerminalConsole implements GeyserLogger {
@Override
protected boolean isRunning() {
@ -95,24 +94,4 @@ public class GeyserStandaloneLogger extends SimpleTerminalConsole implements Gey
public boolean isDebug() {
return log.isDebugEnabled();
}
@Override
public String name() {
return "CONSOLE";
}
@Override
public void sendMessage(String message) {
info(message);
}
@Override
public boolean isConsole() {
return true;
}
@Override
public boolean hasPermission(String permission) {
return true;
}
}