- Баллы
- 6
- Имя в Minecraft
- reker2050
PHP:
package SCP_autosave;
import java.util.logging.Logger;
import org.bukkit.Bukkit;
import org.bukkit.ChatColor;
import org.bukkit.command.Command;
import org.bukkit.command.CommandSender;
import org.bukkit.event.Listener;
import org.bukkit.plugin.java.JavaPlugin;
import org.bukkit.scheduler.BukkitRunnable;
import org.bukkit.configuration.file.FileConfiguration;
public final class SCP_autosave extends JavaPlugin implements Listener {
protected FileConfiguration config;
Logger log = getLogger();
int time = 1*60*20;
BukkitRunnable runnable = new BukkitRunnable() {
@Override
public void run() {
getServer().broadcastMessage(ChatColor.RED+"Автосохранение...");
Bukkit.dispatchCommand(Bukkit.getConsoleSender(), "save-all");
getServer().broadcastMessage(ChatColor.GREEN+"Завершено!");
}
};
@Override
public void onEnable() {
getServer().getPluginManager().registerEvents(this, this);
log.info("Started");
getServer().broadcastMessage("[SCP_autosave] Start");
config = getConfig();
runnable.runTaskTimer(this, 0, time);
runnable.cancel();
}
@Override
public void onDisable() {
getServer().getPluginManager().registerEvents(this, this);
saveConfig();
}
public boolean onCommand(CommandSender s, Command cmd, String label, String args[]) {
if(cmd.getName().equalsIgnoreCase("autosave_start")) {
s.sendMessage(ChatColor.GREEN+"[SCP_autosave] Автосохранение запущено");
runnable.run();
return true;
}else if(cmd.getName().equalsIgnoreCase("autosave_stop")) {
runnable.cancel();
s.sendMessage(ChatColor.GREEN+"[SCP_autosave] Автосохранение остановлено");
return true;
}/*else if(cmd.getName().equalsIgnoreCase("autosave_time")) {
if (args.length == 1) {
getServer().broadcastMessage(ChatColor.GREEN+"[SCP_autosave] Интервал автосохранения задан ("+args[0]+")!");
time = 20*Integer.parseInt(args[0]);
config.set("autosave_time", args[0]);
return true;
}else {
s.sendMessage(ChatColor.RED+"[SCP_autosave] Невероное количество аргументов для команды!");
return true;
}
}*/
return false;
}
}
При команде /autosave_start один раз выполняется сохранение карты, и всё.
При попытке запустить таймер еще раз - снова сохранение (хотя обычно ругается на повторный запуск одного и того же таймера).
Что делать?
Заранее спасибо!