Eggdrop

Eggdrop Tcl Script Yükleme: Hazır Scriptleri Güvenle Kurmak

· Güncelleme: · 5 dk okuma

Eggdrop Tcl Script Yükleme: Hazır Scriptleri Güvenle Kurmak
İçindekiler
  1. Tcl Scripti Nedir?
  2. 1. Scripti Seçmek
  3. 2. Dosyayı scripts Klasörüne Yerleştirmek
  4. 3. Script Ayarlarını Düzenlemek
  5. 4. eggdrop.conf'a source Satırı Eklemek
  6. 5. Rehash ile Yüklemek
  7. 6. Scriptin Çalıştığını Doğrulamak
  8. Hata Mesajlarını Okumak
  9. Güvenlik: Scriptler Neden Riskli Olabilir?
  10. Scripti Kaldırmak
  11. Kendi Scriptinizi Yazmaya Doğru
  12. Scriptleri Düzenli Tutmak
  13. Script Çakışmaları
  14. Sonuç

Eggdrop'u sıradan bir kanal botundan çok daha fazlasına dönüştüren şey Tcl scriptleridir. İnternette yıllar içinde biriken binlerce hazır script; seen, karşılama mesajları, bilgi yarışmaları, istatistikler, hava durumu ve RSS gibi sayısız özellik sunar. Bu rehberde Eggdrop Tcl script yükleme sürecini adım adım ve güvenli bir şekilde anlatıyoruz.

Tcl Scripti Nedir?

Tcl scripti, .tcl uzantılı düz bir metin dosyasıdır. İçinde Tcl dilinde yazılmış komutlar bulunur. Eggdrop bu dosyayı yüklediğinde, scriptteki komutlar çalışır ve genellikle bind komutlarıyla botun belirli olaylara (bir mesaj, bir kanala giriş, bir zaman) tepki vermesi sağlanır. Bind mantığını Tcl bind komutları yazımızda ayrıntılı anlattık.

1. Scripti Seçmek

Bir script yüklemeden önce şu soruları sorun:

  • Script ne yapıyor? Açıklamasını ve, mümkünse, kodunu okuyun.
  • Kaynak güvenilir mi? Tanınmış script arşivlerinden veya güvendiğiniz geliştiricilerden gelen scriptleri tercih edin.
  • Güncel mi? Çok eski scriptler güncel Eggdrop sürümlerinde çalışmayabilir veya bilinen güvenlik sorunları içerebilir.
  • Bağımlılıkları var mı? Bazı scriptler başka scriptlere veya Tcl paketlerine ihtiyaç duyar.

2. Dosyayı scripts Klasörüne Yerleştirmek

Script dosyasını botun kurulum dizinindeki scripts klasörüne kopyalayın:

cd ~/botum/scripts
wget https://ornek-script-arsivi.example/karsilama.tcl

Windows'ta düzenlenmiş dosyalar satır sonu farklılıkları nedeniyle sorun çıkarabilir. Dosyayı Linux'ta açtığınızda tuhaf karakterler görüyorsanız dos2unix aracıyla dönüştürün.

3. Script Ayarlarını Düzenlemek

Çoğu script, dosyanın başında düzenlenmesi gereken ayarlar içerir: hangi kanallarda çalışacağı, komut öneki, mesaj metinleri gibi. Dosyayı bir metin düzenleyiciyle açın ve bu bölümü okuyun:

# --- Ayarlar ---
set karsilama(kanallar) "#kanal #yardim"
set karsilama(mesaj) "Hos geldin %nick! Kurallar icin !kurallar yaz."

Ayarları değiştirirken Tcl söz dizimine dikkat edin: tırnakları ve parantezleri dengeli tutun.

4. eggdrop.conf'a source Satırı Eklemek

Scriptin bot başlatıldığında yüklenmesi için yapılandırma dosyasının sonuna bir source satırı ekleyin:

source scripts/karsilama.tcl

Birden fazla script yüklüyorsanız her biri için ayrı bir satır ekleyin. Sıra bazen önemlidir: Bir script başka bir scriptin fonksiyonlarını kullanıyorsa, bağımlı olduğu script önce yüklenmelidir. Eggdrop'la gelen alltools.tcl gibi yardımcı scriptler genellikle listenin başında yer alır.

5. Rehash ile Yüklemek

Partyline'da:

.rehash

Bot yapılandırmayı ve bütün scriptleri yeniden yükler. Bir hata varsa partyline'da ve log'da bir Tcl hata mesajı görürsünüz. Hata yoksa script çalışmaya başlamıştır.

6. Scriptin Çalıştığını Doğrulamak

.binds
.binds pub

.binds komutu, yüklü scriptlerin tanımladığı bütün bağlamaları listeler. Yeni scriptinizin komutları bu listede görünmelidir. Ardından kanalda scriptin komutunu deneyin.

Bazı scriptler yalnızca belirli bir chanset ayarı açık olan kanallarda çalışır:

.chanset #kanal +karsilama

Scriptin belgelerinde böyle bir ayardan bahsediliyorsa açmayı unutmayın. Ayrıntılar: chanset kanal ayarları.

Hata Mesajlarını Okumak

Tcl hataları genellikle şu biçimdedir:

Tcl error [pub_karsilama]: can't read "nick": no such variable

Köşeli parantez içindeki ad, hatanın oluştuğu prosedürü gösterir; ardından gelen metin ise hatanın kendisidir. Sık görülen hatalar:

