<?php
ob_start();
$API_KEY = '854741611:AAEyeBz1_nsdbGuAW9Lmh7j0RWheCCFz8YQ';
$admin = "88810054" ;



/// DB :

$servername = "localhost";
$username = "biaradi1_royale";
$password = "SametPishr0";
$dbname = "biaradi1_royalerobot";

$conn = new mysqli($servername, $username, $password, $dbname);
// Check connection
if ($conn->connect_error) {
    SendAction($chat_id, 'typing');
    bot('sendMessage',[
        'chat_id'=>$chat_id,
        'text'=>$conn->connect_error,
        'reply_to_message_id' => $message->message_id,
        ]);
}
////


define('API_KEY',$API_KEY);
function bot($method,$datas=[]){
    $url = "https://api.telegram.org/bot".API_KEY."/".$method;
    $ch = curl_init();
    curl_setopt($ch,CURLOPT_URL,$url);
    curl_setopt($ch,CURLOPT_RETURNTRANSFER,true);
    curl_setopt($ch,CURLOPT_POSTFIELDS,$datas);
    $res = curl_exec($ch);
    if(curl_error($ch)){
        var_dump(curl_error($ch));
    }else{
        return json_decode($res);
    }
}
function SendMessage($chatid,$text,$parsmde,$keyboard,$message_id){
    bot('sendMessage',[
        'chat_id'=>$chatid,
        'text'=>$text,
        'parse_mode'=>$parsmde,
        'reply_markup'=>$keyboard,
        'message_id'=>$message->message_id
    ]);
}
function SendPhoto($chatid,$photo,$keyboard,$caption){
    bot('SendPhoto',[
        'chat_id'=>$chatid,
        'photo'=>$photo,
        'caption'=>$caption,
        'reply_markup'=>$keyboard
    ]);
}
function SendAudio($chatid,$audio,$keyboard,$caption,$sazande,$title){
    bot('SendAudio',[
        'chat_id'=>$chatid,
        'audio'=>$audio,
        'caption'=>$caption,
        'performer'=>$sazande,
        'title'=>$title,
        'reply_markup'=>$keyboard
    ]);
}
function SendDocument($chatid,$document,$caption){
    bot('SendDocument',[
        'chat_id'=>$chatid,
        'document'=>$document,
        'caption'=>$caption,
    ]);
}
function SendVoice($chatid,$voice,$keyboard,$caption){
    bot('SendVoice',[
        'chat_id'=>$chatid,
        'voice'=>$voice,
        'caption'=>$caption,
        'reply_markup'=>$keyboard
    ]);
}
function SendVideo($chat_id, $video, $caption){
    bot('SendVideo',[
        'chat_id'=>$chat_id,
        'video'=>$video,
        'caption'=>$caption
    ]);
}

function SendAction($chat_id, $action){
	bot('sendchataction',[
	'chat_id'=>$chat_id,
	'action'=>$action
	]);
	}
	
	function Forward($berekoja,$azchejaei,$kodompayam)
{
bot('ForwardMessage',[
'chat_id'=>$berekoja,
'from_chat_id'=>$azchejaei,
'message_id'=>$kodompayam
]);
}
## Developed by : @erfaansabouri ##

$update = json_decode(file_get_contents('php://input'));
$message = $update->message;

$from_id = $message->from->id;
$chat_id = $message->chat->id;
$message_id = $message->message_id;
$first_name = $message->from->first_name;
$last_name = $message->from->last_name;
$username = $message->from->userame;
$text = $message->text;
$video = $update->message->video->file_id;
$voice = $update->message->voice->file_id;
$file = $update->message->document->file_id;
$music = $update->message->audio->file_id;
$rpto = $update->message->reply_to_message->forward_from->id;
$message_id_callback = $update->callback_query->message->message_id;
$chat_id_callback = $update->callback_query->message->chat->id;
$data = $update->callback_query->data;


$for_channel = json_decode(file_get_contents("https://api.telegram.org/bot$API_KEY/getChatMember?chat_id=@RoyaleCh&user_id=".$from_id)); 
$channel_status = $for_channel->result->status;

