Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- package io.github.warren1001.slowregen;
- import java.util.ArrayList;
- import org.bukkit.ChatColor;
- import org.bukkit.command.Command;
- import org.bukkit.command.CommandSender;
- import org.bukkit.entity.Player;
- import org.bukkit.event.EventHandler;
- import org.bukkit.event.Listener;
- import org.bukkit.event.entity.EntityRegainHealthEvent;
- import org.bukkit.plugin.java.JavaPlugin;
- import org.bukkit.scheduler.BukkitRunnable;
- import org.bukkit.scheduler.BukkitTask;
- public final class Main extends JavaPlugin implements Listener {
- private boolean on = true;
- private BukkitTask task;
- @Override
- public final void onEnable() {
- getConfig().addDefault("delay-in-seconds", 6);
- getConfig().addDefault("no-permission-msg", "You do not have the permissions to use this command.");
- getConfig().addDefault("command-permission", "sr.use");
- getConfig().options().copyDefaults();
- saveConfig();
- getServer().getPluginManager().registerEvents(this, this);
- startTask();
- }
- @Override
- public final boolean onCommand(final CommandSender sender, final Command cmd, final String label, final String[] args) {
- if(cmd.getName().equalsIgnoreCase("sr")) {
- if(!sender.hasPermission(getConfig().getString("command-permission"))) {
- sender.sendMessage(ChatColor.translateAlternateColorCodes('&', getConfig().getString("no-permission-msg")));
- return true;
- }
- if(args.length < 1) return false;
- if(args[0].equalsIgnoreCase("delay")) {
- int delay = getConfig().getInt("delay-in-seconds");
- if(args.length < 2) sender.sendMessage("The delay is " + delay + " " + (delay == 1 ? "second" : "seconds") + ".");
- else {
- try {
- delay = Integer.parseInt(args[1]);
- getConfig().set("delay-in-seconds", delay);
- startTask();
- sender.sendMessage("Set the delay to " + delay + " " + (delay == 1 ? "second" : "seconds") + ".");
- }
- catch(NumberFormatException e) {
- sender.sendMessage(args[1] + " is not a number!");
- }
- }
- }
- else if(args[0].equalsIgnoreCase("reload")) {
- reloadConfig();
- startTask();
- sender.sendMessage("Configuration reloaded.");
- }
- else if(args[0].equalsIgnoreCase("toggle")) {
- if(on) {
- on = false;
- if(task != null) task.cancel();
- sender.sendMessage("The timer is now off!");
- }
- else {
- on = true;
- startTask();
- sender.sendMessage("The timer is now on!");
- }
- }
- }
- return true;
- }
- @EventHandler
- public final void ERHE(final EntityRegainHealthEvent event) {
- if(event.getEntity() instanceof Player && on) event.setCancelled(true);
- }
- public final void startTask() {
- if(task != null) task.cancel();
- task = new BukkitRunnable() {
- @Override
- public void run() {
- for(final Player player : new ArrayList<>(getServer().getOnlinePlayers())) {
- final double health = player.getHealth();
- if(health > 0.0 && health < player.getMaxHealth()) player.setHealth(health + 1);
- }
- }
- }.runTaskTimer(this, 0L, getConfig().getInt("delay-in-seconds", 6) * 20L);
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement