package ee.lunasqu.interaqqt; import ee.lunasqu.interaqqt.events.listeners.ConnectionListener; import ee.lunasqu.interaqqt.events.listeners.RedstoneListener; import ee.lunasqu.interaqqt.events.listeners.RightClickAdder; import ee.lunasqu.interaqqt.triggers.BlockTrigger; import ee.lunasqu.interaqqt.triggers.BlockTriggers; import org.bukkit.configuration.file.FileConfiguration; import org.bukkit.configuration.serialization.ConfigurationSerialization; import org.bukkit.plugin.java.JavaPlugin; import java.util.UUID; public class Main extends JavaPlugin { public static Main plugin; private FileConfiguration config; private MQTTConnection service; private BlockTriggers triggers; private RightClickAdder adder; public RightClickAdder getAdder() { return adder; } public BlockTriggers getTriggers() { return triggers; } public MQTTConnection getConnection() { if (service == null || !service.isAlive()) return null; return service; } @Override public void onEnable() { config = this.getConfig(); config.addDefault("publisher", UUID.randomUUID().toString()); config.addDefault("host", "127.0.0.1"); config.addDefault("port", 1883); config.options().copyDefaults(true); this.saveConfig(); plugin = this; this.triggers = new BlockTriggers(); this.adder = new RightClickAdder(); ConfigurationSerialization.registerClass(BlockTrigger.class); this.triggers.loadConfiguration(); getServer().getPluginManager().registerEvents(new RedstoneListener(), this); getServer().getPluginManager().registerEvents(new ConnectionListener(), this); getServer().getPluginManager().registerEvents(adder, this); this.getCommand("mqtt").setExecutor(new MQTTCommand()); this.connect(); } @Override public void onDisable() { if (service != null && service.isAlive()) service.die(); } public void connect () { String host = "tcp://" + this.config.getString("host") + ":" + this.config.getInt("port"); this.service = new MQTTConnection(host, config.getString("publisher")); } }