# Mytheria Security Bot

Discord sunucusu icin guvenlik ve moderasyon botu.

## VDS Kurulumu

Asagidaki komutlar Ubuntu/Debian VDS icindir.

1. Sunucuyu guncelle:

```bash
sudo apt update && sudo apt upgrade -y
```

2. Node.js 20 LTS kur:

```bash
curl -fsSL https://deb.nodesource.com/setup_20.x | sudo -E bash -
sudo apt install -y nodejs
node -v
npm -v
```

3. Bot dosyalarini VDS'e yukle. Ornek klasor:

```bash
mkdir -p /opt/mytheria-security-bot
cd /opt/mytheria-security-bot
```

Dosyalari bu klasore attiktan sonra paketleri kur:

```bash
npm install
```

4. `.env.example` dosyasini `.env` olarak kopyala:

```bash
cp .env.example .env
nano .env
```

`.env` dosyasindaki token alanina resetledigin yeni tokeni yaz:

```env
DISCORD_TOKEN=YENI_TOKEN
GUILD_ID=843472317036363836
PREFIX=!
```

5. Once elle test et:

```bash
npm start
```

Bot aktif yazisini gordukten sonra `CTRL+C` ile durdur.

6. Botu VDS'te surekli acik tutmak icin PM2 kur:

```bash
sudo npm install -g pm2
pm2 start ecosystem.config.cjs
pm2 save
pm2 startup
```

`pm2 startup` komutu sana ekstra bir `sudo ...` komutu verecek. Onu da kopyalayip calistir. Bu sayede VDS yeniden baslasa bile bot tekrar acilir.

## VDS Yonetim Komutlari

```bash
pm2 status
pm2 logs mytheria-security-bot
pm2 restart mytheria-security-bot
pm2 stop mytheria-security-bot
```

## Onemli Guvenlik Notu

Sohbette paylasilan bot tokeni artik gizli kabul edilmez. Discord Developer Portal uzerinden tokeni resetleyip yeni tokeni sadece `.env` dosyasina koy.

## Discord Ayarlari

Bot icin Developer Portal'da su intentleri ac:

- Server Members Intent
- Message Content Intent

Bot rolunu koruyacagi ve verecegi rollerin ustune tasi. Kanal silme korumasi, rol verme, ban, kick ve mesaj silme icin botta su izinler olmali:

- Manage Roles
- Manage Channels
- View Audit Log
- Ban Members
- Kick Members
- Manage Messages
- Moderate Members
- Connect
- Speak

## Komutlar

- `!ban @kullanici sebep`: Ban atar.
- `!kick @kullanici sebep`: Kick atar.
- `!rolver @kullanici @rol`: `1519076695217279178` rolune sahip kisiler, bu rolun altindaki rolleri verebilir.
- `!sil 1-100`: Sadece `1519076689597038642` rolu mesaj silebilir.

## Eklenen Kurallar

- Sunucuya giren herkese `1519090080034193520` rolu verilir.
- WL rolu `1519090082454179920` sadece `1519076691375558696` veya `1519076695217279178` rolune sahip kisiler tarafindan verilebilir.
- Agir kufur listesine takilan mesaj silinir ve kullanici uyarilir. 3 uyaridan sonra 1 saat timeout uygulanir.
- `1519076687352959117` rolu ban komutunu limitsiz kullanabilir.
- `1519076692969132185` ve `1519076694378549346` rollerinin toplam gunluk kick/ban hakki kisi basina 4'tur.
- `905510931709165639` dokunulmazdir; bot bu kisiye ban, kick, timeout veya otomatik kanal silme cezasi uygulamaz.
- Kanal silme yasaktir; silinen kanal geri olusturulur ve silen kisi banlanmaya calisilir.
- Bot `1519077129583722568` ses kanalinda kalmaya calisir.
