Tuesday, May 29, 2012

Menulis sebuah IRC bot di PHP


Pertama, kita akan men-download Net_SmartIRC http://download.pear.php.net/package...tIRC-1.0.0.tgz. Ya, ini adalah "tarball," TAR arsip atau file di dalam gzip arsip. Jika anda tidak memiliki perangkat lunak untuk meng-extract file ini, Anda tidak perlu khawatir! Kita bisa meng-extract langsung dan di upload ke Shellium. Jika Anda memiliki perangkat lunak, bagus! lanjutkan dan extract file nya. Jika Anda masih perlu untuk mengambil file tersebut, cukup menjalankan perintah ini: tar-zxf Net_SmartIRC-1.0.0.tgz

Kita tidak memerlukan file "package.sig" atau "package.xml," jadi, hapus saja. Sekarang anda seharusnya sudah memiliki sebuah direktori bernama "Net_SmartIRC-1.0.0." Cd ke dalam direktori ini. Anda dapat menyimpan salah satu atau semua file-file ini, atau hanya perlu bare utama. Yang benar-benar Anda perlukan untuk mendapatkan PHP IRC bot up dan running adalah:

* The directory “SmartIRC”
* The file “SmartIRC.php” 

Ya, itu semua. Namun, saya akan rekomendasikan menjaga direktori "docs" dan "examples," karena mereka dapat membantu anda dengan hal-hal yang tidak ditawarkan tutorial ini.

Baiklah, mari kita mulai. Buat file teks kosong dengan ekstensi "php". Ke dalam file ini, masukkan berikut ini: 

Code:
<?php
include_once('SmartIRC.php');
class mybot {
(&$irc, &$data) {
function tes
t $irc->message(SMARTIRC_TYPE_CHANNEL, $data->channel, $data->nick.': It works!');
} function quit(&$irc, &$data) {
{ $irc->disconnect(
if ($data->nick == "YourNickHere") ); } } } $bot = &new mybot(); $irc = &new Net_SmartIRC();
onhandler(SMARTIRC_TYPE_CHANNEL, '^!te
$irc->setDebug(SMARTIRC_DEBUG_ALL); $irc->setUseSockets(TRUE); $irc->registerAct ist', $bot, 'test'); $irc->registerActionhandler(SMARTIRC_TYPE_CHANNEL, '^!quit', $bot, 'quit');
TIRC_VERSION.' (yourfilename.php)', 0, 'N
$irc->connect('irc.server.net', 6667); $irc->login('Net_SmartIRC', 'Net_SmartIRC Client '.SMA Ret_SmartIRC'); $irc->join(array('#test')); $irc->listen(); $irc->disconnect();
?>
Silakan lanjutkan dan edit hal-hal dasar seperti channel Anda, dan nama server.

Sekarang, mari kita lihat apa yang sudah dilakukan script ini. 

Code:
class mybot
{
function test(&$irc, &$data)
{
$irc->message(SMARTIRC_TYPE_CHANNEL, $data->channel, $data->nick.': It works!');
} function quit(&$irc, &$data) { if ($data->nick == "YourNickHere")
{ $irc->disconnect(); } }
}
Class ini adalah bot Anda. Semua tanggapan yang ditetapkan diprogram di sini. Kita dapat melihat bahwa kita memiliki fungsi bernama "test" yang mengambil dua argumen. "Irc" dan "data." Irc objek adalah agar kita dapat berinteraksi dengan saluran di dalam IRC bot. Sedangkan data objek sebagian besar berisi data pesan. Kita akan berbicara mengenai hal ini nanti. Sekarang, mari kita melihat pernyataan di dalam fungsi ini pada Class ini. Kita memanggil salah satu fungsi di dalam IRC objek, pesan. 

Kita mengirimkan pesan dengan jenis "SMARTIRC_TYPE_CHANNEL," yang berarti kita mengirimnya ke channel. Pesan target kita adalah $data->channel, yang diatur secara otomatis ke channel asal. Pesan kita adalah $data->nick.': It works!', Yang sangat mudah dipahami jika anda tahu PHP Anda. Kita juga menetapkan fungsi keluar yang disarankan, karena kita harus merestart bot setiap kali kita menambahkan fungsi. Fungsi keluar hanya berfungsi jika "Anda" adalah satu-satunya pemberi perintah, jadi silahkan edit/ubah baris ini. 

Code:
$bot = &new mybot();
$irc = &new Net_SmartIRC();
$irc->setDebug(SMARTIRC_DEBUG_ALL);
$irc->setUseSockets(TRUE);
(SMARTIRC_TYPE_CHANNEL, '^!test', $bot, 'test'); $irc->connect('irc.server.
$irc->registerActionhandle rnet', 6667);
('Net_SmartIRC', 'Net_SmartIRC Client '.SMARTIRC_VERSION.' (yourfilename.php)', 0, 'Net_SmartIRC');
$irc->logi n
Wow, banyak hal baru di sini. Baiklah, pada baris pertama kita akan membuat sebuah contoh dari mybot, disimpan dalam variabel $bot. Kita juga membuat contoh baru dari perpustakaan, Net_SmartIRC, dan menyimpannya dalam $irc. Kita mengaktifkan semua pesan debug, meskipun anda dapat mengubah ini ke SMARTIRC_DEBUG_NONE jika anda menginginkannya. Baris berikutnya tidak penting, tapi diperlukan, jadi jangan menghapusnya.

Ok, sekarang kita di baris yang penting. Tindakan penanganan. Anda akan banyak menggunakan ini, sebenarnya, IRC bot dibangun pada platform tindakan penanganan. Ini pada dasarnya memberitahu $bot untuk memanggil fungsi tes apabila ada yang mengatakan sesuatu yang dimulai dengan !Tes di channel IRC.

Kemudian kita melakukan koneksi ke server IRC, (Anda akan benar-benar ingin mengubah alamat di sini!) Dan mengirim informasi kita, yang dapat Anda edit. 

Code:
$irc->join(array('#test'));
$irc->listen();
(); ?>
$irc->disconnec
t
Kita kemudian bergabung dengan array channel. (Anda dapat mengubah baris ini ke $irc->join(array('#test','#test2')); atau menambahkan channel sebanyak yang Anda inginkan, atau butuhkan. Kita kemudian memanggil $irc->listen(), yang secara sederhana merupakan sebuah respon tak berbatas yg berulang ke ping server, memeriksa kegiatan penanganan, dan hal menyenangkan lainnya. 

Jika listen() berhenti dengan alasan apapun, dapat dipastikan bahwa kita terputus dari IRC, dan ... File berakhir! Anda dapat menjalankan bot ini cukup dengan menjalankan "php yourfilename.php", atau mengunjungi php file dalam web browser.

Sekarang, mari kita menguji bot! Koneksikan ke server dan bergabung dengan channel yang ditetapkan. Ketik !Test. bot Anda seharusnya merespon. Ketik !quit. Bot Anda seharusnya keluar. Seharusnya mudah untuk mengembangkan hal ini dan membuat bot Anda lebih baik!

Selamat Mencoba!

No comments:

Post a Comment