Kapalı','Açık ');
// İzin değişken atamaları
$plugincon = $controls_status[$serverinfo["ServerPluginCon"]];
$modcon = $controls_status[$serverinfo["ServerModCon"]];
$ftpcon = $controls_status[$serverinfo["ServerFTPCon"]];
// filelink for server.cfg
$filelink = "";
// create the start and stop commands and merge with the server info array
$serverinfo = array_merge( $serverinfo, CreateStartStopStrings($serverinfo) );
/// Create Required Objects
/// -- for ServerInfo
$server = new SourceQuery();
/// -- for connecting the linux server
$ssh2 = new sycp_ssh2();
/// Connect to linux server.
if($ssh2->ConnectwAuth($serverinfo["MachIP"],(int)$serverinfo["MachPort"],$serverinfo["MachUser"],$serverinfo["MachPass"])) {
$filelink = $ssh2->SFTP_FileLink($serverinfo["ServerPath"]."/csgo/cfg/server.cfg");
} else {
$filelink = "";
$message = '
Sunucuya erişim sağlanamadı. Veriler alınamıyor.
';
}
/// for control the server is online or offline--!
$svOnline = false;
$svRcon = false;
/// If file link is not empty, then the ssh2 connection was successful.
if( $filelink != "" ) {
// Get the rcon password from server.cfg
$rconpass = CFG_GetVariable($filelink,array( 'rcon_password' ));
$rconpass = @$rconpass['rcon_password'][0][1];
/// Connecting to the server.
try {
// Try to connect,
$server->Connect($serverinfo["ServerIP"],$serverinfo["ServerPort"], 1);
// If connection is started successfully, then set the $svOnline variable to true
$svOnline = true;
// Set the rcon password and authorize it.
$server->SetRconPassword($rconpass);
// Authorization is successful, then set the $svRcon variable to true.
$svRcon = true;
} catch (Exception $e ) {
$message = $e->getMessage();
}
// Server Quick Actions
if(isset($_GET["Islem"])) {
switch($_GET["Islem"]) {
case "IP_Temizle": {
unlink($ssh2->SFTP_FileLink($serverinfo["ServerPath"]."/csgo/cfg/banned_ip.cfg"));
$message = ('× Başarılı! Yasaklanmış IP\'ler temizlendi!
');
break;
}
case "ID_Temizle": {
unlink($ssh2->SFTP_FileLink($serverinfo["ServerPath"]."/csgo/cfg/banned_user.cfg"));
$message = ('× Başarılı! Yasaklanmış ID\'ler temizlendi!
');
break;
}
case "Sunucu_Restart": {
$shell = ServerStartStop($serverinfo, FALSE, $ssh2);
if($shell != false) {
$message = ('× Başarılı! Sunucunuz yeniden başlatıldı!
');
} else {
$message = ('× Başarısız! Sunucunuz yeniden başlatılamadı!
');
}
@fclose($shell);
break;
}
case "Reset_toptime": {
$shell = $ssh2->Exec("rm -rf {$serverinfo["ServerPath"]}/csgo/addons/sourcemod/data/sqlite/mostactive.sq3");
$shell = ServerStartStop($serverinfo, FALSE, $ssh2);
if($shell != false) {
$message = ('× Başarılı! toptime sıfırlandı!
');
} else {
$message = ('× Başarısız! toptime sıfırlanamadı!
');
}
break;
}
case "ws_knife_Temizle": {
$shell = $ssh2->Exec("rm -rf {$serverinfo["ServerPath"]}/csgo/addons/sourcemod/data/sqlite/sourcemod-local.sq3");
$shell = ServerStartStop($serverinfo, FALSE, $ssh2);
if($shell != false) {
$message = ('× Başarılı! Loglar temizlendi!
');
} else {
$message = ('× Başarısız! Loglar temizlenemedi!
');
}
break;
}
case "Log_Temizle": {
$shell = $ssh2->Exec("rm -rf {$serverinfo["ServerPath"]}/csgo/addons/sourcemod/data/sqlite/BanIdFix.sq3 && rm -rf {$serverinfo["ServerPath"]}/core && rm -rf {$serverinfo["ServerPath"]}/csgo/auto0* && rm -rf {$serverinfo["ServerPath"]}/csgo/waspdemo/* && rm -rf {$serverinfo["ServerPath"]}/csgo/logs/* && rm -rf {$serverinfo["ServerPath"]}/csgo/addons/sourcemod/logs/* && rm -rf {$serverinfo["ServerPath"]}/csgo/logfiles/* && rm -rf {$serverinfo["ServerPath"]}/screenlog.0");
unlink($ssh2->SFTP_FileLink($serverinfo["ServerPath"]."/csgo/cfg/banned_user.cfg"));
unlink($ssh2->SFTP_FileLink($serverinfo["ServerPath"]."/csgo/cfg/banned_ip.cfg"));
$shell = ServerStartStop($serverinfo, FALSE, $ssh2);
if($shell != false) {
$message = ('× Başarılı! Loglar ve Banlar temizlendi!
');
} else {
$message = ('× Başarısız! Loglar ve Banlar temizlenemedi!
');
}
break;
}
case "Reset_Top15": {
$shell = $ssh2->Exec("rm -rf {$serverinfo["ServerPath"]}/csgo/addons/sourcemod/data/sqlite/rankme.sq3");
$shell = ServerStartStop($serverinfo, FALSE, $ssh2);
if($shell != false) {
$message = ('× Başarılı! TOP15 sıfırlandı!
');
} else {
$message = ('× Başarısız! TOP15 sıfırlanamadı!
');
}
break;
}
case "Sunucu_Sifirla": {
if( isset($userinf['UserSubUser'])) {
$message = 'Alt Kullanıcılar, sunucuyu sıfırlayamazlar!';
break;
}
if( isset($_SESSION['sv_resetdate']) && time() <= ($_SESSION['sv_resetdate']+300) ) {
$message = 'Sunucunuzu 5 dakikada bir sıfırlayabilirsiniz!';
break;
}
$setup_path = $serverinfo['PacketPath'];
if( substr($serverinfo['ServerPath'],strlen($serverinfo['ServerPath']) - 1,1) == '/' ) {
$serverinfo['ServerPath'] = substr( $serverinfo['ServerPath'], 0, -1);
}
if(file_exists($ssh2->SFTP_FileLink($setup_path)) && strlen($setup_path) > 0 ) {
$i = 0;
while( file_exists($ssh2->SFTP_FileLink($serverinfo['ServerPath'].'_yedek'.($i ? $i : ''))) ) {
$i++;
}
$ssh2->Exec($serverinfo["QStop"]);
$ssh2->Exec('mv '.$serverinfo['ServerPath'].' '.$serverinfo['ServerPath'].'_yedek'.($i == 0 ? '' : $i));
$yenircon = RandomName(16);
$copy_exec = $ssh2->Exec('nohup sh -c "cp -r '.$setup_path.' '.$serverinfo['ServerPath'].' && cd '.$serverinfo["ServerPath"].' && '.sprintf("sed -i 's/rcon_password \\\".*\\\"/rcon_password \\\"{$yenircon}\\\"/g' csgo/cfg/server.cfg && sed -i 's/hostname \\\".*\\\"/hostname \\\"WASP.GEN.TR | {$__serverName}\\\"/g' csgo/cfg/server.cfg").' && cd '.$serverinfo["ServerPath"].' && '.$serverinfo["QStart"].'" &');
if($copy_exec) {
$message = '× İşlem Başarılı Server Sıfırlandı - Sunucu 3 ila 5 dakika arasında aktif olacaktır. Lütfen en geç 10 dakika sonra açılmaz ise sunucunuzu başlatmayı deneyiniz. Sunucunuzu sıfırladıktan sonra (yeniden) başlatmak, sunucunun sıfırlanmasında sorun çıkaracaktır.
';
$ssh2->Exec('rm -rf '.$serverinfo['ServerPath'].'_yedek'.($i == 0 ? '' : $i));
} else {
$ssh2->Exec('mv '.$serverinfo['ServerPath'].'_yedek'.($i == 0 ? '' : $i).' '.$serverinfo['ServerPath'].' && cd '.$serverinfo["ServerPath"].' && '.$serverinfo["QStart"]);
$message = '× İşlem Başarısız Server sıfırlanamadı, yeni dosyalar kopyalanamadı.
';
}
$_SESSION['sv_resetdate'] = time();
} else {
$message = 'Kurulum başarısız! Yeni sunucu dosyaları bulunamadı!
';
}
break;
}
}
}
// Player operations
if(isset($_POST["ban"])) {
$shell = $ssh2->Exec("screen -S {$serverinfo['Screen']} -X -p0 eval \"stuff 'sm_kick \"#{$_POST["username"]}\";wait;wait;banid 0 \"{$_POST["username"]}\"'^m\"");
if($shell != false) {
$message = ('İşlem Başarılı! İşlem: '.$_POST['username'].' adlı oyuncuya sunucudan yasaklandı! (Süre: sınırsız)
');
} else {
$message = ('İşlem Başarısız! İşlem: '.$_POST['username'].' adlı oyuncu sunucudan yasaklanamadı!
');
}
} else if(isset($_POST["kick"])) {
$_POST['username'] = str_replace(array('"', "'"), '',trim($_POST['username']));
$shell = $ssh2->Exec("screen -S {$serverinfo['Screen']} -X -p0 eval \"stuff 'sm_kick \"#{$_POST["username"]}\";'^m\"");
if($shell != false) {
$message = ('İşlem Başarılı! İşlem: '.$_POST['username'].' adlı oyuncu sunucudan atıldı!
');
} else {
$message = ('İşlem Başarısız! İşlem: '.$_POST['username'].' adlı oyuncu sunucudan atılamadı!
');
}
} else if( isset($_POST['mapchange'],$_POST['map']) ) {
$_POST['map'] = str_replace(array(' ', '"', "'"), '',trim($_POST['map']));
$shell = $ssh2->Exec("screen -S {$serverinfo['Screen']} -X -p0 eval \"stuff 'sm_map \"{$_POST["map"]}\";'^m\"");
if($shell != false) {
$message = ('İşlem Başarılı! İşlem: '.$_POST['map'].' adlı harita açıldı!
');
} else {
$message = ('İşlem Başarısız! İşlem: '.$_POST['map'].' adlı harita açılamadı!
');
}
$message = (' ');
} else if( isset($_POST['pwchange'],$_POST['pw']) ) {
$_POST['pw'] = str_replace(array(' ', '"', "'"), '',trim($_POST['pw']));
$kicks_status = $_POST['pw'] != "" ? true : false;
if( $kicks_status )
$shell = $ssh2->Exec("screen -S {$serverinfo['Screen']} -X -p0 eval \"stuff 'sv_password \"{$_POST["pw"]}\";'^m\"");
else
$shell = $ssh2->Exec("screen -S {$serverinfo['Screen']} -X -p0 eval \"stuff 'sv_password \"none\";'^m\"");
if($shell != false) {
$message = ('İşlem Başarılı! İşlem: Sunucu şifresi "'.$_POST['pw'].'" olarak ayarlandı!
');
} else {
$message = ('İşlem Başarısız! İşlem: Sunucu şifresi "'.$_POST['pw'].'" olarak ayarlanamadı!
');
}
$message .= (' ');
} else if( isset( $_GET['Process']) ) {
if( $_GET['Process'] == 'Remove_Pass' ) {
$shell = $ssh2->Exec("screen -S {$serverinfo['Screen']} -X -p0 eval \"stuff 'sv_password \"none\";'^m\"");
if($shell != false) {
$message = ('İşlem Başarılı! İşlem: Sunucunun şifresi kaldırıldı!
');
} else {
$message = ('İşlem Başarısız! İşlem: Sunucunun şifresi kaldırılamadı!
');
}
}
}
if( $svOnline ) {
try {
$inff = $server->GetInfo();
//$message = print_r($players, TRUE);
$info["ip"] = $serverinfo["ServerIP"].':'.$serverinfo['ServerPort'];
$info["hostname"] = $inff["HostName"];
$info["map"] = $inff["Map"];
$info["players"] = $inff["Players"];
$info["mplayers"] = $inff["MaxPlayers"];
$sonuc = $info["players"] / $info["mplayers"] * 100;
if( $svRcon )
{
$players = $server->ServerInfo();
//print_r( $players );
unset($players["ip"],$players["name"],$players["map"],$players["mod"],$players["game"],$players["activeplayers"],$players["maxplayers"]);
$players = $players["players"];
}
} catch( Exception $e ) {
$message = $e->getMessage();
$players = false;
}
} else {
$players = false;
}
// Cvarları çek lazım bunlar.
if( $svRcon ) {
try {
$rules['timeleft'] = $server->Rcon("timeleft");
$rules['mp_timelimit'] = $server->GetCvar("mp_timelimit");
$rules['mp_roundtime'] = $server->GetCvar("mp_roundtime");
$info['password'] = $server->GetCvar("sv_password");
$info["s_status"] = true;
} catch( Exception $e ) {
$rules['timeleft'] = "----- ";
$rules['mp_timelimit'] = "----- ";
$rules['mp_roundtime'] = "----- ";
$info['password'] = "";
$info['s_status'] = false;
}
}
}
if( !$svRcon ){
$rules['timeleft'] = "----- ";
$rules['mp_timelimit'] = "----- ";
$rules['mp_roundtime'] = "----- ";
$info['password'] = "";
$info['s_status'] = false;
}
if( !$svOnline ) {
$players = array();
$info["ip"] = $serverinfo["ServerIP"].":".$serverinfo["ServerPort"];
$info["hostname"] = @$info["hostname"] == "" ? "Sunucu Kapalı " : @$info["hostname"];
$info["map"] = @$info["map"] == "" ? "----- " : @$info["map"];
$info["mplayers"] = 0;
$info["mplayers"] = $serverinfo["ServerMaxPlayers"];
$rules['timeleft'] = "----- ";
$rules['mp_timelimit'] = "----- ";
$rules['mp_roundtime'] = "----- ";
$info['password'] = "";
$info["s_status"] = false;
}
//$message = print_r($serverinfo, true);
?>