#!/usr/local/bin/php -f hello_msg[] = 'Functions:'; $srv->hello_msg[] = '#nick '; $srv->hello_msg[] = '#list'; function evaluate($uid){ global $srv; $nick = get_nick($uid); $input = $srv->get_input($uid); if($input{0} != '/'){ if(!empty($nick)){ for($i=0;$i<=$srv->active_clients;$i++){ $srv->send($i, date('Y-d-m H:i:s').' ['.get_nick($uid).']: '.$srv->get_input($uid).$srv->crlf); } } return true; } $input = explode(' ', $input, 3); $command = str_replace('/', $input[0], 1); $params = array($input[1], $input[2]); switch($function){ case 'nick': if(count($params) == 0){ $srv->send($uid, 'Error: Nick missing.'); return false; } $nick_new = $params[0]; $nick_old = get_nick($uid); for($i = 0;$i <= $srv->active_clients;$i++){ if($nick_new == get_nick($i)){ $srv->send($uid, 'Error: Nick already in use.'); return false; } } set_nick($uid, $nick_new); if(empty($nick_old)){ global_send('['.$nick_new.'] joined the chat.'); $srv->send($uid, 'You have joined the chat as ['.$nick_new.'].'); echo '['.$srv->get_addr($uid).'] is ['.$nick_new."]\n"; return true; } global_send('['.$nick_old.'] is now ['.$nick_new.']'); $srv->send($uid, 'Your nick was changed to ['.$nick_new.']'); echo '['.$srv->get_addr($uid).'] is now ['.$nick_new."\n"; break; case 'list': if(empty($nick)){ $srv->send($uid, 'Error: You are not logged in.'); return false; } $list = ''; $users = 0; for($i=0;$i <= $srv->active_clients;$i++){ $nick = get_nick($i); if(!empty($nick)){ $list .= '['.$nick.'] '; $users++; } } $list .= $users; $srv->send($uid, $list); break; case 'quit': global_send('['.get_nick($uid).'] left the chat.'); $srv->send($uid, 'You left the chat.'); $srv->kick($uid); break; default: $srv->send($uid, 'Error: Unknown command.'); break; } $srv->reset_input($uid); } function set_nick($i, $name){ global $srv; $srv->clients[$i]['nick'] = $name; } function get_nick($i){ global $srv; return isset($srv->clients[$i]['nick']) ? $srv->clients[$i]['nick'] : ''; } function global_send($what,$loggedin=true){ global $srv; for($i=0;$i<$srv->active_clients;$i++){ $nick = get_nick($i); if($loggedin){ if(!empty($nick)){ $srv->send($i, $what); } }else{ $srv->send($i, $what); } } return true; } $srv->run(); ?>