Dalexhd icon

fix if(count($nick_change) > 30)

Dalexhd | PRO | 05/08/18 05:26:49 PM UTC | 0 ⭐ | 277 👁️ | Never ⏰ | []
PHP |

3.64 KB

|

None

|

0 👍

/

0 👎

<?php
    /********************************
 
    Author: Tymoteusz `Razor Meister` Bartnik
 
    Contact: [email protected]
 
    Function: client_to_db()
 
    ********************************/
 
class client_to_db
{
    private static $name;
    private static $cfg;
    
    static public function construct($event_name)
    {
        global $cfg;
        self::$cfg = $cfg[$event_name];
        self::$name = $event_name;
    }   
 
    static public function check_in_database($client)
    {
        global $query, $query_sql, $event_info;
 
        $client_info = $query->getElement('data', $query->clientInfo($client['clid']));
        
        $cldbid = $client['client_database_id'];
        $connections = $client_info['client_totalconnections'];
        $clid = $client['clid'];
        $nick = htmlentities($client['client_nickname'], ENT_QUOTES, "UTF-8");
        $uid = $client['client_unique_identifier'];
        $server_groups = $client['client_servergroups'];
        $connected_time = $client_info['connection_connected_time'];
        $idle_time = $client_info['client_idle_time'];
                    
        $result = $query_sql->query("SELECT `client_dbid` FROM `clients` WHERE `client_dbid` = '$cldbid'");
 
        if(($result->num_rows) == 0)
        {           
            $query_sql->query("INSERT INTO `clients` 
            (`client_dbid`, `client_clid`, `client_nick`, `client_uid`, `server_groups`, `connections`, `connected_time`, `connected_time_record`, `idle_time_record`, `time_spent`, `idle_time_spent`, `week_start`, `week_start_time`, `last_nicks`) VALUES 
            ('$cldbid', '$clid', '$nick', '$uid', '$server_groups', '$connections','$connected_time', '$idle_time', '$connected_time', '$connected_time', '$idle_time', '".date('W')."', 0, '')");
        }
        else
        {
            $result = $query_sql->query("SELECT * FROM `clients` WHERE `client_dbid`='$cldbid'")->fetch_assoc();
 
            if($result['connected_time_record'] < $connected_time)
                $query_sql->query("UPDATE `clients` SET `connected_time_record`='$connected_time' WHERE `client_dbid`='$cldbid'");
 
            if($result['idle_time_record'] < $idle_time)
                $query_sql->query("UPDATE `clients` SET `idle_time_record`='$idle_time' WHERE `client_dbid`='$cldbid'");
 
            if($idle_time >= 1000 * self::$cfg['idle_time'])
            {
                $idle_time_spent = $result['idle_time_spent'] + $event_info['interval'][self::$name]*1000;
                $query_sql->query("UPDATE `clients` SET `idle_time_spent`='$idle_time_spent' WHERE `client_dbid`='$cldbid'");
            }
            
            if($result['week_start'] != date('W'))
                $query_sql->query("UPDATE `clients` SET `week_start`='".date('W')."',`week_start_time`='".$result['time_spent']."' WHERE `client_dbid`='$cldbid'");
            
            if($result['client_nick'] != $nick)
            {
                if($result['last_nicks'] != "")
                {
                    $nick_change = json_decode($result['last_nicks'], true);
                    $nick_change_backup = array();
                        
                    foreach($nick_change as $time => $value)
                        $nick_change_backup[] = array('time' => $time, 'value' => $value);
                        
                    $nick_change = array();
                        
                    for($i = 0; $i < 10; $i++)
                        $nick_change[$nick_change_backup[count($nick_change_backup)-10+$i]['time']] = $nick_change_backup[count($nick_change_backup)-10+$i]['value'];
                    
                }
                else
                    $nick_change = array();
                
                $nick_change[time()] = $result['client_nick'];
                $query_sql->query("UPDATE `clients` SET `last_nicks`='".json_encode($nick_change)."' WHERE `client_dbid`='$cldbid'");
            }
            
            $time_spent = $result['time_spent'] + $event_info['interval'][self::$name]*1000;
            $query_sql->query("UPDATE `clients` SET `client_clid`='$clid', `client_nick`='$nick', `server_groups`='$server_groups', `connections`='$connections', `connected_time`='$connected_time',`time_spent`='$time_spent' WHERE `client_dbid`='$cldbid'");
        }
    }
}
?>

Comments

  •  icon
    01/01/70 12:00:00 AM UTC
    Plain Text |

    0 B

    |

    👍

    /

    👎