X-Git-Url: http://git.pk910.de/?p=PHP-P10.git;a=blobdiff_plain;f=Uplink%2FUplink.class.php;h=85adeaeb81bc92f46482e536e25d82671f210e7d;hp=232d976619a9abba4b373fd16c960786ff463302;hb=d1fc76f5af98ff28ca6405cc5d6f50a3bbf0ac9b;hpb=17772362fe24245496732bcc759aa9775ba728a5 diff --git a/Uplink/Uplink.class.php b/Uplink/Uplink.class.php index 232d976..85adeae 100644 --- a/Uplink/Uplink.class.php +++ b/Uplink/Uplink.class.php @@ -556,14 +556,30 @@ class Uplink { $channel = P10_Channel::getChannelByName($args[0]); if($channel == null) $channel = new P10_Channel($args[0]); - $this->eventHandler->event_chanmessage($user, $channel, $args[1]); + if(strlen($args[1]) > 0 && $args[1][0] == "\001") { + //ctcp + $args[1] = substr($args[1],1); + if($args[1][strlen($args[1])-1] == "\001") + $args[1] = substr($args[1],0,-1); + $ctcpexp = explode(" ",$args[1],2); + $this->eventHandler->event_chanctcp($user, $channel, strtoupper($ctcpexp[0]), (count($ctcpexp) > 1 ? $ctcpexp[1] : null)); + } else + $this->eventHandler->event_chanmessage($user, $channel, $args[1]); } else { $targetUser = P10_User::getUserByNum($args[0]); if($targetUser == null) { trigger_error("Server tries to send a privmsg to an user that does not exist or was not found on recv_privmsg.", E_USER_ERROR); return; } - $this->eventHandler->event_privmessage($user, $targetUser, $args[1]); + if(strlen($args[1]) > 0 && $args[1][0] == "\001") { + //ctcp + $args[1] = substr($args[1],1); + if($args[1][strlen($args[1])-1] == "\001") + $args[1] = substr($args[1],0,-1); + $ctcpexp = explode(" ",$args[1],2); + $this->eventHandler->event_privctcp($user, $targetUser, strtoupper($ctcpexp[0]), (count($ctcpexp) > 1 ? $ctcpexp[1] : null)); + } else + $this->eventHandler->event_privmessage($user, $targetUser, $args[1]); } } } @@ -579,14 +595,30 @@ class Uplink { $channel = P10_Channel::getChannelByName($args[0]); if($channel == null) $channel = new P10_Channel($args[0]); - $this->eventHandler->event_channotice($user, $channel, $args[1]); + if(strlen($args[1]) > 0 && $args[1][0] == "\001") { + //ctcp + $args[1] = substr($args[1],1); + if($args[1][strlen($args[1])-1] == "\001") + $args[1] = substr($args[1],0,-1); + $ctcpexp = explode(" ",$args[1],2); + $this->eventHandler->event_chanctcpreply($user, $channel, strtoupper($ctcpexp[0]), (count($ctcpexp) > 1 ? $ctcpexp[1] : null)); + } else + $this->eventHandler->event_channotice($user, $channel, $args[1]); } else { $targetUser = P10_User::getUserByNum($args[0]); if($targetUser == null) { trigger_error("Server tries to send a notice to an user that does not exist or was not found on recv_notice.", E_USER_ERROR); return; } - $this->eventHandler->event_privnotice($user, $targetUser, $args[1]); + if(strlen($args[1]) > 0 && $args[1][0] == "\001") { + //ctcp + $args[1] = substr($args[1],1); + if($args[1][strlen($args[1])-1] == "\001") + $args[1] = substr($args[1],0,-1); + $ctcpexp = explode(" ",$args[1],2); + $this->eventHandler->event_privctcpreply($user, $targetUser, strtoupper($ctcpexp[0]), (count($ctcpexp) > 1 ? $ctcpexp[1] : null)); + } else + $this->eventHandler->event_privnotice($user, $targetUser, $args[1]); } } } @@ -671,8 +703,12 @@ class Uplink { } if(count($args) > 0) { $user->setAway($args[0]); + if($this->eventHandler) + $this->eventHandler->event_away($user, $args[0]); } else { $user->setAway(null); + if($this->eventHandler) + $this->eventHandler->event_away($user, null); } }