package com.nisovin.magicspells.spells.instant; import org.bukkit.Location; import org.bukkit.World; import org.bukkit.entity.Player; import com.nisovin.magicspells.spells.InstantSpell; import com.nisovin.magicspells.spells.TargetedLocationSpell; import com.nisovin.magicspells.util.MagicConfig; public class TimeSpell extends InstantSpell implements TargetedLocationSpell { private int timeToSet; private String strAnnounce; public TimeSpell(MagicConfig config, String spellName) { super(config, spellName); timeToSet = getConfigInt("time-to-set", 0); strAnnounce = getConfigString("str-announce", "The sun suddenly appears in the sky."); } @Override public PostCastAction castSpell(Player player, SpellCastState state, float power, String[] args) { if (state == SpellCastState.NORMAL) { World world = player.getWorld(); setTime(world); } return PostCastAction.HANDLE_NORMALLY; } void setTime(World world) { world.setTime(timeToSet); for (Player p : world.getPlayers()) { sendMessage(p, strAnnounce); } } @Override public boolean castAtLocation(Player caster, Location target, float power) { setTime(target.getWorld()); return true; } @Override public boolean castAtLocation(Location target, float power) { setTime(target.getWorld()); return true; } }