package de.oppermann.bastian.spleef.util; import java.io.File; import org.bukkit.Bukkit; import org.bukkit.entity.Player; import org.bukkit.plugin.InvalidDescriptionException; import org.bukkit.plugin.InvalidPluginException; import org.bukkit.plugin.UnknownDependencyException; import de.oppermann.bastian.spleef.SpleefMain; /** * Simple class to reload the plugin. */ public class Reloader implements Runnable { final File FILE; final String PLUGIN_RELOADED; final Player PLAYER; /** * Class constructor */ public Reloader(File file, String pluginReloadedMessage, Player messageReciever) { FILE = file; PLUGIN_RELOADED = pluginReloadedMessage; PLAYER = messageReciever; } /** * Reloads the plugin. */ public void reload() { Bukkit.getPluginManager().disablePlugin(SpleefMain.getInstance()); new Thread(this).start();; } /** * Don't call this on your own! */ @Override public void run() { try { Bukkit.getPluginManager().enablePlugin(Bukkit.getPluginManager().loadPlugin(FILE)); PLAYER.sendMessage(PLUGIN_RELOADED); } catch (UnknownDependencyException e) { // should not happen (EpicSpleef does not have dependencies!) e.printStackTrace(); } catch (InvalidPluginException e) { // should not happen e.printStackTrace(); } catch (InvalidDescriptionException e) { // should not happen e.printStackTrace(); } } }