dcpp.hu
Magyar DC++ hírportál
AdmiHub3 LUA leírás
1. Általános információk
Az AdmiHUB 3 1.10-es verziójától kezdve használhatóak LUA scriptek különböző események lekezelésére, ezzel a hub saját igény szerinti bővítése, a hub egyedivé tétele lehetővé válik.
A scriptek és események beállítása az eddig is megszokott módon, a Távoli Irányítás programmal lehetséges. Emellett van pár DC kliensből használható parancs is a LUA scriptek kezelésére (futtatás, listázás, fordítás, indítás és leállítás).
A megfelelő sebesség, és ezzel együtt alacsony CPU-használat érdekében, a hub minden egyes scriptet módosításkor, valamint betöltéskor előre lefordíttat a LUA értelmezővel. A stabil, biztonságos, és a hibakeresést megkönnyítő működés kedvéért pedig, a hub minden scriptet „protected” (védett) módban futtat. Esetleges fordítási, vagy futási hiba esetén a hub figyelmeztetést küld a megadott szobába.
Esemény lekezelésekor a hub végigmegy az adott eseményhez társított scriptek listáján. Az itt talált scripteknek azt az eljárását próbálja meghívni a megfelelő paraméterekkel, amelynek a neve megegyezik az adott esemény nevével. Amennyiben nincs ilyen nevű eljárás a scriptben, futási hiba keletkezik. Script módosításánál vagy létrehozásánál a Távoli Irányítás program automatikusan berakja azon események script-listájába az aktuális scriptet, amely eseményekhez talál kezelő függvényt.
Script betöltésekor, ha a script ’Automatikus indítás’ módban van, a hub azonnal lefuttatja azt. Ilyenkor az összes olyan kód lefut, ami nem függvény része (a script törzse). A !lua_start paranccsal (kézzel) indított scripteknél ugyanez történik.
Egy eseményhez több script is rendelhető, ilyenkor megadható, hogy milyen sorrendben fussanak le. (Jobboldalt az eseményeknél az eltávolítás, majd a létező script hozzáadása gombbal lehetséges ez.) A scriptek egymás működését is tudják befolyásolni: egy script letilthatja, hogy a sorban utána következők lefussanak, ill. bizonyos paramétereket módosíthat. Ugyanakkor a hub beépített eljárásait is képesek vezérelni: bizonyos reakciókat letilthatnak, vagy a paramétereket módosíthatják . Azáltal pedig, hogy a scriptek belső parancsokat is ki tudnak adni , még több funkcionalitás érhető el.
A felhasználókat és az osztályokat az eseményeknél, és a legtöbb eljárásban az indexük azonosítja , mely egy egész szám. Ez az index gyakorlatilag egy véletlen szám, mely a hub futása közben változhat, de garantáltan konstans egy script lefutása, ill. egy esemény kiszolgálása alatt. A megfelelő átalakító függvényekkel lehet ezt az indexet névvé alakítani, és fordítva.
2. Lekezelhető események
- OnHubStart()
Hub indulásakor meghívott esemény.
Végrehajtás ideje: hub indulásakor, a beállítások beolvasása után. - OnHubExit()
Hub leállításakor meghívott esemény.
Végrehajtás ideje: hub leállításakor, a beállítások mentése, valamint a userek szétkapcsolása előtt. - OnConnect( int User, string IP)
Felhasználó kapcsolódik a hubra.
Végrehajtás ideje: közvetlenül kapcsolódás után, $Lock küldése előtt. - OnSupportsString( int User, string Supports)
$Supports string fogadása.
Végrehajtás ideje: parancs fogadása után egyből. - OnPassword( int User, string Password, bool IsCorrectPassword)
Felhasználó elküldi a jelszavát a hubnak.
Végrehajtás ideje: jelszó megérkezését követően, a jelszó helyességének ellenőrzése után, de az erre való reagálás előtt. - OnMyINFO( int User, string MyINFO)
Felhasználó MyINFO-t küld a hubnak.
Végrehajtás ideje: megérkezés és nick helyességének ellenőrzése után.
Letiltható akciók:- 0: MyINFO szétküldése
- OnLogin( int User)
Felhasználó sikeresen bejelentkezik a hubra.
Végrehajtás ideje: sikeres bejelentkezés esetén; az összes beépített, belépésnél végrehajtott ellenőrzés lefutása, valamint a felhasználói lista küldése után, de az MOTD és egyéb üdvözlő szövegek küldése előtt.
Letiltható akciók:- 0: Összes akció
- 1: MOTD küldése
- 2: Login adatok küldése (IP, osztály)
- OnQuit( int User)
Felhasználó kilép a hubról.
Végrehajtás ideje: kilépés után, a felhasználó adatainak felszabadítása előtt. Csak sikeresen bejelentkezett felhasználó esetén fut le. - OnMainChat ( int User, string Message)
Felhasználó üzenetet küld a közös chatbe.
Végrehajtás ideje: közvetlenül azután, hogy megérkezik az üzenet; minden beépített ellenőrzés (kivéve a nick helyessége), valamint szétküldés és/vagy felhasználónak való visszaküldés előtt.
Letiltható akciók:- 0: Összes akció
- 1: Triggerre reagálás
- 2: Szűrő alkalmazása
- 3: Önmagának való visszaküldés
- 4: Üzenet szétküldése a többieknek
- OnValidMainChat ( int User, string Message)
Felhasználó sikeresen üzenetet küld a közös chatbe.
Végrehajtás ideje: az összes beépített ellenőrzés és esetleges átalakítás után; közvetlenül a szétküldés előtt. Csakis olyankor hívódik meg, amikor az üzenet ténylegesen szétküldésre kerül; ha ez bármilyen okból meghiúsul (pl. egy OnMainChat-re bekötött script letiltja a szétküldést), akkor nem kerül végrehajtásra.
Letiltható akciók:- 0: Összes akció
- 1: Önmagának való visszaküldés
- 2: Üzenet szétküldése a többieknek
- OnPrivateChat( int UserFrom, int UserTo, string Message)
Felhasználó privát üzenetet küld egy másik felhasználónak.
Végrehajtás ideje: közvetlenül azután, hogy megérkezik az üzenet; minden beépített ellenőrzés, valamint a továbbítás előtt.
Letiltható akciók:- 0: Összes akció
- 1: Szűrő alkalmazása
- 2: Szoba-kezelő meghívása
- 3: Üzenet továbbítása
- OnMessageToBot( int User, string Message)
Felhasználó üzenetet küld a HubSecurity-nek.
Végrehajtás ideje: megérkezés után azonnal, az esetleges parancs feldolgozása előtt. - OnMessageToLuaBot( int User, string BotName, string Message)
Felhasználó üzenetet küld egy AddBot() LUA hívás által létrehozott BOT-nak. Végrehajtás ideje: megérkezés után azonnal - OnCommand( int User, string Command)
Felhasználó kiad egy parancsot.
Végrehajtás ideje: parancs megérkezésekor, annak feldolgozása után. - OnActiveSearch( int User, string SearchString)
Felhasználó aktív módban keres.
Végrehajtás ideje: parancs fogadása után
Letiltható akciók:- 0: Keresési parancs szétküldése
- OnPassiveSearch( int User, string SearchString)
Felhasználó passzív módban keres.
Végrehajtás ideje: parancs fogadása után
Letiltható akciók:- 0: Keresési parancs szétküldése
- OnTimer( int Timer)
Másodperc felbontású belső óra ütésekor bekövetkező esemény.
Végrehajtás ideje: minden másodpercben. A paraméter visszatérési értéke a hub futási ideje másodpercekben - OnKick( int User, int TargetUser, string Reason)
Egy felhasználó kirúg egy másikat.
Végrehajtás ideje: kirúgási parancs érkezésekor, ellenőrzések után, de annak lekezelése előtt. Jobb-klikk menüs, valamint !kick parancs esetén is lefut. - OnRedirect( int User, int TargetUser, string Address, string Reason)
Egy felhasználó átirányít egy másikat.
Végrehajtás ideje: átirányítási parancs érkezésekor, ellenőrzések után, de annak lekezelése előtt. Jobb-klikk menüs, valamint !redirect parancs esetén is lefut.
OnScriptCompileError( string ScriptName, string ErrorMsg)
Egy script lefordítása nem sikerül.
Végrehajtás ideje: hub belső eseménykezelője előtt - OnScriptRunTimeError( string ScriptName, string ErrorMsg)
Egy script futása közben hiba lép fel.
Végrehajtás ideje: hub belső eseménykezelője előtt - OnUnknownPacket( int User, string Data)
Ismeretlen típusú csomag érkezik.
Végrehajtás ideje: csomag érkezésekor, belső csomagkezelő hívása után - OnUnknownCommand( int User, string Cmd)
Ismeretlen + vagy ! jeles parancs érkezik a közös chatbe, vagy a HubSecurity-nek privátban.
Végrehajtás ideje: parancs érkezésekor, belső parancskezelő hívása után
Letiltható akciók:
3. Használható eljárások
Általános kommunikációs parancsok:
- Send( int | string User, string Msg)
Üzenet küldése a felhasználónak raw formátumban. Tartalmaznia kell a záró | karaktert. - SendBotMain( int | string User, string Msg)
Üzenet küldése a felhasználónak a HubSecurity nevében. Tartalmaznia kell a záró | karaktert. - SendBotPM( int | string User, string Msg)
Privát üzenet küldése a felhasználónak a HubSecurity nevében. Tartalmaznia kell a záró | karaktert. - SendToClass( int | string Class, string Data)
Üzenet küldése a megadott felhasználói csoportnak. Tartalmaznia kell a záró | karaktert. - SendToAll( string Msg)
Üzenet küldése az összes csatlakozott felhasználónak raw formátumba. Tartalmaznia kell a záró | karaktert. - SendToMCOn( string Msg)
Üzenet küldése az összes olyan csatlakozott felhasználónak, akinél nincs kikapcsolva a közös chat. - SendNotify( int Mode, string Msg)
Figyelmeztetés küldése az összes olyan chatszobába, melyben a megadott jelentések megjelennek. Tartalmaznia kell a záró | karaktert.
Szobák kódjai:- Kirúgások
- Áritányítások
- Átirányítások bannal
- Felhasználói bejelentések
- Regisztrációs események
- Egyéb események
- Közös chat szűrő
- Privát üzenet szűrő
- Elnémított felhasználók írásai
- Rejtetten elnémított felhasználók írásai
- LUA script hibák
- Disconnect( int | string User)
A megadott felhasználó szétkapcsolására szolgál
Vezérlő parancsok:
- CancelScripts()
A további scriptek letiltására szolgál - CancelAction( int ID1 [, int ID2, …])
A hozzátartozó függvényen belül a megfelelő műveletet tiltja le. (bővebben lásd: lekezelhető események) - UseCommand( string Command, string Param)
Bizonyos parancs kiadása a HubSecurity nevében. Minden, a !help-ben listázott parancs használható. - AddBot( string Name, string Desc)
Megadott nevű bot regisztrálása a hubra a kívánt leírással. - RemoveBot( string Name)
AddBot() hívással regisztrált bot eltávolítására szolgál.
Felhasználó attribútumait lekérő parancsok:
- string GetNick( int User)
Visszatérési értéke a megadott indexhez tartozó felhasználó nickneve
int GetIndex( string Nick)
Visszatérési értéke a megadott nicknévhez tartozó felhasználói index - string GetIP( int User)
Visszatérési értéke a megadott indexhez tartozó felhasználó IP címe - string GetMyINFO( int User)
Visszatérési értéke a megadott indexhez tartozó felhasználó MyINFO stringje - string GetDesc( int User)
Visszatérési értéke a megadott indexhez tartozó felhasználó leírása - string GetTAG( int User)
Visszatérési értéke a megadott indexhez tartozó felhasználó tagja - string GetShare( int User)
Visszatérési értéke a megadott indexhez tartozó felhasználó megosztásának mérete byte-okban - string GetEmail( int User)
Visszatérési értéke a megadott indexhez tartozó felhasználó e-mail címe - string GetConn( int User)
Visszatérési értéke a megadott indexhez tartozó felhasználó csatlakozási módja - string GetClassName( int User)
Visszatérési értéke a megadott indexhez tartozó felhasználó osztályának neve - bool IsRegged( int User)
Visszatérési értéke true, ha a megadott indexű felhasználó regisztrált
Hub attribútumait lekérő parancsok:
- string GetHubName()
Visszatérési értéke a hub neve - string GetTopic()
Visszatérési értéke a hub topicja - string GetBotName()
Visszatérési értéke a HubSecurity neve - int GetUserCount()
Visszatérési értéke a hubra bejelentkezett felhasználók száma - int GetMaxUserIndex()
Visszatérési értéke a legmagasabb felhasználói index
MINDEN VÉLEMÉNY SZÁMÍT!
Hozzászólás küldéséhez be kell jelentkezni.