Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- <?php
- error_reporting(E_ALL);
- class getChannel {
- private static $eventName = 'getChannel';
- private static $config;
- private static $simpleConfig = array(
- );
- private static $cacheNames = array();
- private static $clientsNeedHelp = array();
- private static function loadConfig() {
- global $lang;
- $cfg = getEventConfigValue(self::$eventName);
- if ($cfg != false) {
- self::$config = $cfg;
- } else {
- self::$config = self::$simpleConfig;
- echo ": > [".self::$eventName."]: ".$lang->getConsoleLanguage('SIMPLE_CONFIGURATION')."\n";
- }
- return true;
- }
- public static function onRegister() {
- global $cache;
- self::loadConfig();
- return true;
- }
- private static function getFirstFreeChannel($commandConfig) {
- global $ts, $cache;
- $channelList = $cache->getCacheValue('ch_channels');
- $channelsInSection = array();
- $channelsIdList = array();
- foreach ($channelList as $channel) {
- if ($channel['pid'] == $commandConfig['channels_section'])
- $channelsInSection[] = $channel['channel_name'];
- }
- foreach ($channelsInSection as $channelName) {
- $channelsIdList[] = preg_replace($commandConfig['channel_num_regex'],'\1',$channelName);
- }
- unset($channelsInSection,$channelList);
- for ($i=1;$i>=1;$i++) {
- if (!in_array($i,$channelsIdList))
- return $i;
- }
- }
- private static function getLastChannelSubChannel($cid) {
- global $ts, $cache;
- $channelList = $cache->getCacheValue('ch_channels');
- $channelSubs = array();
- foreach ($channelList as $channel) {
- if ($channel['pid'] == $cid)
- $channelSubs[] = $channel;
- }
- return @$channelSubs[count($channelSubs)-1] or false;
- }
- private static function checkGroups($clientGroups, $groups) {
- foreach ($clientGroups as $clientGroup) {
- if (in_array($clientGroup,$groups))
- return true;
- }
- return false;
- }
- public static function checkText($input, $maximalCharsNums){
- $output;
- $SRaw = $input;
- $maximalCharsNum = $maximalCharsNums;
- $maximalCharsNum += 2;
- if(strlen($SRaw) >= $maximalCharsNum){
- $output = substr($SRaw, 0, $maximalCharsNum)."";
- } else {
- $output = $SRaw;
- }
- return $output;
- }
- private static function ID($client)
- {
- return '[URL=client://0/'.$client['client_unique_identifier'].'~'.urlencode($client['client_nickname']).']'.$client['client_nickname'].'[/URL]';
- }
- public static function onClientAreOnChannel($clid = null,$cid = 0,$invokerid = null,$clientsData = null) {
- global $ts, $kernel, $lang, $cache, $clientsData, $channelsData, $whoami;
- $clientInfo = $ts->getElement($ts->getClientInfo($clid),'data');
- $cgroups = $ts->getElement('data',$ts->channelGroupClientList(null, $clientInfo['client_database_id'], self::$config['channel_admin_group_id']));
- $create = true;
- $clientGroups = explode(",",$clientInfo['client_servergroups']);
- if($cgroups[0][""] === ""){
- $create = false;
- }else{
- $found_c = $cgroups[0]["cid"];
- }
- $channelFound = false;
- if(self::checkGroups($clientGroups, self::$config['need_groups'])){
- if($create == false){
- if ($clid != $whoami['client_id'] && array_key_exists('client_nickname',$clientInfo) == true){
- foreach ($channelsData as $channel) {
- if($channel['pid'] == self::$config['channels_section']){
- if($channel['channel_topic'] == '#free'){
- $channelFound = $channel;
- break;
- }
- }
- }
- list($number, $rest) = explode(".", $channelFound['channel_name']);
- if($channelFound){
- $ts->editChannel($channelFound['cid'],array(
- 'channel_topic' => date('d').'.'.date('m').'.'.date('y'),
- 'channel_description' => $lang->langReplace(array('[user_nick]', '[date]','[CH_NUM]'), array(self::ID($clientInfo), date("d/m/y H:i", time()), $number), 'CH_NEW_DESCRIPTION'),
- 'channel_name' => $number.'. '.self::checkText($clientInfo['client_nickname'], 15). ' - Kanał',
- 'channel_flag_maxclients_unlimited' => 1,
- 'channel_flag_maxfamilyclients_unlimited' => 1,
- 'channel_maxclients' => 1,
- 'channel_maxfamilyclients' => 1,
- 'channel_password' => '12345'
- )
- );
- $ts->moveClient($clid,$channelFound['cid']);
- $ts->sendMessage(1, $clid,$lang->langReplace(array('[USER_CLID]','[USER_UNIQ]','[USER_NAME]','[CH_ID]','[CH_NUM]'),array($clientInfo['clid'],$clientInfo['client_unique_identifier'],$clientInfo['client_nickname'], $channel['cid'],$number),'CH_USER'));
- $ts->setClientChannelGroup($channelFound['cid'],self::$config['channel_admin_group_id'],$clientInfo['client_database_id']);
- if (self::$config['max_subchannels'] > 0) {
- for ($i = 1; $i <= self::$config['max_subchannels']; $i++) {
- $ts->createChannel(
- array(
- 'channel_flag_semi_permanent' => 0,
- 'channel_flag_permanent' => 1,
- 'channel_name' => $i . '. ' . $lang->getLanguage('CH_UPDATE_DEFAULT_NAME'),
- 'channel_description' => $lang->langReplace(array('[ID]','[NICK]'),array($i,$clientInfo['client_nickname']),'CH_SUB_DESC'),
- 'cpid' => $channelFound['cid'],
- 'channel_codec' => self::$config['channel_codec'],
- 'channel_codec_quality' => self::$config['channel_codec_level'],
- 'channel_password' => '12345'
- )
- );
- }
- }
- }else{
- $ts->pokeClient($clid, 'Brak wolnych kanałów! Wróć za chwilkę!');
- $ts->kickClient($clid, preg_replace('\[([a-z=]+)\]', '', 'Brak wolnych kanałów! Wróć za chwilkę!'), 'channel');
- }
- }
- }else{
- $channelInfo = $ts->getElement($ts->getChannelInfo($found_c), 'data');
- list($number, $name) = explode(".", $channelInfo['channel_name'], 2);
- $ts->sendMessage(1, $clid, $lang->langReplace(array('[USER_CLID]','[USER_UNIQ]','[USER_NAME]','[CH_NUMB]','[CH_NAME]'),array($clientInfo['clid'],$clientInfo['client_unique_identifier'],$clientInfo['client_nickname'], $number,$name),'CH_USER_BAD'));
- $ts->moveClient($clid,$found_c);
- }
- }else{
- $ts->pokeClient($clid, 'Aby otrzymać kanał najpierw się zarejestruj');
- $ts->kickClient($clid, preg_replace('\[([a-z=]+)\]', '', 'Aby otrzymać kanał najpierw się zarejestruj'), 'channel');
- }<?php
- error_reporting(E_ALL);
- class getChannel {
- private static $eventName = 'getChannel';
- private static $config;
- private static $simpleConfig = array(
- );
- private static $cacheNames = array();
- private static $clientsNeedHelp = array();
- private static function loadConfig() {
- global $lang;
- $cfg = getEventConfigValue(self::$eventName);
- if ($cfg != false) {
- self::$config = $cfg;
- } else {
- self::$config = self::$simpleConfig;
- echo ": > [".self::$eventName."]: ".$lang->getConsoleLanguage('SIMPLE_CONFIGURATION')."\n";
- }
- return true;
- }
- public static function onRegister() {
- global $cache;
- self::loadConfig();
- return true;
- }
- private static function getFirstFreeChannel($commandConfig) {
- global $ts, $cache;
- $channelList = $cache->getCacheValue('ch_channels');
- $channelsInSection = array();
- $channelsIdList = array();
- foreach ($channelList as $channel) {
- if ($channel['pid'] == $commandConfig['channels_section'])
- $channelsInSection[] = $channel['channel_name'];
- }
- foreach ($channelsInSection as $channelName) {
- $channelsIdList[] = preg_replace($commandConfig['channel_num_regex'],'\1',$channelName);
- }
- unset($channelsInSection,$channelList);
- for ($i=1;$i>=1;$i++) {
- if (!in_array($i,$channelsIdList))
- return $i;
- }
- }
- private static function getLastChannelSubChannel($cid) {
- global $ts, $cache;
- $channelList = $cache->getCacheValue('ch_channels');
- $channelSubs = array();
- foreach ($channelList as $channel) {
- if ($channel['pid'] == $cid)
- $channelSubs[] = $channel;
- }
- return @$channelSubs[count($channelSubs)-1] or false;
- }
- private static function checkGroups($clientGroups, $groups) {
- foreach ($clientGroups as $clientGroup) {
- if (in_array($clientGroup,$groups))
- return true;
- }
- return false;
- }
- public static function checkText($input, $maximalCharsNums){
- $output;
- $SRaw = $input;
- $maximalCharsNum = $maximalCharsNums;
- $maximalCharsNum += 2;
- if(strlen($SRaw) >= $maximalCharsNum){
- $output = substr($SRaw, 0, $maximalCharsNum)."";
- } else {
- $output = $SRaw;
- }
- return $output;
- }
- private static function ID($client)
- {
- return '[URL=client://0/'.$client['client_unique_identifier'].'~'.urlencode($client['client_nickname']).']'.$client['client_nickname'].'[/URL]';
- }
- public static function onClientAreOnChannel($clid = null,$cid = 0,$invokerid = null,$clientsData = null) {
- global $ts, $kernel, $lang, $cache, $clientsData, $channelsData, $whoami;
- $clientInfo = $ts->getElement($ts->getClientInfo($clid),'data');
- $cgroups = $ts->getElement('data',$ts->channelGroupClientList(null, $clientInfo['client_database_id'], self::$config['channel_admin_group_id']));
- $create = true;
- $clientGroups = explode(",",$clientInfo['client_servergroups']);
- if($cgroups[0][""] === ""){
- $create = false;
- }else{
- $found_c = $cgroups[0]["cid"];
- }
- $channelFound = false;
- if(self::checkGroups($clientGroups, self::$config['need_groups'])){
- if($create == false){
- if ($clid != $whoami['client_id'] && array_key_exists('client_nickname',$clientInfo) == true){
- foreach ($channelsData as $channel) {
- if($channel['pid'] == self::$config['channels_section']){
- if($channel['channel_topic'] == '#free'){
- $channelFound = $channel;
- break;
- }
- }
- }
- list($number, $rest) = explode(".", $channelFound['channel_name']);
- if($channelFound){
- $ts->editChannel($channelFound['cid'],array(
- 'channel_topic' => date('d').'.'.date('m').'.'.date('y'),
- 'channel_description' => $lang->langReplace(array('[user_nick]', '[date]','[CH_NUM]'), array(self::ID($clientInfo), date("d/m/y H:i", time()), $number), 'CH_NEW_DESCRIPTION'),
- 'channel_name' => $number.'. '.self::checkText($clientInfo['client_nickname'], 15). ' - Kanał',
- 'channel_flag_maxclients_unlimited' => 1,
- 'channel_flag_maxfamilyclients_unlimited' => 1,
- 'channel_maxclients' => 1,
- 'channel_maxfamilyclients' => 1,
- 'channel_password' => '12345'
- )
- );
- $ts->moveClient($clid,$channelFound['cid']);
- $ts->moveClient(self::$config['clid_bota'],$channelFound['cid']);
- $ts->sendMessage(1, self::$config['clid_bota'],self::$config['komenda_start']);
- $ts->editChannel(self::$config['idkanalu_automatycznykanal'],array(
- 'channel_name' => self::$config['nazwa_off'],
- 'channel_flag_maxclients_unlimited' => 1,
- 'channel_flag_maxfamilyclients_unlimited' => 1,
- 'channel_maxclients' => 0,
- 'channel_maxfamilyclients' => 0,
- )
- );
- sleep(self::$config['interval']);
- $ts->sendMessage(1, $clid,$lang->langReplace(array('[USER_CLID]','[USER_UNIQ]','[USER_NAME]','[CH_ID]','[CH_NUM]'),array($clientInfo['clid'],$clientInfo['client_unique_identifier'],$clientInfo['client_nickname'], $channel['cid'],$number),'CH_USER'));
- $ts->setClientChannelGroup($channelFound['cid'],self::$config['channel_admin_group_id'],$clientInfo['client_database_id']);
- if (self::$config['max_subchannels'] > 0) {
- for ($i = 1; $i <= self::$config['max_subchannels']; $i++) {
- $ts->createChannel(
- array(
- 'channel_flag_semi_permanent' => 0,
- 'channel_flag_permanent' => 1,
- 'channel_name' => $i . '. ' . $lang->getLanguage('CH_UPDATE_DEFAULT_NAME'),
- 'channel_description' => $lang->langReplace(array('[ID]','[NICK]'),array($i,$clientInfo['client_nickname']),'CH_SUB_DESC'),
- 'cpid' => $channelFound['cid'],
- 'channel_codec' => self::$config['channel_codec'],
- 'channel_codec_quality' => self::$config['channel_codec_level'],
- 'channel_password' => '12345'
- )
- );
- }
- }
- $ts->sendMessage(1, self::$config['clid_bota'],self::$config['komenda_stop']);
- $ts->moveClient(self::$config['clid_bota'],self::$config['kanal_dyzurki']);
- $ts->editChannel(self::$config['idkanalu_automatycznykanal'],array(
- 'channel_name' => self::$config['nazwa_on'],
- 'channel_flag_maxclients_unlimited' => 1,
- 'channel_flag_maxfamilyclients_unlimited' => 1,
- 'channel_maxclients' => 1,
- 'channel_maxfamilyclients' => 1,
- )
- );
- }else{
- $ts->pokeClient($clid, 'Brak wolnych kanałów! Wróć za chwilkę!');
- $ts->kickClient($clid, preg_replace('\[([a-z=]+)\]', '', 'Brak wolnych kanałów! Wróć za chwilkę!'), 'channel');
- }
- }
- }else{
- $channelInfo = $ts->getElement($ts->getChannelInfo($found_c), 'data');
- list($number, $name) = explode(".", $channelInfo['channel_name'], 2);
- $ts->sendMessage(1, $clid, $lang->langReplace(array('[USER_CLID]','[USER_UNIQ]','[USER_NAME]','[CH_NUMB]','[CH_NAME]'),array($clientInfo['clid'],$clientInfo['client_unique_identifier'],$clientInfo['client_nickname'], $number,$name),'CH_USER_BAD'));
- $ts->moveClient($clid,$found_c);
- }
- }else{
- $ts->pokeClient($clid, 'Aby otrzymać kanał najpierw się zarejestruj');
- $ts->kickClient($clid, preg_replace('\[([a-z=]+)\]', '', 'Aby otrzymać kanał najpierw się zarejestruj'), 'channel');
- }
- }
- }
- ?>
- }
- }
- ?>
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement