diff --git a/src/main/java/com/alttd/proxydiscordlink/minecraft/listeners/PlayerJoin.java b/src/main/java/com/alttd/proxydiscordlink/minecraft/listeners/PlayerJoin.java new file mode 100644 index 0000000..05e64b8 --- /dev/null +++ b/src/main/java/com/alttd/proxydiscordlink/minecraft/listeners/PlayerJoin.java @@ -0,0 +1,28 @@ +package com.alttd.proxydiscordlink.minecraft.listeners; + +import com.alttd.proxydiscordlink.DiscordLink; +import com.alttd.proxydiscordlink.config.BotConfig; +import com.alttd.proxydiscordlink.objects.DiscordLinkPlayer; +import com.velocitypowered.api.event.PostOrder; +import com.velocitypowered.api.event.Subscribe; +import com.velocitypowered.api.event.player.ServerConnectedEvent; + +public class PlayerJoin { + + @Subscribe(order = PostOrder.LATE) + public void playerConnected(ServerConnectedEvent event) { + if (event.getPreviousServer().isEmpty()) + return; + + String username = event.getPlayer().getUsername(); + DiscordLinkPlayer discordLinkPlayer = DiscordLinkPlayer.getDiscordLinkPlayer(event.getPlayer().getUniqueId()); + + if (!discordLinkPlayer.getUsername().equals(username)) { + discordLinkPlayer.setUsername(username); + DiscordLink.getPlugin().getDatabase().syncPlayer(discordLinkPlayer); + + if (!discordLinkPlayer.hasNick()) + DiscordLink.getPlugin().getBot().changeNick(BotConfig.GUILD_ID, discordLinkPlayer.getUserId(), username); + } + } +}