]> git.lizzy.rs Git - dragonfireclient.git/blobdiff - src/network/clientpackethandler.cpp
Merge branch 'master' of https://github.com/minetest/minetest
[dragonfireclient.git] / src / network / clientpackethandler.cpp
index 29e3364db0e2d6ef4a50b365832076702820c0be..1f17470af99f409c38b6026761af67821d7b90ed 100644 (file)
@@ -103,11 +103,20 @@ void Client::handleCommand_Hello(NetworkPacket* pkt)
 
        // Authenticate using that method, or abort if there wasn't any method found
        if (chosen_auth_mechanism != AUTH_MECHANISM_NONE) {
-               if (chosen_auth_mechanism == AUTH_MECHANISM_FIRST_SRP &&
-                               !m_simple_singleplayer_mode &&
-                               !getServerAddress().isLocalhost() &&
-                               g_settings->getBool("enable_register_confirmation")) {
-                       promptConfirmRegistration(chosen_auth_mechanism);
+               bool is_register = chosen_auth_mechanism == AUTH_MECHANISM_FIRST_SRP;
+               ELoginRegister mode = is_register ? ELoginRegister::Register : ELoginRegister::Login;
+               if (m_allow_login_or_register != ELoginRegister::Any &&
+                               m_allow_login_or_register != mode) {
+                       m_chosen_auth_mech = AUTH_MECHANISM_NONE;
+                       m_access_denied = true;
+                       if (m_allow_login_or_register == ELoginRegister::Login) {
+                               m_access_denied_reason =
+                                               gettext("Name is not registered. To create an account on this server, click 'Register'");
+                       } else {
+                               m_access_denied_reason =
+                                               gettext("Name is taken. Please choose another name");
+                       }
+                       m_con->Disconnect();
                } else {
                        startAuth(chosen_auth_mechanism);
                }