diff --git a/COMENZI_SI_MODURI_COMPLETE.md b/COMENZI_SI_MODURI_COMPLETE.md index c46f293..edf617b 100644 --- a/COMENZI_SI_MODURI_COMPLETE.md +++ b/COMENZI_SI_MODURI_COMPLETE.md @@ -585,80 +585,110 @@ Tipuri disponibile: ### Comenzi Services -⚠️ **ATENȚIE**: Majoritatea comenzilor SVS* **NU SUNT ACTIVE** în versiunea curentă! -Fișierele `m_svs*.c` există dar **NU sunt înregistrate în parse.c**, deci comenzile **NU FUNCȚIONEAZĂ**! +✅ **UPDATE 24 Feb 2026**: Comenzile SVS* **SUNT IMPLEMENTATE** și **FUNCȚIONALE**! +**NOTĂ IMPORTANTĂ**: SVS* funcționează **DOAR prin protocol SERVER-TO-SERVER** (de la servicii IRC), **NU** de la operi umani! -#### **SVSJOIN** - Force user to join channel ❌ NU FUNCȚIONEAZĂ +#### **SVSJOIN** - Force user to join channel ✅ FUNCȚIONAL (S2S) ``` -/SVSJOIN <#channel> +Protocol: :ServiceNum SJ TargetNum #channel ``` - Forțează user să intre pe canal -- **Fișier**: `m_svsjoin.c` (există dar NU e înregistrat în parser) -- **Status**: ❌ **NEFUNCȚIONAL** - Trebuie adăugat în parse.c +- **Fișier**: `m_svsjoin.c` ✅ IMPLEMENTAT +- **Status**: ✅ **FUNCȚIONAL prin protocol S2S** (servicii IRC) +- **Notă**: NU poate fi folosit direct de operi! Doar de servicii (X, ChanServ) -#### **SVSPART** - Force user to part channel ❌ NU FUNCȚIONEAZĂ +#### **SVSPART** - Force user to part channel ✅ FUNCȚIONAL (S2S) ``` -/SVSPART <#channel> +Protocol: :ServiceNum SP TargetNum #channel ``` - Forțează user să părăsească canalul -- **Fișier**: `m_svspart.c` (există dar NU e înregistrat în parser) -- **Status**: ❌ **NEFUNCȚIONAL** - Trebuie adăugat în parse.c +- **Fișier**: `m_svspart.c` ✅ IMPLEMENTAT +- **Status**: ✅ **FUNCȚIONAL prin protocol S2S** -#### **SVSNICK** - Force nick change ❌ NU FUNCȚIONEAZĂ +#### **SVSNICK** - Force nick change ✅ FUNCȚIONAL (S2S) ``` -/SVSNICK [] +Protocol: :ServiceNum SN OldNick NewNick ``` - Forțează schimbare de nickname -- **Fișier**: `m_svsnick.c` (există dar NU e înregistrat în parser) -- **Status**: ❌ **NEFUNCȚIONAL** - Trebuie adăugat în parse.c +- **Fișier**: `m_svsnick.c` ✅ IMPLEMENTAT +- **Status**: ✅ **FUNCȚIONAL prin protocol S2S** -#### **SVSMODE** - Force mode change ❌ NU FUNCȚIONEAZĂ +#### **SVSMODE** - Force mode change ✅ FUNCȚIONAL (S2S) ``` -/SVSMODE +Protocol: :ServiceNum SM Target +modes ``` - Forțează schimbare moduri user/canal -- **Fișier**: `m_svsmode.c` (există dar NU e înregistrat în parser) -- **Status**: ❌ **NEFUNCȚIONAL** - Trebuie adăugat în parse.c +- **Fișier**: `m_svsmode.c` ✅ IMPLEMENTAT +- **Status**: ✅ **FUNCȚIONAL prin protocol S2S** -#### **SVSIDENT** - Set ident ❌ NU FUNCȚIONEAZĂ +#### **SVSIDENT** - Set ident ✅ FUNCȚIONAL (S2S) ``` -/SVSIDENT +Protocol: :ServiceNum SI Nick Ident ``` - Setează ident pentru user -- **Fișier**: `m_svsident.c` (există dar NU e înregistrat în parser) -- **Status**: ❌ **NEFUNCȚIONAL** - Trebuie adăugat în parse.c +- **Fișier**: `m_svsident.c` ✅ IMPLEMENTAT +- **Status**: ✅ **FUNCȚIONAL prin protocol S2S** -#### **SVSQUIT** - Force user quit ❌ NU FUNCȚIONEAZĂ +#### **SVSQUIT** - Force user quit ✅ FUNCȚIONAL (S2S) ``` -/SVSQUIT : +Protocol: :ServiceNum SQ Nick :Reason ``` - Forțează user să se deconecteze -- **Fișier**: `m_svsquit.c` (există dar NU e înregistrat în parser) -- **Status**: ❌ **NEFUNCȚIONAL** - Trebuie adăugat în parse.c +- **Fișier**: `m_svsquit.c` ✅ IMPLEMENTAT +- **Status**: ✅ **FUNCȚIONAL prin protocol S2S** -#### **SWHOIS** - Set special whois line ❌ NU FUNCȚIONEAZĂ +#### **SWHOIS** - Set special whois line ✅ FUNCȚIONAL (S2S) ``` -/SWHOIS : +Protocol: :ServiceNum SW Nick :Text ``` - Setează linie specială în WHOIS -- **Fișier**: `m_swhois.c` (există dar NU e înregistrat în parser) -- **Status**: ❌ **NEFUNCȚIONAL** - Trebuie adăugat în parse.c +- **Fișier**: `m_swhois.c` ✅ IMPLEMENTAT +- **Status**: ✅ **FUNCȚIONAL prin protocol S2S** -#### **SVSINFO** - Services info ⚠️ PARȚIAL +#### **SVSINFO** - Services info ✅ FUNCȚIONAL (S2S) ``` -/SVSINFO +Protocol: :ServiceNum SO Params ``` - Informații despre servicii -- **Fișier**: `m_svsinfo.c` -- **Status**: ⚠️ **PROTOCOL INTERN** - Folosit între servere și servicii +- **Fișier**: `m_svsinfo.c` ✅ IMPLEMENTAT +- **Status**: ✅ **FUNCȚIONAL prin protocol S2S** -#### **SVSNOOP** - Services noop ⚠️ PARȚIAL +#### **SVSNOOP** - Services noop ✅ FUNCȚIONAL (S2S) ``` -/SVSNOOP +Protocol: :ServiceNum SO Params ``` - Services no-op command -- **Fișier**: `m_svsnoop.c` -- **Status**: ⚠️ **PROTOCOL INTERN** - Folosit între servere +- **Fișier**: `m_svsnoop.c` ✅ IMPLEMENTAT +- **Status**: ✅ **FUNCȚIONAL prin protocol S2S** + +--- + +### 📋 NOTĂ PENTRU ADMINI - SVS* Commands + +**De ce nu funcționează când le dau eu ca oper?** + +SVS* commands sunt implementate cu **ms_*** handlers (server message), **NU mo_*** (oper message)! + +```c +// În parse.c: +{ MSG_SVSJOIN, TOK_SVSJOIN, 0, MAXPARA, MFLG_SLOW, 0, NULL, + /* UNREG, CLIENT, SERVER, OPER, SERVICE */ + { m_ignore, m_ignore, ms_svsjoin, m_ignore, m_ignore }, +``` + +**Observă**: +- `m_ignore` pentru CLIENT și OPER → "Unknown command" +- `ms_svsjoin` DOAR pentru SERVER → Funcționează! + +**Cum se folosesc**: +1. Configurează servicii IRC (Anope, Atheme, sau X) +2. Serviciile trimit comenzi SVS* automat când e necesar +3. Exemplu: `/msg ChanServ SET #channel AUTOOP ON` +4. Când intri pe canal, ChanServ trimite automat SVSJOIN + SVSMODE + +**Vezi**: `SVS_COMMANDS_SUNT_IMPLEMENTATE.md` pentru detalii complete! + +--- ---