From 81c656c86e06c340aed5283e214901e2f23ca06e Mon Sep 17 00:00:00 2001 From: Telesphoreo Date: Tue, 12 Apr 2022 21:08:12 -0500 Subject: [PATCH] Tell admins if a player has notes --- .../java/dev/plex/listener/impl/PlayerListener.java | 13 +++++++++++++ src/main/java/dev/plex/punishment/Punishment.java | 1 - src/main/java/dev/plex/storage/SQLConnection.java | 2 +- src/main/java/dev/plex/util/PlexUtils.java | 11 ++++++++++- 4 files changed, 24 insertions(+), 3 deletions(-) diff --git a/src/main/java/dev/plex/listener/impl/PlayerListener.java b/src/main/java/dev/plex/listener/impl/PlayerListener.java index fb1ab71..1a130e8 100644 --- a/src/main/java/dev/plex/listener/impl/PlayerListener.java +++ b/src/main/java/dev/plex/listener/impl/PlayerListener.java @@ -7,6 +7,9 @@ import dev.plex.player.PlexPlayer; import dev.plex.storage.StorageType; import dev.plex.util.PlexLog; import dev.plex.util.PlexUtils; +import net.kyori.adventure.text.Component; +import net.kyori.adventure.text.event.ClickEvent; +import net.kyori.adventure.text.format.NamedTextColor; import org.bukkit.Bukkit; import org.bukkit.entity.Player; import org.bukkit.event.EventHandler; @@ -84,6 +87,16 @@ public class PlayerListener extends PlexListener { plexPlayer.loadNotes(); } + + plugin.getSqlNotes().getNotes(plexPlayer.getUuid()).whenComplete((notes, ex) -> + { + String plural = notes.size() == 1 ? "note." : "notes."; + if (!notes.isEmpty()) + { + PlexUtils.broadcastToAdmins(Component.text(plexPlayer.getName() + " has " + notes.size() + " " + plural).color(NamedTextColor.GOLD)); + PlexUtils.broadcastToAdmins(Component.text("Click to view their " + plural).clickEvent(ClickEvent.runCommand("/notes " + plexPlayer.getName() + " list")).color(NamedTextColor.GOLD)); + } + }); } // saving the player's data diff --git a/src/main/java/dev/plex/punishment/Punishment.java b/src/main/java/dev/plex/punishment/Punishment.java index d9250ae..23f180a 100644 --- a/src/main/java/dev/plex/punishment/Punishment.java +++ b/src/main/java/dev/plex/punishment/Punishment.java @@ -43,7 +43,6 @@ public class Punishment public static Component generateBanMessage(Punishment punishment) { - return PlexUtils.messageComponent("banMessage", banUrl, punishment.getReason(), PlexUtils.useTimezone(punishment.getEndDate()), punishment.getPunisher() == null ? "CONSOLE" : MojangUtils.getInfo(punishment.getPunisher().toString()).getUsername()); diff --git a/src/main/java/dev/plex/storage/SQLConnection.java b/src/main/java/dev/plex/storage/SQLConnection.java index da22f6f..7da66c5 100644 --- a/src/main/java/dev/plex/storage/SQLConnection.java +++ b/src/main/java/dev/plex/storage/SQLConnection.java @@ -96,7 +96,7 @@ public class SQLConnection extends PlexBase "`uuid` VARCHAR(46) NOT NULL," + "`permission` VARCHAR(1000) NOT NULL," + "`allowed` BOOLEAN" + - ");"); + ");").execute(); } catch (SQLException throwables) { diff --git a/src/main/java/dev/plex/util/PlexUtils.java b/src/main/java/dev/plex/util/PlexUtils.java index 2e18f0e..b593412 100644 --- a/src/main/java/dev/plex/util/PlexUtils.java +++ b/src/main/java/dev/plex/util/PlexUtils.java @@ -5,6 +5,7 @@ import com.google.common.reflect.ClassPath; import dev.plex.Plex; import dev.plex.PlexBase; import dev.plex.cache.DataUtils; +import dev.plex.cache.PlayerCache; import dev.plex.config.Config; import dev.plex.permission.Permission; import dev.plex.player.PlexPlayer; @@ -116,7 +117,8 @@ public class PlexUtils extends PlexBase public static void updatePermission(PlexPlayer player, String permission, boolean newValue) { - player.getPermissions().stream().filter(permission1 -> permission.equalsIgnoreCase(permission)).findFirst().ifPresent(permission1 -> { + player.getPermissions().stream().filter(permission1 -> permission.equalsIgnoreCase(permission)).findFirst().ifPresent(permission1 -> + { Plex.get().getSqlPermissions().updatePermission(permission1, newValue); }); player.getPermissions().removeIf(permission1 -> permission1.getPermission().equalsIgnoreCase(permission)); @@ -424,6 +426,13 @@ public class PlexUtils extends PlexBase Bukkit.broadcast(component); } + public static void broadcastToAdmins(Component component) + { + Bukkit.getOnlinePlayers().stream().filter(pl -> PlayerCache.getPlexPlayer(pl.getUniqueId()).isAdminActive()).forEach(pl -> + Bukkit.broadcast(component)); + } + + public static Object simpleGET(String url) { try