Witam. Mam do napisania bota gg w C# i zdecydowałem się użyć biblioteki sHGG.
static void Main(string[] args1)
{
gg = new sHGG();
gg.GGNumber = "xxxxxxxx";
gg.GGPassword = "xxxxxxxxx";
gg.GGStatus = GGStatusType.Available;
gg.GGDescription = "Ala ma kota";
gg.GGLogin(gg.GGGetActiveServer());
gg.GGMessageReceive += new sHGG.GenericEventHandler<sHGG.MessageReceiveEventArgs>(ReceiveMessage);
}
static void ReceiveMessage(object source, sHGG.MessageReceiveEventArgs e)
{
if (!gg.Users.Contains(e.Number)) gg.Users.Add(new GGUser(e.Number));
String[] atributes = e.Message.Split(' ');
String[] args = new string[0];
if (atributes.Length==2) args = new string[] {atributes[1]};
if (atributes.Length==3) args = new string[] {atributes[1], atributes[2]};
gg.GGSendMessage(e.Number,Response(xxxxxxx,atributes[0],args));
}
Metoda odbioru wiadomości ma za zadanie treść wiadomości podzielić używając spacji jako separatora, a następnie wrzucić odpowiednie parametry do funkcji:
static private String Response(int gg, String command, String[] arguments);
gdzie command jest pierwszym elementem tablicy powstałej przez splita, a reszta elementów jest podana w tablicy arguments.
Program, uruchamia się, status bota na gg się zmienia na dostępny i wszystko jest niby ok. Problem jest taki, że gdy napiszemy do niego polecenie z komunikatora tlen (np. pomoc) to poprawnie zwraca wynik (np. listę komend), ale gdy napiszemy do niego z każdego innego komunikatora (AQQ, GG) to zwracany jest wynik błędny ("Zła Komenda!"). A gdy spróbujemy pogadać z botem przez WebGG to wyłącza się zupełnie. Czy ktoś mógłby mi powiedzieć czemu jedna i ta sama wiadomość wysłana z tlena jest poprawnie odczytywana a wysłana z innych komunikatorów nie?