Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- function zncadmin_add() {
- global $argv, $zncservers, $add_settings, $force;
- $username = strtolower($argv[2]);
- if(!$username) {
- error("missing username");
- return;
- }
- $addserv = array();
- $priority = 1;
- foreach($zncservers as $zncserver) {
- if($argv[3] && (strtolower($argv[3]) != strtolower($zncserver['name']))) continue;
- if(!$argv[3] && $zncserver['priority'] < $priority) continue;
- $zncserver['conn'] = new ZNCServer($zncserver['host'], $zncserver['port']);
- $zncserver['conn']->login($zncserver['auser'], $zncserver['apass']);
- $zncserver['users'] = $zncserver['conn']->getUserList();
- $existing = false;
- foreach($zncserver['users'] as $user) {
- if(strtolower($user['user']) == $username) $existing = true;
- }
- if(!$existing && count($zncserver['users']) < $zncserver['maxznc']) {
- if($zncserver['priority'] > $priority) {
- $priority = $zncserver['priority'];
- $addserv = array();
- }
- $addserv[] = $zncserver;
- }
- }
- if(count($addserv) > 1) {
- //select server with lowest user count
- $usercount = count($addserv[0]['users']);
- $selected = 0;
- for($i = 1; $i < count($addserv); $i++) {
- if(count($addserv[$i]['users']) < $usercount) {
- $usercount = count($addserv[$i]['users']);
- $selected = $i;
- }
- }
- $addserv = $addserv[$selected];
- } else if(count($addserv) == 0) {
- error("Couldn't find a server the user could be added to.");
- return;
- } else if($addserv[0]['server']['protected'] && !$force) {
- error("Access denied\n");
- } else {
- $addserv = $addserv[0];
- }
- $password = generate_password();
- $settings = array();
- $settings['nick'] = $argv[2];
- $settings['altnick'] = $argv[2]."`";
- $settings['ident'] = $username;
- $ret = $addserv['conn']->addZNC($argv[2], $password, $settings, $add_settings['servers'], $add_settings['modules'], $add_settings['other']);
- if($ret) {
- echo "Added user ".$argv[2]." to Server ".$addserv['name'].".\n";
- echo " Server Host: ".$addserv['public']." Port: ".$addserv['port']." SSL Port: ".$addserv['sslport']."\n";
- echo " Password: ".$password."\n";
- echo "[mIRC]\n";
- echo " /server -a ".$addserv['public']." -p ".$addserv['port']." -g KryptonZNC -w ".$argv[2].":".$password." -d KryptonZNC\n";
- echo " /AS addmask *@*.free-bnc.de\n";
- echo " /AS addmask *@*.krypton-bouncer.de\n";
- echo " /server -m KryptonZNC\n";
- echo"/log\n";
- $addserv['conn']->addChan($argv[2], "#Krypton");
- } else
- error("Error while adding user.");
- }
Add Comment
Please, Sign In to add comment