ircu2/COMENZI_SI_MODURI_COMPLETE.md

1601 lines
35 KiB
Markdown

# 📋 COMENZI ȘI MODURI IRC - UnderChat IRCd v2.0.1
**Data**: 23 Februarie 2026
**Base**: u2.10.12.19+UnderChat(2.0.1)
**Status**: ✅ DOCUMENTAȚIE COMPLETĂ
---
## 📚 CUPRINS
1. [Comenzi User (Disponibile tuturor)](#comenzi-user)
2. [Comenzi Oper (Doar pentru operatori)](#comenzi-oper)
3. [Comenzi Server-to-Server](#comenzi-server-to-server)
4. [Moduri User (+modes)](#moduri-user)
5. [Moduri Channel (#modes)](#moduri-channel)
6. [Comenzi VIITOARE (Pot fi adăugate)](#comenzi-viitoare)
7. [Features Speciale](#features-speciale)
---
## 🔷 COMENZI USER (Disponibile tuturor)
### Comenzi de Conectare
#### **PASS** - Set connection password
```
/PASS <password>
```
- Setează parola de conectare (înainte de USER/NICK)
- Necesară pentru servere protejate cu parolă
- **Fișier**: `m_pass.c`
#### **NICK** - Change nickname
```
/NICK <new_nickname>
```
- Schimbă nickname-ul curent
- Limită: 12 caractere (configurabil)
- **Fișier**: `m_nick.c`
#### **USER** - Set username
```
/USER <username> <hostname> <servername> :<realname>
```
- Setează username și realname la conectare
- Trimis automat de client
- **Fișier**: `m_user.c`
#### **QUIT** - Disconnect from server
```
/QUIT :<reason>
```
- Deconectare de la server cu motiv opțional
- **Fișier**: `m_quit.c`
---
### Comenzi de Comunicare
#### **PRIVMSG** - Send private message
```
/MSG <target> :<message>
/PRIVMSG <target> :<message>
```
- Trimite mesaj către user sau channel
- Target poate fi: nick, #channel, @#channel (ops only)
- **Fișier**: `m_privmsg.c`
#### **NOTICE** - Send notice
```
/NOTICE <target> :<message>
```
- Similar cu PRIVMSG dar nu generează răspuns automat
- Folosit pentru bots și servicii
- **Fișier**: `m_notice.c`
#### **CPRIVMSG** - Channel private message
```
/CPRIVMSG <nickname> <channel> :<message>
```
- Mesaj privat către user pe un channel specific
- **Fișier**: `m_cprivmsg.c`
---
### Comenzi Channel
#### **JOIN** - Join channel
```
/JOIN <#channel>[,<#channel2>,...] [<key>[,<key2>,...]]
/JOIN 0 (părăsește toate canalele)
```
- Intră pe canal(e)
- Suportă chei (parole) pentru canale +k
- **Fișier**: `m_join.c`
#### **PART** - Leave channel
```
/PART <#channel>[,<#channel2>,...] [:<reason>]
```
- Părăsește canal(e) cu motiv opțional
- **Fișier**: `m_part.c`
#### **TOPIC** - Set/view channel topic
```
/TOPIC <#channel> [:<new topic>]
```
- Fără parametru: Afișează topic-ul
- Cu parametru: Setează topic nou (dacă ai permisiuni)
- **Fișier**: `m_topic.c`
#### **NAMES** - List users on channel
```
/NAMES [<#channel>[,<#channel2>,...]]
```
- Listează userii de pe canal(e)
- Fără parametru: Toate canalele vizibile
- **Fișier**: `m_names.c`
#### **LIST** - List channels
```
/LIST [<#channel>] [<options>]
```
- Listează canale disponibile cu număr de useri și topic
- Opțiuni: >50 (peste 50 useri), <10 (sub 10 useri)
- **Fișier**: `m_list.c`
#### **INVITE** - Invite user to channel
```
/INVITE <nickname> <#channel>
```
- Invită user pe canal
- Bypass +i (invite-only) și +l (limit)
- **Fișier**: `m_invite.c`
#### **KICK** - Kick user from channel
```
/KICK <#channel> <nickname> [:<reason>]
```
- Scoate user de pe canal (necesită @op sau %halfop)
- **Fișier**: `m_kick.c`
#### **MODE** - Change channel/user modes
```
/MODE <#channel> [+/-modes] [parameters]
/MODE <nickname> [+/-modes]
```
- Schimbă moduri canal sau user
- Vezi secțiunile [Moduri User](#moduri-user) și [Moduri Channel](#moduri-channel)
- **Fișier**: `m_mode.c`
---
### Comenzi de Informații
#### **WHOIS** - Get user information
```
/WHOIS <nickname>[,<nickname2>,...]
/WHOIS <server> <nickname> (remote whois)
```
- Afișează informații despre user(i)
- Informații: realname, hostname, channels, oper status, idle time
- **Fișier**: `m_whois.c`
- **✨ Modificat în v2.0.1**: Suport stealth oper (hide_oper)
#### **WHOWAS** - Get information about disconnected user
```
/WHOWAS <nickname> [<count> [<server>]]
```
- Istoric pentru useri deconectați
- **Fișier**: `m_whowas.c`
#### **WHO** - List users matching criteria
```
/WHO <mask> [options]
```
- Caută useri după criterii
- Opțiuni: o (opers only), n (match nick), h (match host)
- **Fișier**: `m_who.c`
#### **USERHOST** - Get user@host info
```
/USERHOST <nickname> [<nickname2> ...]
```
- Returnează user@host pentru nickname(s)
- **Fișier**: `m_userhost.c`
#### **USERIP** - Get IP addresses
```
/USERIP <nickname> [<nickname2> ...]
```
- Returnează IP-uri pentru nickname(s)
- Doar pentru operi sau self
- **Fișier**: `m_userip.c`
#### **ISON** - Check if users are online
```
/ISON <nickname> [<nickname2> ...]
```
- Verifică dacă userii sunt online
- Folosit de clienti pentru buddy lists
- **Fișier**: `m_ison.c`
---
### Comenzi Server Info
#### **VERSION** - Get server version
```
/VERSION [<server>]
```
- Afișează versiunea serverului
- **Output**: `u2.10.12.19+UnderChat(2.0.1)`
- **Fișier**: `m_version.c`
#### **TIME** - Get server time
```
/TIME [<server>]
```
- Afișează ora serverului
- **Fișier**: `m_time.c`
#### **ADMIN** - Get server admin info
```
/ADMIN [<server>]
```
- Informații despre administratorul serverului
- **Fișier**: `m_admin.c`
#### **INFO** - Get server info
```
/INFO [<server>]
```
- Informații despre server, versiune, autori
- **Fișier**: `m_info.c`
#### **MOTD** - Get Message of the Day
```
/MOTD [<server>]
```
- Afișează MOTD (mesajul zilei)
- **Fișier**: `m_motd.c`
#### **RULES** - Get server rules
```
/RULES [<server>]
```
- Afișează regulile serverului
- **Fișier**: `m_rules.c`
#### **LUSERS** - Get network statistics
```
/LUSERS [<mask> [<server>]]
```
- Statistici: useri, operi, canale, servere
- **Fișier**: `m_lusers.c`
#### **LINKS** - List servers
```
/LINKS [[<remote server>] <mask>]
```
- Listează servere din network
- **Fișier**: `m_links.c`
#### **MAP** - Network map
```
/MAP
```
- Hartă vizuală a network-ului
- **Fișier**: `m_map.c`
---
### Comenzi Speciale
#### **AWAY** - Set away message
```
/AWAY [:<message>]
```
- Setează mesaj de absent
- Fără parametru: Elimină away
- **Fișier**: `m_away.c`
#### **SILENCE** - Ignore users
```
/SILENCE [+/-<mask>]
```
- Adaugă/șterge useri în/din ignore list
- **Fișier**: `m_silence.c`
#### **WATCH** - Notify when users connect
```
/WATCH [+/-<nickname>]
/WATCH l (list)
/WATCH s (stats)
```
- Notificare când useri specifici se conectează/deconectează
- **Fișier**: `m_watch.c`
#### **HELP** - Get help
```
/HELP [<topic>]
```
- Afișează help pentru comenzi
- **Fișier**: `m_help.c`
#### **PING** - Test connection
```
/PING <server>
```
- Test latență la server
- **Fișier**: `m_ping.c`
#### **CAP** - Client capabilities
```
/CAP LS
/CAP REQ :<capability>
/CAP END
```
- Negociază capabilități client-server
- **Fișier**: `m_cap.c`
#### **AUTHENTICATE** - SASL authentication
```
/AUTHENTICATE <data>
```
- Autentificare SASL
- **Fișier**: `m_authenticate.c`
#### **STARTTLS** - Start TLS encryption
```
/STARTTLS
```
- Inițiază conexiune TLS
- **Fișier**: `m_starttls.c`
---
## 🔶 COMENZI OPER (Doar pentru operatori)
### Comenzi de Administrare User
#### **KILL** - Disconnect user
```
/KILL <nickname> :<reason>
```
- Deconectează forțat un user
- **✨ Modificat în v2.0.1**: Stealth mode - arată `*.UnderChat.org` pentru operi cu `hide_oper = yes`
- **Fișier**: `m_kill.c`
- **Privilegiu**: PRIV_LOCAL_KILL sau PRIV_KILL
#### **GLINE** - Global ban
```
/GLINE [+/-]<user@host> [<duration> [:<reason>]]
/GLINE * +<user@host> <duration> :<reason> (propagate)
```
- Ban global pe toate serverele
- Durată: secondele sau 0 pentru permanent
- **Fișier**: `m_gline.c`
- **Privilegiu**: PRIV_LOCAL_GLINE sau PRIV_GLINE
#### **SHUN** - Silent ignore
```
/SHUN [+/-]<user@host> [<duration> [:<reason>]]
```
- User poate conecta dar toate comenzile sunt ignorate (silent)
- **Fișier**: `m_shun.c`
- **Privilegiu**: PRIV_LOCAL_SHUN sau PRIV_SHUN
#### **ZLINE** - IP ban
```
/ZLINE [+/-]<IP> [<duration> [:<reason>]]
```
- Ban pe adresă IP
- **Fișier**: `m_zline.c`
- **Privilegiu**: PRIV_LOCAL_ZLINE sau PRIV_ZLINE
#### **TEMPSHUN** - Temporary shun
```
/TEMPSHUN <nickname> [<duration>]
```
- Shun temporar pentru user specific
- **Fișier**: `m_tempshun.c`
- **Privilegiu**: PRIV_LOCAL_SHUN
---
### Comenzi Channel Management
#### **OPMODE** - Override channel modes
```
/OPMODE <#channel> [+/-modes] [parameters]
```
- Schimbă moduri canal fără fii op
- Bypass toate restricțiile
- **Fișier**: `m_opmode.c`
- **Privilegiu**: PRIV_LOCAL_OPMODE sau PRIV_OPMODE
#### **CLEARMODE** - Clear channel modes
```
/CLEARMODE <#channel> [<flags>]
```
- Șterge moduri de pe canal
- Flags: o (ops), v (voices), b (bans), k (key), l (limit)
- **Fișier**: `m_clearmode.c`
- **Privilegiu**: PRIV_LOCAL_OPMODE
---
### Comenzi Server Management
#### **REHASH** - Reload configuration
```
/REHASH
```
- Reîncarcă fișierul de configurare
- **Fișier**: `m_rehash.c`
- **Privilegiu**: PRIV_REHASH
#### **RESTART** - Restart server
```
/RESTART
```
- Restart complet al serverului
- **Fișier**: `m_restart.c`
- **Privilegiu**: PRIV_RESTART
#### **DIE** - Shutdown server
```
/DIE [<server>]
```
- Oprește serverul complet
- **Fișier**: `m_die.c`
- **Privilegiu**: PRIV_DIE
#### **CONNECT** - Connect to another server
```
/CONNECT <target server> [<port> [<remote server>]]
```
- Conectează server la alt server
- **Fișier**: `m_connect.c`
- **Privilegiu**: PRIV_LOCAL_OPMODE
#### **SQUIT** - Disconnect server
```
/SQUIT <server> :<reason>
```
- Deconectează un server din network
- **Fișier**: `m_squit.c`
- **Privilegiu**: PRIV_LOCAL_OPMODE
#### **JUPE** - Fake server (prevent connections)
```
/JUPE [+/-]<server> [:<reason>]
```
- Creează server "fake" pentru a preveni conectări
- **Fișier**: `m_jupe.c`
- **Privilegiu**: PRIV_LOCAL_JUPE sau PRIV_JUPE
---
### Comenzi de Monitorizare
#### **STATS** - Server statistics
```
/STATS <type> [<server>]
```
Tipuri disponibile:
- **c**: Connect blocks (server links)
- **g**: G-lines (global bans)
- **h**: Hub/Leaf configuration
- **i**: I-lines (client auth)
- **k**: K-lines (local bans)
- **l**: Connection info și stats
- **m**: Command usage statistics
- **o**: Operator blocks
- **p**: Port listeners
- **r**: Resource usage
- **s**: Service bans (shuns)
- **u**: Server uptime
- **v**: Version info detaliată
- **w**: Who was statistics
- **z**: Z-lines (IP bans)
- **f**: Features (F-lines)
- **t**: Timing statistics
- **T**: MOTD/RULES files
- **U**: Uptime și stats
- **?**: Help pentru stats
**Fișier**: `m_stats.c`
**Privilegiu**: Varies by type
#### **TRACE** - Trace connections
```
/TRACE [<target>]
```
- Afișează traceroute la server/user
- **Fișier**: `m_trace.c`
- **Privilegiu**: PRIV_SEE_OPERS (pentru info completă)
#### **CHECK** - Check user/channel/server
```
/CHECK <nickname|#channel|server>
```
- Informații detaliate despre target
- **Fișier**: `m_check.c`
- **Privilegiu**: PRIV_SEE_CHAN
#### **IRCOPS** - List IRC operators
```
/IRCOPS [<server>]
```
- Listează toți operatorii online
- **Fișier**: `m_ircops.c`
---
### Comenzi de Configurare
#### **SET** - Change runtime settings
```
/SET <option> <value>
```
- Modifică setări în runtime
- **Fișier**: `m_set.c`
- **Privilegiu**: PRIV_SET
#### **GET** - Get runtime settings
```
/GET <option>
```
- Afișează setări curente
- **Fișier**: `m_get.c`
#### **RESET** - Reset settings
```
/RESET <option>
```
- Resetează setări la valori default
- **Fișier**: `m_reset.c`
- **Privilegiu**: PRIV_SET
---
### Comenzi Speciale Oper
#### **WALLOPS** - Send to all operators
```
/WALLOPS :<message>
```
- Mesaj către toți operatorii cu +w
- **Fișier**: `m_wallops.c`
- **Privilegiu**: PRIV_WALLOPS
#### **WALLUSERS** - Send to all users
```
/WALLUSERS :<message>
```
- Mesaj către toți userii conectați
- **Fișier**: `m_wallusers.c`
- **Privilegiu**: PRIV_WALLOPS
#### **WALLCHOPS** - Send to channel ops
```
/WALLCHOPS <#channel> :<message>
```
- Mesaj către toți ops de pe canal
- **Fișier**: `m_wallchops.c`
#### **WALLHOPS** - Send to channel halfops
```
/WALLHOPS <#channel> :<message>
```
- Mesaj către toți halfops de pe canal
- **Fișier**: `m_wallhops.c`
#### **WALLVOICES** - Send to voiced users
```
/WALLVOICES <#channel> :<message>
```
- Mesaj către toți userii cu voice
- **Fișier**: `m_wallvoices.c`
---
### Comenzi Services
**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 ✅ FUNCȚIONAL (S2S)
```
Protocol: :ServiceNum SJ TargetNum #channel
```
- Forțează user intre pe canal
- **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 ✅ FUNCȚIONAL (S2S)
```
Protocol: :ServiceNum SP TargetNum #channel
```
- Forțează user părăsească canalul
- **Fișier**: `m_svspart.c` IMPLEMENTAT
- **Status**: **FUNCȚIONAL prin protocol S2S**
#### **SVSNICK** - Force nick change ✅ FUNCȚIONAL (S2S)
```
Protocol: :ServiceNum SN OldNick NewNick
```
- Forțează schimbare de nickname
- **Fișier**: `m_svsnick.c` IMPLEMENTAT
- **Status**: **FUNCȚIONAL prin protocol S2S**
#### **SVSMODE** - Force mode change ✅ FUNCȚIONAL (S2S)
```
Protocol: :ServiceNum SM Target +modes
```
- Forțează schimbare moduri user/canal
- **Fișier**: `m_svsmode.c` IMPLEMENTAT
- **Status**: **FUNCȚIONAL prin protocol S2S**
#### **SVSIDENT** - Set ident ✅ FUNCȚIONAL (S2S)
```
Protocol: :ServiceNum SI Nick Ident
```
- Setează ident pentru user
- **Fișier**: `m_svsident.c` IMPLEMENTAT
- **Status**: **FUNCȚIONAL prin protocol S2S**
#### **SVSQUIT** - Force user quit ✅ FUNCȚIONAL (S2S)
```
Protocol: :ServiceNum SQ Nick :Reason
```
- Forțează user se deconecteze
- **Fișier**: `m_svsquit.c` IMPLEMENTAT
- **Status**: **FUNCȚIONAL prin protocol S2S**
#### **SWHOIS** - Set special whois line ✅ FUNCȚIONAL (S2S)
```
Protocol: :ServiceNum SW Nick :Text
```
- Setează linie specială în WHOIS
- **Fișier**: `m_swhois.c` IMPLEMENTAT
- **Status**: **FUNCȚIONAL prin protocol S2S**
#### **SVSINFO** - Services info ✅ FUNCȚIONAL (S2S)
```
Protocol: :ServiceNum SO Params
```
- Informații despre servicii
- **Fișier**: `m_svsinfo.c` IMPLEMENTAT
- **Status**: **FUNCȚIONAL prin protocol S2S**
#### **SVSNOOP** - Services noop ✅ FUNCȚIONAL (S2S)
```
Protocol: :ServiceNum SO Params
```
- Services no-op command
- **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!
---
---
### Comenzi Administrative (FUNCȚIONALE)
#### **SETHOST** - Set virtual host ✅ FUNCȚIONEAZĂ
```
/SETHOST <new_host>
```
- Schimbă hostname-ul virtual
- **Fișier**: `m_sethost.c`
- **Privilegiu**: PRIV_FREEFORM
- **Status**: **FUNCȚIONAL**
---
### Comenzi de Debug
#### **DEFAULTS** - Show compiled defaults
```
/DEFAULTS
```
- Afișează setările compilate default
- **Fișier**: `m_defaults.c`
#### **PRIVS** - Show privileges
```
/PRIVS [<nickname>]
```
- Afișează privilegiile operului
- **Fișier**: `m_privs.c`
#### **ISNEF** - Check Nefarious features
```
/ISNEF
```
- Verifică features Nefarious disponibile
- **Fișier**: `m_isnef.c`
#### **UPING** - UDP ping test
```
/UPING <server> [<port>]
```
- Test UDP ping către server
- **Fișier**: `m_uping.c`
- **Privilegiu**: PRIV_LOCAL_OPMODE
#### **RPING** - Remote ping test
```
/RPING <server1> <server2>
```
- Test ping între două servere
- **Fișier**: `m_rping.c`
---
## 🔷 COMENZI SERVER-TO-SERVER
Acestea sunt comenzi interne folosite între servere în protocol:
- **SERVER**: Server introduction
- **BURST**: Channel/user burst la link
- **ENDBURST**: Finish burst
- **CREATE**: Channel creation sync
- **DESTRUCT**: Channel destruction
- **ACCOUNT**: User account sync (services)
- **FAKE**: Fake direction message
- **PROTO**: Protocol negotiation
- **PROTOCTL**: Protocol control
- **XQUERY**: Cross-server query
- **XREPLY**: Cross-server reply
- **ASLL**: ASL lookup
- **PASS**: Server password
- **ERROR**: Error message
- **DESYNCH**: Desynch notification
- **MARK**: Channel/user mark
- **CLOSE**: Close connections
- **SVSINFO**: Services info
- **SVSNOOP**: Services noop
- **FINGERPRINT**: SSL fingerprint
**Note**: Aceste comenzi NU sunt disponibile pentru useri!
---
## 👤 MODURI USER (+modes)
### Moduri Disponibile
#### **+i** - Invisible
- User invizibil în /WHO (doar pe canale comune)
- Setat automat de majoritatea clienților
#### **+w** - Wallops
- Primește mesaje WALLOPS de la operi
- Recomandat pentru staff
#### **+o** - IRC Operator
- User e operator IRC
- Setat automat la /OPER
- NU poate fi setat manual
#### **+O** - Local Operator
- Operator local (nu global)
- Privilegii limitate la serverul curent
#### **+s** - Server Notices
- Primește server notices (snomask)
- Format: +s +<snomask>
#### **+d** - Deaf
- Nu primește mesaje de canal
- Useful pentru bots care nu procesează mesaje
#### **+k** - Service
- User e un service bot (protecție specială)
- Setat doar de servicii
#### **+g** - Caller ID / Ignore
- Doar userii din accept list pot trimite MSG
- Anti-spam protection
#### **+n** - NoChan
- Ascunde canalele în /WHOIS
- Doar pentru operi sau useri special
#### **+x** - Hidden host
- Activează host masking (cloaking)
- Format: user.users.network.org
#### **+h** - Hide oper
- **✨ NOU în v2.0.1**: Ascunde status oper din /WHOIS
- Doar pentru operi cu `hide_oper = yes` în config
- **Stealth mode!**
#### **+r** - Registered
- User e autentificat la servicii
- Setat automat de servicii (X, NickServ)
#### **+R** - Registered only
- Doar useri autentificați pot trimite MSG
- Anti-spam de la useri neautentificați
#### **+I** - Invisible joins
- Join-urile pe canale nu sunt anunțate
- Pentru staff investigations
---
## 📺 MODURI CHANNEL (#modes)
### Moduri de Acces
#### **+o** - Channel Operator (Op)
```
/MODE #channel +o <nickname>
```
- Control complet asupra canalului
- Poate da kick, ban, schimba topic, modes
#### **+h** - Halfop
```
/MODE #channel +h <nickname>
```
- Operator parțial
- Poate da kick, voice, dar NU ban sau modes
#### **+v** - Voice
```
/MODE #channel +v <nickname>
```
- Poate vorbi pe canal +m (moderated)
---
### Moduri de Restricții
#### **+i** - Invite only
```
/MODE #channel +i
```
- Doar useri invitați pot intra
- Bypass cu /INVITE
#### **+k** - Key (Password)
```
/MODE #channel +k <password>
```
- Necesită parolă pentru /JOIN
- `/JOIN #channel password`
#### **+l** - User limit
```
/MODE #channel +l <number>
```
- Limită maximă de useri
- Bypass cu /INVITE
#### **+m** - Moderated
```
/MODE #channel +m
```
- Doar ops, halfops, și voiced pot vorbi
#### **+n** - No external messages
```
/MODE #channel +n
```
- Doar userii de pe canal pot trimite mesaje
- Default pe majoritatea canalelor
#### **+t** - Topic protection
```
/MODE #channel +t
```
- Doar ops pot schimba topic-ul
- Recomandat pentru canale publice
#### **+s** - Secret
```
/MODE #channel +s
```
- Canalul NU apare în /LIST sau /WHOIS
- Invizibil pentru useri externi
#### **+p** - Private
```
/MODE #channel +p
```
- Canalul apare ca "*" în /WHOIS
- Parțial ascuns
#### **+r** - Registered
```
/MODE #channel +r
```
- Canalul e înregistrat la servicii
- Setat automat de ChanServ
#### **+R** - Registered users only
```
/MODE #channel +R
```
- Doar useri autentificați (+r) pot intra
- Anti-spam și securitate
#### **+M** - Moderated (registered)
```
/MODE #channel +M
```
- Doar useri autentificați (+r) pot vorbi
- Combinat cu +m pentru securitate maximă
#### **+c** - No colors
```
/MODE #channel +c
```
- Blochează mesaje cu color codes
- Util pentru canale serioase/business
#### **+C** - No CTCPs
```
/MODE #channel +C
```
- Blochează CTCP-uri (VERSION, PING, etc.)
- Anti-flood protection
#### **+u** - Auditorium
```
/MODE #channel +u
```
- Userii normali văd doar ops în /NAMES
- Util pentru canale mari (announcements)
#### **+N** - No nick changes
```
/MODE #channel +N
```
- Nu se pot schimba nickname-uri pe canal
- Anti-confusion în discuții
#### **+Q** - No kicks
```
/MODE #channel +Q
```
- Halfops nu pot da kick
- Doar ops pot da kick
#### **+S** - Strip colors
```
/MODE #channel +S
```
- Șterge color codes din mesaje
- Similar cu +c dar NU blochează mesajul
#### **+T** - No notices
```
/MODE #channel +T
```
- Blochează NOTICE pe canal
- Doar PRIVMSG permis
#### **+z** - Secure only (SSL)
```
/MODE #channel +z
```
- Doar useri cu conexiune SSL pot intra
- Securitate maximă
---
### Moduri Liste (Bans/Exceptions)
#### **+b** - Ban
```
/MODE #channel +b <mask>
/MODE #channel +b (listă bans)
```
- Interzice accesul pentru mask
- Format: nick!user@host
#### **+e** - Exception (Ban exempt)
```
/MODE #channel +e <mask>
```
- Except de la bans
- Useful pentru admini sau trusted users
#### **+I** - Invite exception
```
/MODE #channel +I <mask>
```
- Bypass +i (invite-only)
- Auto-invite pentru mask
---
### Moduri Speciale
#### **+D** - Delayed join
```
/MODE #channel +D
```
- Userii fără voice apar ca invizibili până vorbesc
- Reduce join/part spam
#### **+d** - Delayed join user
- Setat automat pentru useri în canal +D
- Dispar la primul mesaj
#### **+A** - Admin only
```
/MODE #channel +A
```
- Doar admini IRC pot intra
- Canale speciale pentru staff
#### **+O** - Opers only
```
/MODE #channel +O
```
- Doar operatori IRC pot intra
- Canale pentru operi
---
## 🔮 COMENZI VIITOARE (Pot fi adăugate)
### Comenzi User
#### **KNOCK** - Request invite
```
/KNOCK #channel [:<reason>]
```
- Cere invitație pe canal +i
- Notifică ops-ii
- **Status**: NU IMPLEMENTAT (poate fi adăugat)
#### **ACCEPT** - Manage accept list
```
/ACCEPT +<nick> (add)
/ACCEPT -<nick> (remove)
/ACCEPT * (list)
```
- Gestionează lista pentru +g mode
- **Status**: PARȚIAL (există în alte IRCd-uri)
#### **VHOST** - Request virtual host
```
/VHOST <username> <password>
```
- Activează vhost pre-aprobat
- **Status**: NU IMPLEMENTAT (poate fi adăugat)
#### **DCCALLOW** - DCC whitelist
```
/DCCALLOW +<nick>
```
- Permite DCC de la user specific
- **Status**: NU IMPLEMENTAT
---
### Comenzi Oper
#### **KLINE** - Local ban
```
/KLINE [+/-]<user@host> [<duration> [:<reason>]]
```
- Ban local (doar serverul curent)
- Similar cu GLINE dar local
- **Status**: POATE FI ADĂUGAT
#### **DLINE** - IP line ban
```
/DLINE [+/-]<IP> [<duration> [:<reason>]]
```
- Ban pe IP direct
- Similar cu ZLINE
- **Status**: POATE FI ADĂUGAT
#### **SPAMFILTER** - Spam detection
```
/SPAMFILTER add <type> <action> <regex> :<reason>
```
- Filtrare automată spam
- Actions: kill, gline, block, warn
- **Status**: NU IMPLEMENTAT (complex)
---
### Comenzi Services (SVS*) - PRIORITATE ÎNALTĂ! ⚠️
⚠️ **CRITICAL**: Aceste comenzi **EXISTĂ în cod** (`m_svs*.c`) dar **NU sunt activate**!
Trebuie **înregistrate în parse.c** pentru a funcționa!
#### **SVSJOIN** - Force user to join channel
```
/SVSJOIN <nickname> <#channel>
```
- Forțează user să intre pe canal
- **Fișier**: `m_svsjoin.c` ✅ EXISTĂ
- **Status**: ❌ **NU E ÎNREGISTRAT ÎN PARSE.C**
- **Fix**: Adaugă în parse.c tabel MSG
#### **SVSPART** - Force user to part channel
```
/SVSPART <nickname> <#channel>
```
- Forțează user să părăsească canalul
- **Fișier**: `m_svspart.c` ✅ EXISTĂ
- **Status**: ❌ **NU E ÎNREGISTRAT ÎN PARSE.C**
#### **SVSNICK** - Force nick change
```
/SVSNICK <old_nick> <new_nick> [<timestamp>]
```
- Forțează schimbare de nickname
- **Fișier**: `m_svsnick.c` ✅ EXISTĂ
- **Status**: ❌ **NU E ÎNREGISTRAT ÎN PARSE.C**
#### **SVSMODE** - Force mode change
```
/SVSMODE <target> <modes>
```
- Forțează schimbare moduri user/canal
- **Fișier**: `m_svsmode.c` ✅ EXISTĂ
- **Status**: ❌ **NU E ÎNREGISTRAT ÎN PARSE.C**
#### **SVSIDENT** - Set ident
```
/SVSIDENT <nickname> <ident>
```
- Setează ident pentru user
- **Fișier**: `m_svsident.c` ✅ EXISTĂ
- **Status**: ❌ **NU E ÎNREGISTRAT ÎN PARSE.C**
#### **SVSQUIT** - Force user quit
```
/SVSQUIT <nickname> :<reason>
```
- Forțează user să se deconecteze
- **Fișier**: `m_svsquit.c` ✅ EXISTĂ
- **Status**: ❌ **NU E ÎNREGISTRAT ÎN PARSE.C**
#### **SWHOIS** - Set special whois line
```
/SWHOIS <nickname> :<text>
```
- Setează linie specială în WHOIS
- **Fișier**: `m_swhois.c` ✅ EXISTĂ
- **Status**: ❌ **NU E ÎNREGISTRAT ÎN PARSE.C**
**📝 NOTĂ**: Pentru a activa comenzile SVS*, trebuie:
1. Verificat că fișierele m_svs*.c sunt compilate în Makefile
2. Adăugat entries în parse.c (MSG table)
3. Recompilat IRCd
---
### Aliasuri Simple
#### **SAJOIN** - Force join (alias)
```
/SAJOIN <nickname> <#channel>
```
- Alias pentru SVSJOIN
- **Status**: DEPINDE DE SVSJOIN
#### **SAPART** - Force part (alias)
```
/SAPART <nickname> <#channel>
```
- Alias pentru SVSPART
- **Status**: DEPINDE DE SVSPART
#### **SANICK** - Force nick change (alias)
```
/SANICK <old_nick> <new_nick>
```
- Alias pentru SVSNICK
- **Status**: DEPINDE DE SVSNICK
#### **SAMODE** - Force mode (alias)
```
/SAMODE <target> <modes>
```
- Alias pentru SVSMODE
- **Status**: DEPINDE DE SVSMODE
---
### Moduri User Viitoare
#### **+B** - Bot
- Marchează user ca bot
- Apare în /WHOIS
- **Status**: POATE FI ADĂUGAT
#### **+W** - Whois notification
- Notificare când primești /WHOIS
- **Status**: EXISTĂ (whois_notice în config)
#### **+H** - Hide oper (alternative)
- Alternativă pentru +h
- **Status**: IMPLEMENTAT în v2.0.1 ca hide_oper
#### **+S** - Network service
- User e network service
- Protecție specială
- **Status**: EXISTĂ PARȚIAL (+k)
#### **+Z** - Secure connection
- User conectat prin SSL/TLS
- Automat detectat
- **Status**: POATE FI ADĂUGAT
---
### Moduri Channel Viitoare
#### **+f** - Flood protection
```
/MODE #channel +f [5j#i1,4k#K,3n#N]:10
```
- Protecție automată împotriva flood
- Actions: lock canal, ban user, etc.
- **Status**: NU IMPLEMENTAT (complex)
#### **+F** - Free nickchange
```
/MODE #channel +F
```
- Permite nick changes (opposite of +N)
- **Status**: DEFAULT (NU trebuie mode special)
#### **+G** - Filter bad words
```
/MODE #channel +G
```
- Filtrare cuvinte obscene
- Necesită badwords.conf
- **Status**: POATE FI ADĂUGAT
#### **+j** - Join throttle
```
/MODE #channel +j 5:10
```
- Limită 5 join-uri în 10 secunde
- Anti-flood bots
- **Status**: NU IMPLEMENTAT
#### **+J** - Kick rejoin delay
```
/MODE #channel +J 10
```
- User kicked nu poate re-join 10 secunde
- Anti-troll protection
- **Status**: POATE FI ADĂUGAT
#### **+K** - No knock
```
/MODE #channel +K
```
- Blochează /KNOCK (request invite)
- **Status**: DEPINDE DE /KNOCK
#### **+L** - Redirect on full
```
/MODE #channel +L #overflow
```
- Redirecționează useri când canalul e plin
- **Status**: POATE FI ADĂUGAT
#### **+P** - Permanent
```
/MODE #channel +P
```
- Canalul nu dispare când e gol
- **Status**: POATE FI ADĂUGAT
#### **+V** - No invites
```
/MODE #channel +V
```
- Blochează /INVITE pe canal
- **Status**: POATE FI ADĂUGAT
---
## ⚡ FEATURES SPECIALE
### Features Implementate
#### **WEBIRC** - Web gateway authentication
```
WEBIRC <password> <gateway> <hostname> <IP>
```
- Autentificare pentru web-to-IRC gateways
- Păstrează IP real al userului web
- **Config**: WebIRC blocks în ircd.conf
- **Documentație**: WEBIRC_EXPLAINED.md
#### **SASL** - SASL authentication
```
CAP REQ :sasl
AUTHENTICATE PLAIN
```
- Autentificare înainte de conectare
- Suport PLAIN, EXTERNAL
- **Fișiere**: m_authenticate.c, m_sasl.c
#### **Account Tracking** - Services integration
```
ACCOUNT <nickname> <account>
```
- Tracking autentificare la servicii
- Integration cu X/ChanServ
- **Fișier**: m_account.c
#### **GeoIP** - Location detection
- Detectare automată locație din IP
- Afișat în WHOIS (pentru operi)
- **Feature**: FEAT_GEOIP_ENABLE
- **Config**: F-line în ircd.conf
#### **Host Hiding** - IP cloaking
- Mascarea IP-ului cu hash
- Format: A1B2C3.4D5E6F.HASH.IP
- **Styles**: 3 stiluri disponibile
- **Feature**: FEAT_HOST_HIDING_STYLE
#### **SSL/TLS** - Secure connections
- Suport conexiuni criptate
- STARTTLS și SSL direct
- **Feature**: FEAT_SSL_CERTFILE
- **Port**: Configurat în Port blocks (ssl = yes)
#### **Extended Bans** - Advanced ban masks
```
/MODE #channel +b ~a:AccountName (ban by account)
/MODE #channel +b ~c:#channel (ban if on channel)
/MODE #channel +b ~r:realname (ban by realname)
```
- Ban-uri avansate pe diverse criterii
- **Feature**: FEAT_EXTBANS
- **Documentație**: doc/extendedbans.txt
#### **Halfops** - Half operators
- Status @op și +voice
- Privilegii medii
- **Feature**: FEAT_HALFOPS
#### **Exceptions** - Ban exceptions
- +e mode pentru except de la bans
- **Feature**: FEAT_EXCEPTS
---
### Features ce pot fi Adăugate
#### **Cloaking Advanced** - Diverse algoritme
- Multiple hash algorithms
- Custom cloaking patterns
- **Status**: POATE FI ÎMBUNĂTĂȚIT
#### **Flood Protection** - Anti-flood automat
- Detectare automată flood
- Rate limiting per user/channel
- **Status**: PARȚIAL (manual cu modes)
#### **Bad Words Filter** - Filtrare automată
- Lista cuvinte interzise
- Action: warn, kick, ban
- **Status**: NU IMPLEMENTAT
#### **Nick Protection** - Protecție nickname
- Auto-recover pentru nick-uri rezervate
- Integration services
- **Status**: DEPINDE DE SERVICII
#### **Channel Logs** - Logging canale
- Log automat canale specifice
- Pentru audit/moderare
- **Status**: NU IMPLEMENTAT
#### **Anti-Spam** - Detecție spam avansată
- Pattern matching
- Bayesian filtering
- **Status**: NU IMPLEMENTAT (complex)
---
## 📖 DOCUMENTAȚIE SUPLIMENTARĂ
### Fișiere Doc/ Disponibile
- **doc/modes.txt** - Explicații detaliate moduri
- **doc/extendedbans.txt** - Extended bans examples
- **doc/readme.features** - Lista features disponibile
- **doc/features.txt** - Configurare F-lines
- **doc/readme.who** - Advanced /WHO usage
- **doc/snomask.txt** - Server notice masks
- **doc/p10.txt** - Protocol P10 documentation
### Markdown Docs (pentru admini)
- **SECRET_STEALTH_MODE.md** - Stealth oper features (CONFIDENȚIAL!)
- **SOLUTIA_FINALA_FLAG_HIDEOPER.md** - Stealth WHOIS implementation
- **STEALTH_OPER_KILL_MESSAGES.md** - Stealth KILL messages
- **FIX_HIDE_CHANNELS_STEALTH.md** - Hide channels functionality
- **WEBIRC_EXPLAINED.md** - WebIRC configuration
- **SPOOFHOST_EXPLAINED.md** - Spoof host setup
- **PSEUDO_EXPLAINED.md** - Pseudo commands
- **SNOMASK_EXPLAINED.md** - Server notice masks
- **CRULE_EXPLAINED.md** - Connection rules
---
## 🎯 REZUMAT
### Statistici Comenzi
- **Comenzi User**: ~50 comenzi disponibile ✅
- **Comenzi Oper**: ~30 comenzi administrative ✅ **FUNCȚIONALE**
- **Comenzi SVS***: ~8 comenzi ❌ **NEFUNCȚIONALE** (există cod dar NU sunt activate)
- **Comenzi Server**: ~25 comenzi interne ✅
- **TOTAL Funcțional**: ~105 comenzi active
⚠️ **NOTĂ IMPORTANTĂ**: Comenzile SVS* (SVSJOIN, SVSPART, SVSNICK, etc.) **NU FUNCȚIONEAZĂ** în versiunea curentă!
Codul există în fișiere `m_svs*.c` dar comenzile **NU sunt înregistrate în parse.c**!
### Statistici Moduri
- **User Modes**: 15+ moduri disponibile ✅
- **Channel Modes**: 30+ moduri disponibile ✅
- **Extended Bans**: 5+ tipuri ✅
### Features Majore
- ✅ Stealth Oper Mode (v2.0.1)
- ✅ SASL Authentication
- ✅ SSL/TLS Support
- ✅ GeoIP Location
- ✅ Host Hiding/Cloaking
- ✅ Extended Bans
- ✅ WebIRC Gateway
- ✅ Services Integration
---
## 🚀 DEZVOLTARE VIITOARE
### Prioritate MAXIMĂ ⚠️ (Cod există, trebuie activat!)
1. **SVS* Commands** - Services commands
- SVSJOIN, SVSPART, SVSNICK, SVSMODE
- SVSIDENT, SVSQUIT, SWHOIS
- **Status**: Cod există în `m_svs*.c` dar NU e înregistrat în parse.c
- **Efort**: SCĂZUT (doar înregistrare în parser)
- **Impact**: MARE (comenzi esențiale pentru servicii)
- **Timp estimat**: 2-3 ore (verificare + testare)
### Prioritate ÎNALTĂ
1. **SPAMFILTER** - Anti-spam automat
2. **+f mode** - Flood protection channels
3. **Bad words filter** - Content filtering
4. **+j mode** - Join throttle
### Prioritate MEDIE
1. **KNOCK** - Request invite
2. **SA* aliases** - Simplified commands (SAJOIN, SAPART, etc.) [DEPIND DE SVS*]
3. **+G mode** - Bad words on channel
4. **+L mode** - Redirect overflow
### Prioritate SCĂZUTĂ
1. **Channel logs** - Audit functionality
2. **Advanced cloaking** - Multiple algorithms
3. **+B mode** - Bot identification
4. **DCCALLOW** - DCC whitelist
---
## ⚠️ ATENȚIE - Comenzi SVS* NEFUNCȚIONALE!
### Ce trebuie făcut pentru a activa SVS*:
1. **Verificare fișiere**:
```bash
ls -la ircd/m_svs*.c ircd/m_swhois.c
# Ar trebui să existe toate fișierele
```
2. **Verificare Makefile**:
```bash
grep "m_svs" ircd/Makefile.in
# Ar trebui să fie în lista de compilare
```
3. **Adăugare în parse.c**:
```c
// În ircd/parse.c, în tabelul de comenzi:
{ MSG_SVSJOIN, TOK_SVSJOIN, 0, MAXPARA, MFLG_SLOW, 0, {
m_ignore, m_ignore, ms_svsjoin, m_ignore, m_ignore
}},
// Similar pentru toate SVS* commands
```
4. **Recompilare**:
```bash
make clean && make
make install
```
### De ce nu funcționează ACUM:
- ✅ Codul **EXISTĂ** în `m_svs*.c` files
- ❌ Comenzile **NU SUNT ÎNREGISTRATE** în `parse.c`
- ❌ Parser-ul **NU ȘTIE** de aceste comenzi
- ❌ Când dai `/SVSJOIN`, primești: **"Unknown command"**
### Impact:
- **Servicii IRC** (X, ChanServ, NickServ) **NU POT** folosi SVS* pentru control users
- **Force join/part/nick** **NU FUNCȚIONEAZĂ**
- **Integration cu Anope/Atheme** **LIMITATĂ**
---
## 📞 PENTRU ADMINI
### Activare Features
Majoritatea features se activează în `ircd.conf` prin **F-lines**:
```conf
features {
"GEOIP_ENABLE" = "TRUE";
"HOST_HIDING_STYLE" = "3";
"HALFOPS" = "TRUE";
"EXTBANS" = "TRUE";
"EXCEPTS" = "TRUE";
# etc...
};
```
### Testing Comenzi
```bash
# În IRC ca oper:
/STATS m # Command usage
/STATS f # Features active
/PRIVS # Your privileges
```
---
**Creat de**: Senior Software Architect
**Data**: 23 Februarie 2026
**Versiune**: u2.10.12.19+UnderChat(2.0.1)
**Status**: ✅ DOCUMENTAȚIE COMPLETĂ
---
**📚 DOCUMENTAȚIE COMPLETĂ PENTRU 100+ COMENZI ȘI 45+ MODURI! 🎉**