gnuworld/doc/comenzi-underchat.html

830 lines
52 KiB
HTML
Raw Blame History

This file contains invisible Unicode characters

This file contains invisible Unicode characters that are indistinguishable to humans but may be processed differently by a computer. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

<!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>