Toon posts:

[VB.NET] IRC Bot

Pagina: 1
Acties:

Verwijderd

Topicstarter
Ik ben bezig met een IRC Bot in vb.net, heb het nu zo gemaakt dat gebruikers kunnen registreren en dat admins dan 'auto op' of 'auto voice' kunnen geven.

Het werkt al aardig ik heb alleen problemen met het identificeren van de gebruikers.

Als je op een irc server zit (nog niet in een channel) dan kan je inloggen op de bot met
code:
1
/msg bot_naam auth <username> <password>
Bij het inloggen van de bot gebruik ik de user en host van irc zelf (dus niet waarmee de gebruiker is geregistreerd) als gebruikers id maar op die manier kan ik niet zien wanneer iemand irc afsluit :( dus iedereen die ooit een keer ingelogd is blijft voor altijd ingelogd.

Ik heb ook geprobeerd de nickname als gebruiks id te gebruiken maar als de ingelogde gebruiker dan het channel verlaat en zijn nickname zou veranderen weet de bot niet meer wie hij is, en ik zou ook niet kunnen zien wanneer de gebruiker zijn IRC afsluit als hij niet in het channel van de bot zit.

De ultieme oplossing zou zijn dat je iedereen die ingelogd is op de bot zou kunnen tracken, dus als iemand zijn nickname wijzigt dan zie je dat, zelfs als hij niet in de channel van de bot zelf zit.

Weet iemand een oplossing voor dit probleem? of misschien het commando (als dat bestaat) waarmee je mensen kan tracken op IRC?

  • Helmet
  • Registratie: Januari 2002
  • Laatst online: 05-05 12:14
sommige IRC-servers kennen het Commando ISON een reply van dit commando ziet er als volgt uit:
code:
1
2
3
<- :xs4all.nl.quakenet.org 303 Helmet`bnc :Helmet`bnc  (user is online)
-> xs4all.nl.quakenet.org ison Helmet
<- :xs4all.nl.quakenet.org 303 Helmet`bnc : (geen online user)


dit zou je dan met een evt timer op kunnen vangen, is het niet beter om de gebruiker automagisch uit te loggen als hij/zij zich niet in een channel bevind waar de bot ook in zit :)

Icons are overrated


Verwijderd

Zoals Helmet al aan gaf kun je de gebruiker automatisch uitloggen bij part of quit. Daarnaast kun je een lijst bij gaan houden van nick met username combinaties. Bij elke username wijziging verander je de lijst, zodat je bot nog weet wie wie is.

Verwijderd

Topicstarter
Helmet schreef op maandag 21 maart 2005 @ 14:10:
sommige IRC-servers kennen het Commando ISON een reply van dit commando ziet er als volgt uit:
code:
1
2
3
<- :xs4all.nl.quakenet.org 303 Helmet`bnc :Helmet`bnc  (user is online)
-> xs4all.nl.quakenet.org ison Helmet
<- :xs4all.nl.quakenet.org 303 Helmet`bnc : (geen online user)


dit zou je dan met een evt timer op kunnen vangen
Maar als de gebruiker dan zijn nickname veranderd en hij zit niet bij de bot in het channel dan is de gebruiker uitgelogd volgens de bot :P
Is het niet beter om de gebruiker automagisch uit te loggen als hij/zij zich niet in een channel bevind waar de bot ook in zit :)
Ja denk dat ik dat maar ga doen.. grote nadeel daarvan is wel dat je niet je preform list kan gebruiken om in te loggen op de bot :(
Verwijderd schreef op maandag 21 maart 2005 @ 20:20:
Zoals Helmet al aan gaf kun je de gebruiker automatisch uitloggen bij part of quit. Daarnaast kun je een lijst bij gaan houden van nick met username combinaties. Bij elke username wijziging verander je de lijst, zodat je bot nog weet wie wie is.
Part en Quit kan ik alleen zien als de gebruiker in het zelfde channel zit als de bot :(

  • curry684
  • Registratie: Juni 2000
  • Laatst online: 07-05 22:49

curry684

left part of the evil twins

Je kunt natuurlijk ook tegen services aan programmeren, zo werkt "/msg nickserv info nickname" op irc.tweakers.net perfect om te achterhalen wie de betreffende user is, of ie ID'd heeft en of ie online is.

Professionele website nodig?


  • Cypher87
  • Registratie: Oktober 2004
  • Laatst online: 23-01 17:24
Of de notify gebruiken...

  • Vipertje
  • Registratie: Oktober 2001
  • Laatst online: 00:36
curry684 schreef op dinsdag 22 maart 2005 @ 14:06:
Je kunt natuurlijk ook tegen services aan programmeren, zo werkt "/msg nickserv info nickname" op irc.tweakers.net perfect om te achterhalen wie de betreffende user is, of ie ID'd heeft en of ie online is.
Kan uiteraard maar dan zit je redelijk vast aan 1 netwerk en kan je als je bv op efnet die bot wilt hebben weer helemaal niks je maakt die bot dan sterk afhankelijk van 1 netwerk

  • curry684
  • Registratie: Juni 2000
  • Laatst online: 07-05 22:49

curry684

left part of the evil twins

martijnf schreef op dinsdag 22 maart 2005 @ 14:30:
[...]


Kan uiteraard maar dan zit je redelijk vast aan 1 netwerk en kan je als je bv op efnet die bot wilt hebben weer helemaal niks je maakt die bot dan sterk afhankelijk van 1 netwerk
Uhhhhhhh........ wat dacht je van:
C#:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
public interface IServicesConnector
{
// Define signatures for querying user status
}

public class SirvConnector : IServicesConnector 
{
// Implementations for Sirv networks
}

public class AnopeConnector : IServicesConnector 
{
// Implementations for Anope networks
}

public class GenericConnector : IServicesConnector 
{
// Implementations for networks with unknown or no services
}

Je zit in een OOP omgeving hoor, doe lekker plug&play 8)7

Professionele website nodig?

Pagina: 1