Hard to say, plugin look event what happens after player chose class, then plugin prevent this by sending fakeclient command to join back old class.
When player join server, default class is 1 (assault), so block maybe not work on that class 100%
And maybe game not accecpt everytime multiple client commands in single frame.
So, instead fixing that plugin, I have start looking in game functions.
Code:
bool CDODGameRules::CanPlayerJoinClass( CDODPlayer *pPlayer, int cls )
void CDODGameRules::ChooseRandomClass( CDODPlayer *pPlayer )
I need still build menu and kv file.
*edit
Also, server can send to client ConVar value (mp_limit_axis_rifleman 0). This will show on client screen in class menu that class is full/limited, but it not prevent player to choose it though.
But it is nice indicator.
__________________