diff --git a/Plan/src/main/java/com/djrapitops/plan/system/listeners/bukkit/PlayerOnlineListener.java b/Plan/src/main/java/com/djrapitops/plan/system/listeners/bukkit/PlayerOnlineListener.java index 36baf1fdc..d3a6c850f 100644 --- a/Plan/src/main/java/com/djrapitops/plan/system/listeners/bukkit/PlayerOnlineListener.java +++ b/Plan/src/main/java/com/djrapitops/plan/system/listeners/bukkit/PlayerOnlineListener.java @@ -41,7 +41,7 @@ public class PlayerOnlineListener implements Listener { UUID uuid = event.getPlayer().getUniqueId(); boolean op = event.getPlayer().isOp(); boolean banned = result == PlayerLoginEvent.Result.KICK_BANNED; - Processing.submit(new BanAndOpProcessor(uuid, banned, op)); + Processing.submit(new BanAndOpProcessor(uuid, () -> banned, op)); } catch (Exception e) { Log.toLog(this.getClass(), e); } @@ -122,7 +122,7 @@ public class PlayerOnlineListener implements Listener { AFKListener.AFK_TRACKER.loggedOut(uuid, time); - Processing.submit(new BanAndOpProcessor(uuid, player.isBanned(), player.isOp())); + Processing.submit(new BanAndOpProcessor(uuid, player::isBanned, player.isOp())); Processing.submit(new EndSessionProcessor(uuid, time)); Processing.submit(new NetworkPageUpdateProcessor()); Processing.submit(new PlayerPageUpdateProcessor(uuid)); diff --git a/Plan/src/main/java/com/djrapitops/plan/system/listeners/sponge/SpongePlayerListener.java b/Plan/src/main/java/com/djrapitops/plan/system/listeners/sponge/SpongePlayerListener.java index 821afbfd8..d4805ed6a 100644 --- a/Plan/src/main/java/com/djrapitops/plan/system/listeners/sponge/SpongePlayerListener.java +++ b/Plan/src/main/java/com/djrapitops/plan/system/listeners/sponge/SpongePlayerListener.java @@ -44,7 +44,7 @@ public class SpongePlayerListener { GameProfile profile = event.getProfile(); UUID uuid = profile.getUniqueId(); boolean banned = isBanned(profile); - Processing.submit(new BanAndOpProcessor(uuid, banned, false)); + Processing.submit(new BanAndOpProcessor(uuid, () -> banned, false)); } @Listener(order = Order.POST) @@ -125,7 +125,8 @@ public class SpongePlayerListener { SpongeAFKListener.AFK_TRACKER.loggedOut(uuid, time); - Processing.submit(new BanAndOpProcessor(uuid, isBanned(player.getProfile()), false)); + boolean banned = isBanned(player.getProfile()); + Processing.submit(new BanAndOpProcessor(uuid, () -> banned, false)); Processing.submit(new EndSessionProcessor(uuid, time)); Processing.submit(new NetworkPageUpdateProcessor()); Processing.submit(new PlayerPageUpdateProcessor(uuid)); diff --git a/Plan/src/main/java/com/djrapitops/plan/system/processing/processors/player/BanAndOpProcessor.java b/Plan/src/main/java/com/djrapitops/plan/system/processing/processors/player/BanAndOpProcessor.java index ddba10f21..cd5c28777 100644 --- a/Plan/src/main/java/com/djrapitops/plan/system/processing/processors/player/BanAndOpProcessor.java +++ b/Plan/src/main/java/com/djrapitops/plan/system/processing/processors/player/BanAndOpProcessor.java @@ -8,6 +8,7 @@ import com.djrapitops.plan.system.database.databases.Database; import com.djrapitops.plan.system.database.databases.operation.SaveOperations; import java.util.UUID; +import java.util.function.Supplier; /** * Updates ban and OP status of the player to the database. @@ -17,10 +18,10 @@ import java.util.UUID; public class BanAndOpProcessor implements Runnable { private final UUID uuid; - private final boolean banned; + private final Supplier banned; private final boolean op; - public BanAndOpProcessor(UUID uuid, boolean banned, boolean op) { + public BanAndOpProcessor(UUID uuid, Supplier banned, boolean op) { this.uuid = uuid; this.banned = banned; this.op = op; @@ -29,7 +30,7 @@ public class BanAndOpProcessor implements Runnable { @Override public void run() { SaveOperations save = Database.getActive().save(); - save.banStatus(uuid, banned); + save.banStatus(uuid, banned.get()); save.opStatus(uuid, op); } }