channelListReset(); foreach($roots as $root) { $root = $server->channelGetByName($root); $subs = $root->subChannelList(); foreach($subs as $sub) { if(catchExceptions($sub['channel_name'], $exceptions)) { continue; } $groups = $sub->subChannelList(); $groupCount = count($groups); $delete = false; $i = 0; foreach($groups as $group) { if(catchExceptions($group['channel_name'], $exceptions)) { $groupCount--; continue; } $i++; if($delete == true AND $group['total_clients'] == 0) { $group->delete(); } if($group['total_clients'] == 0) { $delete = true; } if($i == $groupCount AND $delete == false) { $regex = '#([0-9]{1,3})#'; $callback = function ($matches) { return $matches[0]+1; }; $newName = preg_replace_callback($regex, $callback, $group['channel_name']); createChannel($server, $newName, $sub, $options); } } if(empty($groups) OR $i == 0) { $topic = $sub->getProperty('channel_topic'); if(!empty($topic)) { $name = $topic; } else { $name = $default; } createChannel($server, $name, $sub, $options); } } } // anti-flood sleep(1); }