## Developed by : @erfaansabouri ##
$token = "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpZCI6MjY1NSwiaWRlbiI6IjU4NDc4MjI4OTQ1NjcyNjA0MiIsIm1kIjp7fSwidHMiOjE1NTk3OTcyMzg4NTR9.TTE7dCk43fTy5MeNzZn3Ded4LJeH__ODBm7iFRFWYw0";
$opts = [
    "http" => [
        "header" => "auth:" . $token
    ]
];

$context = stream_context_create($opts);




$sql = "SELECT * FROM users WHERE telegram_id = $from_id ";
$result = $conn->query($sql);

if ($channel_status != 'member' && $channel_status != 'creator' && $channel_status != 'administrator'){
    bot('sendMessage',[
        'chat_id'=>$chat_id,
        'text'=>"برای استفاده از امکانات این ربات باید در کانال مخصوص اش جوین شید!\n@RoyaleCh\n@RoyaleCh\n@RoyaleCh\n@RoyaleCh\nاگر عضو شدی حالا ربات رو /start کنید!",
        ]);
}

else if($result->num_rows == 0){ // new user
    SendAction($chat_id, 'typing');
    $new_user_query = "INSERT INTO users (telegram_id, royale_tag, step)VALUES ('$from_id', '#', 1)";
    $conn->query($new_user_query);
    bot('sendMessage',[
        'chat_id'=>$chat_id,
        'text'=>"سلام $first_name ! به ربات کلش رویال خوش آمدید!\nبرای استفاده از تمامی امکانات ربات ، لطفا گزینه 📋ثبت نام را انتخاب کنید.",
        'reply_markup' => json_encode([
                'inline_keyboard' => [
                    [
                        ['text' => "📋ثبت نام", 'callback_data' => "signup"]
                    ],
                    
                    
                ]
            ])
        ]);
        
}

else if ($result->num_rows > 0){ // already signedup

    $row = $result->fetch_assoc();
    
    if ($row["step"] == "1"){ // set royale tag
        
        if($text[0] == '#')
            $tag = substr($text,1);
        else
            $tag = $text;
        
        $setRoyaleTag = "UPDATE users SET royale_tag='$tag' , step = '2' WHERE telegram_id='$from_id' ";
        $conn->query($setRoyaleTag);
        
        
        SendAction($chat_id, 'typing');
        bot('sendMessage',[
            'chat_id'=>$chat_id,
            'text'=>"تگ اکانت شما : #$tag\nآیا تگ را به درستی وارد کرده اید؟",
            'reply_markup' => json_encode([
                'inline_keyboard' => [
                    [
                        ['text' => "بله", 'callback_data' => "confirm_tag"]
                    ],
                    [
                        ['text' => "خیر", 'callback_data' => "reject_tag"]
                    ],
                    
                ]
            ])
        ]);
    }
    
    
    if ($row["step"] == "2"){ // fully signedup!
    
        SendAction($chat_id, 'typing');
        bot('sendMessage',[
            'chat_id'=>$chat_id,
            'text'=>"خب $first_name کلش باز 😁! دوس داری چیکار کنی؟",
            'reply_markup' => json_encode([
                'inline_keyboard' => [
                    [
                        ['text' => "نمایش اطلاعات حساب کاربری", 'callback_data' => "display_info"]
                    ],
                    [
                        ['text' => "ایجاد ترید جدید", 'callback_data' => "make_trade"]
                    ],
                    [
                        ['text' => "خروج از حساب کاربری", 'callback_data' => "logout"]
                    ],
                ]   
            ])
        ]);
        
        
        
    }
        
    
    
    
}



if ($data == "signup") {
    
    bot('answercallbackquery', [
        'callback_query_id' => $update->callback_query->id,
        'text' => "در حال پردازش اطلاعات شما . . .",
        'show_alert' => false
    ]);
    
    sleep(3);
    
    bot('editmessagetext', [
        'chat_id' => $update->callback_query->message->chat->id,
        'message_id' => $update->callback_query->message->message_id,
        'text' => "لطفا تگ (Tag) اکانت کلش رویال خود را وارد نمایید.\nمثال :\n #92L9R2JG ",
        
    ]);

}



