Adaugat documentatie HTML cu toate comenzile serviciilor UnderChat (X, E, C, Stats, Scanner, Snoop) - in limba romana

This commit is contained in:
Underchat 2026-03-03 13:59:30 +02:00
parent 28496ecbf8
commit be8aba90a6
1 changed files with 829 additions and 0 deletions

829
doc/comenzi-underchat.html Normal file
View File

@ -0,0 +1,829 @@
<!DOCTYPE html>
<html lang="ro">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>UnderChat — Comenzi Servicii IRC</title>
<style>
* {
margin: 0;
padding: 0;
box-sizing: border-box;
}
body {
font-family: 'Segoe UI', Tahoma, Geneva, Verdana, sans-serif;
background: #0a0a1a;
color: #e0e0e0;
line-height: 1.6;
}
.header {
background: linear-gradient(135deg, #1a1a3e 0%, #0d0d2b 50%, #1a0a2e 100%);
padding: 40px 20px;
text-align: center;
border-bottom: 3px solid #6c3fb5;
position: relative;
overflow: hidden;
}
.header::before {
content: '';
position: absolute;
top: 0;
left: 0;
right: 0;
bottom: 0;
background: radial-gradient(ellipse at center, rgba(108, 63, 181, 0.15) 0%, transparent 70%);
}
.header h1 {
font-size: 2.5em;
color: #b388ff;
text-shadow: 0 0 20px rgba(179, 136, 255, 0.5);
position: relative;
}
.header p {
color: #9e9e9e;
font-size: 1.1em;
margin-top: 10px;
position: relative;
}
.container {
max-width: 1200px;
margin: 0 auto;
padding: 20px;
}
.nav {
background: #111133;
padding: 15px 20px;
border-radius: 10px;
margin: 20px 0;
display: flex;
flex-wrap: wrap;
gap: 10px;
justify-content: center;
border: 1px solid #2a2a5a;
}
.nav a {
color: #b388ff;
text-decoration: none;
padding: 8px 18px;
border-radius: 6px;
background: #1a1a4a;
transition: all 0.3s;
font-weight: 600;
font-size: 0.95em;
}
.nav a:hover {
background: #6c3fb5;
color: #fff;
transform: translateY(-2px);
box-shadow: 0 4px 15px rgba(108, 63, 181, 0.4);
}
.alert-box {
background: linear-gradient(135deg, #2d1a0a, #1a0a00);
border: 1px solid #ff6f00;
border-left: 4px solid #ff6f00;
border-radius: 8px;
padding: 20px;
margin: 20px 0;
}
.alert-box h3 {
color: #ffab40;
margin-bottom: 10px;
font-size: 1.2em;
}
.alert-box p {
color: #ffcc80;
}
.alert-box code {
background: #3d2000;
padding: 2px 8px;
border-radius: 4px;
color: #ffd180;
font-family: 'Consolas', monospace;
}
.alert-box pre {
background: #1a0a00;
padding: 12px;
border-radius: 6px;
margin-top: 10px;
overflow-x: auto;
color: #ffcc80;
font-family: 'Consolas', monospace;
font-size: 0.9em;
}
.service-section {
margin: 30px 0;
border-radius: 12px;
overflow: hidden;
border: 1px solid #2a2a5a;
}
.service-header {
padding: 20px 25px;
display: flex;
align-items: center;
gap: 15px;
}
.service-header .bot-name {
font-size: 2em;
font-weight: 800;
min-width: 60px;
text-align: center;
}
.service-header .service-info h2 {
font-size: 1.4em;
margin-bottom: 3px;
}
.service-header .service-info p {
font-size: 0.9em;
opacity: 0.8;
}
.service-header .service-usage {
margin-left: auto;
background: rgba(0,0,0,0.3);
padding: 8px 16px;
border-radius: 6px;
font-family: 'Consolas', monospace;
font-size: 0.9em;
}
/* Culori per serviciu */
#cservice .service-header { background: linear-gradient(135deg, #1a3a1a, #0a1a0a); }
#cservice .service-header .bot-name { color: #69f0ae; }
#cservice .service-header h2 { color: #69f0ae; }
#cservice .cmd-category { border-left-color: #69f0ae; }
#cservice .cmd-category h3 { color: #69f0ae; }
#cservice table tr:hover { background: rgba(105, 240, 174, 0.05); }
#dronescan .service-header { background: linear-gradient(135deg, #3a1a1a, #1a0a0a); }
#dronescan .service-header .bot-name { color: #ff8a80; }
#dronescan .service-header h2 { color: #ff8a80; }
#dronescan .cmd-category { border-left-color: #ff8a80; }
#dronescan .cmd-category h3 { color: #ff8a80; }
#dronescan table tr:hover { background: rgba(255, 138, 128, 0.05); }
#openchanfix .service-header { background: linear-gradient(135deg, #1a1a3a, #0a0a1a); }
#openchanfix .service-header .bot-name { color: #82b1ff; }
#openchanfix .service-header h2 { color: #82b1ff; }
#openchanfix .cmd-category { border-left-color: #82b1ff; }
#openchanfix .cmd-category h3 { color: #82b1ff; }
#openchanfix table tr:hover { background: rgba(130, 177, 255, 0.05); }
#stats .service-header { background: linear-gradient(135deg, #3a3a1a, #1a1a0a); }
#stats .service-header .bot-name { color: #fff176; }
#stats .service-header h2 { color: #fff176; }
#stats .cmd-category { border-left-color: #fff176; }
#stats .cmd-category h3 { color: #fff176; }
#stats table tr:hover { background: rgba(255, 241, 118, 0.05); }
#scanner .service-header { background: linear-gradient(135deg, #1a3a3a, #0a1a1a); }
#scanner .service-header .bot-name { color: #80cbc4; }
#scanner .service-header h2 { color: #80cbc4; }
#snoop .service-header { background: linear-gradient(135deg, #3a1a3a, #1a0a1a); }
#snoop .service-header .bot-name { color: #ea80fc; }
#snoop .service-header h2 { color: #ea80fc; }
#snoop .cmd-category { border-left-color: #ea80fc; }
#snoop .cmd-category h3 { color: #ea80fc; }
#snoop table tr:hover { background: rgba(234, 128, 252, 0.05); }
.cmd-category {
margin: 0;
padding: 15px 25px;
border-left: 3px solid;
background: #0d0d22;
}
.cmd-category h3 {
font-size: 1.1em;
margin-bottom: 10px;
text-transform: uppercase;
letter-spacing: 1px;
font-size: 0.9em;
}
table {
width: 100%;
border-collapse: collapse;
}
table th {
text-align: left;
padding: 10px 12px;
background: #0a0a18;
color: #9e9e9e;
font-size: 0.8em;
text-transform: uppercase;
letter-spacing: 1px;
}
table td {
padding: 10px 12px;
border-bottom: 1px solid #1a1a3a;
vertical-align: top;
}
table td:first-child {
font-family: 'Consolas', monospace;
font-weight: 700;
white-space: nowrap;
color: #fff;
font-size: 0.95em;
}
table td:nth-child(2) {
font-family: 'Consolas', monospace;
color: #b0bec5;
font-size: 0.85em;
}
table td:nth-child(3) {
color: #bdbdbd;
font-size: 0.9em;
}
table td:nth-child(4) {
color: #9e9e9e;
font-size: 0.85em;
text-align: center;
white-space: nowrap;
}
.badge {
display: inline-block;
padding: 2px 8px;
border-radius: 4px;
font-size: 0.75em;
font-weight: 700;
text-transform: uppercase;
}
.badge-admin { background: #b71c1c; color: #ffcdd2; }
.badge-oper { background: #e65100; color: #ffe0b2; }
.badge-user { background: #1b5e20; color: #c8e6c9; }
.badge-all { background: #1a237e; color: #c5cae9; }
.badge-owner { background: #4a148c; color: #e1bee7; }
.badge-logged { background: #006064; color: #b2ebf2; }
.note {
background: #111133;
border: 1px solid #2a2a5a;
border-radius: 8px;
padding: 15px 20px;
margin: 15px 25px;
font-size: 0.9em;
}
.note strong { color: #b388ff; }
.note code {
background: #1a1a4a;
padding: 1px 6px;
border-radius: 3px;
font-family: 'Consolas', monospace;
color: #ce93d8;
}
.separator {
height: 1px;
background: #1a1a3a;
}
.footer {
text-align: center;
padding: 30px;
color: #616161;
font-size: 0.85em;
border-top: 1px solid #1a1a3a;
margin-top: 40px;
}
.footer a { color: #b388ff; text-decoration: none; }
@media (max-width: 768px) {
.service-header { flex-direction: column; text-align: center; }
.service-header .service-usage { margin-left: 0; }
table td:nth-child(2) { display: none; }
.nav { flex-direction: column; }
.header h1 { font-size: 1.8em; }
}
</style>
</head>
<body>
<div class="header">
<h1>🌐 UnderChat — Comenzi Servicii IRC</h1>
<p>Documentație completă pentru toate serviciile disponibile pe rețeaua UnderChat</p>
<p style="margin-top:5px; font-size:0.85em; color:#757575;">Generat automat din codul sursă GNUWorld — Versiunea 2.1.6 — Martie 2026</p>
</div>
<div class="container">
<!-- Navigare -->
<div class="nav">
<a href="#cservice">🟢 X — CService</a>
<a href="#dronescan">🔴 E — DroneScan</a>
<a href="#openchanfix">🔵 C — OpenChanFix</a>
<a href="#stats">🟡 Stats</a>
<a href="#scanner">🟠 Scanner</a>
<a href="#snoop">🟣 Snoop</a>
</div>
<!-- ======================== ALERTA DRONESCAN ======================== -->
<div class="alert-box" id="nota-dronescan">
<h3>⚠️ Notă importantă: DroneScan (E) — „No such user"</h3>
<p>
DroneScan are <strong>propria bază de date</strong> (<code>dronescan</code>), complet separată de CService (<code>cservice</code>).
Dacă primești eroarea <code>No such user Raducu</code>, înseamnă că utilizatorul <strong>nu există în tabela <code>users</code>
din baza de date <code>dronescan</code></strong>. De asemenea, <strong>trebuie să fii IRC Operator</strong> (<code>/oper</code>) ca să poți folosi comenzile lui E.
</p>
<p style="margin-top:10px;"><strong>Soluție — adaugă utilizatorul manual în PostgreSQL:</strong></p>
<pre>psql -h 10.1.100.252 -U gnuworld -d dronescan -c \
"INSERT INTO users (user_name, created, last_seen, last_updated, last_updated_by, flags, access) \
VALUES ('Raducu', extract(epoch from now())::int4, 0, extract(epoch from now())::int4, 'admin', 0, 1000);"</pre>
<p style="margin-top:10px; font-size:0.85em;">
După inserare, așteaptă <code>rcInterval</code> secunde (implicit 300s / 5 minute) sau repornește GNUWorld pentru ca E să reîmprospăteze cache-ul de utilizatori.
</p>
</div>
<!-- ======================== CSERVICE (X) ======================== -->
<div class="service-section" id="cservice">
<div class="service-header">
<div class="bot-name">X</div>
<div class="service-info">
<h2>CService — Serviciul de Canale</h2>
<p>Gestionarea canalelor, utilizatorilor, banurilor, suspendărilor și accesului</p>
</div>
<div class="service-usage">/msg X &lt;comandă&gt;</div>
</div>
<div class="cmd-category">
<h3>📋 Comenzi Generale (nivel 0 — toți utilizatorii)</h3>
<table>
<tr><th>Comandă</th><th>Sintaxă</th><th>Descriere</th><th>Nivel</th></tr>
<tr><td>SHOWCOMMANDS</td><td>[#canal]</td><td>Afișează toate comenzile disponibile (pe un canal dacă este specificat)</td><td><span class="badge badge-all">Toți</span></td></tr>
<tr><td>LOGIN</td><td>&lt;utilizator&gt; &lt;parolă&gt;</td><td>Autentificare la CService cu contul tău</td><td><span class="badge badge-all">Toți</span></td></tr>
<tr><td>ACCESS</td><td>&lt;#canal&gt; &lt;utilizator&gt; [-min n] [-max n] [-op] [-voice] [-none] [-modif]</td><td>Verifică nivelul de acces al unui utilizator pe un canal</td><td><span class="badge badge-all">Toți</span></td></tr>
<tr><td>CHANINFO / INFO</td><td>&lt;#canal&gt; sau &lt;utilizator&gt;</td><td>Afișează informații despre un canal sau utilizator</td><td><span class="badge badge-all">Toți</span></td></tr>
<tr><td>ISREG</td><td>&lt;#canal&gt;</td><td>Verifică dacă un canal este înregistrat</td><td><span class="badge badge-all">Toți</span></td></tr>
<tr><td>VERIFY</td><td>&lt;nick&gt;</td><td>Verifică dacă un utilizator este autentificat și cu ce cont</td><td><span class="badge badge-all">Toți</span></td></tr>
<tr><td>MOTD</td><td>(fără parametri)</td><td>Afișează Mesajul Zilei (Message of the Day)</td><td><span class="badge badge-all">Toți</span></td></tr>
<tr><td>HELP</td><td>[comandă]</td><td>Ajutor despre comenzi; fără parametru — lista completă</td><td><span class="badge badge-all">Toți</span></td></tr>
<tr><td>RANDOM</td><td>(fără parametri)</td><td>Generează o parolă aleatorie</td><td><span class="badge badge-all">Toți</span></td></tr>
<tr><td>SHOWIGNORE</td><td>(fără parametri)</td><td>Afișează lista curentă de ignorări</td><td><span class="badge badge-all">Toți</span></td></tr>
<tr><td>SUPPORT</td><td>&lt;#canal&gt; &lt;YES|NO&gt;</td><td>Susține sau refuză susținerea unei aplicații de canal</td><td><span class="badge badge-all">Toți</span></td></tr>
<tr><td>NOTE / NOTES</td><td>send &lt;utilizator&gt; &lt;mesaj&gt; | read all | erase &lt;all|id&gt;</td><td>Trimite, citește sau șterge note (mesaje private)</td><td><span class="badge badge-all">Toți</span></td></tr>
<tr><td>OBJECT</td><td>&lt;#canal&gt; &lt;obiecție&gt;</td><td>Trimite o obiecție la o aplicație de canal</td><td><span class="badge badge-all">Toți</span></td></tr>
<tr><td>CANCEL</td><td>&lt;#canal&gt; &lt;YES|NO&gt;</td><td>Anulează o aplicație de canal (de către cel care a aplicat)</td><td><span class="badge badge-all">Toți</span></td></tr>
<tr><td>HELLO</td><td>&lt;utilizator&gt; &lt;email&gt; &lt;email&gt; &lt;1-3&gt; &lt;răspuns&gt;</td><td>Înregistrează un cont nou (dacă ALLOW_HELLO este activat la compilare)</td><td><span class="badge badge-all">Toți</span></td></tr>
</table>
</div>
<div class="separator"></div>
<div class="cmd-category">
<h3>🔧 Comenzi de Canal (necesită acces pe canal)</h3>
<table>
<tr><th>Comandă</th><th>Sintaxă</th><th>Descriere</th><th>Nivel</th></tr>
<tr><td>OP</td><td>&lt;#canal&gt; [nick] [nick] ...</td><td>Dă operator (@) unuia sau mai multor utilizatori</td><td><span class="badge badge-user">100+</span></td></tr>
<tr><td>DEOP</td><td>&lt;#canal&gt; [nick] [nick] ...</td><td>Scoate operator (@) de la utilizatori</td><td><span class="badge badge-user">100+</span></td></tr>
<tr><td>HALFOP</td><td>&lt;#canal&gt; [nick] [nick] ...</td><td>Dă half-operator (%) unuia sau mai multor utilizatori</td><td><span class="badge badge-user">50+</span></td></tr>
<tr><td>DEHALFOP</td><td>&lt;#canal&gt; [nick] [nick] ...</td><td>Scoate half-operator (%) de la utilizatori</td><td><span class="badge badge-user">50+</span></td></tr>
<tr><td>VOICE</td><td>&lt;#canal&gt; [nick] [nick] ...</td><td>Dă voice (+v) unuia sau mai multor utilizatori</td><td><span class="badge badge-user">25+</span></td></tr>
<tr><td>DEVOICE</td><td>&lt;#canal&gt; [nick] [nick] ...</td><td>Scoate voice de la utilizatori</td><td><span class="badge badge-user">25+</span></td></tr>
<tr><td>ADDUSER</td><td>&lt;#canal&gt; &lt;utilizator&gt; &lt;acces&gt;</td><td>Adaugă un utilizator pe lista de acces a canalului</td><td><span class="badge badge-user">400+</span></td></tr>
<tr><td>REMUSER</td><td>&lt;#canal&gt; &lt;utilizator&gt;</td><td>Șterge un utilizator de pe lista de acces</td><td><span class="badge badge-user">400+</span></td></tr>
<tr><td>MODINFO</td><td>&lt;#canal&gt; ACCESS &lt;user&gt; &lt;nivel&gt; | AUTOMODE &lt;user&gt; &lt;NONE|OP|VOICE&gt; | INVITE &lt;ON|OFF&gt;</td><td>Modifică acces, automode sau setarea de invite a unui utilizator</td><td><span class="badge badge-user">400+</span></td></tr>
<tr><td>SET</td><td>[#canal] &lt;variabilă&gt; &lt;valoare&gt; | INVISIBLE &lt;ON|OFF&gt; | LANG &lt;limbă&gt; | MAXLOGINS &lt;nr&gt;</td><td>Setează opțiuni de canal (AUTOTOPIC, FLOATLIM, etc.) sau setări personale</td><td><span class="badge badge-user">Variabil</span></td></tr>
<tr><td>INVITE</td><td>&lt;#canal&gt; [#canal] ...</td><td>Botul te invită pe canalul/canalele specificate</td><td><span class="badge badge-user">1+</span></td></tr>
<tr><td>TOPIC</td><td>&lt;#canal&gt; &lt;topic&gt;</td><td>Setează topicul canalului</td><td><span class="badge badge-user">Variabil</span></td></tr>
<tr><td>BANLIST</td><td>&lt;#canal&gt;</td><td>Afișează lista de ban-uri a canalului</td><td><span class="badge badge-user">0+</span></td></tr>
<tr><td>KICK</td><td>&lt;#canal&gt; &lt;nick&gt; [motiv]</td><td>Dă kick unui utilizator de pe canal</td><td><span class="badge badge-user">100+</span></td></tr>
<tr><td>STATUS</td><td>&lt;#canal&gt;</td><td>Afișează starea curentă a canalului (setări, moduri, limite)</td><td><span class="badge badge-user">Variabil</span></td></tr>
<tr><td>SUSPEND</td><td>&lt;#canal&gt; &lt;utilizator&gt; [durată] [nivel] [motiv]</td><td>Suspendă un utilizator pe un canal (îi blochează accesul temporar)</td><td><span class="badge badge-user">100+</span></td></tr>
<tr><td>UNSUSPEND</td><td>&lt;#canal&gt; &lt;utilizator&gt; [motiv]</td><td>Ridică suspensia unui utilizator</td><td><span class="badge badge-user">100+</span></td></tr>
<tr><td>BAN</td><td>&lt;#canal&gt; &lt;nick|*!*user@*.host&gt; [durată] [nivel] [motiv]</td><td>Setează un ban pe canal</td><td><span class="badge badge-user">75+</span></td></tr>
<tr><td>UNBAN</td><td>&lt;#canal&gt; &lt;*!*user@*.host&gt;</td><td>Scoate un ban de pe canal</td><td><span class="badge badge-user">75+</span></td></tr>
<tr><td>LBANLIST</td><td>&lt;#canal&gt; &lt;mască_ban&gt;</td><td>Caută ban-uri care se potrivesc cu masca specificată</td><td><span class="badge badge-user">0+</span></td></tr>
<tr><td>NEWPASS</td><td>&lt;parolă_nouă | utilizator&gt;</td><td>Schimbă parola contului tău (sau resetează parola unui utilizator — admin)</td><td><span class="badge badge-user">Toți</span></td></tr>
<tr><td>JOIN</td><td>&lt;#canal&gt;</td><td>Forțează botul X să intre pe un canal</td><td><span class="badge badge-admin">Admin</span></td></tr>
<tr><td>PART</td><td>&lt;#canal&gt;</td><td>Forțează botul X să iasă de pe un canal</td><td><span class="badge badge-admin">Admin</span></td></tr>
<tr><td>CLEARMODE</td><td>&lt;#canal&gt;</td><td>Șterge toate modurile de pe canal (reset complet)</td><td><span class="badge badge-user">500+</span></td></tr>
<tr><td>SUSPENDME</td><td>&lt;parolă&gt;</td><td>Te auto-suspendezi (util dacă contul a fost compromis)</td><td><span class="badge badge-user">Toți</span></td></tr>
</table>
</div>
<div class="separator"></div>
<div class="cmd-category">
<h3>👮 Comenzi IRC Operator</h3>
<table>
<tr><th>Comandă</th><th>Sintaxă</th><th>Descriere</th><th>Nivel</th></tr>
<tr><td>OPERJOIN</td><td>&lt;#canal&gt;</td><td>Intră pe un canal ca oper (fără a avea acces CService)</td><td><span class="badge badge-oper">Oper</span></td></tr>
<tr><td>OPERPART</td><td>&lt;#canal&gt;</td><td>Ieși de pe canal ca oper</td><td><span class="badge badge-oper">Oper</span></td></tr>
</table>
</div>
<div class="separator"></div>
<div class="cmd-category">
<h3>🔒 Comenzi Administrative (nivel înalt — CService Admin)</h3>
<table>
<tr><th>Comandă</th><th>Sintaxă</th><th>Descriere</th><th>Nivel</th></tr>
<tr><td>WHITELIST</td><td>&lt;ADD|REM|VIEW&gt; &lt;IP&gt; [durată] [motiv]</td><td>Gestionează lista albă de IP-uri (exceptate de la flood/gline)</td><td><span class="badge badge-admin">Admin</span></td></tr>
<tr><td>SCAN</td><td>NICK|NICKNAME &lt;nick&gt;</td><td>Caută informații despre un nick (cui este înregistrat)</td><td><span class="badge badge-admin">Admin</span></td></tr>
<tr><td>SCANHOST</td><td>&lt;mască&gt; [-all]</td><td>Caută conturi după hostname/IP</td><td><span class="badge badge-admin">Admin</span></td></tr>
<tr><td>SCANUNAME</td><td>&lt;mască&gt; [-all]</td><td>Caută conturi după numele de utilizator</td><td><span class="badge badge-admin">Admin</span></td></tr>
<tr><td>SCANEMAIL</td><td>&lt;mască&gt; [-all]</td><td>Caută conturi după adresa de email</td><td><span class="badge badge-admin">Admin</span></td></tr>
<tr><td>REGISTER</td><td>&lt;#canal&gt;</td><td>Înregistrează un canal în baza de date</td><td><span class="badge badge-admin">Admin</span></td></tr>
<tr><td>REMOVEALL</td><td>&lt;#canal&gt;</td><td>Șterge toate intrările de acces de pe un canal</td><td><span class="badge badge-admin">Admin</span></td></tr>
<tr><td>PURGE</td><td>&lt;utilizator|#canal&gt; [-noop] &lt;motiv&gt;</td><td>Șterge (purge) un cont de utilizator sau un canal complet</td><td><span class="badge badge-admin">Admin</span></td></tr>
<tr><td>ACCEPT</td><td>&lt;#canal&gt; &lt;decizie&gt;</td><td>Acceptă o aplicație de canal aflată în așteptare</td><td><span class="badge badge-admin">Admin</span></td></tr>
<tr><td>REJECT</td><td>&lt;#canal&gt; &lt;decizie&gt;</td><td>Respinge o aplicație de canal</td><td><span class="badge badge-admin">Admin</span></td></tr>
<tr><td>RENAME</td><td>&lt;utilizator_vechi&gt; &lt;utilizator_nou&gt;</td><td>Redenumește un cont de utilizator</td><td><span class="badge badge-admin">Admin</span></td></tr>
<tr><td>FORCE</td><td>&lt;#canal&gt;</td><td>Forțează acces pe un canal (bypass protecții)</td><td><span class="badge badge-admin">Admin</span></td></tr>
<tr><td>UNFORCE</td><td>&lt;#canal&gt;</td><td>Scoate modul force de pe canal</td><td><span class="badge badge-admin">Admin</span></td></tr>
<tr><td>REMIGNORE</td><td>&lt;mască&gt;</td><td>Șterge o ignorare setată de bot</td><td><span class="badge badge-admin">Admin</span></td></tr>
<tr><td>SERVNOTICE</td><td>&lt;#canal&gt; &lt;text&gt;</td><td>Trimite o notificare de server pe un canal</td><td><span class="badge badge-admin">Admin</span></td></tr>
<tr><td>SAY / DO</td><td>&lt;#canal&gt; &lt;text&gt;</td><td>Botul X trimite un mesaj (SAY) sau acțiune (DO) pe un canal</td><td><span class="badge badge-admin">Admin</span></td></tr>
<tr><td>QUOTE</td><td>&lt;text&gt;</td><td>Trimite o comandă raw (brută) către server — <strong>FOARTE PERICULOS!</strong></td><td><span class="badge badge-owner">Admin*</span></td></tr>
<tr><td>REHASH</td><td>[translations|help|config|motd]</td><td>Reîncarcă traducerile, ajutorul, configurația sau MOTD-ul din baza de date</td><td><span class="badge badge-admin">Admin</span></td></tr>
<tr><td>STATS</td><td>(fără parametri)</td><td>Afișează statistici interne ale botului</td><td><span class="badge badge-admin">Admin</span></td></tr>
<tr><td>ADDCOMMENT</td><td>&lt;utilizator|#canal&gt; &lt;comentariu&gt;</td><td>Adaugă un comentariu la un cont sau canal</td><td><span class="badge badge-admin">Admin</span></td></tr>
<tr><td>SHUTDOWN</td><td>&lt;motiv&gt;</td><td>Oprește complet GNUWorld</td><td><span class="badge badge-owner">Admin*</span></td></tr>
</table>
</div>
</div>
<!-- ======================== DRONESCAN (E) ======================== -->
<div class="service-section" id="dronescan">
<div class="service-header">
<div class="bot-name">E</div>
<div class="service-info">
<h2>DroneScan — Scanner de Drone și Boți</h2>
<p>Detectare automată a drone-lor, flood-urilor la intrare și comportament anormal pe canale</p>
</div>
<div class="service-usage">/msg E &lt;comandă&gt;</div>
</div>
<div class="note">
<strong>⚠️ Cerințe:</strong> Trebuie să fii <strong>IRC Operator</strong> (<code>/oper</code>) ȘI să ai un cont în baza de date <code>dronescan</code>.
Conturile CService (X) <strong>NU</strong> sunt valabile pentru DroneScan. Baza de date este complet separată.
</div>
<div class="cmd-category">
<h3>📋 Comenzi Standard (acces 300+)</h3>
<table>
<tr><th>Comandă</th><th>Sintaxă</th><th>Descriere</th><th>Nivel</th></tr>
<tr><td>ACCESS</td><td>[utilizator]</td><td>Afișează nivelul de acces al tău sau al unui utilizator specificat</td><td><span class="badge badge-user">300+</span></td></tr>
<tr><td>CHECK</td><td>[#canal] [utilizator]</td><td>Verifică un canal sau utilizator pentru activitate suspectă de drone</td><td><span class="badge badge-user">300+</span></td></tr>
<tr><td>FAKE</td><td>[activate]</td><td>Gestionează clienți falși (honeypot) pentru detectarea dronelor</td><td><span class="badge badge-user">300+</span></td></tr>
<tr><td>LIST</td><td>&lt;active|fakeclients|joinflood|users&gt;</td><td>Listează canale active/suspecte, clienți falși, flood-uri la intrare sau utilizatori</td><td><span class="badge badge-user">300+</span></td></tr>
<tr><td>STATUS</td><td>(fără parametri)</td><td>Afișează starea curentă a botului (parametri configurați, statistici)</td><td><span class="badge badge-user">300+</span></td></tr>
</table>
</div>
<div class="separator"></div>
<div class="cmd-category">
<h3>🔑 Comenzi Speciale (fără cerință de acces în tabelă)</h3>
<table>
<tr><th>Comandă</th><th>Sintaxă</th><th>Descriere</th><th>Nivel</th></tr>
<tr><td>INVITE</td><td>(fără parametri)</td><td>Botul te invită pe canalul de consolă (#ds.console)</td><td><span class="badge badge-oper">Oper</span></td></tr>
<tr><td>STATS</td><td>(fără parametri)</td><td>Afișează margini, intervale, contoare de flood (CM/NM/CC, jcI/jcC, ncI/ncC)</td><td><span class="badge badge-oper">Oper</span></td></tr>
<tr><td>INFO</td><td>&lt;nick&gt;</td><td>Arată dacă un nick este „Normal" sau „Anormal"</td><td><span class="badge badge-oper">Oper</span></td></tr>
<tr><td>SET</td><td>&lt;opțiune&gt; &lt;valoare&gt;</td><td>Modifică setări în timp real (margini, cutoff-uri)</td><td><span class="badge badge-oper">Oper</span></td></tr>
<tr><td>RESET</td><td>(fără parametri)</td><td>Resetează stările și reverifică toate canalele</td><td><span class="badge badge-oper">Oper</span></td></tr>
</table>
</div>
<div class="separator"></div>
<div class="cmd-category">
<h3>🛠️ Comenzi Administrative (acces 750+)</h3>
<table>
<tr><th>Comandă</th><th>Sintaxă</th><th>Descriere</th><th>Nivel</th></tr>
<tr><td>ADDUSER</td><td>&lt;utilizator&gt; &lt;nivel_acces&gt;</td><td>Adaugă un utilizator nou în baza de date DroneScan</td><td><span class="badge badge-admin">750+</span></td></tr>
<tr><td>MODUSER</td><td>ACCESS &lt;utilizator&gt; &lt;nivel&gt;</td><td>Modifică nivelul de acces al unui utilizator existent</td><td><span class="badge badge-admin">750+</span></td></tr>
<tr><td>REMUSER</td><td>&lt;utilizator&gt;</td><td>Șterge un utilizator din baza de date DroneScan</td><td><span class="badge badge-admin">750+</span></td></tr>
<tr><td>ADDEXCEPTIONALCHANNEL</td><td>&lt;#canal&gt;</td><td>Adaugă un canal la lista de excepții (nu va mai fi scanat/raportat)</td><td><span class="badge badge-admin">750+</span></td></tr>
<tr><td>REMEXCEPTIONALCHANNEL</td><td>&lt;#canal&gt;</td><td>Scoate un canal de pe lista de excepții</td><td><span class="badge badge-admin">750+</span></td></tr>
<tr><td>RELOAD</td><td>(fără parametri)</td><td>Reîncarcă modulul DroneScan complet</td><td><span class="badge badge-admin">750+</span></td></tr>
</table>
</div>
<div class="separator"></div>
<div class="cmd-category">
<h3>🧪 Comenzi Dezvoltatori (acces 1000)</h3>
<table>
<tr><th>Comandă</th><th>Sintaxă</th><th>Descriere</th><th>Nivel</th></tr>
<tr><td>ANALYSE</td><td>&lt;#canal&gt;</td><td>Analizează detaliat un canal pentru drone/boți (entropie, scoruri)</td><td><span class="badge badge-owner">1000</span></td></tr>
<tr><td>QUOTE</td><td>&lt;text&gt;</td><td>Trimite o comandă raw către serverul IRC — <strong>FOARTE PERICULOS!</strong></td><td><span class="badge badge-owner">1000</span></td></tr>
</table>
</div>
</div>
<!-- ======================== OPENCHANFIX (C) ======================== -->
<div class="service-section" id="openchanfix">
<div class="service-header">
<div class="bot-name">C</div>
<div class="service-info">
<h2>OpenChanFix — Reparare Canale</h2>
<p>Reparare automată și manuală a canalelor preluate sau rămase fără operatori</p>
</div>
<div class="service-usage">/msg C &lt;comandă&gt;</div>
</div>
<div class="note">
<strong> Informații:</strong> OpenChanFix are propria bază de date (<code>chanfix</code>).
Monitorizează cine are operator pe canale și poate restaura operatorii legitimi dacă canalul este preluat.
Necesită IRC Oper pentru cele mai multe comenzi.
</div>
<div class="cmd-category">
<h3>👤 Comenzi Utilizator Normal (operatori de top ai canalului)</h3>
<table>
<tr><th>Comandă</th><th>Sintaxă</th><th>Descriere</th><th>Nivel</th></tr>
<tr><td>CANFIX</td><td>&lt;#canal&gt;</td><td>Listează operatorii care pot repara canalul fără ajutor de la un oper IRC</td><td><span class="badge badge-all">Toți</span></td></tr>
<tr><td>REQUESTOP</td><td>&lt;#canal&gt; [CONTACT]</td><td>Solicită repararea canalului; CONTACT notifică top 10 operatori</td><td><span class="badge badge-all">Toți</span></td></tr>
</table>
</div>
<div class="separator"></div>
<div class="cmd-category">
<h3>👮 Comenzi IRC Oper</h3>
<table>
<tr><th>Comandă</th><th>Sintaxă</th><th>Descriere</th><th>Nivel</th></tr>
<tr><td>HELP</td><td>[comandă]</td><td>Afișează ajutor despre comenzi; fără parametru — lista completă</td><td><span class="badge badge-oper">Oper</span></td></tr>
<tr><td>HISTORY</td><td>&lt;#canal&gt;</td><td>Arată istoricul reparărilor manuale pentru un canal</td><td><span class="badge badge-oper">Oper</span></td></tr>
<tr><td>INFO</td><td>&lt;#canal&gt;</td><td>Afișează notele, alertele și starea de blocare a canalului</td><td><span class="badge badge-oper">Oper</span></td></tr>
<tr><td>SCORE</td><td>&lt;#canal&gt; [cont|=nick]</td><td>Afișează scorurile de top; sau scorul unui utilizator specific</td><td><span class="badge badge-oper">Oper</span></td></tr>
<tr><td>CSCORE</td><td>&lt;#canal&gt;</td><td>La fel ca SCORE, dar în format compact</td><td><span class="badge badge-oper">Oper</span></td></tr>
<tr><td>STATUS</td><td>(fără parametri)</td><td>Arată uptime, prezență rețea, setări de fix/blocare</td><td><span class="badge badge-oper">Oper</span></td></tr>
<tr><td>CHECK</td><td>&lt;#canal&gt;</td><td>Afișează numărul de operatori și clienți totali dintr-un canal</td><td><span class="badge badge-logged">Logat</span></td></tr>
</table>
</div>
<div class="separator"></div>
<div class="cmd-category">
<h3>🔧 Comenzi Utilizatori Autentificați ChanFix</h3>
<table>
<tr><th>Comandă</th><th>Sintaxă</th><th>Descriere</th><th>Nivel</th></tr>
<tr><td>LISTHOSTS</td><td>[utilizator]</td><td>Listează măștile de gazdă ale tale sau ale unui utilizator</td><td><span class="badge badge-logged">Logat</span></td></tr>
<tr><td>USERSCORES</td><td>&lt;cont&gt;</td><td>Afișează toate scorurile unui cont pe toate canalele</td><td><span class="badge badge-logged">Logat</span></td></tr>
<tr><td>USET</td><td>&lt;NOTICE|LANG&gt; &lt;valoare&gt;</td><td>Setări cont: NOTICE (notificări vs PRIVMSG), LANG (limbă)</td><td><span class="badge badge-logged">Logat</span></td></tr>
<tr><td>WHOIS</td><td>&lt;utilizator&gt;</td><td>Informații detaliate despre un cont ChanFix</td><td><span class="badge badge-logged">Logat</span></td></tr>
</table>
</div>
<div class="separator"></div>
<div class="cmd-category">
<h3>👥 Gestionare Utilizatori (flag u — User Manager, sau flag a — Server Admin)</h3>
<table>
<tr><th>Comandă</th><th>Sintaxă</th><th>Descriere</th><th>Nivel</th></tr>
<tr><td>ADDUSER</td><td>&lt;utilizator&gt; [gazdă]</td><td>Adaugă un utilizator nou în ChanFix</td><td><span class="badge badge-admin">u/a</span></td></tr>
<tr><td>DELUSER</td><td>&lt;utilizator&gt;</td><td>Șterge un utilizator din ChanFix</td><td><span class="badge badge-admin">u/a</span></td></tr>
<tr><td>ADDFLAG</td><td>&lt;utilizator&gt; &lt;flag&gt;</td><td>Adaugă flag: <strong>a</strong>=admin server, <strong>b</strong>=blocare, <strong>c</strong>=comentarii, <strong>f</strong>=chanfix, <strong>o</strong>=owner, <strong>u</strong>=user manager</td><td><span class="badge badge-admin">u/a</span></td></tr>
<tr><td>DELFLAG</td><td>&lt;utilizator&gt; &lt;flag&gt;</td><td>Șterge un flag de la un utilizator</td><td><span class="badge badge-admin">u/a</span></td></tr>
<tr><td>ADDHOST</td><td>&lt;utilizator&gt; &lt;nick!user@host&gt;</td><td>Adaugă o mască de gazdă pentru un utilizator</td><td><span class="badge badge-admin">u/a</span></td></tr>
<tr><td>DELHOST</td><td>&lt;utilizator&gt; &lt;mască&gt;</td><td>Șterge o mască de gazdă</td><td><span class="badge badge-admin">u/a</span></td></tr>
<tr><td>SETGROUP</td><td>&lt;utilizator&gt; &lt;grup&gt;</td><td>Setează grupul unui utilizator</td><td><span class="badge badge-admin">u/a</span></td></tr>
<tr><td>WHOGROUP</td><td>[grup]</td><td>Listează utilizatorii dintr-un grup; fără parametru — toate grupurile</td><td><span class="badge badge-admin">u/a</span></td></tr>
<tr><td>SUSPEND</td><td>&lt;utilizator&gt;</td><td>Suspendă un utilizator ChanFix</td><td><span class="badge badge-admin">u/a</span></td></tr>
<tr><td>UNSUSPEND</td><td>&lt;utilizator&gt;</td><td>Reactivează un utilizator suspendat</td><td><span class="badge badge-admin">u/a</span></td></tr>
</table>
</div>
<div class="separator"></div>
<div class="cmd-category">
<h3>🚫 Comenzi de Blocare Canale (flag b — Block)</h3>
<table>
<tr><th>Comandă</th><th>Sintaxă</th><th>Descriere</th><th>Nivel</th></tr>
<tr><td>BLOCK</td><td>&lt;#canal&gt; &lt;motiv&gt;</td><td>Blochează permanent un canal de la reparare (automat și manual)</td><td><span class="badge badge-admin">flag b</span></td></tr>
<tr><td>UNBLOCK</td><td>&lt;#canal&gt;</td><td>Deblochează canalul</td><td><span class="badge badge-admin">flag b</span></td></tr>
<tr><td>TEMPBLOCK</td><td>&lt;#canal&gt; &lt;motiv&gt;</td><td>Blocare temporară a canalului</td><td><span class="badge badge-admin">flag b</span></td></tr>
<tr><td>UNTEMPBLOCK</td><td>&lt;#canal&gt;</td><td>Scoate blocarea temporară</td><td><span class="badge badge-admin">flag b</span></td></tr>
<tr><td>LISTBLOCKED</td><td>(fără parametri)</td><td>Listează toate canalele blocate permanent</td><td><span class="badge badge-admin">flag b</span></td></tr>
<tr><td>LISTTEMPBLOCKED</td><td>(fără parametri)</td><td>Listează toate canalele blocate temporar</td><td><span class="badge badge-admin">flag b</span></td></tr>
</table>
</div>
<div class="separator"></div>
<div class="cmd-category">
<h3>📝 Comenzi de Note și Alertă (flag c — Comment)</h3>
<table>
<tr><th>Comandă</th><th>Sintaxă</th><th>Descriere</th><th>Nivel</th></tr>
<tr><td>ADDNOTE</td><td>&lt;#canal&gt; &lt;text&gt;</td><td>Adaugă o notiță la un canal</td><td><span class="badge badge-admin">flag c</span></td></tr>
<tr><td>DELNOTE</td><td>&lt;#canal&gt; &lt;id&gt;</td><td>Șterge o notiță (doar cele adăugate de tine)</td><td><span class="badge badge-admin">flag c</span></td></tr>
<tr><td>ALERT</td><td>&lt;#canal&gt; &lt;motiv&gt;</td><td>Pune canalul în stare de alertă (necesită OVERRIDE pentru reparare)</td><td><span class="badge badge-admin">flag c</span></td></tr>
<tr><td>UNALERT</td><td>&lt;#canal&gt;</td><td>Scoate alerta de pe canal</td><td><span class="badge badge-admin">flag c</span></td></tr>
</table>
</div>
<div class="separator"></div>
<div class="cmd-category">
<h3>🔧 Comenzi ChanFix (Reparare) (flag f — ChanFix)</h3>
<table>
<tr><th>Comandă</th><th>Sintaxă</th><th>Descriere</th><th>Nivel</th></tr>
<tr><td>CHANFIX</td><td>&lt;#canal&gt; [OVERRIDE] [CONTACT]</td><td>Reparare manuală; OVERRIDE forțează; CONTACT notifică top 10</td><td><span class="badge badge-admin">flag f</span></td></tr>
<tr><td>OPLIST</td><td>&lt;#canal&gt; [-all] [-days]</td><td>Top 10 conturi cu scoruri; -all arată toate; -days arată diagrama de 2 săptămâni</td><td><span class="badge badge-oper">Oper</span></td></tr>
<tr><td>OPNICKS</td><td>&lt;#canal&gt;</td><td>Arată nickurile care au operator în prezent pe canal</td><td><span class="badge badge-oper">Oper</span></td></tr>
<tr><td>SIMULATE</td><td>&lt;#canal&gt; [AUTO|MANUAL]</td><td>Simulează o reparare fără să o execute efectiv</td><td><span class="badge badge-oper">Oper</span></td></tr>
</table>
</div>
<div class="separator"></div>
<div class="cmd-category">
<h3>👑 Comenzi Owner (flag o — Owner)</h3>
<table>
<tr><th>Comandă</th><th>Sintaxă</th><th>Descriere</th><th>Nivel</th></tr>
<tr><td>SET</td><td>&lt;setare&gt; &lt;valoare&gt;</td><td>Modifică: ENABLE_AUTOFIX, ENABLE_CHANFIX, ENABLE_CHANNEL_BLOCKING, NUM_SERVERS</td><td><span class="badge badge-owner">flag o</span></td></tr>
<tr><td>REHASH</td><td>(fără parametri)</td><td>Reîncarcă traducerile, configurația sau ajutorul din baza de date</td><td><span class="badge badge-owner">flag o</span></td></tr>
<tr><td>RELOAD</td><td>[motiv]</td><td>Repornește complet modulul ChanFix (include reconnectare!)</td><td><span class="badge badge-owner">flag o</span></td></tr>
<tr><td>SHUTDOWN</td><td>[motiv]</td><td>Salvează baza de date și oprește GNUWorld complet</td><td><span class="badge badge-owner">flag o</span></td></tr>
<tr><td>LASTCOM</td><td>[număr] [zile]</td><td>Arată ultimele comenzi primite de bot</td><td><span class="badge badge-owner">flag o</span></td></tr>
<tr><td>INVITE</td><td>(fără parametri)</td><td>Te invită pe canalul de consolă</td><td><span class="badge badge-owner">flag o</span></td></tr>
<tr><td>QUOTE</td><td>&lt;text&gt;</td><td>Trimite comandă raw către server — <strong>EXTREM DE PERICULOS!</strong></td><td><span class="badge badge-owner">flag o</span></td></tr>
<tr><td>SAY</td><td>&lt;#canal&gt; &lt;text&gt;</td><td>Botul C trimite un mesaj pe un canal</td><td><span class="badge badge-owner">flag o</span></td></tr>
</table>
</div>
</div>
<!-- ======================== STATS ======================== -->
<div class="service-section" id="stats">
<div class="service-header">
<div class="bot-name">📊</div>
<div class="service-info">
<h2>Stats — Statistici Rețea</h2>
<p>Colectare și afișare statistici despre rețeaua UnderChat (canale, utilizatori, trafic)</p>
</div>
<div class="service-usage">/msg ubercow &lt;comandă&gt;</div>
</div>
<div class="note">
<strong> Acces:</strong> Necesită fie un cont listat în <code>permit_user</code> din configurare, fie statut de IRC Operator (dacă <code>allow_opers = true</code>).
<strong>Nu are bază de date separată</strong> — scrie statistici în fișiere.
</div>
<div class="cmd-category">
<h3>📋 Toate Comenzile</h3>
<table>
<tr><th>Comandă</th><th>Sintaxă</th><th>Descriere</th><th>Nivel</th></tr>
<tr><td>stats</td><td>(fără parametri)</td><td>Afișează statisticile curente ale rețelei (utilizatori, canale, vârf)</td><td><span class="badge badge-oper">Acces</span></td></tr>
<tr><td>reload</td><td>(fără parametri)</td><td>Reîncarcă complet modulul de statistici</td><td><span class="badge badge-oper">Acces</span></td></tr>
<tr><td>shutdown</td><td>(fără parametri)</td><td>Oprește GNUWorld complet</td><td><span class="badge badge-owner">Acces</span></td></tr>
<tr><td>join</td><td>&lt;#canal&gt;</td><td>Botul intră pe un canal pentru a colecta statistici</td><td><span class="badge badge-oper">Acces</span></td></tr>
<tr><td>part</td><td>&lt;#canal&gt;</td><td>Botul iese de pe un canal</td><td><span class="badge badge-oper">Acces</span></td></tr>
<tr><td>say</td><td>&lt;#canal&gt; &lt;mesaj&gt;</td><td>Botul trimite un mesaj pe un canal pe care se află</td><td><span class="badge badge-oper">Acces</span></td></tr>
</table>
<p style="margin-top:10px; color:#9e9e9e; font-size:0.85em;">
<strong>Notă:</strong> Comenzile sunt case-sensitive (litere mici). Scrie <code>stats</code>, nu <code>STATS</code>.
</p>
</div>
</div>
<!-- ======================== SCANNER ======================== -->
<div class="service-section" id="scanner">
<div class="service-header">
<div class="bot-name">🔍</div>
<div class="service-info">
<h2>Scanner — Scanare Rețea</h2>
<p>Modul pasiv de scanare a rețelei pentru proxy-uri deschise și conexiuni suspecte</p>
</div>
<div class="service-usage">/msg netscan &lt;mesaj&gt;</div>
</div>
<div class="cmd-category">
<h3>📋 Informații</h3>
<table>
<tr><th>Comandă</th><th>Sintaxă</th><th>Descriere</th><th>Nivel</th></tr>
<tr><td>(orice mesaj)</td><td>/msg netscan orice</td><td>Răspunde cu „Howdy :)" — este un modul <strong>pasiv</strong> fără comenzi reale</td><td><span class="badge badge-all">Toți</span></td></tr>
</table>
<p style="margin-top:15px; padding:10px; background:#0a1a1a; border-radius:6px; color:#80cbc4; font-size:0.9em;">
Scanner-ul monitorizează automat conexiunile noi pe rețea (evenimentul EVT_NICK) și poate face conexiuni
de ieșire (<code>max_connects</code>) pentru a verifica dacă un IP are proxy-uri deschise. Este un instrument complet automat
— nu necesită intervenție manuală prin comenzi.
</p>
</div>
</div>
<!-- ======================== SNOOP ======================== -->
<div class="service-section" id="snoop">
<div class="service-header">
<div class="bot-name">👁️</div>
<div class="service-info">
<h2>Snoop — Supraveghere Canale</h2>
<p>Creează clienți falși (invizibili) care intră pe canale suspecte și retransmit conversațiile</p>
</div>
<div class="service-usage">Pe #adminchan: snoopy &lt;comandă&gt;</div>
</div>
<div class="note">
<strong>⚠️ Important:</strong> Snoop funcționează diferit de celelalte servicii!
Comenzile <strong>NU</strong> se dau prin <code>/msg</code>. Se scriu pe <strong>canalul de admin</strong>
(implicit <code>#2010</code>), folosind prefixul <code>snoopy</code> (setat în <code>cmdchar</code> din configurare).
Necesită acces (permit_user) sau statut de IRC Oper.
</div>
<div class="cmd-category">
<h3>🤖 Gestionare Clienți Falși (Clone)</h3>
<table>
<tr><th>Comandă</th><th>Sintaxă</th><th>Descriere</th><th>Nivel</th></tr>
<tr><td>spawnclient</td><td>snoopy spawnclient &lt;nick!user@host&gt; &lt;realname&gt;</td><td>Creează un client fals (clon) pe rețea cu identitatea specificată</td><td><span class="badge badge-oper">Acces</span></td></tr>
<tr><td>join</td><td>snoopy join &lt;nick&gt; &lt;#canal&gt; [cheie]</td><td>Un client fals intră pe un canal pentru supraveghere</td><td><span class="badge badge-oper">Acces</span></td></tr>
<tr><td>joinall</td><td>snoopy joinall &lt;#canal&gt; [cheie]</td><td>Toți clienții falși intră pe un canal</td><td><span class="badge badge-oper">Acces</span></td></tr>
<tr><td>part</td><td>snoopy part &lt;nick&gt; &lt;#canal&gt; [mesaj]</td><td>Un client fals iese de pe un canal</td><td><span class="badge badge-oper">Acces</span></td></tr>
<tr><td>partall</td><td>snoopy partall &lt;#canal&gt; [mesaj]</td><td>Toți clienții falși ies de pe canal</td><td><span class="badge badge-oper">Acces</span></td></tr>
<tr><td>quit</td><td>snoopy quit &lt;nick&gt; [mesaj]</td><td>Un client fals se deconectează de pe rețea</td><td><span class="badge badge-oper">Acces</span></td></tr>
<tr><td>quitall</td><td>snoopy quitall [mesaj]</td><td>Toți clienții falși se deconectează</td><td><span class="badge badge-oper">Acces</span></td></tr>
</table>
</div>
<div class="separator"></div>
<div class="cmd-category">
<h3>💬 Comunicare prin Clone</h3>
<table>
<tr><th>Comandă</th><th>Sintaxă</th><th>Descriere</th><th>Nivel</th></tr>
<tr><td>say / do</td><td>snoopy say &lt;nick&gt; &lt;#canal&gt; &lt;mesaj&gt;</td><td>Un client fals trimite un mesaj sau acțiune pe canal</td><td><span class="badge badge-oper">Acces</span></td></tr>
<tr><td>sayall / doall</td><td>snoopy sayall &lt;#canal&gt; &lt;mesaj&gt;</td><td>Toți clienții falși trimit un mesaj pe canal</td><td><span class="badge badge-oper">Acces</span></td></tr>
</table>
</div>
<div class="separator"></div>
<div class="cmd-category">
<h3>⚙️ Administrare</h3>
<table>
<tr><th>Comandă</th><th>Sintaxă</th><th>Descriere</th><th>Nivel</th></tr>
<tr><td>reload</td><td>snoopy reload</td><td>Reîncarcă complet modulul Snoop</td><td><span class="badge badge-oper">Acces</span></td></tr>
<tr><td>shutdown</td><td>snoopy shutdown</td><td>Oprește GNUWorld complet</td><td><span class="badge badge-owner">Acces</span></td></tr>
</table>
</div>
</div>
<!-- ======================== TABEL REZUMAT ======================== -->
<div class="service-section" style="border-color:#6c3fb5;">
<div class="service-header" style="background: linear-gradient(135deg, #1a1a3e, #0d0d2b);">
<div class="service-info" style="width:100%; text-align:center;">
<h2 style="color:#b388ff;">📊 Tabel Rezumativ — Toate Serviciile</h2>
</div>
</div>
<div class="cmd-category" style="border-left-color:#6c3fb5;">
<table>
<tr>
<th>Serviciu</th>
<th>Bot / Pseudonim</th>
<th>Cum dai comenzi</th>
<th>Nr. comenzi</th>
<th>Bază de date</th>
</tr>
<tr>
<td style="color:#69f0ae;">CService</td>
<td>X</td>
<td style="font-family:Consolas;">/msg X &lt;cmd&gt;</td>
<td>~45</td>
<td>cservice</td>
</tr>
<tr>
<td style="color:#ff8a80;">DroneScan</td>
<td>E</td>
<td style="font-family:Consolas;">/msg E &lt;cmd&gt;</td>
<td>~17</td>
<td>dronescan</td>
</tr>
<tr>
<td style="color:#82b1ff;">OpenChanFix</td>
<td>C</td>
<td style="font-family:Consolas;">/msg C &lt;cmd&gt;</td>
<td>~40</td>
<td>chanfix</td>
</tr>
<tr>
<td style="color:#fff176;">Stats</td>
<td>ubercow</td>
<td style="font-family:Consolas;">/msg ubercow &lt;cmd&gt;</td>
<td>6</td>
<td></td>
</tr>
<tr>
<td style="color:#80cbc4;">Scanner</td>
<td>netscan</td>
<td>N/A (automat)</td>
<td>0</td>
<td></td>
</tr>
<tr>
<td style="color:#ea80fc;">Snoop</td>
<td>snoopy_</td>
<td style="font-family:Consolas;">snoopy &lt;cmd&gt; pe canal</td>
<td>11</td>
<td></td>
</tr>
</table>
</div>
</div>
<div class="footer">
<p>🌐 <a href="https://gitlab.back.ro/underchat/gnuworld">UnderChat GNUWorld</a> — Versiunea 2.1.6 — Documentație generată din codul sursă</p>
<p style="margin-top:5px;">Rețeaua UnderChat © 2026 — Toate drepturile rezervate</p>
</div>
</div>
</body>
</html>