Team Switch Limit and Queue System Implemented – API Token Authentication Upgrade
Changelog
English Version
1. Team Player Limit for Switching
- New Feature: Implemented a restriction that only allows players to switch teams if the target team has fewer than 50 players.
- Details:
- Integrated the
get_gamestateAPI to check the current number of players on both teams. - Updated the bot to verify the player count on the target team before allowing a switch.
- Integrated the
2. Queue System for Full Teams
- New Feature: Added a queue system for players attempting to switch when the target team is full (50 players).
- Details:
- Players are added to a queue if the target team is at capacity.
- The bot checks every 10 seconds if space is available and switches the first player in the queue when possible.
3. API Token Authentication
- Improvement: Removed the need for username and password in the API authentication process, relying solely on the API token.
- Details:
- Removed username and password from configuration and authentication.
- The bot now uses only the API token to authenticate requests.
4. Switched to Using get_detailed_players API
- Enhancement: Replaced
get_playerswithget_detailed_playersto obtain more detailed player information, including team affiliation and roles. - Details:
- This allows for more accurate team and player tracking during switches.
5. Refactor of Discord.py Code
- Code Update: Refactored parts of the code to follow best practices with
discord.pyversion 2.x. - Details:
- Moved background task handling (
process_switch_queue) to thesetup_hookmethod to align with new discord.py event handling. - Ensured the bot remains compatible with the latest versions of discord.py.
- Moved background task handling (
6. Updated Translations
- Enhancement: Added English translations for international support and updated existing messages in the
translations.jsonfile. - Details:
- Provided translations for new features such as queue notifications and API initialization.
Deutsche Version
1. Spielerbegrenzung beim Teamwechsel
- Neue Funktion: Implementierung einer Begrenzung, die es Spielern nur erlaubt, das Team zu wechseln, wenn das Zielteam weniger als 50 Spieler hat.
- Details:
- Integration des API-Endpunkts
get_gamestate, um die aktuellen Spielerzahlen auf beiden Teams zu überprüfen. - Der Bot prüft nun die Spieleranzahl auf dem Zielteam, bevor ein Wechsel erlaubt wird.
- Integration des API-Endpunkts
2. Warteschlangensystem für volle Teams
- Neue Funktion: Hinzufügen eines Warteschlangensystems für Spieler, die das Team wechseln möchten, wenn das Zielteam voll ist (50 Spieler).
- Details:
- Spieler werden zur Warteschlange hinzugefügt, wenn das Zielteam die maximale Spieleranzahl erreicht hat.
- Der Bot überprüft alle 10 Sekunden, ob Platz verfügbar ist, und wechselt den ersten Spieler in der Warteschlange, sobald dies möglich ist.
3. API-Token-Authentifizierung
- Verbesserung: Entfernung der Notwendigkeit von Benutzername und Passwort in der API-Authentifizierung, wobei jetzt nur noch der API-Token verwendet wird.
- Details:
- Benutzername und Passwort wurden aus der Konfiguration und Authentifizierung entfernt.
- Der Bot verwendet nun ausschließlich den API-Token zur Authentifizierung der Anfragen.
4. Wechsel zu get_detailed_players API
- Erweiterung: Ersetzung von
get_playersdurchget_detailed_players, um detaillierte Spielerinformationen einschließlich Teamzugehörigkeit und Rollen zu erhalten. - Details:
- Dies ermöglicht eine genauere Verfolgung der Teams und Spieler während des Wechsels.
5. Refactoring des Discord.py-Codes
- Code-Update: Teile des Codes wurden refaktoriert, um den Best Practices von
discord.pyVersion 2.x zu folgen. - Details:
- Die Hintergrundaufgabe (
process_switch_queue) wurde in die Methodesetup_hookverschoben, um die neue Ereignisverwaltung vondiscord.pyzu unterstützen. - Sicherstellung der Kompatibilität des Bots mit den neuesten Versionen von discord.py.
- Die Hintergrundaufgabe (
6. Aktualisierte Übersetzungen
- Verbesserung: Hinzufügen englischer Übersetzungen für internationale Unterstützung und Aktualisierung bestehender Nachrichten in der Datei
translations.json. - Details:
- Bereitstellung von Übersetzungen für neue Funktionen wie Warteschlangenbenachrichtigungen und API-Initialisierung.