LimboManager/src/main/java/wtf/beatrice/limbomanager/LimboManager.java

86 lines
3.0 KiB
Java
Raw Normal View History

package wtf.beatrice.limbomanager;
import org.bukkit.Bukkit;
2022-11-12 01:12:45 +01:00
import org.bukkit.configuration.InvalidConfigurationException;
import org.bukkit.configuration.file.YamlConfiguration;
import org.bukkit.plugin.PluginManager;
import org.bukkit.plugin.java.JavaPlugin;
2022-11-11 23:22:26 +01:00
import wtf.beatrice.limbomanager.commands.Spawn;
import wtf.beatrice.limbomanager.listeners.CommandCanceller;
2022-11-11 23:16:59 +01:00
import wtf.beatrice.limbomanager.listeners.PlayerChecker;
import wtf.beatrice.limbomanager.listeners.PlayerTeleporter;
import wtf.beatrice.limbomanager.listeners.RiskyBlocksHandler;
2022-11-11 23:13:04 +01:00
import wtf.beatrice.limbomanager.objects.LocationCheckRunnable;
2022-11-12 01:12:45 +01:00
import wtf.beatrice.limbomanager.utils.FileUtils;
2022-11-11 22:50:42 +01:00
import java.io.File;
2022-11-12 01:12:45 +01:00
import java.io.IOException;
2022-11-11 22:50:42 +01:00
public class LimboManager extends JavaPlugin {
private PluginManager pluginManager;
2022-11-11 22:50:42 +01:00
private static String schematicsFolderPath;
private static LimboManager instance;
@Override
public void onEnable()
{
instance = this;
pluginManager = Bukkit.getServer().getPluginManager();
2022-11-11 23:22:26 +01:00
// register commands
getCommand("spawn").setExecutor(new Spawn());
// register listeners
2022-11-11 23:16:59 +01:00
pluginManager.registerEvents(new PlayerChecker(), this);
pluginManager.registerEvents(new PlayerTeleporter(), this);
pluginManager.registerEvents(new CommandCanceller(), this);
pluginManager.registerEvents(new RiskyBlocksHandler(), this);
2022-11-12 01:12:45 +01:00
// no need to check if folder exists, it will just skip creation.
2022-11-11 22:50:42 +01:00
getDataFolder().mkdirs();
schematicsFolderPath = getDataFolder().getAbsolutePath() + File.separator + "schematics";
getSchematicsFolder().mkdirs();
2022-11-12 01:12:45 +01:00
String configPath = getDataFolder().getAbsolutePath() + File.separator + "config.yml";
File config = new File(configPath);
FileUtils.copyFileFromSrc(config);
YamlConfiguration configuration = new YamlConfiguration();
try {
configuration.load(config);
Cache.setConfiguration(configuration);
} catch (IOException | InvalidConfigurationException e) {
throw new RuntimeException(e);
}
2022-11-11 22:50:42 +01:00
// cache some config variables
Cache.islandWalkingRange = configuration.getInt("sizing.allowed-range");
Cache.islandsDistance = configuration.getInt("sizing.island-distance");
2022-11-11 23:13:04 +01:00
// start location check runnable
Cache.locationCheckRunnable = new LocationCheckRunnable();
Cache.locationCheckRunnable.task = Bukkit.getScheduler().runTaskTimerAsynchronously(this, Cache.locationCheckRunnable, 10L, 5L);
}
@Override
public void onDisable()
{
2022-11-11 23:13:04 +01:00
// cancel running tasks
if(Cache.locationCheckRunnable != null && Cache.locationCheckRunnable.task != null)
{
Bukkit.getScheduler().cancelTask(Cache.locationCheckRunnable.task.getTaskId());
}
}
public static LimboManager getInstance()
{
return instance;
}
2022-11-11 22:50:42 +01:00
public static File getSchematicsFolder() {
return new File(schematicsFolderPath);
}
}