Index: src/game/g_admin.c =================================================================== --- src/game/g_admin.c (revision 959) +++ src/game/g_admin.c (working copy) @@ -281,7 +281,9 @@ int i; gclient_t *client; char testName[ MAX_NAME_LENGTH ] = {""}; - char name2[ MAX_NAME_LENGTH ] = {""}; + char name2[ MAX_NAME_LENGTH ] = {""}; + int digitCount = 0; + int alphaCount = 0; G_SanitiseName( name, name2 ); @@ -308,6 +310,24 @@ len ); return qfalse; } + } + + for( i = 0; name2[ i ] !='\0'; i++) + { + if( '0' < name2[ i ] && name2[ i ] < '9' ) + digitCount++; + else if( Q_isalpha( name2[ i ] ) ) + alphaCount++; + } + + if( alphaCount == 0 ) + { + int num = atoi(name2); + if( digitCount < 3 && num < 64 ) { + Q_strncpyz( err, va( "The name '%s^7' does not include at least one letter or number > 63", name ), + len ); + return qfalse; + } } if( !g_adminNameProtect.string[ 0 ] )