I love it when people actually have the code for a mod they're developing. It makes things so much more fun and interesting.
That said, check this out for your
Assign Random Usergroup From List plugin at hook
register_addmember_process:
PHP Code:
if ($vbulletin->options['fpx_rndm_usrgrp_list'] AND !$vbulletin->options['verifyemail']) {
$rndgroups = preg_split("/[\s,]+/", $vbulletin->options['fpx_rndm_usrgrp_list']);
$newusergroupid = $rndgroups[ rand( 0, count($rndgroups)-1 ) ];
$userdata->set('usergroupid', $newusergroupid);
}
Much simpler than your plugin code, should work great for the non-mail verfication boards.
Next, for the mail verification boards...
Hook: register_activate_process
PHP Code:
if ($vbulletin->options['fpx_rndm_usrgrp_list']) {
$rndgroups = preg_split("/[\s,]+/", $vbulletin->options['fpx_rndm_usrgrp_list']);
$userinfo['usergroupid'] = $rndgroups[ rand( 0, count($rndgroups)-1 ) ];
}
$vbulletin->userinfo['usergroupid'] = $user['usergroupid'] = $userinfo['usergroupid'];
$userdata->set('usergroupid', $user['usergroupid']);
/*//reset some usergroup/usertitle caches
$getusergroupid = iif($userinfo['displaygroupid'] != $userinfo['usergroupid'], $userinfo['displaygroupid'], $user['usergroupid']);
$user_usergroup =& $vbulletin->usergroupcache["$user[usergroupid]"];
$display_usergroup =& $vbulletin->usergroupcache["$getusergroupid"];
//reset the usertitle
$userdata->set_usertitle(
$user['customtitle'] ? $user['usertitle'] : '',
false,
$display_usergroup,
($user_usergroup['genericpermissions'] & $vbulletin->bf_ugp_genericpermissions['canusecustomtitle']) ? true : false,
($user_usergroup['genericpermissions'] & $vbulletin->bf_ugp_genericpermissions['cancontrolpanel']) ? true : false
);
if ($user['userid'] == $vbulletin->userinfo['userid'])
{
$vbulletin->userinfo['usergroupid'] = $user['usergroupid'];
$vbulletin->userinfo['displaygroupid'] = $user['usergroupid'];
}
*/
The code in the commented section isn't really necessary. The info should be updated when the cron for it runs, then again if you want to include it that's up to you.