diff --git a/src/main/java/fr/openmc/core/OMCPlugin.java b/src/main/java/fr/openmc/core/OMCPlugin.java index 7974063fc..4999ce1f4 100644 --- a/src/main/java/fr/openmc/core/OMCPlugin.java +++ b/src/main/java/fr/openmc/core/OMCPlugin.java @@ -65,6 +65,8 @@ public class OMCPlugin extends JavaPlugin { @Getter static FileConfiguration configs; + public static final String VANISH_META_KEY = "omcstaff.vanished"; + public static void registerEvents(Listener... listeners) { for (Listener listener : listeners) { instance.getServer().getPluginManager().registerEvents(listener, instance); diff --git a/src/main/java/fr/openmc/core/commands/autocomplete/OnlinePlayerAutoComplete.java b/src/main/java/fr/openmc/core/commands/autocomplete/OnlinePlayerAutoComplete.java index fa54b2957..7c6b39b60 100644 --- a/src/main/java/fr/openmc/core/commands/autocomplete/OnlinePlayerAutoComplete.java +++ b/src/main/java/fr/openmc/core/commands/autocomplete/OnlinePlayerAutoComplete.java @@ -1,5 +1,6 @@ package fr.openmc.core.commands.autocomplete; +import fr.openmc.core.OMCPlugin; import org.bukkit.Bukkit; import org.bukkit.entity.Player; import org.jetbrains.annotations.NotNull; @@ -15,6 +16,7 @@ public class OnlinePlayerAutoComplete implements SuggestionProvider getSuggestions(@NotNull ExecutionContext context) { return Bukkit.getOnlinePlayers().stream() .map(Player::getName) + .filter(name -> !context.actor().requirePlayer().hasMetadata(OMCPlugin.VANISH_META_KEY)) .toList(); } } diff --git a/src/main/java/fr/openmc/core/features/friend/autocomplete/FriendsAutoComplete.java b/src/main/java/fr/openmc/core/features/friend/autocomplete/FriendsAutoComplete.java index 54ad5b295..6e8b80728 100644 --- a/src/main/java/fr/openmc/core/features/friend/autocomplete/FriendsAutoComplete.java +++ b/src/main/java/fr/openmc/core/features/friend/autocomplete/FriendsAutoComplete.java @@ -1,5 +1,6 @@ package fr.openmc.core.features.friend.autocomplete; +import fr.openmc.core.OMCPlugin; import fr.openmc.core.utils.cache.CacheOfflinePlayer; import org.jetbrains.annotations.NotNull; import revxrsal.commands.autocomplete.SuggestionProvider; @@ -18,6 +19,7 @@ public class FriendsAutoComplete implements SuggestionProvider friendsUUIDs = getFriendsAsync(context.actor().requirePlayer().getUniqueId()).join(); return friendsUUIDs.stream() .map(uuid -> CacheOfflinePlayer.getOfflinePlayer(uuid).getName()) + .filter(name -> !context.actor().requirePlayer().hasMetadata(OMCPlugin.VANISH_META_KEY)) .toList(); } } diff --git a/src/main/java/fr/openmc/core/features/friend/autocomplete/FriendsRequestAutoComplete.java b/src/main/java/fr/openmc/core/features/friend/autocomplete/FriendsRequestAutoComplete.java index ed0e859fd..9895f5230 100644 --- a/src/main/java/fr/openmc/core/features/friend/autocomplete/FriendsRequestAutoComplete.java +++ b/src/main/java/fr/openmc/core/features/friend/autocomplete/FriendsRequestAutoComplete.java @@ -1,5 +1,6 @@ package fr.openmc.core.features.friend.autocomplete; +import fr.openmc.core.OMCPlugin; import fr.openmc.core.utils.cache.CacheOfflinePlayer; import org.bukkit.entity.Player; import org.jetbrains.annotations.NotNull; @@ -24,6 +25,7 @@ public class FriendsRequestAutoComplete implements SuggestionProvider CacheOfflinePlayer.getOfflinePlayer(uuid).getName()) + .filter(name -> !sender.hasMetadata(OMCPlugin.VANISH_META_KEY)) .toList(); } } diff --git a/src/main/java/fr/openmc/core/listeners/JoinQuitMessageListener.java b/src/main/java/fr/openmc/core/listeners/JoinQuitMessageListener.java index b11327637..2b90029c9 100644 --- a/src/main/java/fr/openmc/core/listeners/JoinQuitMessageListener.java +++ b/src/main/java/fr/openmc/core/listeners/JoinQuitMessageListener.java @@ -27,7 +27,6 @@ public class JoinQuitMessageListener implements Listener { private final double balanceOnJoin; - public static final String VANISH_META_KEY = "omcstaff.vanished"; public static final String JOIN_MESSAGE = "§8[§a§l+§8] §r%s%s"; public static final String QUIT_MESSAGE = "§8[§c§l-§8] §r%s%s"; @@ -46,7 +45,7 @@ public void onPlayerJoin(PlayerJoinEvent event) { FriendManager.getFriendsAsync(player.getUniqueId()).thenAccept(friendsUUIDS -> { for (UUID friendUUID : friendsUUIDS) { final Player friend = player.getServer().getPlayer(friendUUID); - if (friend != null && friend.isOnline()) { + if (friend != null && friend.isOnline() && !friend.hasMetadata(OMCPlugin.VANISH_META_KEY)) { MessagesManager.sendMessage(friend, Component.text("§aVotre ami §r" + "§r" + LuckPermsHook.getFormattedPAPIPrefix(player) + player.getName() +" §as'est connecté(e)"), Prefix.FRIEND, MessageType.NONE, true); } } @@ -74,7 +73,7 @@ public void onPlayerJoin(PlayerJoinEvent event) { } }); - if (!player.hasMetadata(VANISH_META_KEY)) + if (!player.hasMetadata(OMCPlugin.VANISH_META_KEY)) event.joinMessage(Component.text(JOIN_MESSAGE.formatted(LuckPermsHook.getFormattedPAPIPrefix(player), player.getName()))); // Adjust player's spawn location @@ -105,7 +104,7 @@ public void onPlayerQuit(PlayerQuitEvent event) { FriendManager.getFriendsAsync(player.getUniqueId()).thenAccept(friendsUUIDS -> { for (UUID friendUUID : friendsUUIDS) { final Player friend = player.getServer().getPlayer(friendUUID); - if (friend != null && friend.isOnline()) { + if (friend != null && friend.isOnline() && !friend.hasMetadata(OMCPlugin.VANISH_META_KEY)) { MessagesManager.sendMessage(friend, Component.text("§cVotre ami §e" + "§r" + LuckPermsHook.getFormattedPAPIPrefix(player) + player.getName() +" §cs'est déconnecté(e)"), Prefix.FRIEND, MessageType.NONE, true); } } @@ -125,7 +124,7 @@ public void onPlayerQuit(PlayerQuitEvent event) { } } - if (!player.hasMetadata(VANISH_META_KEY)) + if (!player.hasMetadata(OMCPlugin.VANISH_META_KEY)) event.quitMessage(Component.text(QUIT_MESSAGE.formatted(LuckPermsHook.getFormattedPAPIPrefix(player), player.getName()))); }