13 KiB
PSEUDO - Comenzi Alias către Servicii IRC
📋 CE ESTE PSEUDO?
Pseudo este un sistem de comenzi alias implementate la nivel de server care permit utilizatorilor să trimită mesaje către servicii IRC (bots) folosind comenzi simple în loc de /MSG serviciu comandă.
Este o funcționalitate de confort pentru utilizatori care face interacțiunea cu serviciile mai intuitivă și mai ușoară.
🎯 SCOP
Problema FĂRĂ Pseudo:
Utilizatorii trebuie să știe:
- Numele exact al serviciului (ex:
X,AuthServ,ChanServ) - Serverul unde rulează (ex:
channels.undernet.org) - Sintaxa comenzii (ex:
/MSG X@channels.undernet.org LOGIN user pass)
Exemplu complicat:
/MSG X@channels.undernet.org LOGIN myuser mypassword
/MSG AuthServ@services.underchat.org HELP
/MSG ChanServ@services.underchat.org REGISTER #mychannel
Soluția CU Pseudo:
Utilizatorii scriu doar:
/LOGIN myuser mypassword
/AUTHSERV
/CHANSERV REGISTER #mychannel
Mai simplu, mai intuitiv! ✅
🔧 CUM FUNCȚIONEAZĂ?
Mecanismul:
- User scrie:
/CHANSERV REGISTER #mychannel - Server transformă:
/MSG ChanServ@services.underchat.org REGISTER #mychannel - Server trimite mesajul către serviciul corect
- Serviciul răspunde utilizatorului
Este un alias transparent - utilizatorul nu știe că în spate se trimite un /MSG.
📝 SINTAXĂ ÎN ircd.conf
Formatul de bază:
Pseudo "COMANDĂ" {
name = "NumeServiciu";
nick = "serviciu@server.domain.org";
};
Parametri:
| Parametru | Obligatoriu | Descriere |
|---|---|---|
"COMANDĂ" |
✅ DA | Comanda pe care o scriu utilizatorii (ex: /CHANSERV) |
name |
✅ DA | Numele serviciului (folosit în mesaje de eroare) |
nick |
✅ DA | Nick@Server al serviciului destinație |
prepend |
❌ NU | Text de adăugat ÎNAINTEA mesajului utilizatorului |
defaulttext |
❌ NU | Text trimis dacă utilizatorul NU furnizează text |
💡 EXEMPLE PRACTICE
Exemplu 1: Alias simplu pentru ChanServ
Pseudo "CHANSERV" {
name = "ChanServ";
nick = "ChanServ@services.underchat.org";
};
Utilizare:
# User scrie:
/CHANSERV REGISTER #mychannel
# Server transformă în:
/MSG ChanServ@services.underchat.org REGISTER #mychannel
Exemplu 2: Alias cu PREPEND (adaugă text înainte)
Pseudo "LOGIN" {
name = "X";
prepend = "LOGIN ";
nick = "X@channels.undernet.org";
};
Utilizare:
# User scrie:
/LOGIN myuser mypassword
# Server transformă în:
/MSG X@channels.undernet.org LOGIN myuser mypassword
# ^^^^^^ ADĂUGAT AUTOMAT!
Avantaj: Utilizatorul nu mai trebuie să scrie LOGIN de două ori!
Exemplu 3: Alias cu DEFAULT TEXT
Pseudo "AUTHSERV" {
name = "AuthServ";
nick = "AuthServ@services.underchat.org";
defaulttext = "HELP";
};
Utilizare:
# User scrie doar comanda, fără parametri:
/AUTHSERV
# Server transformă în:
/MSG AuthServ@services.underchat.org HELP
# ^^^^ ADĂUGAT AUTOMAT!
# User poate și să furnizeze text:
/AUTHSERV STATUS
# Server transformă în:
/MSG AuthServ@services.underchat.org STATUS
Avantaj: Dacă utilizatorul uită să adauge parametri, se trimite automat HELP!
Exemplu 4: Serviciu cu MULTIPLE SERVER-e (failover)
Pseudo "X" {
name = "X";
nick = "X@channels.underchat.org";
nick = "X@backup.underchat.org";
nick = "X@services.underchat.org";
};
Funcționare:
- Serverul încearcă să găsească serviciul pe
channels.underchat.org - Dacă NU există, încearcă
backup.underchat.org - Dacă NU există, încearcă
services.underchat.org - Ultimul listat are prioritate cea mai mare!
🎓 CAZURI DE UTILIZARE COMUNE
1. Servicii Anope/Atheme
# NickServ
Pseudo "NICKSERV" {
name = "NickServ";
nick = "NickServ@services.underchat.org";
};
# ChanServ
Pseudo "CHANSERV" {
name = "ChanServ";
nick = "ChanServ@services.underchat.org";
};
# MemoServ
Pseudo "MEMOSERV" {
name = "MemoServ";
nick = "MemoServ@services.underchat.org";
};
# OperServ
Pseudo "OPERSERV" {
name = "OperServ";
nick = "OperServ@services.underchat.org";
};
Utilizare:
/NICKSERV REGISTER password email@domain.com
/CHANSERV REGISTER #mychannel
/MEMOSERV SEND nick Your message here
/OPERSERV AKILL ADD *@badhost.com Bad user
2. Bot de Autentificare (X/W/Q)
# Login rapid la X
Pseudo "LOGIN" {
name = "X";
prepend = "LOGIN ";
nick = "X@channels.underchat.org";
};
# Logout
Pseudo "LOGOUT" {
name = "X";
prepend = "LOGOUT";
nick = "X@channels.underchat.org";
defaulttext = ""; # Nu trimite nimic extra
};
# WhoisX
Pseudo "WHOIS" {
name = "X";
prepend = "WHOIS ";
nick = "X@channels.underchat.org";
};
Utilizare:
/LOGIN myuser mypassword
/LOGOUT
/WHOIS someuser
3. Bot Custom (ex: GameBot, StatBot)
# GameBot - comenzi jocuri
Pseudo "GAME" {
name = "GameBot";
nick = "GameBot@games.underchat.org";
defaulttext = "HELP";
};
# StatBot - statistici rețea
Pseudo "STATS" {
name = "StatBot";
nick = "StatBot@stats.underchat.org";
defaulttext = "NETWORK";
};
Utilizare:
/GAME # Trimite "HELP" automat
/GAME START poker # Trimite "START poker"
/STATS # Trimite "NETWORK" automat
/STATS USER nickname # Trimite "USER nickname"
⚙️ CONFIGURARE ÎN ircd.conf
Exemplu Complet pentru UnderChat:
# ============================================================================
# SECȚIUNE: PSEUDO - Alias-uri Comenzi pentru Servicii
# ============================================================================
# NickServ - Înregistrare și management nickname-uri
Pseudo "NICKSERV" {
name = "NickServ";
nick = "NickServ@services.underchat.org";
};
# Alias NS pentru NickServ (scurtătură)
Pseudo "NS" {
name = "NickServ";
nick = "NickServ@services.underchat.org";
};
# ChanServ - Management canale
Pseudo "CHANSERV" {
name = "ChanServ";
nick = "ChanServ@services.underchat.org";
};
# Alias CS pentru ChanServ
Pseudo "CS" {
name = "ChanServ";
nick = "ChanServ@services.underchat.org";
};
# MemoServ - Mesaje offline
Pseudo "MEMOSERV" {
name = "MemoServ";
nick = "MemoServ@services.underchat.org";
};
# Alias MS pentru MemoServ
Pseudo "MS" {
name = "MemoServ";
nick = "MemoServ@services.underchat.org";
};
# OperServ - Comenzi operatori
Pseudo "OPERSERV" {
name = "OperServ";
nick = "OperServ@services.underchat.org";
};
# Alias OS pentru OperServ
Pseudo "OS" {
name = "OperServ";
nick = "OperServ@services.underchat.org";
};
# AuthServ - Autentificare
Pseudo "AUTHSERV" {
name = "AuthServ";
nick = "AuthServ@services.underchat.org";
defaulttext = "HELP";
};
# LOGIN - Scurtătură pentru autentificare rapidă
Pseudo "LOGIN" {
name = "AuthServ";
prepend = "LOGIN ";
nick = "AuthServ@services.underchat.org";
};
# IDENTIFY - Alternativă pentru autentificare
Pseudo "IDENTIFY" {
name = "NickServ";
prepend = "IDENTIFY ";
nick = "NickServ@services.underchat.org";
};
🔍 VERIFICARE ȘI TESTARE
1. Verifică configurația:
grep -A 3 'Pseudo "' /home/ircd/ircd/lib/ircd.conf
Output așteptat:
Pseudo "CHANSERV" {
name = "ChanServ";
nick = "ChanServ@services.underchat.org";
};
--
Pseudo "NICKSERV" {
name = "NickServ";
nick = "NickServ@services.underchat.org";
};
2. Testează în IRC:
# Conectează-te la server
/SERVER madrid.es.eu.underchat.org 6667
# Testează comanda Pseudo
/CHANSERV HELP
# Ar trebui să primești răspuns de la ChanServ
# (dacă serviciile sunt active)
3. Debug (dacă nu funcționează):
# Verifică dacă serviciul este conectat
/WHOIS ChanServ
# Dacă vezi ceva ca:
# ChanServ is ChanServ@services.underchat.org * Channel Service
# → Serviciul este activ
# Dacă vezi:
# No such nick/channel
# → Serviciul NU este conectat (problema e la Anope/Atheme)
📊 AVANTAJE vs DEZAVANTAJE
✅ AVANTAJE:
- Ușurință utilizare - Comenzi intuitive pentru utilizatori
- Consistență - Toate serviciile au aceeași sintaxă
- Failover - Poate încerca multiple servere
- Scurtături -
/LOGINîn loc de/MSG X@server LOGIN - Defaulturi inteligente - Poate trimite
HELPautomat - Backward compatible -
/MSGtradițional tot funcționează
⚠️ DEZAVANTAJE:
- Configurare necesară - Trebuie configurat manual în ircd.conf
- Dependență de servicii - Dacă serviciile cad, Pseudo nu ajută
- Conflict posibil - Dacă un user are nick-ul
CHANSERV, poate crea confuzie - Nu verifică sintaxă - Doar relay-uiește mesajul, nu validează
🚨 CAZURI SPECIALE
Caz 1: Serviciul nu răspunde
Pseudo "CHANSERV" {
name = "ChanServ";
nick = "ChanServ@services.underchat.org";
};
Dacă serviciul NU este conectat:
/CHANSERV HELP
# Output:
:server NOTICE nick :Service ChanServ is currently down. Please try again later.
Caz 2: Multiple nick-uri (failover)
Pseudo "X" {
name = "X";
nick = "X@channels.underchat.org";
nick = "X@backup.underchat.org";
};
Funcționare:
- Serverul caută
X@channels.underchat.org→ NU există - Serverul caută
X@backup.underchat.org→ EXISTĂ! - Mesajul este trimis către
X@backup.underchat.org
Caz 3: Text vid cu defaulttext
Pseudo "HELP" {
name = "HelpBot";
nick = "HelpBot@services.underchat.org";
defaulttext = "MAINMENU";
};
Utilizare:
/HELP
# Trimite automat: /MSG HelpBot@services... MAINMENU
/HELP commands
# Trimite: /MSG HelpBot@services... commands
🎯 BEST PRACTICES
1. Folosește nume intuitive:
# BINE:
Pseudo "NICKSERV" { ... };
Pseudo "LOGIN" { ... };
# EVITĂ:
Pseudo "ABC123" { ... };
Pseudo "ZZXASD" { ... };
2. Oferă scurtături:
# Comanda completă
Pseudo "NICKSERV" { name = "NickServ"; nick = "NickServ@..."; };
# Scurtătură
Pseudo "NS" { name = "NickServ"; nick = "NickServ@..."; };
3. Folosește defaulttext pentru comenzi frecvente:
# HELP automat dacă user uită parametri
Pseudo "AUTHSERV" {
name = "AuthServ";
nick = "AuthServ@services.underchat.org";
defaulttext = "HELP";
};
4. Documentează în MOTD:
# În ircd.motd:
-
- Comenzi disponibile:
- /NICKSERV REGISTER password email
- /CHANSERV REGISTER #channel
- /LOGIN username password
- /AUTHSERV (pentru help)
-
- Sau scurtăturile: /NS, /CS, /MS, /OS
-
🔧 TROUBLESHOOTING
Problemă: Comanda Pseudo nu funcționează
Cauze posibile:
-
Pseudo NU este configurat în ircd.conf
grep 'Pseudo "CHANSERV"' /home/ircd/ircd/lib/ircd.conf # Dacă nu găsește nimic → Trebuie adăugat -
Serviciul NU este conectat
/WHOIS ChanServ # Dacă "No such nick" → Pornește Anope/Atheme -
Nick@Server greșit
# Verifică că nick-ul este corect: nick = "ChanServ@services.underchat.org"; # ^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^ # Nick Server (trebuie să existe în rețea) -
Server de servicii NU este linked
/LINKS # Caută "services.underchat.org" în listă
Soluție generală:
# 1. Adaugă Pseudo în ircd.conf
nano /home/ircd/ircd/lib/ircd.conf
# Adaugă:
Pseudo "CHANSERV" {
name = "ChanServ";
nick = "ChanServ@services.underchat.org";
};
# 2. Repornește IRCd
killall ircd
/home/ircd/ircd/bin/ircd -f /home/ircd/ircd/lib/ircd.conf
# 3. Asigură-te că serviciile (Anope) rulează
ps aux | grep anope
# Dacă nu:
/opt/anope/bin/services
# 4. Testează
/CHANSERV HELP
📚 REFERINȚE
- Cod sursă:
ircd/m_pseudo.c - Exemplu config:
doc/example.conf(liniile 999-1021) - Testare:
ircd/test/ircd-t1.conf(liniile 99-102)
🎯 CONCLUZIE
Pseudo = Alias-uri pentru servicii IRC
Transformă comenzi complicate:
/MSG ChanServ@services.underchat.org REGISTER #mychannel
În comenzi simple:
/CHANSERV REGISTER #mychannel
Este o funcționalitate de confort care face IRC-ul mai user-friendly și mai intuitiv pentru utilizatori!
Data: 14 Februarie 2026
Versiune: 1.0
Pentru: UnderChat IRCd v1.4.0+
🚀 QUICK START
Pentru a adăuga Pseudo în rețeaua ta:
# Adaugă în /home/ircd/ircd/lib/ircd.conf:
Pseudo "NICKSERV" {
name = "NickServ";
nick = "NickServ@services.underchat.org";
};
Pseudo "CHANSERV" {
name = "ChanServ";
nick = "ChanServ@services.underchat.org";
};
Pseudo "LOGIN" {
name = "AuthServ";
prepend = "LOGIN ";
nick = "AuthServ@services.underchat.org";
};
Restart IRCd și testează:
/NICKSERV HELP
/CHANSERV HELP
/LOGIN username password
GATA! ✅