if ($data == "confirm_tag") {
    
    bot('answercallbackquery', [
        'callback_query_id' => $update->callback_query->id,
        'text' => "در حال پردازش اطلاعات شما . . .",
        'show_alert' => false
    ]);
    
    sleep(3);
    
    bot('editmessagetext', [
        'chat_id' => $update->callback_query->message->chat->id,
        'message_id' => $update->callback_query->message->message_id,
        'text' => "اطلاعات شما با موفقیت ثبت شد!",
        'reply_markup' => json_encode([
            'inline_keyboard' => [
                [
                    ['text' => "نمایش اطلاعات حساب کاربری", 'callback_data' => "display_info"]
                ],
                [
                    ['text' => "ایجاد ترید جدید", 'callback_data' => "make_trade"]
                ],
                [
                    ['text' => "خروج از حساب کاربری", 'callback_data' => "logout"]
                ],
            ]   
        ])
        
    ]);

}


if ($data == "reject_tag") {
    $callback_chat_id = $update->callback_query->message->chat->id;
    $reject_tag = "UPDATE users SET royale_tag='#' , step = '1' WHERE telegram_id='$callback_chat_id' ";
    $conn->query($reject_tag);
    
    
    bot('answercallbackquery', [
        'callback_query_id' => $update->callback_query->id,
        'text' => "در حال پردازش اطلاعات شما . . .",
        'show_alert' => false
    ]);
    
    sleep(3);
    
    bot('editmessagetext', [
        'chat_id' => $update->callback_query->message->chat->id,
        'message_id' => $update->callback_query->message->message_id,
        'text' => "لطفا تگ (Tag) اکانت کلش رویال خود را به درستی وارد نمایید.\nمثال :\n #92L9R2JG ",
        
    ]);

}


if ($data == "display_info" || $data == "back") {
    
    $callback_chat_id = $update->callback_query->message->chat->id;
    $this_user = "SELECT * FROM users WHERE telegram_id = $callback_chat_id ";
    $result = $conn->query($this_user);
    $row = $result->fetch_assoc();
    $royale_tag = $row["royale_tag"];
    $get_api = file_get_contents("https://api.royaleapi.com/player/$royale_tag",true, $context);
    $display_result = json_decode($get_api, true);
    $clash_name = $display_result["name"];
    
    $get_api_chests = file_get_contents("https://api.royaleapi.com/player/$royale_tag/chests",true, $context);
    $display_result_chests = json_decode($get_api_chests, true);
    bot('answercallbackquery', [
        'callback_query_id' => $update->callback_query->id,
        'text' => "در حال پردازش اطلاعات کاربری $clash_name . . .",
        'show_alert' => false
    ]);
    
    
    
    sleep(1);
    
    $bot_link = "https://t.me/royalerobot";
    $deck = $display_result["deckLink"];
    $chests = $display_result_chests["upcoming"];
    $result_chest = "";
    $counter = 1;
    foreach($chests as $chest)
        $result_chest .= "+".$counter++ . " - ". $chest . PHP_EOL;
    $output = "🚹️ نام : "."<b>". $display_result["name"] ."</b>".PHP_EOL
             ."#️⃣ تگ : " . "<b>". $display_result["tag"] ."</b>".PHP_EOL
             ."🏆 جام : " . "<b>". $display_result["trophies"] ."</b>".PHP_EOL
             ."🔝 بیشترین جام : " . "<b>". $display_result["stats"]["maxTrophies"] ."</b>".PHP_EOL
             ."🏕 نام کلن : " . "<b>". $display_result["clan"]["name"] ."</b>".PHP_EOL
             ."🃏 کارت مورد علاقه : " . "<b>". $display_result["stats"]["favoriteCard"]["name"] ."</b>".PHP_EOL
             ."⬇️ تعداد کارت های جمع آورش شده از کلن : " . "<b>". $display_result["stats"]["clanCardsCollected"] ."</b>".PHP_EOL
             
             ."📊 تعداد بازی های انجام داده : " . "<b>". $display_result["games"]["total"] ."</b>".PHP_EOL
             ."💪🏻 تعداد بازی های برده : " . "<b>". $display_result["games"]["wins"] ."</b>".PHP_EOL
             ."💩 تعداد بازی های باخته : " . "<b>". $display_result["games"]["losses"] ."</b>".PHP_EOL
             ."🏳️ تعداد بازی های مساوی شده : " . "<b>". $display_result["games"]["draws"] ."</b>".PHP_EOL
             ."🃏 دک کنونی : " . "<a href='$deck'>". "کلیک کنید!" ."</a>".PHP_EOL
             ."🎁 جعبه های بعدی : " . "\n<b>". "$result_chest" ."</b>"
             ."+".$display_result_chests["legendary"] .  " - <b>". "legendary " ."</b>".PHP_EOL
             ."+".$display_result_chests["epic"] .  " - <b>". "epic " ."</b>".PHP_EOL
             ."+".$display_result_chests["giant"] .  " - <b>". "giant " ."</b>".PHP_EOL
             ."+".$display_result_chests["magical"] .  " - <b>". "magical " ."</b>".PHP_EOL
             
             
             
             
             
             ."@RoyaleRobot | <a href='$bot_link'>ربات تریدر کلش رویال</a>";
;
    
    
    bot('editmessagetext', [
        'chat_id' => $update->callback_query->message->chat->id,
        'message_id' => $update->callback_query->message->message_id,
        'parse_mode' => "html",
        'text' =>$output,
        'disable_web_page_preview' => true,
        'reply_markup' => json_encode([
            'inline_keyboard' => [
                [
                    ['text' => "نمایش اطلاعات حساب کاربری", 'callback_data' => "display_info"]
                ],
                [
                    ['text' => "ایجاد ترید جدید", 'callback_data' => "make_trade"]
                ],
                [
                    ['text' => "خروج از حساب کاربری", 'callback_data' => "logout"]
                ],
            ]   
        ])
        
    ]);
 
}

