You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

77 lines
2.1 KiB

package kcauldron.updater;
import kcauldron.KCauldron;
import kcauldron.KCauldronCommand;
import kcauldron.updater.KVersionRetriever.IVersionCheckCallback;
import net.minecraft.server.MinecraftServer;
import org.bukkit.Bukkit;
import org.bukkit.command.CommandSender;
import org.bukkit.entity.Player;
import org.bukkit.event.player.PlayerJoinEvent;
public class DefaultUpdateCallback implements IVersionCheckCallback {
10 years ago
public static DefaultUpdateCallback INSTANCE;
10 years ago
static {
INSTANCE = new DefaultUpdateCallback();
}
10 years ago
public void onPlayerJoin(PlayerJoinEvent event) {
Player player = event.getPlayer();
if (mHasUpdate && hasPermission(player)) {
sendUpdate(player);
}
}
10 years ago
private boolean hasPermission(CommandSender player) {
return player.hasPermission(KCauldronCommand.UPDATE);
}
10 years ago
private void sendUpdate(CommandSender player) {
CommandSenderUpdateCallback.newVersion(player, mCurrentVersion,
mNewVersion);
}
10 years ago
private boolean mHasUpdate;
private String mCurrentVersion;
private String mNewVersion;
10 years ago
private DefaultUpdateCallback() {
}
10 years ago
@Override
public void upToDate() {
mHasUpdate = false;
mCurrentVersion = KCauldron.getCurrentVersion();
mNewVersion = null;
}
10 years ago
@Override
public void newVersion(String newVersion) {
mCurrentVersion = KCauldron.getCurrentVersion();
mNewVersion = newVersion;
if (!mHasUpdate) {
Bukkit.getConsoleSender().sendMessage(
"New version of KCauldron avaiable: " + newVersion);
for (Player player : Bukkit.getOnlinePlayers()) {
if (hasPermission(player)) {
sendUpdate(player);
}
}
}
mHasUpdate = true;
if (MinecraftServer.kcauldronConfig.updatecheckerAutoinstall.getValue()
&& !mNewVersion.equals(KCauldron.sNewServerVersion)
&& !KCauldron.sUpdateInProgress) {
Bukkit.getConsoleSender().sendMessage("Triggering auto update");
KCauldronUpdater.initUpdate(Bukkit.getConsoleSender(), newVersion);
}
}
10 years ago
@Override
public void error(Throwable t) {
10 years ago
}
}