diff --git a/api/src/main/java/org/geysermc/floodgate/api/link/PlayerLink.java b/api/src/main/java/org/geysermc/floodgate/api/link/PlayerLink.java
index 95403ee3..757b086a 100644
--- a/api/src/main/java/org/geysermc/floodgate/api/link/PlayerLink.java
+++ b/api/src/main/java/org/geysermc/floodgate/api/link/PlayerLink.java
@@ -118,6 +118,12 @@ public interface PlayerLink {
@NonNull String code
);
+ /**
+ * Returns the name of this database implementation. This will return null when Player Linking
+ * is disabled or when only Global Linking is used.
+ */
+ String getName();
+
/**
* Return if account linking is enabled. The difference between enabled and allowed is that
* 'enabled' still allows already linked people to join with their linked account while 'allow
diff --git a/bungee/src/main/java/org/geysermc/floodgate/util/BungeeCommandUtil.java b/bungee/src/main/java/org/geysermc/floodgate/util/BungeeCommandUtil.java
index 2dc31d41..20b373af 100644
--- a/bungee/src/main/java/org/geysermc/floodgate/util/BungeeCommandUtil.java
+++ b/bungee/src/main/java/org/geysermc/floodgate/util/BungeeCommandUtil.java
@@ -28,6 +28,7 @@ package org.geysermc.floodgate.util;
import java.util.ArrayList;
import java.util.Collection;
import java.util.HashMap;
+import java.util.List;
import java.util.Map;
import java.util.UUID;
import lombok.RequiredArgsConstructor;
@@ -40,8 +41,8 @@ import org.checkerframework.checker.nullness.qual.NonNull;
import org.checkerframework.checker.nullness.qual.Nullable;
import org.geysermc.floodgate.api.FloodgateApi;
import org.geysermc.floodgate.api.logger.FloodgateLogger;
-import org.geysermc.floodgate.platform.command.CommandMessage;
import org.geysermc.floodgate.platform.command.CommandUtil;
+import org.geysermc.floodgate.platform.command.TranslatableMessage;
import org.geysermc.floodgate.player.UserAudience;
import org.geysermc.floodgate.player.UserAudienceArgument.PlayerType;
import org.geysermc.floodgate.util.BungeeUserAudience.BungeeConsoleAudience;
@@ -135,17 +136,40 @@ public final class BungeeCommandUtil implements CommandUtil {
}
@Override
- public void sendMessage(Object target, String locale, CommandMessage message, Object... args) {
+ public boolean hasPermission(Object player, String permission) {
+ return cast(player).hasPermission(permission);
+ }
+
+ @Override
+ public Collection