Files
Paper/paper-api/src/main/java/com/destroystokyo/paper/util/VersionFetcher.java
Zach Brown 05ec73f817 Expose server build information
Co-authored-by: Professor Bloodstone <git@bloodstone.dev>
Co-authored-by: Mark Vainomaa <mikroskeem@mikroskeem.eu>
Co-authored-by: masmc05 <masmc05@gmail.com>
Co-authored-by: Riley Park <rileysebastianpark@gmail.com>
2019-05-27 01:10:06 -05:00

48 lines
1.5 KiB
Java

package com.destroystokyo.paper.util;
import net.kyori.adventure.text.Component;
import net.kyori.adventure.text.format.NamedTextColor;
import org.bukkit.Bukkit;
import org.jetbrains.annotations.ApiStatus;
import org.jspecify.annotations.NullMarked;
@NullMarked
public interface VersionFetcher {
/**
* Amount of time to cache results for in milliseconds
* <p>
* Negative values will never cache.
*
* @return cache time
*/
long getCacheTime();
/**
* Gets the version message to cache and show to command senders.
*
* <p>NOTE: This is run in a new thread separate from that of the command processing thread</p>
*
* @param serverVersion the current version of the server (will match {@link Bukkit#getVersion()})
* @return the message to show when requesting a version
*/
Component getVersionMessage(String serverVersion);
@ApiStatus.Internal
class DummyVersionFetcher implements VersionFetcher {
@Override
public long getCacheTime() {
return -1;
}
@Override
public Component getVersionMessage(final String serverVersion) {
Bukkit.getLogger().warning("Version provider has not been set, cannot check for updates!");
Bukkit.getLogger().info("Override the default implementation of org.bukkit.UnsafeValues#getVersionFetcher()");
new Throwable().printStackTrace();
return Component.text("Unable to check for updates. No version provider set.", NamedTextColor.RED);
}
}
}