Interaqqt/src/main/java/ee/lunasqu/interaqqt/Main.java

69 lines
2.0 KiB
Java

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"));
}
}