diff --git a/src/me/mctp/MCTPAudioCmd.java b/src/me/mctp/MCTPAudioCmd.java index 3a91b28..bf08334 100644 --- a/src/me/mctp/MCTPAudioCmd.java +++ b/src/me/mctp/MCTPAudioCmd.java @@ -18,7 +18,7 @@ import java.util.ArrayList; public class MCTPAudioCmd implements CommandExecutor { - public String prefix = (ChatColor.GOLD + "[" + ChatColor.YELLOW + "MCTP" + ChatColor.GOLD + "] " + ChatColor.GRAY); + public static String prefix = (ChatColor.GOLD + "[" + ChatColor.YELLOW + "MCTP" + ChatColor.GOLD + "] " + ChatColor.GRAY); public boolean onCommand(CommandSender sender, Command cmd, String commandlabel, String[] args) { if (cmd.getName().equalsIgnoreCase("mctpaudio")) { diff --git a/src/me/mctp/Main.java b/src/me/mctp/Main.java index 928df1d..b41d9f8 100644 --- a/src/me/mctp/Main.java +++ b/src/me/mctp/Main.java @@ -1,5 +1,6 @@ package me.mctp; +import me.mctp.listener.LogoutListener; import me.mctp.listener.WGListener; import me.mctp.socket.Client; import org.bukkit.Bukkit; @@ -33,6 +34,7 @@ public class Main extends JavaPlugin implements Listener { getCommand("mctpaudio").setExecutor(new MCTPAudioCmd()); Bukkit.getPluginManager().registerEvents(new WGListener(), this); + Bukkit.getPluginManager().registerEvents(new LogoutListener(), this); Bukkit.getLogger().info(prefix + " __ __ ____ _____ ____ _ _ _ "); Bukkit.getLogger().info(prefix + " | \\/ |/ ___|_ _| _ \\ / \\ _ _ __| (_) ___ "); diff --git a/src/me/mctp/listener/LogoutListener.java b/src/me/mctp/listener/LogoutListener.java new file mode 100644 index 0000000..a009c20 --- /dev/null +++ b/src/me/mctp/listener/LogoutListener.java @@ -0,0 +1,17 @@ +package me.mctp.listener; + +import me.mctp.Main; +import org.bukkit.event.EventHandler; +import org.bukkit.event.Listener; +import org.bukkit.event.player.PlayerQuitEvent; +import org.json.simple.JSONObject; + +public class LogoutListener implements Listener { + @EventHandler + public void onDisconnect(PlayerQuitEvent e) { + JSONObject data = new JSONObject(); + data.put("task", "LOGOUT"); + data.put("uuid", e.getPlayer().getUniqueId().toString().replace("-", "")); + Main.getClient().sendData(data); + } +} diff --git a/src/me/mctp/socket/Client.java b/src/me/mctp/socket/Client.java index b3a54b2..656d3e7 100644 --- a/src/me/mctp/socket/Client.java +++ b/src/me/mctp/socket/Client.java @@ -1,8 +1,10 @@ package me.mctp.socket; +import me.mctp.MCTPAudioCmd; import me.mctp.Main; import me.mctp.managers.PinManager; import org.bukkit.Bukkit; +import org.bukkit.entity.Player; import org.java_websocket.client.WebSocketClient; import org.java_websocket.handshake.ServerHandshake; import org.json.simple.JSONObject; @@ -69,11 +71,25 @@ public class Client { verified = PinManager.checkPin(pUUID, pin); } + Player p = Bukkit.getPlayer(pUUID); + if (p != null && p.isOnline()) { + p.sendMessage(MCTPAudioCmd.prefix + "You are now connected with the audioclient."); + } + JSONObject reply = new JSONObject(); reply.put("task", "AUTHENTICATION"); reply.put("verified", verified); reply.put("uuid", uuid); this.send(reply.toJSONString()); + } else if (str.equals("DISCONNECTED")) { + String uuid = JSONUtil.getValue(json, "uuid"); + if (uuid == null || uuid.isEmpty()) return; + + UUID pUUID = JSONUtil.formatFromInput(uuid); + Player p = Bukkit.getPlayer(pUUID); + if (p != null && p.isOnline()) { + p.sendMessage(MCTPAudioCmd.prefix + "You are now disconnected from the audioclient."); + } } }