rendered paste body#!/usr/local/bin/php -f
<?
include('srv.cls.php');
// Settings
$srv = new server('192.168.1.3',9000,50);
$srv->hello_msg[] = 'Functions:';
$srv->hello_msg[] = '#nick <nickname>';
$srv->hello_msg[] = '#list';
function evaluate($uid){
global $srv;
$nick = get_nick($uid);
$input = $srv->get_input($uid);
if($input{0} != '#'){
if(!empty($nick)){
global_send(date('Y-d-m H:i:s').' ['.get_nick($uid).']: '.$srv->get_input($uid));
return true;
}
$srv->send($uid, 'Error: You do not have a nick.');
return true;
}
$input = explode(' ', $input, 3);
$command = substr($input[0], 1);
$params = array($input[1], $input[2]);
echo $input[0]."\n";
switch($command){
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;
}
}
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,$avoid_user=true){
global $srv;
for($i=0;$i<$srv->active_clients;$i++){
$nick = get_nick($i);
if($avoid_user && $nick == $nick_in){
if($loggedin){
if(!empty($nick)){
$srv->send($i, $what);
}
}else{
$srv->send($i, $what);
}
}
}
return true;
}
$srv->run();
?>