AnmeldungClient.h 4.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102
  1. #pragma once
  2. #include "../Include/KSGNetwork.h"
  3. #include <Critical.h>
  4. namespace KSGClient
  5. {
  6. // Wird verwendet um sich für Spiele anzumelden
  7. // Kann nur von eingeloggten Clients verwendet werden
  8. class AnmeldungClient : public AnmeldungServerClient
  9. {
  10. private:
  11. Framework::Text ip;
  12. unsigned short port;
  13. int cId;
  14. Network::Klient* k;
  15. char* key;
  16. unsigned char keyLen;
  17. Framework::Critical cs;
  18. Framework::Text err;
  19. public:
  20. // Konstruktor
  21. AnmeldungClient(int klientId, unsigned short port, const char* ip, const char* key, unsigned char keyLen);
  22. // Destruktor
  23. ~AnmeldungClient();
  24. // verbindet sich mit dem zugewiesenen Anmeldung Server
  25. // Gibt 1 zurück, falls der Vorgang erfolgreich ist, 0 sonnst
  26. bool verbinde() override;
  27. // erstellt eine gruppe
  28. // karteId: Die Id der Karte für die die Gruppe erstellt werden soll
  29. // Gibt bei Erfolg die Id der Gruppe zurück. Bei misserfolg wird 0 zurückgegeben
  30. int gruppeErstellen(int karteId) override;
  31. // Betritt eine Gruppe
  32. // gruppeId: Die Id der Gruppe
  33. // mitglieder: Nach erfolgreichem Aufruf enthält diese Liste die Lister der Account Ids der Gruppenmitglieder
  34. // anzahl: Nach erfolgreichem Aufruf wird hier die Anzahl der Gruppenmitglieder gespeichert
  35. // Gibt 1 zurück, falls der Vorgang erfolgreich ist, 0 sonnst
  36. bool gruppeBetreten(int gruppeId, Framework::Array< int >* mitglieder, int* anzahl) override;
  37. // Verlässt eine Gruppe
  38. // gruppeId: Die Id der Gruppe
  39. // Gibt 1 zurück, falls der Vorgang erfolgreich ist, 0 sonnst
  40. bool gruppeVerlassen(int gruppeId) override;
  41. // Trägt die Gruppe in die Warteschlange für die Karte ein (nur für den Gruppen Administrator)
  42. // gruppeId: Die Id der Gruppe
  43. // Gibt 1 zurück, falls der Vorgang erfolgreich ist, 0 sonnst
  44. bool gruppeAnmelden(int gruppeId) override;
  45. // Trägt die Gruppe aus der Warteschlange für die Karte aus (nur für den Gruppen Administrator)
  46. // gruppeId: Die Id der Gruppe
  47. // Gibt 1 zurück, falls der Vorgang erfolgreich ist, 0 sonnst
  48. bool gruppeAbmelden(int gruppeId) override;
  49. // läht Spieler ein die Gruppe zu betreten (nur für den Gruppen Administrator)
  50. // accountId: Die Id des Accounts
  51. // gruppeId: Die Id der Gruppe
  52. // Gibt 1 zurück, falls der Vorgang erfolgreich ist, 0 sonnst
  53. bool gruppeSpielerEinladen(int accountId, int gruppeId) override;
  54. // Zieht die Einladung eine Gruppe zu betreten zurück (nur für den Gruppen Administrator)
  55. // accountId: Die Id des Accounts
  56. // gruppeId: Die Id der Gruppe
  57. // Gibt 1 zurück, falls der Vorgang erfolgreich ist, 0 sonnst
  58. bool gruppeEinladungAbbrechen(int accountId, int gruppeId) override;
  59. // Einladung zur Gruppe ablehnen
  60. // gruppeId: Die Id der Gruppe
  61. // Gibt 1 zurück, falls der Vorgang erfolgreich ist, 0 sonnst
  62. bool gruppeEinladungAblehnen(int gruppeId) override;
  63. // wirft Spieler aus Gruppe (nur für den Gruppen Administrator)
  64. // accountId: Die Id des Accounts
  65. // gruppeId: Die Id der Gruppe
  66. // Gibt 1 zurück, falls der Vorgang erfolgreich ist, 0 sonnst
  67. bool kickSpielerAusGruppe(int accountId, int gruppeId) override;
  68. // Legt fest, ob die Spieler in der Gruppe alleine spielen wollen, oder ob weitere Spieler aus der Warteschlange hinzugefügt werden sollen bis die Karte voll ist
  69. // gruppeId: Die Id der Gruppe
  70. // spielStarte: 1:=alleine spielen, 0:=auf volles Spiel warten
  71. // Gibt 1 zurück, falls der Vorgang erfolgreich ist, 0 sonnst
  72. bool gruppeSpielStarten(int gruppeId, bool spielStarten) override;
  73. // Sendet eine Nachricht an den Gruppen Chat
  74. // gruppeId: Die Id der Gruppe
  75. // nachricht: Die Nachricht, die gesendet werden soll
  76. // Gibt 1 zurück, falls der Vorgang erfolgreich ist, 0 sonnst
  77. bool gruppeNachricht(int gruppeId, const char* nachricht) override;
  78. // Meldet den eingeloggten Account in der Warteschlange für eine Karte an
  79. // karteId: Die Id der Karte
  80. // Gibt 1 zurück, falls der Vorgang erfolgreich ist, 0 sonnst
  81. bool anmelden(int karteId) override;
  82. // Meldet den eingeloggten Account aus der Warteschlange ab
  83. // Gibt 1 zurück, falls der Vorgang erfolgreich ist, 0 sonnst
  84. bool abmelden() override;
  85. // Erhält die Verbindung aufrecht
  86. // Gibt 1 zurück, falls der Vorgang erfolgreich ist, 0 sonnst
  87. // Sollte während einer bestehenden Verbindung etwa einmal alle 60 Sekunden aufgerufen werden, da sonst der Router die Verbindung automatisch trennt
  88. bool keepAlive() override;
  89. // Trennt die Verbindung zum Server
  90. // Gibt 1 zurück, falls der Vorgang erfolgreich ist, 0 sonnst
  91. // Sollte erst nach einem erfolgreichen Aufruf von verbinde aufgerufen werden
  92. bool trenne(bool abmelden) override;
  93. // Gibt 1 zurück, falls der Client verbunden ist, 0 sonst
  94. bool istVerbunden() const override;
  95. // gibt den Letzten Fehlertext zuück
  96. // sollte erst aufgerufen werden, nachdem eine andere aufgerufene Methode fehlgeschlagen ist
  97. const char* getLetzterFehler() const override;
  98. };
  99. }