diff --git a/src/main/java/com/bekvon/bukkit/residence/runnable/AutoSaveTask.java b/src/main/java/com/bekvon/bukkit/residence/runnable/AutoSaveTask.java new file mode 100644 index 0000000..1e47511 --- /dev/null +++ b/src/main/java/com/bekvon/bukkit/residence/runnable/AutoSaveTask.java @@ -0,0 +1,24 @@ +package com.bekvon.bukkit.residence.runnable; + +import org.bukkit.Bukkit; + +import com.bekvon.bukkit.residence.Residence; + +public class AutoSaveTask implements Runnable { + Residence res; + + public AutoSaveTask(Residence res) { + this.res = res; + } + + @Override + public void run() { + try { + if (Residence.initsuccess) + res.saveYml(); + } catch (Exception ex) { + Bukkit.getLogger().warning("领地数据保存错误,可能造成部分领地丢失,请尝试恢复备份文件!"); + } + } + +} diff --git a/src/main/java/com/bekvon/bukkit/residence/runnable/HealTask.java b/src/main/java/com/bekvon/bukkit/residence/runnable/HealTask.java new file mode 100644 index 0000000..a969dde --- /dev/null +++ b/src/main/java/com/bekvon/bukkit/residence/runnable/HealTask.java @@ -0,0 +1,31 @@ +package com.bekvon.bukkit.residence.runnable; + +import org.bukkit.Bukkit; +import org.bukkit.entity.Damageable; +import org.bukkit.entity.Player; + +import com.bekvon.bukkit.residence.Residence; +import com.bekvon.bukkit.residence.protection.ClaimedResidence; + +public class HealTask implements Runnable { + + @Override + public void run() { + try { + for (Player player : Bukkit.getServer().getOnlinePlayers()) { + String resname = Residence.getPlayerListener().getCurrentResidenceName(player.getName()); + ClaimedResidence res = null; + if (resname != null) + res = Residence.getResidenceManager().getByName(resname); + if (res != null && res.getPermissions().has("healing", false)) { + Damageable damage = player; + double health = damage.getHealth(); + if (health < 20 && !player.isDead()) + player.setHealth(health + 1); + } + } + } catch (Exception ex) { + } + } + +} diff --git a/src/main/java/com/bekvon/bukkit/residence/runnable/LeaseTask.java b/src/main/java/com/bekvon/bukkit/residence/runnable/LeaseTask.java new file mode 100644 index 0000000..24790bf --- /dev/null +++ b/src/main/java/com/bekvon/bukkit/residence/runnable/LeaseTask.java @@ -0,0 +1,12 @@ +package com.bekvon.bukkit.residence.runnable; + +import com.bekvon.bukkit.residence.Residence; + +public class LeaseTask implements Runnable { + @Override + public void run() { + Residence.getLeaseManager().doExpirations(); + if (Residence.getConfigManager().showIntervalMessages()) + Residence.getLog().info(" - Lease Expirations checked!"); + } +} diff --git a/src/main/java/com/bekvon/bukkit/residence/runnable/RentTask.java b/src/main/java/com/bekvon/bukkit/residence/runnable/RentTask.java new file mode 100644 index 0000000..1b8bdeb --- /dev/null +++ b/src/main/java/com/bekvon/bukkit/residence/runnable/RentTask.java @@ -0,0 +1,12 @@ +package com.bekvon.bukkit.residence.runnable; + +import com.bekvon.bukkit.residence.Residence; + +public class RentTask implements Runnable { + @Override + public void run() { + Residence.getRentManager().checkCurrentRents(); + if (Residence.getConfigManager().showIntervalMessages()) + Residence.getLog().info(" - Rent Expirations checked!"); + } +} diff --git a/src/main/java/com/bekvon/bukkit/residence/runnable/TaskManager.java b/src/main/java/com/bekvon/bukkit/residence/runnable/TaskManager.java new file mode 100644 index 0000000..470c50c --- /dev/null +++ b/src/main/java/com/bekvon/bukkit/residence/runnable/TaskManager.java @@ -0,0 +1,27 @@ +package com.bekvon.bukkit.residence.runnable; + +import java.util.ArrayList; +import java.util.List; + +import org.bukkit.plugin.Plugin; +import org.bukkit.scheduler.BukkitTask; + +public class TaskManager { + Plugin plugin; + + List tasklist; + + public TaskManager(Plugin plugin) { + this.plugin = plugin; + this.tasklist = new ArrayList(); + } + + public void add(BukkitTask task) { + tasklist.add(task); + } + + public void cancelall() { + for (BukkitTask bukkitTask : tasklist) + bukkitTask.cancel(); + } +}