Bismillah.. kali ini saya mau share source code kuis mayoritas, barangkali anda butuh untuk belajar, atau mau bikin server bot sendiri, hehe..
Hal yang sebaiknya sudah diketahui:
- tentang telegram bot (setidaknya tau bagaimana membuat bot dan mendapatkan tokennya)
- pemrograman php
Silakan download source nya di sini:
https://www.dropbox.com/s/ujm1nugijumua34/KuisMayoritasBot.zip?dl=0
Semoga bermanfaat
<?php
//masukan nomor token Anda di sini
define('TOKEN','?????');
$developer = '227024160'; // set ID Developer
$botname = "DevKuisMayoritasBot";
//Fungsi untuk Penyederhanaan kirim perintah dari URI API Telegram
function BotKirim($perintah){
return 'https://api.telegram.org/bot'.TOKEN.'/'.$perintah;
}
/* Fungsi untuk mengirim "perintah" ke Telegram
* Perintah tersebut bisa berupa
* -SendMessage = Untuk mengirim atau membalas pesan
* -SendSticker = Untuk mengirim pesan
* -Dan sebagainya, Anda bisa memm
*
* Adapun dua fungsi di sini yakni pertama menggunakan
* stream dan yang kedua menggunkan curl
*
* */
function KirimPerintahStream($perintah,$data){
$options = array(
'http' => array(
'header' => "Content-type: application/x-www-form-urlencoded\r\n",
'method' => 'POST',
'content' => http_build_query($data),
),
);
$context = stream_context_create($options);
$result = file_get_contents(BotKirim($perintah), false, $context);
return $result;
}
function KirimPerintahCurl($perintah,$data){
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL,BotKirim($perintah));
curl_setopt($ch, CURLOPT_POST, count($data));
curl_setopt($ch, CURLOPT_POSTFIELDS,http_build_query($data));
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
$kembali = curl_exec ($ch);
curl_close ($ch);
return $kembali;
}
/* Perintah untuk mendapatkan Update dari Api Telegram.
* Fungsi ini menjadi penting karena kita menggunakan metode "Long-Polling".
* Jika Anda menggunakan webhooks, fungsi ini tidaklah diperlukan lagi.
*/
function DapatkanUpdate($offset)
{
//kirim ke Bot
$url = BotKirim("getUpdates")."?offset=".$offset;
//dapatkan hasilnya berupa JSON
$kirim = file_get_contents($url);
//kemudian decode JSON tersebut
$hasil = json_decode($kirim, true);
if ($hasil["ok"]==1)
{
/* Jika hasil["ok"] bernilai satu maka berikan isi JSONnya.
* Untuk dipergunakan mengirim perintah balik ke Telegram
*/
return $hasil["result"];
}
else
{ /* Jika tidak maka kosongkan hasilnya.
* Hasil harus berupa Array karena kita menggunakan JSON.
*/
return array();
}
}
function KirimPerintah($perintah,$data){
global $developer;
if(isset($data['chat_id']) && isset($data['text'])){
file_put_contents("KuisMayoritasBot\chatlog.txt", "Pada " . $data['chat_id'] . ": " . $data['text'] . "\r\n", FILE_APPEND | LOCK_EX);
//jika merupakan command dari developer
if(substr($data['chat_id'],0,3) == "dev"){
$data['text'] = str_replace("dev","TO ",$data['chat_id']) . ": " . $data['text'];
$data['chat_id'] = $developer;
}
}
// Detek otomatis metode curl atau stream
if(is_callable('curl_init')) {
$hasil = KirimPerintahCurl($perintah,$data);
//cek kembali, terkadang di XAMPP Curl sudah aktif
//namun pesan tetap tidak terikirm, maka kita tetap gunakan Stream
if (empty($hasil)){
$hasil = KirimPerintahStream($perintah,$data);
}
} else {
$hasil = KirimPerintahStream($perintah,$data);
}
//kalau tidak ada hasil
if (empty($hasil)){
echo "ERROR: ";
print_r($data);
}
return $hasil;
}
//set variables
$update_id = 0; //mula-mula tepatkan nilai offset pada nol
$fakemsg = array();
$gamedata = array();
$jeda = 5;
//set daftar pertanyaan
$pertanyaans = file_get_contents("KuisMayoritasBot\daftar_pertanyaan.txt");
$pertanyaans = explode("\n",$pertanyaans);
shuffle($pertanyaans);
while(true) {
//baca JSON dari bot, cek dan dapatkan pembaharuan JSON nya, set update_id berikutnya
$updates = DapatkanUpdate($update_id);
if(!empty($fakemsg)){
$message["update_id"] = $update_id;
$message["message"]["text"] = $fakemsg['text'];
$message["message"]["from"]["id"] = $fakemsg['from'];
$message["message"]["chat"]["type"] = $fakemsg['type'];
$message["message"]["from"]["username"] = $fakemsg['name'];
$message["message"]["chat"]["id"] = $fakemsg['id'];
$message["message"]["message_id"] = "dev";
$message["message"]["from"]["first_name"] = $fakemsg['name'];
$message["message"]["from"]["last_name"] = "dev";
array_push($updates, $message);
$fakemsg = array();
}
//untuk setiap pesan yang masuk:=========================================================
foreach ($updates as $message){
//set variables
$update_id = 1+$message["update_id"];
$message_data = $message["message"];
$chatid = $message_data["chat"]["id"];
$message_id = $message_data["message_id"];
$dari = $message_data["from"]["id"];
$dari_user = $message_data["from"]["username"];
$nama = $message_data["from"]["first_name"] . " " . $message_data["from"]["last_name"];
$jenis = $message_data["chat"]["type"]; //hasilnya "private" atau "group"
//kalau di add ke group
if (isset($message_data['new_chat_member'])) {
if($message_data['new_chat_member']['username'] == $botname){
$output="Halo semuanya, saya adalah pembawa acara KUIS MAYORITAS.\n";
$output.="Gunakan /join untuk berpartisipasi.";
$data = array(
'chat_id' => $chatid,
'text'=> $output,
'parse_mode'=>'Markdown',
'reply_to_message_id' => $message_id
);
$hasil = KirimPerintah('sendMessage',$data);
}
}
//jika terdapat text dari Pengirim
if (isset($message_data["text"])) {
$text = trim($message_data["text"]);
$isi = $message_data["text"];
//tampilkan di console
if($jenis == "private" or ($jenis == "group" and substr($text,0,1) == "/")){
echo "$dari_user($jenis): $text \n";
}
//tulis log file
file_put_contents("KuisMayoritasBot\chatlog.txt", "Dari $dari ($jenis): $isi \r\n", FILE_APPEND | LOCK_EX);
//cek apakah pemain atau non-pemain
$pemain = false;
foreach($gamedata as $key=>$value){
if(!isset($gamedata[$key]['player'])){
$gamedata[$key]['player'] = array();
}
if(array_key_exists($dari,$gamedata[$key]['player'])){
$pemain = true;
}
}
//jika private dari user
if($jenis == 'private'){
//kalau developer
if($dari == $developer and strtolower($text) == "/getgroups"){
print_r($gamedata);
$output="Group: \n \n";
foreach($gamedata as $key=>$value){
$output.= "$key";
$playernamenya = array();
foreach($value['player'] as $key2=>$value2){
array_push($playernamenya,$key2."@".$value2['username']);
}
$output .= " (" . implode(", ",$playernamenya) . ")";
$output .= "\n \n";
}
$data = array(
'chat_id' => $chatid,
'text'=> $output,
'parse_mode'=>'Markdown',
'reply_to_message_id' => $message_id
);
$hasil = KirimPerintah('sendMessage',$data);
}
if($dari == $developer and strtolower(substr($text,0,3)) == "dev"){
$commands = explode(";",$text);
//get grup
if(substr(strtolower($commands[1]),0,8) == 'getgroup'){
$output="Gunakan perintah ini: /getgroups";
$data = array(
'chat_id' => $chatid,
'text'=> $output,
'parse_mode'=>'Markdown',
'reply_to_message_id' => $message_id
);
$hasil = KirimPerintah('sendMessage',$data);
}
//terima pesan palsu
elseif(strtolower($commands[1]) == 'terima'){ //contoh command: "dev;terima;id_pengirim;nama_pengirim;PM/-IDGROUP;text"
$fakemsg['from'] = $commands[2];
$fakemsg['name'] = $commands[3];
if(strtolower($commands[4])=="pm"){
$fakemsg['type'] = "private";
$fakemsg['id'] = "dev" . $commands[2];
}else{
$fakemsg['type'] = "group";
$fakemsg['id'] = $commands[4];
}
$fakemsg['text'] = $commands[5];
$output="OKAY";
$data = array(
'chat_id' => $chatid,
'text'=> $output,
'parse_mode'=>'Markdown',
'reply_to_message_id' => $message_id
);
$hasil = KirimPerintah('sendMessage',$data);
}
elseif(strtolower($commands[1]) == 'kirim'){ //contoh command: "dev;kirim;ID_TUJUAN;text"
$data = array(
'chat_id' => $commands[2],
'text'=> $commands[3],
'parse_mode'=>'Markdown'
);
$hasil = KirimPerintah('sendMessage',$data);
if (!empty($hasil)){
$output="Berhasil";
$data = array(
'chat_id' => $chatid,
'text'=> $output,
'parse_mode'=>'Markdown',
'reply_to_message_id' => $message_id
);
$hasil = KirimPerintah('sendMessage',$data);
}
}
elseif(strtolower($commands[1]) == 'setscore'){ //contoh command: "dev;setscore;ID_GROUP;ID_PEMAIN;score"
$data = array(
'chat_id' => $chatid,
'text'=> "OKAY",
'parse_mode'=>'Markdown'
);
$hasil = KirimPerintah('sendMessage',$data);
if (!empty($hasil)){
$grupidnya = $commands[2];
$pemainnya = $commands[3];
$scorenya = $commands[4];
$gamedata[$grupidnya]['player'][$pemainnya]['score'] = $scorenya;
}
}
}
else{
//kalau bukan pemain
if($pemain == false){
if(strtolower($text) == '/start'){
$output="Selamat datang $nama @$dari_user. Untuk menggunakan bot ini, invite saya ke grup anda. Bantuan: /help";
$data = array(
'chat_id' => $chatid,
'text'=> $output,
'parse_mode'=>'Markdown',
'reply_to_message_id' => $message_id
);
$hasil = KirimPerintah('sendMessage',$data);
}
elseif(strtolower($text) == '/help'){
$output="Untuk meng-invite bot ini ke grup yang sudah ada, tap nama saya di atas, lalu tap titik-titik di kanan atas, lalu pilih Add to group.";
$data = array(
'chat_id' => $chatid,
'text'=> $output,
'parse_mode'=>'Markdown',
'reply_to_message_id' => $message_id
);
$hasil = KirimPerintah('sendMessage',$data);
}else{
$output="Gunakan /help untuk menampilkan daftar komando yang dapat dijalankan.";
$data = array(
'chat_id' => $chatid,
'text'=> $output,
'parse_mode'=>'Markdown',
'reply_to_message_id' => $message_id
);
$hasil = KirimPerintah('sendMessage',$data);
}
}
//kalau pemain
else{
if(strtolower($text) == '/help'){
$output="Saat ini anda sedang dalam permainan. Silakan jalankan command ini di grup untuk opsi lebih lanjut.";
$data = array(
'chat_id' => $chatid,
'text'=> $output,
'parse_mode'=>'Markdown',
'reply_to_message_id' => $message_id
);
$hasil = KirimPerintah('sendMessage',$data);
}
//kalau pertanyaan sudah diajukan
elseif(isset($gamedata[$key]['step'])){
if($gamedata[$key]['step'] == '2' or $gamedata[$key]['step'] == '3' ){
$gamedata[$key]['player'][$dari]['last_jwb'] = strtoupper($text);
$gamedata[$key]['idle'] = '0'; // reset idle time
$output="Ayo kita kunci jawaban ini!";
$data = array(
'chat_id' => $chatid,
'text'=> $output,
'parse_mode'=>'Markdown',
'reply_to_message_id' => $message_id
);
$hasil = KirimPerintah('sendMessage',$data);
}
}
}
}
}
//jika ada command di grup
elseif($jenis == "group" and substr($text,0,1) == "/"){
$output = "";
//cek keberadaan grup di gamedata
if(!isset($gamedata[$chatid])){
//jika tidak ada, tambahkan
$gamedata[$chatid]['started'] = '0';
$gamedata[$chatid]['player'] = array();
//laporkan ke developer
echo $output = "New group: $chatid \n";
$data = array(
'chat_id' => $developer,
'text'=> $output,
'parse_mode'=>'Markdown'
);
$hasil = KirimPerintah('sendMessage',$data);
}
$gamedata[$chatid]['idle'] = '0'; // reset idle time
$started = $gamedata[$chatid]['started'];
$playercount = count($gamedata[$chatid]['player']);
//kalau bukan pemain
if($pemain == false){
if(strtolower($text) == '/join'){
$gamedata[$chatid]['player'][$dari]['nama'] = $nama;
$gamedata[$chatid]['player'][$dari]['username'] = $dari_user;
$gamedata[$chatid]['player'][$dari]['score'] = 0;
$gamedata[$chatid]['player'][$dari]['lastscore'] = "";
$gamedata[$chatid]['player'][$dari]['last_jwb'] = "";
$gamedata[$chatid]['player'][$dari]['tdk_jwb'] = 0;
$playercount+=1;
$output="$nama mengikuti permainan. Jumlah pemain saat ini: $playercount. \n";
if($playercount >= 3 and $gamedata[$chatid]['started'] == '0'){
$output.= "Untuk memulai permainan, gunakan /start";
}
$data = array(
'chat_id' => $chatid,
'text'=> $output,
'parse_mode'=>'Markdown',
'reply_to_message_id' => $message_id
);
$hasil = KirimPerintah('sendMessage',$data);
}
if(strtolower($text) == '/help'){
$output = "";
if($started != '0'){
$output .= "/score - Menampilkan daftar pemain dan skornya masing-masing.\n";
}
$output .= "/join - Mengikuti permainan.\n";
$output .= "/rule - Menampilkan aturan main.";
$data = array(
'chat_id' => $chatid,
'text'=> $output,
'parse_mode'=>'Markdown',
'reply_to_message_id' => $message_id
);
$hasil = KirimPerintah('sendMessage',$data);
}
}
//kalau pemain
else{
if(strtolower($text) == '/help'){
$output = "";
if($started != '0'){
$output .= "/score - Menampilkan daftar pemain dan skornya masing-masing.\n";
$output .= "/end - Mengakhiri permainan.\n";
if(isset($gamedata[$chatid]['paused'])){
$output .= "/resume - Melanjutkan permainan.\n";
}else{
$output .= "/pause - Menghentikan permainan sementara.\n";
}
}else{
$output .= "/start - Memulai permainan.\n";
}
$output .= "/leave - Meniggalkan permainan.\n";
$output .= "/rule - Menampilkan aturan main.";
$data = array(
'chat_id' => $chatid,
'text'=> $output,
'parse_mode'=>'Markdown',
'reply_to_message_id' => $message_id
);
$hasil = KirimPerintah('sendMessage',$data);
}
if(strtolower($text) == '/leave'){
unset($gamedata[$chatid]['player'][$dari]);
$playercount -= 1;
$output = "$nama meninggalkan permainan. Jumlah pemain saat ini: $playercount.";
$data = array(
'chat_id' => $chatid,
'text'=> $output,
'parse_mode'=>'Markdown',
'reply_to_message_id' => $message_id
);
$hasil = KirimPerintah('sendMessage',$data);
}
//kalau belum mulai dan dikasih perintah start
if($started == '0' and strtolower($text) == '/start'){
//kalau jumlah pemain kurang dari 3 orang
if($playercount < 3){
$output = "Jumlah pemain saat ini: $playercount. Untuk memulai permainan, diperlukan minimal 3 pemain.";
}
//kalau jumlah pemain cukup
else{
$started = '1';
$gamedata[$chatid]['started'] = '1';
$gamedata[$chatid]['step'] = '0';
$gamedata[$chatid]['steptime'] = '0';
$gamedata[$chatid]['nopert'] = rand ( 0 , count($pertanyaans)-1 );
$output = "Permainan akan segera dimulai.";
}
$data = array(
'chat_id' => $chatid,
'text'=> $output,
'parse_mode'=>'Markdown',
'reply_to_message_id' => $message_id
);
$hasil = KirimPerintah('sendMessage',$data);
}
//kalau permainan sudah dimulai dan diakhiri dengan /end
if($started == '1' and strtolower($text) == '/end'){
$output = "Permainan berakhir. Terima kasih atas partisipasinya, sampai jumpa di Kuis Mayoritas episode berikutnya! Wassalam \n \n";
$output .= "Skor akhir: \n";
$scores = array();
foreach($gamedata[$chatid]['player'] as $key=>$value){
$namanya = $value['nama'];
$skornya = $value['score'];
echo "$namanya: $skornya \n";
$scores[$namanya] = $skornya;
}
arsort($scores);
foreach($scores as $key=>$value){
$output .= "$key: $value \n";
}
$data = array(
'chat_id' => $chatid,
'text'=> $output,
'parse_mode'=>'Markdown',
'reply_to_message_id' => $message_id
);
$hasil = KirimPerintah('sendMessage',$data);
if(!empty($hasil)){
$started = '0';
$gamedata[$chatid]['started'] = '0';
$gamedata[$chatid]['player'] = array();
}
}
if($text == "/score" and $started == '1'){
$output = "Score: \n";
$scores = array();
foreach($gamedata[$chatid]['player'] as $key=>$value){
$namanya = $value['nama'];
$skornya = $value['score'];
echo "$namanya: $skornya \n";
$scores[$namanya] = $skornya;
}
arsort($scores);
foreach($scores as $key=>$value){
$output .= "$key: $value \n";
}
$data = array(
'chat_id' => $chatid,
'text'=> $output,
'parse_mode'=>'Markdown',
'reply_to_message_id' => $message_id
);
$hasil = KirimPerintah('sendMessage',$data);
}
if($text == "/pause" and $started == '1' and !isset($gamedata[$chatid]['paused'])){
$output = "Permainan diberhentikan sementara. Lanjutkan dengan /resume";
$data = array(
'chat_id' => $chatid,
'text'=> $output,
'parse_mode'=>'Markdown',
'reply_to_message_id' => $message_id
);
$hasil = KirimPerintah('sendMessage',$data);
if(!empty($hasil)){
$gamedata[$chatid]['paused'] = 1;
}
}
if($text == "/resume" and $started == '1' and isset($gamedata[$chatid]['paused'])){
$output = "Permainan dilanjutkan";
$data = array(
'chat_id' => $chatid,
'text'=> $output,
'parse_mode'=>'Markdown',
'reply_to_message_id' => $message_id
);
$hasil = KirimPerintah('sendMessage',$data);
if(!empty($hasil)){
unset($gamedata[$chatid]['paused']);
}
}
}
if($text == "/rule"){
$output = "Skor untuk jawaban anda adalah jumlah orang lain yang jawabannya sama dengan anda dikali 10.";
$data = array(
'chat_id' => $chatid,
'text'=> $output,
'parse_mode'=>'Markdown',
'reply_to_message_id' => $message_id
);
$hasil = KirimPerintah('sendMessage',$data);
}
//kalau tidak ada output, tampilkan help
if($output == ""){
$output = "Gunakan /help untuk menampilkan daftar komando yang dapat dijalankan.";
$data = array(
'chat_id' => $chatid,
'text'=> $output,
'parse_mode'=>'Markdown',
'reply_to_message_id' => $message_id
);
$hasil = KirimPerintah('sendMessage',$data);
}
}
}
}//========================================
//untuk tiap grup
if(!empty($gamedata)){
$inactivegroup = array();
foreach($gamedata as $key=>$value){
if($value['started'] == '1' and !isset($value['paused'])){
//jika player nya kurang dari 3
if(count($value['player'])<3){
//hentikan permainan
$output = "Pemain kurang dari 3 orang, permainan terpaksa dihentikan.\n \n";
$data = array(
'chat_id' => $key,
'text'=> $output,
'parse_mode'=>'Markdown'
);
$hasil = KirimPerintah('sendMessage',$data);
if($hasil != ""){
$gamedata[$key]['started'] = '0';
$gamedata[$key]['player'] = array();
}
}
//jika player nya 3 atau lebih
else{
//step 0
if($value['step'] == '0' and $value['steptime']>5){
$output = "Permainan Dimulai! \n";
$output .= "Pertanyaan akan dikirim di grup ini, namun jawaban harus anda kirimkan melalui private message ke saya @$botname";
$data = array(
'chat_id' => $key,
'text'=> $output,
'parse_mode'=>'Markdown'
);
$hasil = KirimPerintah('sendMessage',$data);
$gamedata[$key]['steptime'] = 0;
$gamedata[$key]['step'] = '1';
}
//step 1
elseif($value['step'] == '1' and $value['steptime']>5){
$nopert = $gamedata[$key]['nopert'];
$pertanyaan = $pertanyaans[$nopert];
$output = "PERTANYAAN \n$pertanyaan";
$data = array(
'chat_id' => $key,
'text'=> $output,
'parse_mode'=>'Markdown'
);
$hasil = KirimPerintah('sendMessage',$data);
$gamedata[$key]['nopert'] += 1;
if($gamedata[$key]['nopert'] >= count($pertanyaans)){
$gamedata[$key]['nopert'] += 0;
}
$gamedata[$key]['steptime'] = 0;
$gamedata[$key]['step'] = '2';
}
//step 2
elseif($value['step'] == '2' and $value['steptime']>=5){
$output = "Anda memiliki waktu 1 menit untuk menjawabnya. Kirimkan jawaban anda ke t.me/$botname";
$data = array(
'chat_id' => $key,
'text'=> $output,
'parse_mode'=>'Markdown'
);
$hasil = KirimPerintah('sendMessage',$data);
$gamedata[$key]['steptime'] = 0;
$gamedata[$key]['step'] = '3';
}
//step 3
elseif($value['step'] == '3' and $value['steptime']>=45){
$output = "Waktu untuk menjawab tinggal 15 detik lagi. Pastikan sudah ada jawaban yang dikunci.";
$data = array(
'chat_id' => $key,
'text'=> $output,
'parse_mode'=>'Markdown'
);
$hasil = KirimPerintah('sendMessage',$data);
$gamedata[$key]['steptime'] = 0;
$gamedata[$key]['step'] = '4';
}
//step 4
elseif($value['step'] == '4' and $value['steptime']>=15){
$output = "Waktu habis! \n";
$output .= "$pertanyaan \n";
$jawaban_pemain = array();
foreach($gamedata[$key]['player'] as $key2=>$value2){
$jawabannya = $value2['last_jwb'];
if($jawabannya != ""){
$jawaban_pemain[$key2] = $jawabannya;
}
}
$hitung_jawaban = array_count_values($jawaban_pemain);
foreach($gamedata[$key]['player'] as $key2=>$value2){
$jawabannya = $value2['last_jwb'];
if($jawabannya == ""){
//kalau jawaban kosong
$gamedata[$key]['player'][$key2]['tdk_jwb'] += 1;
$gamedata[$key]['player'][$key2]['lastscore'] = "(" . $gamedata[$key]['player'][$key2]['tdk_jwb'] . "x tdk jwb)";
$output .= $value2['nama'] . " tidak menjawab \n";
}else{
//kalau jawaban tidak kosong
$hitungnya = $hitung_jawaban[$jawabannya];
$skornya = ($hitungnya-1)*10;
if($skornya>0){
$gamedata[$key]['player'][$key2]['lastscore'] = "(+$skornya)";
$gamedata[$key]['player'][$key2]['score'] += $skornya;
}else{
$gamedata[$key]['player'][$key2]['lastscore'] = "";
}
$output .= $value2['nama'] . ": $jawabannya ($hitungnya) \n";
}
}
$data = array(
'chat_id' => $key,
'text'=> $output,
'parse_mode'=>'Markdown'
);
$hasil = KirimPerintah('sendMessage',$data);
$gamedata[$key]['steptime'] = 0;
$gamedata[$key]['step'] = '5';
}
//step 5
elseif($value['step'] == '5' and $value['steptime']>=5){
$output = "Score: \n";
$leave = "";
$scores = array();
$ada_yg_tdk_jwb = false;
foreach($gamedata[$key]['player'] as $key2=>$value2){
$namanya = $value2['nama'];
$skornya = $value2['score'];
$nambahnya = $value2['lastscore'];
$scores[$namanya] = "$skornya $nambahnya";
//kalau tidak jawab
if($value2['last_jwb'] == ""){
$ada_yg_tdk_jwb = true;
// kalau 3x tidak jawab
if($value2['tdk_jwb'] >= 3){
unset($gamedata[$key]['player'][$key2]);
$leave .= "$namanya meninggalkan permainan.\n";
}
}else{
//bersihkan last jawab dan last score
$gamedata[$key]['player'][$key2]['lastscore'] = "";
$gamedata[$key]['player'][$key2]['last_jwb'] = "";
$gamedata[$key]['player'][$key2]['tdk_jwb'] = 0;
}
}
arsort($scores);
foreach($scores as $key2=>$value2){
$output .= "$key2: $value2 \n";
}
$output .= $leave;
if($ada_yg_tdk_jwb){
$output .= "Pemain yang 3x tidak menjawab akan dikeluarkan dari permainan.";
}
$data = array(
'chat_id' => $key,
'text'=> $output,
'parse_mode'=>'Markdown'
);
$hasil = KirimPerintah('sendMessage',$data);
$gamedata[$key]['steptime'] = 0;
$gamedata[$key]['step'] = '6';
}
//step 6
elseif($value['step'] == '6' and $value['steptime']>=15){
$output = "Siap-siap untuk pertanyaan berikutnya! \n";
$output .= "opsi: /help";
$data = array(
'chat_id' => $key,
'text'=> $output,
'parse_mode'=>'Markdown'
);
$hasil = KirimPerintah('sendMessage',$data);
$gamedata[$key]['steptime'] = 0;
$gamedata[$key]['step'] = '1';
}
$gamedata[$key]['steptime'] += $jeda;
};
}
//kalau group ini tidak aktif selama 600 detik
if($gamedata[$key]['idle'] >=600){
$data = array(
'chat_id' => $key
);
$hasil = KirimPerintah('leaveChat',$data);
array_push($inactivegroup,$key);
}
//idle time
$gamedata[$key]['idle'] += $jeda;
}
foreach($inactivegroup as $value){
if(!empty($value)){
unset($gamedata[$value]);
}
}
}
echo ".";
sleep($jeda);
}
?>

1 komentar:
untuk penggunaan webhook yg diubah bagian mana bang?
Posting Komentar