diff --git a/FastLogin-Patches/0001-preparing-for-first-patch.patch b/FastLogin-Patches/0001-preparing-for-first-patch.patch
index 5e95d1b..3dc87b2 100644
--- a/FastLogin-Patches/0001-preparing-for-first-patch.patch
+++ b/FastLogin-Patches/0001-preparing-for-first-patch.patch
@@ -1,6 +1,6 @@
-From 8d20670f827b3ff5ba81e967c5e60f97f29b14bf Mon Sep 17 00:00:00 2001
+From d545aec339fe904999ead07c9222f0310f4c5812 Mon Sep 17 00:00:00 2001
 From: mohammed jasem alaajel <34905970+ham1255@users.noreply.github.com>
-Date: Mon, 14 Jun 2021 21:12:13 +0400
+Date: Wed, 16 Jun 2021 20:58:08 +0400
 Subject: [PATCH] preparing for first patch
 
 
@@ -14587,10 +14587,10 @@ index 46321d3..0000000
 -}
 diff --git a/bukkit/src/main/java/com/github/games647/fastlogin/bukkit/FastLoginBukkit.java b/bukkit/src/main/java/com/github/games647/fastlogin/bukkit/FastLoginBukkit.java
 deleted file mode 100644
-index 02cf086..0000000
+index 74d4220..0000000
 --- a/bukkit/src/main/java/com/github/games647/fastlogin/bukkit/FastLoginBukkit.java
 +++ /dev/null
-@@ -1,305 +0,0 @@
+@@ -1,306 +0,0 @@
 -/*
 - * SPDX-License-Identifier: MIT
 - *
@@ -14849,6 +14849,7 @@ index 02cf086..0000000
 -	 * 
 -	 * - allowFloodgateNameConflict
 -	 * 
- autoLoginFloodgate
+-	 * 
- autoRegisterFloodgate
 -	 * 
-	 * 
 -	 * 
@@ -14857,7 +14858,7 @@ index 02cf086..0000000
 -	 */
 -	private boolean isValidFloodgateConfigString(String key) {
 -		String value = core.getConfig().get(key).toString().toLowerCase();
--		if (!value.equals("true") && !value.equals("linked") && !value.equals("false")) {
+-		if (!value.equals("true") && !value.equals("linked") && !value.equals("false") && !value.equals("no-conflict")) {
 -			logger.error("Invalid value detected for {} in FastLogin/config.yml.", key);
 -			return false;
 -		}
@@ -17289,10 +17290,10 @@ index 042950b..0000000
 -}
 diff --git a/bukkit/src/main/java/com/github/games647/fastlogin/bukkit/listener/protocollib/VerifyResponseTask.java b/bukkit/src/main/java/com/github/games647/fastlogin/bukkit/listener/protocollib/VerifyResponseTask.java
 deleted file mode 100644
-index e126637..0000000
+index 10239f0..0000000
 --- a/bukkit/src/main/java/com/github/games647/fastlogin/bukkit/listener/protocollib/VerifyResponseTask.java
 +++ /dev/null
-@@ -1,287 +0,0 @@
+@@ -1,295 +0,0 @@
 -/*
 - * SPDX-License-Identifier: MIT
 - *
@@ -17334,10 +17335,7 @@ index e126637..0000000
 -import com.github.games647.craftapi.resolver.MojangResolver;
 -import com.github.games647.fastlogin.bukkit.BukkitLoginSession;
 -import com.github.games647.fastlogin.bukkit.FastLoginBukkit;
--import org.bukkit.entity.Player;
 -
--import javax.crypto.Cipher;
--import javax.crypto.SecretKey;
 -import java.io.IOException;
 -import java.lang.reflect.InvocationTargetException;
 -import java.lang.reflect.Method;
@@ -17351,11 +17349,23 @@ index e126637..0000000
 -import java.util.Optional;
 -import java.util.UUID;
 -
+-import javax.crypto.Cipher;
+-import javax.crypto.SecretKey;
+-
+-import org.bukkit.entity.Player;
+-
 -import static com.comphenix.protocol.PacketType.Login.Client.START;
 -import static com.comphenix.protocol.PacketType.Login.Server.DISCONNECT;
 -
 -public class VerifyResponseTask implements Runnable {
 -
+-    private static final String ENCRYPTION_CLASS_NAME = "MinecraftEncryption";
+-    private static final Class> ENCRYPTION_CLASS;
+-
+-    static {
+-        ENCRYPTION_CLASS = MinecraftReflection.getMinecraftClass("util." + ENCRYPTION_CLASS_NAME, ENCRYPTION_CLASS_NAME);
+-    }
+-
 -    private final FastLoginBukkit plugin;
 -    private final PacketEvent packetEvent;
 -    private final KeyPair serverKey;
@@ -17509,8 +17519,7 @@ index e126637..0000000
 -                        .getMethodByParameters("a", Cipher.class, Cipher.class);
 -
 -                // Get the needed Cipher helper method (used to generate ciphers from login key)
--                Class> encryptionClass = MinecraftReflection.getMinecraftClass("MinecraftEncryption");
--                cipherMethod = FuzzyReflection.fromClass(encryptionClass)
+-                cipherMethod = FuzzyReflection.fromClass(ENCRYPTION_CLASS)
 -                        .getMethodByParameters("a", int.class, Key.class);
 -            }
 -        }
@@ -17922,10 +17931,10 @@ index c5dcc9c..0000000
 -}
 diff --git a/bukkit/src/main/java/com/github/games647/fastlogin/bukkit/task/FloodgateAuthTask.java b/bukkit/src/main/java/com/github/games647/fastlogin/bukkit/task/FloodgateAuthTask.java
 deleted file mode 100644
-index 45c74a7..0000000
+index 2900256..0000000
 --- a/bukkit/src/main/java/com/github/games647/fastlogin/bukkit/task/FloodgateAuthTask.java
 +++ /dev/null
-@@ -1,96 +0,0 @@
+@@ -1,127 +0,0 @@
 -/*
 - * SPDX-License-Identifier: MIT
 - *
@@ -17953,10 +17962,15 @@ index 45c74a7..0000000
 - */
 -package com.github.games647.fastlogin.bukkit.task;
 -
+-import java.io.IOException;
+-import java.util.Optional;
+-
 -import org.bukkit.Bukkit;
 -import org.bukkit.entity.Player;
 -import org.geysermc.floodgate.api.player.FloodgatePlayer;
 -
+-import com.github.games647.craftapi.model.Profile;
+-import com.github.games647.craftapi.resolver.RateLimitException;
 -import com.github.games647.fastlogin.bukkit.BukkitLoginSession;
 -import com.github.games647.fastlogin.bukkit.FastLoginBukkit;
 -import com.github.games647.fastlogin.core.StoredProfile;
@@ -17982,11 +17996,11 @@ index 45c74a7..0000000
 -
 -        // check if the Bedrock player is linked to a Java account 
 -        boolean isLinked = floodgatePlayer.getLinkedPlayer() != null;
--
 -        AuthPlugin authPlugin = plugin.getCore().getAuthPluginHook();
 -
 -        String autoLoginFloodgate = plugin.getCore().getConfig().get("autoLoginFloodgate").toString().toLowerCase();
--        boolean autoRegisterFloodgate = plugin.getCore().getConfig().getBoolean("autoRegisterFloodgate");
+-        String autoRegisterFloodgate = plugin.getCore().getConfig().get("autoRegisterFloodgate").toString().toLowerCase();
+-        String allowNameConflict = plugin.getCore().getConfig().get("allowFloodgateNameConflict").toString().toLowerCase();
 -        
 -        boolean isRegistered;
 -        try {
@@ -17997,13 +18011,39 @@ index 45c74a7..0000000
 -                    player.getName());
 -            return;
 -        }
