0, 'groups' => 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() { self::loadConfig(); return true; } private static function isClientInGroup($group,$clientGroups) { foreach ($clientGroups as $checkGroup) { if ($group == $checkGroup) { return $group; } } return false; } private static function format_seconds($seconds) { $uptime = array(); $uptime['days']=floor($seconds / 86400); $uptime['hours']=floor(($seconds - ($uptime['days'] * 86400)) / 3600); $uptime['minutes']=floor(($seconds - (($uptime['days'] * 86400)+($uptime['hours']*3600))) / 60); $uptime['seconds']=floor(($seconds - (($uptime['days'] * 86400)+($uptime['hours']*3600)+($uptime['minutes'] * 60)))); $uptime_text = ''; if ($uptime['days'] > 0) { $uptime_text .= $uptime['days'] . ' ' . ($uptime['days'] == 1 ? 'dnia ' : 'dni '); } if ($uptime['hours'] > 0) { $uptime_text .= $uptime['hours'] . ' ' . ($uptime['hours'] == 1 ? 'godziny ' : 'godzin '); } if ($uptime['minutes'] > 0) { $uptime_text .= $uptime['minutes'] . ' ' . ($uptime['minutes'] == 1 ? 'minuty' : 'minut'); } if ($uptime_text == '') { $uptime_text .= $uptime['seconds'] . ' sekund'; } return $uptime_text; } public static function getNameByNumber($i){ $osoba = 'osób'; if($i == 1){ $osoba = 'osoba'; } if($i == 2 || $i == 3 || $i == 4){ $osoba = 'osoby'; }else if($i > 4){ $osoba = 'osób'; } return $osoba; } public static function onThink() { global $lang, $ts, $whoami; $desc = self::$config['up_description']; $name = ''; $i=0; $admins = array(); $channel = $ts->getElement($ts->getChannelList(),'data'); $servergroups = $ts->getElement($ts->getServerGroupList(),'data'); foreach ($ts->getElement($ts->getClientList('-groups -uid -away -voice -times'),'data') as $client) { if($client['client_type'] == 0) { $client_info = $ts->getElement($ts->getClientInfo($client['clid']),'data'); $clientinfos[$client["clid"]] = $client_info["connection_connected_time"]; if ($client['clid'] != $whoami['client_id']) { $clientGroups = explode(',',$client['client_servergroups']); foreach (self::$config['groups'] as $checkThisGroup) { $group = self::isClientInGroup($checkThisGroup,$clientGroups); if (is_numeric($group) == true && in_array($group,self::$config['groups']) == true) { $admins[$client['client_nickname']] = array('group' => $group, 'cid' => $client['cid'], 'clid' => $client['clid'], 'unique_id' => $client['client_unique_identifier'], 'idle' => $client['client_idle_time'], 'last_connect'=> $client['client_lastconnected'], 'away' => $client['client_away'], 'mute' => $client['client_output_muted']); } } } } } foreach($channel as $channels){ $channelname[$channels['cid']] = $channels['channel_name']; } foreach ($servergroups as $group) { if (in_array($group['sgid'],self::$config['groups']) == true) { foreach ($admins as $nickname => $values) { $iconid = $group['iconid']; if($iconid<0){ $iconid = sprintf('%u', $iconid & 0xffffffff); } if ($values['away'] == 1 || $values['mute'] == 1) { $status = '[color=blue]Away[/color]'; } else { if ($values['group'] == $group['sgid']) { $desc .= '['.$group['name'].'] - [size=9][URL=client://' . $values['clid'] . '/' . $values['unique_id'] . ']' . $nickname . '[/URL] zalogowany od: [b]'.self::format_seconds(time() - $values['last_connect']).'[/b] na kanale [b][url=channelID://'.$values['cid'].']'.str_replace('[cspacer]', '', $channelname[$values['cid']]).'[/url][/b].[/size]\n'; $i++; } } } $desc .= ''; } } $desc .= self::$config['lower_description']; if($i == 0){ $desc = self::$config['up_description']; $desc .= '\n Aktualnie nikt z administratorów nie jest dostępny\n'; $desc .= self::$config['lower_description']; } $ts->editChannel(self::$config['write_channel'], array( 'channel_description' => $desc ) ); $ts->editChannel(self::$config['write_channel'], array( 'channel_name' => self::$config['channel_name'].' '.$i.' '.self::getNameByNumber($i) ) ); } } ?>