addon-welcomewarpsigns/src/bskyblock/addin/warps/Warp.java

73 lines
2.3 KiB
Java

package bskyblock.addin.warps;
import bskyblock.addin.warps.commands.WarpCommand;
import bskyblock.addin.warps.commands.WarpsCommand;
import bskyblock.addin.warps.config.PluginConfig;
import us.tastybento.bskyblock.BSkyBlock;
import us.tastybento.bskyblock.api.addons.Addon;
import us.tastybento.bskyblock.api.commands.CompositeCommand;
import us.tastybento.bskyblock.config.Settings;
/**
* Addin to BSkyBlock that enables welcome warp signs
* @author tastybento
*
*/
public class Warp extends Addon {
// The BSkyBlock plugin instance.
private BSkyBlock bSkyBlock;
// Warp panel object
private WarpPanelManager warpPanelManager;
// Warps signs object
private WarpSignsManager warpSignsManager;
@Override
public void onEnable() {
// Load the plugin's config
new PluginConfig(this);
// Get the BSkyBlock plugin. This will be available because this plugin depends on it in plugin.yml.
bSkyBlock = BSkyBlock.getInstance();
// Check if it is enabled - it might be loaded, but not enabled.
if (!bSkyBlock.isEnabled()) {
this.setEnabled(false);
return;
}
// We have to wait for the worlds to load, so we do the rest 1 tick later
getServer().getScheduler().runTask(this.getBSkyBlock(), () -> {
// Start warp signs
warpSignsManager = new WarpSignsManager(this, bSkyBlock);
warpPanelManager = new WarpPanelManager(this);
// Load the listener
getServer().getPluginManager().registerEvents(warpSignsManager, bSkyBlock);
// Register commands
CompositeCommand bsbIslandCmd = (CompositeCommand) BSkyBlock.getInstance().getCommandsManager().getCommand(Settings.ISLANDCOMMAND);
new WarpCommand(this, bsbIslandCmd);
new WarpsCommand(this, bsbIslandCmd);
});
// Done
}
@Override
public void onDisable(){
// Save the warps
if (warpSignsManager != null)
warpSignsManager.saveWarpList();
}
/**
* Get warp panel manager
* @return
*/
public WarpPanelManager getWarpPanelManager() {
return warpPanelManager;
}
public WarpSignsManager getWarpSignsManager() {
return warpSignsManager;
}
}