--        
--        if (!isRegistered && !autoRegisterFloodgate) {
+-
+-        //decide if checks should be made for conflicting Java player names
+-        if (!isLinked //linked players have the same name as their Java profile
+-                // if allowNameConflict is 'false' or 'linked' and the player had a conflicting
+-                // name, than they would have been kicked in FloodgateHook#checkNameConflict
+-                && allowNameConflict.equals("true") &&
+-                (
+-                        autoLoginFloodgate.equals("no-conflict")
+-                        || !isRegistered && autoRegisterFloodgate.equals("no-conflict"))
+-                ) {
+-            // check for conflicting Premium Java name
+-            Optional premiumUUID = Optional.empty();
+-            try {
+-                premiumUUID = plugin.getCore().getResolver().findProfile(player.getName());
+-            } catch (IOException | RateLimitException e) {
+-                plugin.getLog().error(
+-                        "Could not check wether Floodgate Player {}'s name conflits a premium Java player's name.",
+-                        player.getName());
+-                return;
+-            }
+-
+-            //stop execution if player's name is conflicting
+-            if (premiumUUID.isPresent()) {
+-                return;
+-            }
+-        }
+-
+-        if (!isRegistered && autoRegisterFloodgate.equals("false")) {
 -            plugin.getLog().info(
 -                    "Auto registration is disabled for Floodgate players in config.yml");
 -            return;
 -        }
--        
+-
 -        // logging in from bedrock for a second time threw an error with UUID
 -        StoredProfile profile = plugin.getCore().getStorage().loadProfile(player.getName());
 -        if (profile == null) {
@@ -18011,7 +18051,7 @@ index 45c74a7..0000000
 -        }
 -
 -        BukkitLoginSession session = new BukkitLoginSession(player.getName(), isRegistered, profile);
--        
+-
 -        // enable auto login based on the value of 'autoLoginFloodgate' in config.yml
 -        session.setVerified(autoLoginFloodgate.equals("true")
 -                || (autoLoginFloodgate.equals("linked") && isLinked));