2017-10-26 03:33:23 +02:00
|
|
|
package bskyblock.addin.warps;
|
|
|
|
|
2018-01-01 20:49:02 +01:00
|
|
|
import java.util.Optional;
|
|
|
|
|
2017-12-31 06:15:47 +01:00
|
|
|
import bskyblock.addin.warps.commands.WarpCommand;
|
|
|
|
import bskyblock.addin.warps.commands.WarpsCommand;
|
2017-10-26 03:33:23 +02:00
|
|
|
import bskyblock.addin.warps.config.PluginConfig;
|
|
|
|
import us.tastybento.bskyblock.BSkyBlock;
|
2018-01-07 20:25:38 +01:00
|
|
|
import us.tastybento.bskyblock.Constants;
|
2017-12-31 06:15:47 +01:00
|
|
|
import us.tastybento.bskyblock.api.addons.Addon;
|
|
|
|
import us.tastybento.bskyblock.api.commands.CompositeCommand;
|
2017-10-26 03:33:23 +02:00
|
|
|
|
|
|
|
/**
|
|
|
|
* Addin to BSkyBlock that enables welcome warp signs
|
|
|
|
* @author tastybento
|
|
|
|
*
|
|
|
|
*/
|
2017-12-31 06:15:47 +01:00
|
|
|
public class Warp extends Addon {
|
2017-10-26 03:33:23 +02:00
|
|
|
|
2018-01-01 20:49:02 +01:00
|
|
|
private static final String BSKYBLOCK_LEVEL = "BSkyBlock-Level";
|
|
|
|
|
2017-10-26 03:33:23 +02:00
|
|
|
// The BSkyBlock plugin instance.
|
|
|
|
private BSkyBlock bSkyBlock;
|
|
|
|
|
|
|
|
// Warp panel object
|
2017-12-31 06:15:47 +01:00
|
|
|
private WarpPanelManager warpPanelManager;
|
2017-10-26 03:33:23 +02:00
|
|
|
|
|
|
|
// Warps signs object
|
2017-12-31 06:15:47 +01:00
|
|
|
private WarpSignsManager warpSignsManager;
|
2017-10-26 03:33:23 +02:00
|
|
|
|
2018-01-01 20:49:02 +01:00
|
|
|
// Level addon
|
|
|
|
private Optional<Addon> levelAddon;
|
|
|
|
|
2017-10-26 03:33:23 +02:00
|
|
|
@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.
|
2017-12-31 06:15:47 +01:00
|
|
|
bSkyBlock = BSkyBlock.getInstance();
|
2017-10-26 03:33:23 +02:00
|
|
|
// Check if it is enabled - it might be loaded, but not enabled.
|
|
|
|
if (!bSkyBlock.isEnabled()) {
|
|
|
|
this.setEnabled(false);
|
|
|
|
return;
|
|
|
|
}
|
2017-10-27 00:58:58 +02:00
|
|
|
// We have to wait for the worlds to load, so we do the rest 1 tick later
|
2017-12-31 06:15:47 +01:00
|
|
|
getServer().getScheduler().runTask(this.getBSkyBlock(), () -> {
|
2017-10-27 00:58:58 +02:00
|
|
|
// Start warp signs
|
2017-12-31 06:15:47 +01:00
|
|
|
warpSignsManager = new WarpSignsManager(this, bSkyBlock);
|
|
|
|
warpPanelManager = new WarpPanelManager(this);
|
|
|
|
// Load the listener
|
|
|
|
getServer().getPluginManager().registerEvents(warpSignsManager, bSkyBlock);
|
2017-10-27 00:58:58 +02:00
|
|
|
// Register commands
|
2018-01-07 20:25:38 +01:00
|
|
|
CompositeCommand bsbIslandCmd = (CompositeCommand) BSkyBlock.getInstance().getCommandsManager().getCommand(Constants.ISLANDCOMMAND);
|
2017-12-31 06:15:47 +01:00
|
|
|
new WarpCommand(this, bsbIslandCmd);
|
|
|
|
new WarpsCommand(this, bsbIslandCmd);
|
2018-01-01 20:49:02 +01:00
|
|
|
|
|
|
|
// Get the level addon if it exists
|
|
|
|
setLevelAddon(getBSkyBlock().getAddonsManager().getAddonByName(BSKYBLOCK_LEVEL));
|
2017-10-27 00:58:58 +02:00
|
|
|
});
|
2017-10-26 03:33:23 +02:00
|
|
|
// Done
|
|
|
|
}
|
|
|
|
|
|
|
|
@Override
|
|
|
|
public void onDisable(){
|
|
|
|
// Save the warps
|
2017-12-31 06:15:47 +01:00
|
|
|
if (warpSignsManager != null)
|
|
|
|
warpSignsManager.saveWarpList();
|
2017-10-26 03:33:23 +02:00
|
|
|
}
|
|
|
|
|
|
|
|
/**
|
2017-12-31 06:15:47 +01:00
|
|
|
* Get warp panel manager
|
|
|
|
* @return
|
2017-10-26 03:33:23 +02:00
|
|
|
*/
|
2017-12-31 06:15:47 +01:00
|
|
|
public WarpPanelManager getWarpPanelManager() {
|
|
|
|
return warpPanelManager;
|
2017-10-26 03:33:23 +02:00
|
|
|
}
|
2018-01-01 20:49:02 +01:00
|
|
|
|
2017-12-31 06:15:47 +01:00
|
|
|
public WarpSignsManager getWarpSignsManager() {
|
|
|
|
return warpSignsManager;
|
2017-10-26 03:33:23 +02:00
|
|
|
}
|
|
|
|
|
2018-01-01 20:49:02 +01:00
|
|
|
public Optional<Addon> getLevelAddon() {
|
|
|
|
return levelAddon;
|
|
|
|
}
|
|
|
|
|
|
|
|
public void setLevelAddon(Optional<Addon> levelAddon) {
|
|
|
|
this.levelAddon = levelAddon;
|
|
|
|
}
|
|
|
|
|
2017-10-26 03:33:23 +02:00
|
|
|
}
|