if ($data == "logout"){
    $callback_chat_id = $update->callback_query->message->chat->id;
    $reject_tag = "UPDATE users SET royale_tag='#' , step = '1' WHERE telegram_id='$callback_chat_id' ";
    $conn->query($reject_tag);
    
    
    bot('answercallbackquery', [
        'callback_query_id' => $update->callback_query->id,
        'text' => "در حال خروج . . .",
        'show_alert' => false
    ]);
    
    sleep(3);
    
    bot('editmessagetext', [
        'chat_id' => $update->callback_query->message->chat->id,
        'message_id' => $update->callback_query->message->message_id,
        'text' => "با موفقیت خارج شدید.\nبرای ورود لطفا تگ (Tag) اکانت کلش رویال خود را به درستی وارد نمایید.\nمثال :\n #92L9R2JG ",
        
    ]);
}

if ($data == "make_trade"){
    $cards = "SELECT * FROM cards";
    $cards = $conn->query($cards);
    $cards_output = "";
    $inline_keyboard_of_card = [];
    while($row = $cards->fetch_assoc()){
        array_push($inline_keyboard_of_card , [['text' => $row["card_name"] , 'callback_data' => $row["card_id"] ]]);
    }
    array_push($inline_keyboard_of_card , [['text' => 'بازگشت' , 'callback_data' => 'back' ]]);
    
    
    
    $callback_chat_id = $update->callback_query->message->chat->id;
    $this_user = "SELECT * FROM users WHERE telegram_id ='$callback_chat_id' ";
    $this_user = $conn->query($this_user);
    $this_user = $this_user->fetch_assoc();
    $this_user_id = $this_user["user_id"];
    
    bot('editmessagetext',[
        'chat_id'=>$callback_chat_id,
        'message_id' => $update->callback_query->message->message_id,
        'text'=>"یک کارت انتخاب کن؟",
        'reply_markup' => json_encode([
            'inline_keyboard' => $inline_keyboard_of_card
        ])
    ]);
    
    bot('sendMessage',[
            'chat_id'=>$callback_chat_id,
            'text'=>"👆🏻کدوم کارت رو میخوای دریافت کنی؟",
     ]);
    
}

$all_cards_id = [];
$cards = "SELECT * FROM cards";
$cards = $conn->query($cards);
while($row = $cards->fetch_assoc()){
        array_push($all_cards_id , strval($row["card_id"]));
}

