diff --git a/Bukkit/src/main/java/dev/brighten/antivpn/bukkit/BukkitListener.java b/Bukkit/src/main/java/dev/brighten/antivpn/bukkit/BukkitListener.java index 6bebb18..aa6d288 100644 --- a/Bukkit/src/main/java/dev/brighten/antivpn/bukkit/BukkitListener.java +++ b/Bukkit/src/main/java/dev/brighten/antivpn/bukkit/BukkitListener.java @@ -3,6 +3,7 @@ package dev.brighten.antivpn.bukkit; import dev.brighten.antivpn.AntiVPN; import dev.brighten.antivpn.api.APIPlayer; import dev.brighten.antivpn.api.VPNExecutor; +import dev.brighten.antivpn.message.VpnString; import lombok.val; import org.bukkit.Bukkit; import org.bukkit.ChatColor; @@ -12,6 +13,7 @@ import org.bukkit.event.EventHandler; import org.bukkit.event.HandlerList; import org.bukkit.event.Listener; import org.bukkit.event.player.AsyncPlayerPreLoginEvent; +import org.bukkit.event.player.PlayerJoinEvent; import org.bukkit.event.player.PlayerLoginEvent; import org.bukkit.scheduler.BukkitRunnable; import org.bukkit.scheduler.BukkitTask; @@ -45,6 +47,22 @@ public class BukkitListener extends VPNExecutor implements Listener { if(cacheResetTask != null && !cacheResetTask.isCancelled()) cacheResetTask.cancel(); } + @EventHandler + public void onJoin(final PlayerJoinEvent event) { + AntiVPN.getInstance().getPlayerExecutor().getPlayer(event.getPlayer().getUniqueId()) + .ifPresent(player -> { + AntiVPN.getInstance().getDatabase().alertsState(player.getUuid(), enabled -> { + if(enabled) { + System.out.println("Enabled"); + player.setAlertsEnabled(true); + player.sendMessage(AntiVPN.getInstance().getMessageHandler() + .getString("command-alerts-toggled") + .getFormattedMessage(new VpnString.Var<>("state", true))); + } else System.out.println("Not enabled"); + }); + }); + } + @EventHandler public void onListener(final PlayerLoginEvent event) { //If they're exempt, don't check. diff --git a/Common/src/main/java/dev/brighten/antivpn/api/APIPlayer.java b/Common/src/main/java/dev/brighten/antivpn/api/APIPlayer.java index 105b4ca..bfa4ccc 100644 --- a/Common/src/main/java/dev/brighten/antivpn/api/APIPlayer.java +++ b/Common/src/main/java/dev/brighten/antivpn/api/APIPlayer.java @@ -1,6 +1,7 @@ package dev.brighten.antivpn.api; import dev.brighten.antivpn.AntiVPN; +import dev.brighten.antivpn.message.VpnString; import lombok.Getter; import lombok.RequiredArgsConstructor; import lombok.Setter; @@ -19,13 +20,6 @@ public abstract class APIPlayer { this.uuid = uuid; this.name = name; this.ip = ip; - - AntiVPN.getInstance().getDatabase().alertsState(uuid, enabled -> { - if(enabled) { - alertsEnabled = enabled; //This can be within the if statement. It's not dirty, it lowers field writes. - sendMessage(""); - } - }); } public abstract void sendMessage(String message); @@ -36,6 +30,9 @@ public abstract class APIPlayer { public void setAlertsEnabled(boolean alertsEnabled) { this.alertsEnabled = alertsEnabled; + } + + public void updateAlertsState() { //Updating into database so its synced across servers and saved on logout. AntiVPN.getInstance().getDatabase().updateAlertsState(uuid, alertsEnabled); } diff --git a/Common/src/main/java/dev/brighten/antivpn/command/impl/AlertsCommand.java b/Common/src/main/java/dev/brighten/antivpn/command/impl/AlertsCommand.java index a7f5d8c..113bea4 100644 --- a/Common/src/main/java/dev/brighten/antivpn/command/impl/AlertsCommand.java +++ b/Common/src/main/java/dev/brighten/antivpn/command/impl/AlertsCommand.java @@ -55,6 +55,7 @@ public class AlertsCommand extends Command { APIPlayer player = pgetter.get(); player.setAlertsEnabled(!player.isAlertsEnabled()); + player.updateAlertsState(); return AntiVPN.getInstance().getMessageHandler().getString("command-alerts-toggled") .getFormattedMessage(new VpnString.Var<>("state", player.isAlertsEnabled())); diff --git a/Common/src/main/java/dev/brighten/antivpn/database/sql/MySqlVPN.java b/Common/src/main/java/dev/brighten/antivpn/database/sql/MySqlVPN.java index 0fe7025..69d8730 100644 --- a/Common/src/main/java/dev/brighten/antivpn/database/sql/MySqlVPN.java +++ b/Common/src/main/java/dev/brighten/antivpn/database/sql/MySqlVPN.java @@ -98,7 +98,7 @@ public class MySqlVPN implements VPNDatabase { ResultSet set = Query.prepare("select uuid from `whitelisted` where `uuid` = ? limit 1").append(uuid.toString()) .executeQuery(); - return set != null && set.getFetchSize() > 0 && set.next() && set.getString("uuid") != null; + return set != null && set.next() && set.getString("uuid") != null; } @Override @@ -153,11 +153,11 @@ public class MySqlVPN implements VPNDatabase { if(MySQL.isClosed()) return; VPNExecutor.threadExecutor.execute(() -> { - ResultSet set = Query.prepare("select * from `alerts` where `uuid` = ?") + ResultSet set = Query.prepare("select * from `alerts` where `uuid` = ? limit 1") .append(uuid.toString()).executeQuery(); try { - result.accept(set.next()); + result.accept(set != null && set.next() && set.getString("uuid") != null); } catch (SQLException e) { e.printStackTrace(); result.accept(false);