Bu depo, Meshtastic ağı üzerinde çalışan botumuz için eklentiler (modüller) içerir. İsteyen herkes bu depoyu çatallayarak (fork) yeni modüller geliştirebilir ve Pull Request (PR) gönderebilir.
Yeni bir özellik eklemek çok kolaydır. Bu klasörün içine modul_adi.js şeklinde yeni bir dosya oluşturmanız yeterlidir. Bot sistemi, bu klasördeki tüm .js dosyalarını otomatik olarak tanır ve yükler.
Bir modül temel olarak şu yapıda olmalıdır:
module.exports = {
name: 'modulun_adi', // Modülünüzün kısa adı
description: 'Bu modülün ne işe yaradığı', // Kısa açıklama
// (Opsiyonel) Bot bir mesaj/komut aldığında bu fonksiyon çalışır
run: async (message, utils) => {
// message: Gelen mesajın metni (örn: "/ornek")
// utils: Bot fonksiyonlarını kullanabilmeniz için yardımcı araçlar
// utils.PREFIX: Botun ön eki (genellikle "/")
const args = message.substring(utils.PREFIX.length).split(" ");
const command = args[0].toLowerCase();
// Eğer gelen komut bizim komutumuzsa işlemleri yap
if (command === 'ornek') {
utils.publishMessage(4294967295, "Örnek komut çalıştı!");
utils.sendDiscord("Örnek komut Discord'a iletildi.");
}
},
// (Opsiyonel) Bot başlatıldığında YALNIZCA BİR KERE çalışır (Arka plan görevleri/zamanlayıcılar için)
init: (utils) => {
// Örn: Her 5 dakikada bir çalışacak bir arka plan görevi
setInterval(() => {
console.log("Arka plan görevi çalışıyor...");
}, 300000);
}
};Bot sistemi, modüllerinize işlerini kolaylaştırmak için bir utils objesi gönderir. Bu obje şunları içerir:
utils.PREFIX: Botun ayarlanmış ön eki (örn:/). Komutlarınızı kontrol ederken bunu kullanın.utils.publishMessage(hedefId, mesajMetni): Meshtastic ağına (MQTT üzerinden) mesaj gönderir.4294967295ID'si tüm ağa (broadcast) gönderim yapmak için kullanılır.- Not: Mesajların üst üste binmemesi için sistem otomatik olarak 1 saniye gecikme ekler.
utils.sendDiscord(mesajMetni, longName, shortName): Eğer sunucu sahibi.envdosyasında Discord Webhook ayarlamışsa, bu mesajı Discord kanalına iletir.longNameveshortNameopsiyoneldir; boş bırakılırsa.enviçindeki varsayılan bot isimlerini kullanır.
/wx [plaka_no] komutu ile şehirlerin güncel hava durumunu Open-Meteo API'si üzerinden getirir.
Hem otomatik hem de manuel çalışan gelişmiş bir modüldür:
- Otomatik: AFAD verilerini 2 dakikada bir kontrol eder ve 4.0 üzeri depremleri anında bildirir.
- Manuel:
/depremkomutu yazıldığında, şiddetine bakılmaksızın son kaydedilen deprem bilgisini getirir.
- Bu repoyu kendi GitHub hesabınıza çatallayın (Fork).
- Kendi modülünüzü
.jsdosyası olarak ekleyin. - Kendi reponuza commit edip pushlayın.
- Bu repoya bir Pull Request (PR) açın.
PR'ınız onaylandığında, ana sunucu güncellenecek ve modülünüz ağda aktif olacaktır!