print_r($all_cards_id);

if(in_array($data , $all_cards_id)){
    $callback_chat_id = $update->callback_query->message->chat->id;
    
    
    $this_user = "SELECT * FROM users WHERE telegram_id ='$callback_chat_id' ";
    $this_user = $conn->query($this_user);
    $this_user = $this_user->fetch_assoc();
    $this_user_id = $this_user["user_id"];
    $data_card_id = $data;
    
    
    if($this_user["step"] == 2){
        $new_trade_query = "INSERT INTO trades (user_id ,
                                                receive_card_id,
                                                trade_step)
                                                VALUES 
                                                ('$this_user_id' ,
                                                (SELECT card_id FROM cards WHERE card_id ='$data_card_id'),
                                                1)";
        $conn->query($new_trade_query);
        
        
        $updateUserStep = "UPDATE users SET  step = '3' WHERE telegram_id='$callback_chat_id' ";
        $conn->query($updateUserStep);
        bot('sendMessage',[
            'chat_id'=>$callback_chat_id,
            'text'=>"👆🏻حالا اولین کارتی که میخوای اهدا کنی رو از توی لیست انتخاب کن",
         ]);
    }
    
    else if($this_user["step"] == 3){
        
        
        $updateSend1 = "UPDATE trades SET 
                        trade_step = '2' , send_card_id = (SELECT card_id FROM cards WHERE card_id ='$data_card_id')
                        WHERE user_id='$this_user_id' AND trade_step = '1'";
        
        $conn->query($updateSend1);
        
        bot('sendMessage',[
            'chat_id'=>$callback_chat_id,
            'text'=>"👆🏻حالا دومین کارتی که میخوای اهدا کنی رو از توی لیست انتخاب کن",
         ]);
        
        
        $updateUserStep = "UPDATE users SET  step = '4' WHERE telegram_id='$callback_chat_id' ";
        $conn->query($updateUserStep);
    }
    
    else if($this_user["step"] == 4){
        
        
        $updateSend2 = "UPDATE trades SET 
                        trade_step = '3' , send_card2_id = (SELECT card_id FROM cards WHERE card_id ='$data_card_id')
                        WHERE user_id='$this_user_id' AND trade_step = '2'";
        
        $conn->query($updateSend2);
        
        bot('sendMessage',[
            'chat_id'=>$callback_chat_id,
            'text'=>"👆🏻حالا سومین کارتی که میخوای اهدا کنی رو از توی لیست انتخاب کن",
         ]);
        
        
        $updateUserStep = "UPDATE users SET  step = '5' WHERE telegram_id='$callback_chat_id' ";
        $conn->query($updateUserStep);
    }
    
    else if($this_user["step"] == 5){
        
        
        $updateSend3 = "UPDATE trades SET 
                        trade_step = '4' , send_card3_id = (SELECT card_id FROM cards WHERE card_id ='$data_card_id')
                        WHERE user_id='$this_user_id' AND trade_step = '3'";
        
        $conn->query($updateSend3);
        
        bot('sendMessage',[
            'chat_id'=>$callback_chat_id,
            'text'=>"👆🏻حالا چهارمین کارتی که میخوای اهدا کنی رو از توی لیست انتخاب کن",
         ]);
        
        
        $updateUserStep = "UPDATE users SET  step = '6' WHERE telegram_id='$callback_chat_id' ";
        $conn->query($updateUserStep);
    }
    
    else if($this_user["step"] == 6){
        
        
        $updateSend4 = "UPDATE trades SET 
                        trade_step = '5' , send_card4_id = (SELECT card_id FROM cards WHERE card_id ='$data_card_id')
                        WHERE user_id='$this_user_id' AND trade_step = '4'";
        
        $conn->query($updateSend4);
        
    
        
        
        $updateUserStep = "UPDATE users SET  step = '2' WHERE telegram_id='$callback_chat_id' ";
        $conn->query($updateUserStep);
        
         bot('sendMessage',[
            'chat_id'=>$callback_chat_id,
            'text'=>"با موفقیت ثبت شد!\nبرای بازگشت به منو اصلی /start کن!",
         ]);
    }
    
    
    
    
    
}

 
$conn->close();   

?>