⚙️ Sunucu Ayarları ve Log Sistemi (setup)
Kumiho Bot, sunucunuzdaki tüm olayları Discord kanallarında ve aynı zamanda (varsa) Web Dashboard'da görebilmeniz için veritabanında kaydeder. f.setup komutu ile sistemin hem Discord'a mesaj gönderme kısmını hem de veritabanı loglama ayarlarını kolayca yönetebilirsiniz.
📝 Log Sistemi Kurulumu
Tüm ayarlar için tek bir görsel menü (UI) mevcuttur.
📌 Kullanım
f.setup
🛡️ Yetkiler ve Sınırlar
- Kimler Kullanabilir: Sunucu Yöneticisi (
Owneryetkisi veya log izni). - Bot Yetkisi: Kanalları Yönet, Mesaj Gönder, Embed Gönder.
🖼️ Görsel Çıktı (Arayüz)
Butonlar: [Hızlı Kurulum] [Detaylı Ayarlar]
🔧 Spesifik Log Kanalı Ayarlama (log set)
Otomatik kurulum yerine her bir kategoriyi (örn. mod, ses, mesaj) manuel olarak belirli bir kanala ayarlayabilirsiniz.
📌 Kullanım
f.log set <log_türü> <#kanal>
Geçerli Log Türleri: mesaj, ses, uyari, ticket, mod, basvuru, davet, sunucu, rol
🎚️ Log Şalterleri (log text/voice vb.)
Bazen belirli bir olayın kanala loglanmasını istemeyebilirsiniz. (Örneğin sadece silinen mesajları loglamak ama düzenlenenleri kapatmak gibi).
- Mesaj Silinmesi:
f.log text delete <on|off> - Mesaj Düzenlenmesi:
f.log text edit <on|off> - Sese Katılma:
f.log voice join <on|off>
Bu şalterler hem Discord kanal loglarını hem de veritabanına olan kayıt (Web Dashboard görünürlüğü) sistemini senkronize açar veya kapatır.
🖼️ Görsel Çıktı (Şalter İşlemi)
✅ Silinen mesaj kanal logları ve veritabanı olay kaydı senkronize olarak kapatıldı.
💻 Kaynak Kod (Meraklısına)
Eski sistemdeki komut bazlı şalterler yerine yeni sistemde UI bileşenleri (Dropdown & Buton) ve Oracle veritabanı entegrasyonu kullanılmaktadır. Commands/administration/setup.py içerisindeki yeni mantık:
def make_callback(self, button, col_name, state):
async def callback(interaction: discord.Interaction):
await interaction.response.defer()
new_state = 0 if state == 1 else 1
# Update log_settings (DC Embeds)
await self.bot.db.execute(f"UPDATE log_settings SET {col_name}=? WHERE guild_id=?", new_state, str(interaction.guild.id))
# Sync db_log_settings (Web Dashboard)
try:
await self.bot.db.execute(f"UPDATE db_log_settings SET {col_name}=? WHERE guild_id=?", new_state, str(interaction.guild.id))
except: pass
# UI Refresh
row_db = await self.bot.db.fetchone("SELECT * FROM log_settings WHERE guild_id=?", str(interaction.guild.id))
new_view = LogToggleView(self.bot, self.category_key, dict(row_db) if row_db else {})
await interaction.edit_original_response(view=new_view)
return callback