diff --git a/src/main/java/com/alttd/proxydiscordlink/DiscordLink.java b/src/main/java/com/alttd/proxydiscordlink/DiscordLink.java
index d76cea3..789aa76 100644
--- a/src/main/java/com/alttd/proxydiscordlink/DiscordLink.java
+++ b/src/main/java/com/alttd/proxydiscordlink/DiscordLink.java
@@ -14,6 +14,7 @@ import com.alttd.proxydiscordlink.util.Cache;
import com.google.inject.Inject;
import com.velocitypowered.api.event.Subscribe;
import com.velocitypowered.api.event.proxy.ProxyInitializeEvent;
+import com.velocitypowered.api.plugin.Dependency;
import com.velocitypowered.api.plugin.Plugin;
import com.velocitypowered.api.plugin.annotation.DataDirectory;
import com.velocitypowered.api.proxy.ProxyServer;
@@ -25,7 +26,8 @@ import java.util.logging.Logger;
@Plugin(id = "proxydiscordlink", name = "ProxyDiscordLink", version = "1.0.0",
description = "A plugin that links Discord accounts with uuid's",
- authors = {"Teri"}
+ authors = {"Teri"},
+ dependencies = {@Dependency(id = "luckperms"),@Dependency(id = "shutdowninfo")}
)
public class DiscordLink {
diff --git a/src/main/java/com/alttd/proxydiscordlink/config/Config.java b/src/main/java/com/alttd/proxydiscordlink/config/Config.java
index 09228f2..76acc65 100644
--- a/src/main/java/com/alttd/proxydiscordlink/config/Config.java
+++ b/src/main/java/com/alttd/proxydiscordlink/config/Config.java
@@ -193,6 +193,7 @@ public final class Config {
public static String ACCOUNTS_NOT_LINKED = "Your Minecraft and Discord accounts aren't linked";
public static String UNLINKED_ACCOUNTS = "You have successfully unlinked your accounts.";
public static String IS_LINKED = " is .";
+ public static String WHITELIST_LINK_MESSAGE = "You aren't linked yet! If you would like to link your account join our discord and use the following command in the link channel: &link .";
public static String INVALID_PLAYER = " is not online or is not a valid player.";
public static String NO_PERMISSION = "You do not have permission to do that.";
public static String NO_CONSOLE = "This command can not be executed from console.";
@@ -212,6 +213,7 @@ public final class Config {
ACCOUNTS_NOT_LINKED = getString("messages.accounts-not-linked", ACCOUNTS_NOT_LINKED);
UNLINKED_ACCOUNTS = getString("messages.unlinked-accounts", UNLINKED_ACCOUNTS);
IS_LINKED = getString("messages.is-linked", IS_LINKED);
+ WHITELIST_LINK_MESSAGE = getString("messages.whitelist-link-message", WHITELIST_LINK_MESSAGE);
INVALID_PLAYER = getString("messages.invalid-player", INVALID_PLAYER);
NO_PERMISSION = getString("messages.no-permission", NO_PERMISSION);
NO_CONSOLE = getString("messages.no-console", NO_CONSOLE);
diff --git a/src/main/java/com/alttd/proxydiscordlink/minecraft/listeners/PlayerLeave.java b/src/main/java/com/alttd/proxydiscordlink/minecraft/listeners/PlayerLeave.java
index 08b9182..c6707ff 100644
--- a/src/main/java/com/alttd/proxydiscordlink/minecraft/listeners/PlayerLeave.java
+++ b/src/main/java/com/alttd/proxydiscordlink/minecraft/listeners/PlayerLeave.java
@@ -9,6 +9,8 @@ public class PlayerLeave {
@Subscribe(order = PostOrder.LATE)
public void playerDisconnect(DisconnectEvent event) {
+ if (event.getLoginStatus().equals(DisconnectEvent.LoginStatus.CANCELLED_BY_PROXY))
+ return;
DiscordLink.getPlugin().getCache().removeCachedPlayer(event.getPlayer().getUniqueId());
}
diff --git a/src/main/java/com/alttd/proxydiscordlink/minecraft/listeners/WhitelistKick.java b/src/main/java/com/alttd/proxydiscordlink/minecraft/listeners/WhitelistKick.java
index 40b7189..390c741 100644
--- a/src/main/java/com/alttd/proxydiscordlink/minecraft/listeners/WhitelistKick.java
+++ b/src/main/java/com/alttd/proxydiscordlink/minecraft/listeners/WhitelistKick.java
@@ -1,13 +1,27 @@
package com.alttd.proxydiscordlink.minecraft.listeners;
+import com.alttd.proxydiscordlink.DiscordLink;
+import com.alttd.proxydiscordlink.config.Config;
+import com.alttd.proxydiscordlink.util.Utilities;
import com.alttd.shutdowninfo.events.WhitelistKickEvent;
import com.velocitypowered.api.event.Subscribe;
+import com.velocitypowered.api.proxy.Player;
+import net.kyori.adventure.text.minimessage.Template;
public class WhitelistKick {
@Subscribe
public void onWhitelistKick(WhitelistKickEvent event) {
+ Player player = event.getPlayer();
+ if (DiscordLink.getPlugin().getDatabase().playerIsLinked(player))
+ return;
+ String authCode = Utilities.getAuthKey();
+ DiscordLink.getPlugin().getCache().removeCachedPlayer(player.getUniqueId());
+ DiscordLink.getPlugin().getCache()
+ .cacheCode(player.getUniqueId(), authCode);
+
+ event.appendTemplates(Template.of("code", authCode));
+ event.appendMessage("\n\n" + Config.WHITELIST_LINK_MESSAGE);
}
-
}
\ No newline at end of file