1
0
Fork 0
KCauldronX/src/main/java/kcauldron/updater/DefaultUpdateCallback.java

88 lines
2.7 KiB
Java

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.ChatColor;
import org.bukkit.command.CommandSender;
import org.bukkit.entity.Player;
import org.bukkit.event.player.PlayerJoinEvent;
public class DefaultUpdateCallback implements IVersionCheckCallback {
public static DefaultUpdateCallback INSTANCE;
static {
INSTANCE = new DefaultUpdateCallback();
}
public void onPlayerJoin(PlayerJoinEvent event) {
Player player = event.getPlayer();
if (hasPermission(player)) {
/*
if (KCauldron.isLegacy()) {
player.sendMessage(ChatColor.YELLOW + "We're running on legacy version on KCauldron, please update your version");
}
if (!KCauldron.isOfficial()) {
player.sendMessage(ChatColor.YELLOW + "We're running on non-official version on KCauldron, please update your version");
}
if (mHasUpdate) {
sendUpdate(player);
}
*/
}
}
private boolean hasPermission(CommandSender player) {
return player.hasPermission(KCauldronCommand.UPDATE) || player.isOp();
}
private void sendUpdate(CommandSender player) {
CommandSenderUpdateCallback.newVersion(player, mCurrentVersion,
mNewVersion);
}
private boolean mHasUpdate;
private String mCurrentVersion;
private String mNewVersion;
private DefaultUpdateCallback() {
}
@Override
public void upToDate() {
mHasUpdate = false;
mCurrentVersion = KCauldron.getCurrentVersion();
mNewVersion = null;
}
@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);
}
}
@Override
public void error(Throwable t) {
}
}