# SNOMASK - Server Notices pentru Operatori

## 📋 CE ESTE SNOMASK?

**SNOMASK** (Server Notice Mask) este un sistem de notificări pentru operatori IRC care le permite să vadă diverse evenimente de pe server în timp real.

---

## 🎯 PROBLEMA

**ÎNAINTE:**
```
[11:02] * User se face OPER
[11:02] ... NIMIC ... (nici o notificare)
```

**DUPĂ (cu SNOMASK):**
```
[11:02] * User se face OPER
[11:02] -irc.server.org- *** Notice -- MuieChipes (~Raducu@188.24.5.202) is now a global operator (O)
```

---

## ✅ CE AM ACTIVAT

Am decomentat și configurat **snomask** în blocul Operator:

```conf
Operator {
    name = "YourOper";
    password = "$MD5$...";
    host = "*@*";
    class = "Opers";
    
    # Permisiuni și notificări
    admin = yes;
    hide_oper = no;              # SCHIMBAT: de la yes la no (pentru a vedea notificările)
    hide_channels = yes;
    whois_notice = yes;
    snomask = "+s +o +c +k +f +b +n";  # ACTIVAT! ✅
};
```

---

## 📊 CE ÎNSEAMNĂ FIECARE FLAG

| Flag | Ce Face | Exemplu Notificare |
|------|---------|-------------------|
| **+s** | Server connections | `*** Notice -- Server hub.net connected` |
| **+o** | **Operator mode changes** | `*** Notice -- User (~user@host) is now a global operator (O)` ⭐ |
| **+c** | Client connections | `*** Notice -- Client connecting: User (~user@host)` |
| **+k** | Kills | `*** Notice -- Received KILL message for User from Oper (Reason)` |
| **+f** | Flood detection | `*** Notice -- Possible flood from user@host` |
| **+b** | Bot detections | `*** Notice -- Possible bot: user@host` |
| **+n** | Nick changes | `*** Notice -- Nick change: OldNick -> NewNick` |

**Flag-ul +o** este cel care afișează notificări când cineva devine operator! ⭐

---

## 🔧 ALTE FLAG-URI DISPONIBILE

| Flag | Ce Face |
|------|---------|
| **+d** | Debug messages |
| **+g** | G-lines (global bans) |
| **+l** | Local connections |
| **+u** | Unauthorized connections |
| **+x** | Extra debugging |
| **+y** | Stats requests |
| **+z** | Z-lines (IP bans) |

---

## 🎮 CUM FUNCȚIONEAZĂ ÎN IRC

### **CÂND TE LOGHEZI CA OPER:**

```irc
/OPER youroper password

# Vei vedea AUTOMAT:
[11:00] *** You are now an IRC Operator
[11:00] -irc.underchat.org- *** Notice -- You are now a global operator (O)

# De acum, vei primi notificări pentru toate evenimentele!
```

### **CÂND ALT USER DEVINE OPER:**

```irc
[11:02] -irc.underchat.org- *** Notice -- MuieChipes (~Raducu@188.24.5.202) is now a global operator (O)
```

### **CÂND CINEVA SE CONECTEAZĂ:**

```irc
[11:05] -irc.underchat.org- *** Notice -- Client connecting: NewUser (~user@1.2.3.4) [class: Other]
```

### **CÂND CINEVA ÎȘI SCHIMBĂ NICK-UL:**

```irc
[11:10] -irc.underchat.org- *** Notice -- Nick change: OldNick -> NewNick (user@host)
```

---

## 🎯 MODIFICĂRI FĂCUTE

### **1. Decomentăm snomask:**
```conf
# ÎNAINTE:
#    snomask = yes;

# DUPĂ:
    snomask = "+s +o +c +k +f +b +n";  # ✅
```

### **2. Schimbăm hide_oper:**
```conf
# ÎNAINTE:
    hide_oper = yes;  # Ascuns din listele de useri

# DUPĂ:
    hide_oper = no;   # Vizibil (pentru notificări)
```

**DE CE?** Dacă `hide_oper = yes`, s-ar putea să nu primești toate notificările!

---

## 📋 PERSONALIZARE SNOMASK

Poți modifica snomask-ul după preferință:

### **Minim (doar operatori):**
```conf
snomask = "+o";
```

### **Moderat (operatori + kills + g-lines):**
```conf
snomask = "+o +k +g";
```

### **Complet (toate notificările):**
```conf
snomask = "+s +o +c +k +f +b +n +d +g +l +u +x +y +z";
```

### **Recomandat (ce am activat noi):**
```conf
snomask = "+s +o +c +k +f +b +n";
```

---

## 🚀 UPGRADE PE SERVER