HataOlası neden
invalid command nameScript, yüklü olmayan bir komut veya başka bir scriptin fonksiyonunu kullanıyor
can't read "x": no such variableDeğişken tanımlanmamış veya global olarak bildirilmemiş
missing close-braceSüslü parantez dengesiz; genellikle ayarlarda yapılan bir düzenleme hatası
wrong # argsBir prosedür yanlış sayıda parametreyle çağrılıyor

Hata ayıklama için .set errorInfo komutu, son hatanın ayrıntılı izini gösterebilir. Daha fazlası için sık hatalar yazımıza bakın.

Güvenlik: Scriptler Neden Riskli Olabilir?

Tcl scriptleri bot üzerinde çok geniş yetkilere sahiptir. Kötü niyetli veya özensiz yazılmış bir script:

  • Botun kullanıcı dosyasını ve parolalarını dışarıya gönderebilir,
  • Sunucuda dosya okuyup yazabilir,
  • Başkasının bota komut çalıştırmasına izin veren bir arka kapı açabilir,
  • Kanalda kullanıcıdan gelen metni güvensiz biçimde işleyerek uzaktan kod çalıştırılmasına yol açabilir.

Bu nedenle:

  1. Kodu okuyun: En azından exec, open, socket ve eval gibi komutların nerede ve nasıl kullanıldığına bakın.
  2. Kullanıcı girdisine dikkat: Kanaldan gelen metni doğrudan eval veya exec ile çalıştıran scriptler son derece tehlikelidir.
  3. Botu ayrı kullanıcıyla çalıştırın: Bir script ele geçirilse bile zarar sınırlı kalır.
  4. Test botunda deneyin: Yeni bir scripti önce test kanalında, ayrı bir botta deneyin.

Ayrıntılı güvenlik önerileri için Eggdrop güvenliği yazımıza bakın.

Scripti Kaldırmak

Bir scripti kaldırmak için source satırını silip .rehash yapmak her zaman yeterli olmaz; çünkü script yüklendiğinde tanımladığı bind'ler ve zamanlayıcılar bellekte kalabilir. En temiz yol, satırı kaldırdıktan sonra .restart yapmaktır. Bazı iyi yazılmış scriptler kendi temizlik fonksiyonlarını sunar.

Kendi Scriptinizi Yazmaya Doğru

Hazır scriptleri kurdukça onların nasıl çalıştığını da görmeye başlayacaksınız. Küçük değişiklikler yaparak (bir mesaj metnini değiştirmek, yeni bir komut eklemek) Tcl'e alışabilirsiniz. Sıfırdan başlamak için ilk Tcl scriptiniz yazımız iyi bir başlangıç noktasıdır.

Scriptleri Düzenli Tutmak

Botunuza zamanla on, yirmi script yüklediğinizde hangisinin ne yaptığını hatırlamak zorlaşır. Yapılandırma dosyasındaki her source satırının yanına kısa bir açıklama ekleyin ve kullanmadığınız scriptleri listeden çıkarın. Scriptlerin ayarlarını doğrudan dosyanın içinde değiştirmek yerine bazı geliştiricilerin önerdiği gibi ayrı bir ayar dosyasında tutmak, script güncellendiğinde ayarlarınızın kaybolmasını önler. Ayrıca bütün scriptlerinizin bir kopyasını, değiştirdiğiniz ayarlarla birlikte yedeklerinizde saklayın.

Script Çakışmaları

İki farklı script aynı komutu veya aynı olayı kullanıyorsa beklenmedik davranışlar görülebilir. Örneğin iki ayrı karşılama scripti yüklerseniz kanala giren herkes iki mesaj alır; iki script aynı !seen komutunu tanımlarsa hangisinin cevap vereceği belirsizleşir. .binds çıktısında aynı tetikleyiciye bağlı birden fazla prosedür görüyorsanız birini kaldırmayı düşünün. Bir sorun yaşadığınızda scriptleri tek tek devre dışı bırakarak hangisinin soruna yol açtığını bulmak en güvenilir yöntemdir.

Sonuç

Tcl script yüklemek basit bir süreçtir: dosyayı scripts klasörüne koyun, ayarlarını düzenleyin, source satırı ekleyin ve rehash yapın. Asıl önemli olan doğru scripti seçmek ve güvenliğinden emin olmaktır. Kaynağını bilmediğiniz scriptlere karşı dikkatli olun ve yeni scriptleri önce test ortamında deneyin. Scriptlerin olaylara nasıl bağlandığını öğrenmek için sıradaki rehberimiz Tcl bind komutları.

IRC sorunun mu var? Kanalda birlikte çözelim.

💬 Kanala Bağlan

Sıkça Sorulan Sorular

Tcl scriptini yükledikten sonra botu yeniden başlatmam gerekir mi?

Genellikle hayır. Partyline'da .rehash komutu yapılandırmayı ve scriptleri yeniden yükler.

Script yüklendi ama çalışmıyor, neden?

Script ayarları düzenlenmemiş, gerekli chanset ayarı açılmamış veya script Eggdrop sürümünüzle uyumsuz olabilir. Partyline'daki hata mesajlarını kontrol edin.

İnternetten bulduğum her scripti yüklemeli miyim?

Hayır. Tcl scriptleri bot üzerinde geniş yetkiye sahiptir. Kaynağını bilmediğiniz ve içeriğini incelemediğiniz scriptleri yüklememelisiniz.