diff --git a/src/main/java/ee/lunasqu/interaqqt/IConnection.java b/src/main/java/ee/lunasqu/interaqqt/IConnection.java deleted file mode 100644 index 2a65115..0000000 --- a/src/main/java/ee/lunasqu/interaqqt/IConnection.java +++ /dev/null @@ -1,7 +0,0 @@ -package ee.lunasqu.interaqqt; - -public interface IConnection { - public boolean sendStateChange(String key, String value); - public boolean isAlive(); - public void die(); -} diff --git a/src/main/java/ee/lunasqu/interaqqt/MQTTConnection.java b/src/main/java/ee/lunasqu/interaqqt/MQTTConnection.java index 707633e..3aacea4 100644 --- a/src/main/java/ee/lunasqu/interaqqt/MQTTConnection.java +++ b/src/main/java/ee/lunasqu/interaqqt/MQTTConnection.java @@ -5,7 +5,7 @@ import ee.lunasqu.interaqqt.events.DisconnectedEvent; import org.bukkit.Bukkit; import org.eclipse.paho.client.mqttv3.*; -public class MQTTConnection implements IConnection { +public class MQTTConnection { IMqttClient publisher; public MQTTConnection (String host, String id) { @@ -24,7 +24,6 @@ public class MQTTConnection implements IConnection { Bukkit.getPluginManager().callEvent(new ConnectionEstablishedEvent()); } - @Override public boolean sendStateChange(String key, String value) { if (!this.isAlive()) return false; MqttMessage msg = new MqttMessage(value.getBytes()); @@ -39,12 +38,10 @@ public class MQTTConnection implements IConnection { return true; } - @Override public boolean isAlive() { return this.publisher.isConnected(); } - @Override public void die() { if (this.publisher != null && this.publisher.isConnected()) { try { diff --git a/src/main/java/ee/lunasqu/interaqqt/Main.java b/src/main/java/ee/lunasqu/interaqqt/Main.java index d096a76..683cbd9 100644 --- a/src/main/java/ee/lunasqu/interaqqt/Main.java +++ b/src/main/java/ee/lunasqu/interaqqt/Main.java @@ -15,7 +15,7 @@ public class Main extends JavaPlugin { public static Main plugin; private FileConfiguration config; - private IConnection service; + private MQTTConnection service; private BlockTriggers triggers; private RightClickAdder adder; @@ -27,7 +27,7 @@ public class Main extends JavaPlugin { return triggers; } - public IConnection getConnection() { + public MQTTConnection getConnection() { if (service == null || !service.isAlive()) return null; return service; } diff --git a/src/main/java/ee/lunasqu/interaqqt/events/listeners/RightClickAdder.java b/src/main/java/ee/lunasqu/interaqqt/events/listeners/RightClickAdder.java index b6ec36b..94afa18 100644 --- a/src/main/java/ee/lunasqu/interaqqt/events/listeners/RightClickAdder.java +++ b/src/main/java/ee/lunasqu/interaqqt/events/listeners/RightClickAdder.java @@ -34,6 +34,7 @@ public class RightClickAdder implements Listener { } } + @EventHandler public void onPlayerLeave(PlayerQuitEvent event) { if (triggerHashMap.containsKey(event.getPlayer().getUniqueId())) { triggerHashMap.remove(event.getPlayer().getUniqueId()); diff --git a/src/main/java/ee/lunasqu/interaqqt/triggers/BlockTriggers.java b/src/main/java/ee/lunasqu/interaqqt/triggers/BlockTriggers.java index 7f2aa33..ad0152a 100644 --- a/src/main/java/ee/lunasqu/interaqqt/triggers/BlockTriggers.java +++ b/src/main/java/ee/lunasqu/interaqqt/triggers/BlockTriggers.java @@ -46,11 +46,12 @@ public class BlockTriggers { return null; } - public BlockTrigger getTriggerByLocation (Location block) { + public List getTriggersByLocation (Location block) { + List newList = new ArrayList(); for (BlockTrigger t : triggers) { - if (t.getBlock().equals(block)) return t; + if (t.getBlock().equals(block)) newList.add(t); } - return null; + return newList; } public List getTriggerList () { @@ -79,6 +80,8 @@ public class BlockTriggers { public void saveConfiguration () { if (triggerConfig == null) this.loadConfiguration(); + triggerConfig = new YamlConfiguration(); + Map triggerMap = new HashMap(); for (BlockTrigger trigger : triggers) { triggerConfig.set(trigger.getName(), trigger); @@ -91,10 +94,7 @@ public class BlockTriggers { } } - public boolean triggerLocation (Location block, int power) { - BlockTrigger triggerData = getTriggerByLocation(block); - if (triggerData == null) return false; - + private boolean trigger (BlockTrigger triggerData, int power) { String send = null; String data = triggerData.getData(); int type = triggerData.getType(); @@ -124,4 +124,15 @@ public class BlockTriggers { Main.plugin.getConnection().sendStateChange(triggerData.getMqttTrigger(), send); return true; } + + public boolean triggerLocation (Location block, int power) { + List blockTriggerList = getTriggersByLocation(block); + if (blockTriggerList.isEmpty()) return false; + + for (BlockTrigger blockTrigger : blockTriggerList) { + trigger(blockTrigger, power); + } + + return true; + } }