```bash
cd ~/ircu2

# Pull ultimele modificări
git pull origin main

# Reinstalează pentru a aplica snomask:
./install.sh

# Restart IRCd:
pkill ircd
/home/ircd/ircd/bin/ircd -f /home/ircd/ircd/lib/ircd.conf
```

---

## 🔍 VERIFICARE DUPĂ UPGRADE

### **1. Verifică în ircd.conf:**
```bash
grep "snomask" /home/ircd/ircd/lib/ircd.conf
```

**Output așteptat:**
```conf
    snomask = "+s +o +c +k +f +b +n";
```

### **2. Test în IRC:**
```irc
# Loghează-te ca oper:
/OPER youroper password

# Ar trebui să vezi:
[11:00] *** You are now an IRC Operator
[11:00] -irc.underchat.org- *** Notice -- YourNick (~user@host) is now a global operator (O)

# De acum, primești notificări automat!

# Test: Alt user devine oper:
# (pe alt client/connection)
/OPER anotheroper password

# Pe primul oper ar trebui să vezi:
[11:02] -irc.underchat.org- *** Notice -- AnotherOper (~user@host) is now a global operator (O)
```

---

## 🎨 DEZACTIVARE TEMPORARĂ (dacă deranjează)

Dacă notificările deranjează, le poți dezactiva temporar:

### **În IRC:**
```irc
# Dezactivează toate notificările:
/MODE YourNick -s

# Activează doar notificări pentru operatori:
/MODE YourNick +s +o

# Activează toate notificările:
/MODE YourNick +s +o +c +k +f +b +n
```

### **Sau editează ircd.conf:**
```bash
nano /home/ircd/ircd/lib/ircd.conf

# Găsește blocul Operator și modifică:
snomask = "+o";  # Doar notificări operatori

# Sau comentează complet:
#    snomask = "+s +o +c +k +f +b +n";

# Restart IRCd:
/home/ircd/ircd/bin/ircd -rehash
```

---

## 📊 COMPARAȚIE

| Aspect | ÎNAINTE (fără snomask) | DUPĂ (cu snomask) |
|--------|------------------------|-------------------|
| **Notificare oper** | ❌ Nimic | ✅ `*** Notice -- User is now a global operator` |
| **Client connects** | ❌ Nimic | ✅ `*** Notice -- Client connecting: User` |
| **Nick changes** | ❌ Nimic | ✅ `*** Notice -- Nick change: Old -> New` |
| **Kills** | ❌ Nimic | ✅ `*** Notice -- Received KILL message` |
| **Flood** | ❌ Nimic | ✅ `*** Notice -- Possible flood from...` |
| **Server connects** | ❌ Nimic | ✅ `*** Notice -- Server connected` |
| **G-lines** | ❌ Nimic | ✅ `*** Notice -- G-line added for...` |

---

## 🎯 SNOMASK vs FEATURES

### **SNOMASK în Operator block:**
```conf
Operator {
    snomask = "+s +o +c +k";  # Per operator
};
```

### **SNOMASK_OPERDEFAULT în features:**
```conf
features {
    "SNOMASK_OPERDEFAULT" = "1024";  # Default global pentru toți operii
};
```

**DIFERENȚA:**
- `snomask` în Operator = **override** pentru operatorul specific
- `SNOMASK_OPERDEFAULT` în features = **default** pentru toți

---

## 💡 TIPS & TRICKS

### **1. Filtrare notificări:**
Dacă sunt prea multe notificări, activează doar ce te interesează:
```conf
snomask = "+o +k";  # Doar operatori și kills
```

### **2. Canal de notificări:**
Creează un canal #opers și pune acolo notificările:
- Operatorii văd notificările în canal
- Nu mai deranjează în query

### **3. Bot de logging:**
Creează un bot care loghează toate notificările snomask:
- Istoric complet al evenimentelor
- Audit trail pentru investigații

---

## 🎉 CONCLUZIE

### **SNOMASK ACTIVAT! ✅**

**Ce ai acum:**
- ✅ Notificări când cineva devine operator
- ✅ Notificări pentru conexiuni clienți
- ✅ Notificări pentru nick changes
- ✅ Notificări pentru kills
- ✅ Notificări pentru flood detection
- ✅ Monitoring complet al serverului!

**Mesajul pe care îl vei vedea:**
```
[11:02] -irc.underchat.org- *** Notice -- MuieChipes (~Raducu@188.24.5.202) is now a global operator (O)
```

**EXACT ca pe NodeAse!** ⭐✅

---

**Versiune**: v1.7.2  
**Data**: 15 Februarie 2026  
**Feature**: SNOMASK activat pentru operatori  
**Status**: ✅ Notificări server complete  
**Upgrade**: git pull && ./install.sh && restart IRCd

