Java IRC API'sı
PircBot, IRC botlarını hızlı ve kolay bir şekilde yazmak için kullanılan bir Java çerçevesidir. Özellikleri arasında, ortak IRC olaylarını, taşkın korumasını, DCC'yi sürdüren desteği, ident desteğini ve daha fazlasını gerçekleştiren olay odaklı bir mimari bulunur. Kapsamlı günlük dosyası biçimi kanal istatistiklerini oluşturmak için pisg ile birlikte kullanılabilir. Tam dokümantasyon dahildir ve bu sayfada ilk IRC bot'unuzu yapmak için 5 dakikalık adım adım kılavuz bulunmaktadır.
PircBot, IRC'de çeşitli eğlenceli görevler yapmanıza izin verir, ancak ABD Deniz Kuvvetleri, ABD Hava Kuvvetleri, CIA (doğrulanmamış), birkaç ulusal savunma ajansı ve Azureus bittorrent istemcisi tarafından daha ciddi uygulamalar için de kullanılır. Fakat bunun sizi ertelemesine izin vermeyin - kullanımı hala kolaydır!
PircBot Java IRC API paketini kullanma
En üstteki indirme bağlantısı, pircbot.jar arşivini ve ilişkili belgeleri içeren bir zip dosyasında yer alır. Pircbot paketini kullanan kendi Bot'ınızı derlerken veya çalıştırırken, sınıf yolunuza pircbot.jar dosyasını eklediğinizden emin olmalısınız.
Bir IRC Botu Nasıl Yapılır
Pircbot paketi (diğerlerinin yanı sıra) PircBot adında soyut bir sınıf içerir. Soyut olduğundan, bunun bir örneğini oluşturamazsınız, ancak onu genişletebilir ve işlevselliğini devralabilirsiniz. PircBot'a dayalı ilk IRC Botunuzu yapmak için adım adım bir rehberden geçmek isterseniz lütfen okumaya devam edin.
Bir IRC Botu yapmak için adım adım rehber
Bu örnekte basit bir komuta yanıt veren bir IRC Botu nasıl hazırlanacağınıza sizleri götüreceğiz. Hızlı çalışıyorsanız, bu 5 dakikadan fazla sürmemelidir. Birisine "zaman" dendiğinde yerel saatin ne olduğunu söyleyen bir mesaj yollayacaktır.
İlk olarak, IRC Botunuzun kodunu depolayabileceğimiz bir dizin oluşturalım. Bu örnek için, kullanacağız
c:\mybot\
PircBot jar arşivini indirin (yukarıya bakın) ve bunu c: \ mybot \
Şimdi PircBot'un işlevselliğini genişleterek kendi IRC Bot'u yaratmamız gerekiyor. MyBot.java dosyasını dizinimizde yaratarak bunu yapabiliriz (Java'nın büyük / küçük harfe duyarlı olduğunu unutmayın). PircBot'u kendi işlevselliğimizi sunmadan genişletmek için yapmamız gereken tek şey, MyBot.java adlı dosyaya aşağıdakileri koymaktır: -
MyBot.java
Import org.jibble.pircbot. *; Public class MyBot, PircBot'u genişletir { Public MyBot () { this.setName ( "MyBot"); } }
Oluşturucuda, Botumuzun adını "MyBot" olarak belirliyoruz. Bu, Bot'umuzun bir IRC Sunucusu'na katılırken kullanmaya çalışacağı addır.
Şimdi, aslında IRC Bot'umuzu çalıştırmak için ana yöntem kullanmamız gerekiyor. Bu ana yöntemi, MyBotMain.java adlı bir dosyanın ayrı bir sınıfa koyacağız. Bot'umuzun bir sunucuya bağlanmasını ve bir kanala katılmasını sağlamak için bu ana yöntemi de kullanacağız. Bu örnekte Bot'ımızı IRC sunucusuna
irc.freenode.net
katılmasını ve daha sonra adı verilen kanala katılmasını söyleyeceğiz #pircbot
.
Bu örnekte kullanılan IRC sunucusunun bağlanmasına izin verilmeden önce PircBot işleminin kullanıcısının kimliğini kontrol etmeye çalışacağını lütfen unutmayın. Bu onay işlemini tamamlayamıyorsa, sunucuyla bağlantı kurmanın bir iki dakika sürebileceğinden sabırlı olun.
MyBotMain.java
Import org.jibble.pircbot. *; Genel sınıf MyBotMain { Public static void main (String [] args) İstisna atar { // Şimdi botumuzu başlatın. MyBot bot = yeni MyBot (); // Hata ayıklama çıktısını etkinleştirir. bot.setVerbose (doğru); // IRC sunucusuna bağlanın. bot.connect ( "irc.freenode.net"); // #pircbot kanalına katılın. bot.joinChannel ( "# PircBot"); } }
Şimdiye kadar bu harika. Ana yöntemi derlemek ve çalıştırmak için şimdi Bot deneyelim ve IRC sunucusuna bağlanıp #pircbot kanalına katılırız. Artık olaylara cevap vermesi için MyBot sınıfına bir şeyler eklememiz gerekiyor. Bu örnekte, biri "zaman" yazan her an #pircbot kanalına şimdiki zamanı içeren bir mesaj göndermeye çalışacaktı. Olaylara cevap vermek için, PircBot soyut sınıfındaki yöntemleri geçersiz kılabiliriz. Mesaj göndermek için PircBot soyut sınıfında da tanımlanan yöntemleri kullanabiliriz.
Ana yöntemimizin bir İstisna oluşturması için ilan edildiğini fark edebilirsiniz. Örneğimizde toplam kod miktarını küçük tutmak için bunu yaptık. (Zamanınız varken) istisnaları ele almanın daha iyi bir yolu, IRC Sunucusu'na katılmaya çalışılırken atılan IOException, IrcException veya NickAlreadyInUseException'ları açıkça yakalamaktır.
Neyse, IRC Bot'ımızın işlevselliğini tamamlamak için MyBot sınıfımıza yeni bir yöntem eklememiz yeterlidir: -
MyBot.java (sürüm 2)
Import org.jibble.pircbot. *; Public class MyBot, PircBot'u genişletir { Public MyBot () { this.setName ( "MyBot"); } Public void onMessage (String kanal, String gönderen, Dize oturum açma, Dize ana makine adı, Dize mesajı) { If (message.equalsIgnoreCase ("time")) { Dize süresi = yeni java.util.Date (). ToString (); SendMessage (kanal, gönderen + ": Zaman şimdi" + saat); } } }
MyBot.java'da kullandığımız onMessage yöntemi, PircBot soyut sınıfında aynı imza metnini geçersiz kılar. Bu yöntem, birisi bir kanala mesaj gönderdiğinde çağrılır. İstediği takdirde Botumuzun birden fazla kanalda çalışabileceğini fark ettik, çünkü kanal adı bu yöntemde bir parametre olarak verilmiştir. OnMessage yöntemimizin içinde, birisinin "zaman" mı söylediğini kontrol ettik ve eğer olsaydı aynı kanala cevap verdik.
IRC Botumuzu Çalıştırmak
Zaten bir Java SDK'sı yoksa botu çalıştırmadan önce yüklemeniz gerekecektir. Lütfen yardıma ihtiyacınız varsa Java kurma konusundaki bu kılavuzu okuyun .
Örnek IRC Bot'umuzu derlemek için bir komut istemi açın ve kodu içeren dizine gidin. Java'nın doğru şekilde kurulduğunu varsayarsak, Bot komutunu aşağıdaki komutu kullanarak derleyebilirsiniz: -
javac -classpath pircbot.jar;. *.java
Her şey yolunda giderse, IRC Bot'u aşağıdaki komutlarla çalıştırabilirsiniz: -
java -classpath pircbot.jar;. MyBotMain
(Unutmayın UNIX / Linux'da ';' yerine ':' kullanmalısınız) Bot çalıştırıldığında, sunucudan bilgi çıktığını görürsünüz. Artık kendi IRC istemcisini açıp Bot'un bulunduğu kanala katılabilmelisin. "Zaman" diyorsan, bot kanala cevap vermeli, wahey!
Diğer özellikler ekleme
Yukarıdaki örnek size kendi IRC Bot içine koyabilirsiniz özellikler için başka fikirlerim verdiyse, o zaman bir okuma yapmak isteyeceğini PircBot belgelerine . Bu, PircBot sınıfındaki tüm mevcut yöntemler ve olay işleyicilerinin ayrıntılarını verir.
Çok sayıda bot yapmak için ayrıntılı örnekler O'Reilly kitabı IRC Hacks'de bulunabilir . Bu, IRC bot'ları yapmak isteyen herkes için okunması önerilir!
PircBot'u kullanma
PircBot'u kullanırsanız, aşağıdakileri yaparak bana yardımcı olabilmeniz güzel olur: -
- Lütfen bana bunu kullandığınızı bildirmek için e-posta gönderin. Beni mi ve nerede kullanımda görülebilir bunu kullanıyor iletin - ilginç gönderimler sonra PircBot Uygulamalar sayfasında yer alacak!
- Web'de IRC Bot'unuzu belgelerseniz, bu web sayfasına bir köprü oluşturabilseydiniz iyi olurdu.
Bazı botlar PircBot çerçevesine dayanıyor
Bu bölüm bu sayfada rahatça sığmayacak kadar büyüdü. PircBot Implementations sayfasındaki bu çerçeveye dayanan bazı IRC botlarının bir listesini bulabilirsiniz .
Revizyon Geçmişi
Bu bölüm artık ayrı bir sayfada bulunmaktadır. Geçerli sürümde hangi değişiklikler yapıldığını görmek için lütfen PircBot Değişiklik Günlüğünü ziyaret edin .
Çeşitli şakalar
PircBot, Java Sanal Makinesi sürümlerinde 1.1'e kadar çalışacak ve böylece iPAQ'ler gibi daha küçük taşınabilir aygıtlarda çalıştırılabilir olacak şekilde tasarlandı. PircBot paketinin çok yönlülüğünü göstermek için, iPAQ ve kısıtlayıcı JVM'lere sahip diğer benzer cihazlarda kullanılmak üzere uygun bir grafik IRC istemcisi yazmıştım. Sonuçta, bir IRC istemcisi yalnızca insan etkileşimi olan bir IRC botudur ...
PircBot saf Java ile yazılmıştır, bu nedenle Java Sanal Makinesi olan herhangi bir işletim sisteminde çalışacaktır.
Bana özel IRC botu yaptırmamı isterseniz, lütfen benimle iletişime geçin . PircBot'un yazarı olarak, ihtiyaçlarınızı karşılamak için hızlı bir şekilde herhangi bir şey üretebileceğime inanıyorum.
Lütfen tüm özellik isteklerini, geribildirimlerini ve hata raporlarını bu sayfanın altındaki e-posta adresine gönderin.
ruhsat verme
Bu yazılım ürünü, GNU Genel Kamu Lisansı (GPL) kapsamında bulunan OSI Onaylı Açık Kaynaklı Yazılımdır. GPL, tescilli uygulamalarda kullanım için çok kısıtlayıcı olabileceğinden, ticari bir lisans da verilir.
Bu yazılım için ticari bir lisans satın alın .
Hiç yorum yok:
Yorum Gönder