Friendly-Helpers

Locker segeln – clever kämpfen:
Wir vereinen entspannte Co-op-Gefechte & Unternehmen.

Kapitän!

Wir sind ein entspannter WoWS-Clan ohne Pflichten. Real-Life schlägt immer Pixel. Täglich findet sich eine Crew für Co-op-Runs oder Unternehmen.

Leitlinien

  • Lockeres Miteinander, kein Skill-Stress
  • Hilfsbereite Veteranen für Builds & Fragen
  • Keine Discord- oder Mikro-Pflicht
  • Freude am Experimentieren mit Schiffen

Co-op & Unternehmen

Über 60 % unserer Gefechte laufen im Co-op – perfekt zum entspannten Segel.

Anheuern & Mitfahren
Co-op Vorschau

Discord-Ankerplatz

Discord Vorschau

Unser Discord ist das Steuerrad für Absprachen, Screenshots & Patch-Talk. Reinschauen reicht – Mikrofon bleibt freiwillig.

Zum Discord

Bot-Labor

Unser Discord-Bot mit WoWS-API & lokal aufbereiteter ships.json liefert dir umfassende Schiffsdaten direkt im Chat. Er läuft 24/7 stabil durch einen externen Watchdog und wurde um viele Funktionen erweitert – inklusive Slash-Commands, Vergleichsmodul, dynamischen Filtern und automatischer Datenaktualisierung.

Projektziel

Technische Basis

Datenquellen

Build-Skripte

Hauptbefehle

Slash-Commands (neu)

Clan-Member Daten-Pipeline

  1. clans/info → member_ids
  2. account/info → letzter Login
  3. clans/accountinfo → Nickname & Rolle

Ausgabe in Embeds: Führungskräfte gold, Mitglieder blau, bei Bedarf seitenweise.

Watchdog (Detail)

Mapping & Übersetzungen

CLASS_MAP, NATION_MAP und inverse Maps übersetzen interne API-Werte in verständliche deutsche Begriffe.

Changelog

27.06.2025 +
  • crews.json wird jetzt auch vom Watchdog überwacht.
  • Die Datei wird automatisch neu erstellt, wenn sie fehlt oder älter als 7 Tage ist.
  • Die Logik und das Verhalten sind identisch zu ships.json und achievements.json.
  • Änderungen an crews.json führen wie bei den anderen Dateien zu einem sauberen Bot-Neustart.
  • Damit sind alle wichtigen Datenquellen des Bots vollständig automatisiert und immer aktuell.
  • 🔧 Neue Slash-Kommandos /kommandant und /kommandanten implementiert:
    • /kommandanten zeigt alle Kommandanten einer Nation in Form einzelner Embeds.
    • /kommandant zeigt Details zu einem bestimmten Kommandanten, inklusive Autocomplete für den Namen.
  • 📜 Log-System überarbeitet:
    • Neues universelles Logging für sowohl Prefix- als auch Slash-Kommandos über log_cmd().
    • Erkennt Kontexttyp automatisch (ctx oder interaction) und loggt in bot_commands.log mit User-ID und Befehl.
    • Auch Subcommands und Eingabewerte werden erfasst (z. B. /errungenschaften epic).
  • 🧩 Beginn der Befehls-Auslagerung:
    • Befehl /aboutme erfolgreich in eigene Datei commands/aboutme.py ausgelagert.
    • Zentrale Initialisierung über setup_aboutme(bot, log_cmd).
26.06.2025 +
  • Slash-Command /vergleich erweitert – nutzt nun die bestehende Logik aus !info zur Darstellung von Schiffsdaten.
  • Alle relevanten Werte werden direkt aus der ships.json extrahiert und als strukturierter Vergleich angezeigt.
  • Verglichene Felder umfassen u. a.:
    • HP, Geschwindigkeit, Wendekreis, Ruderstellzeit
    • Hauptgeschütze: Name + Türme, Nachladezeit, Reichweite, Feuerrate, Streuung
    • Torpedos: Geschwindigkeit und Schaden
    • Erkennbarkeit: Schiff / Flugzeug / U-Boot
    • Sekundärwaffen: Anzahl, Reichweite, Brandwahrscheinlichkeit
    • Premium- und Spezialstatus
  • Technisch basiert die Darstellung auf neuen Helper-Funktionen: _get(), _main_gun(), _torp()
  • Embed-Farbe: 0x00AA55
  • Autovervollständigung für beide Parameter
  • Validierung mit Fehlermeldung (ephemeral), wenn eines der Schiffe nicht bekannt ist
  • Neues Bot-Kommando !neustart implementiert – löst einen kontrollierten Neustart über den Watchdog aus.
  • Der Watchdog erkennt nun das Vorhandensein der Datei reboot.flag und startet den Bot sauber neu (inkl. Prozessbeendigung und Logging).
  • Sicherheitslogik: Nur der Bot-Owner kann den Neustart-Befehl ausführen.
  • Optionaler Infotext im Log: [WATCHDOG] 🔁 Info: Discord-Auslöser: <Name> (<ID>)
24.06.2025 +
  • Neues Kommando !errungenschaften im Discord-Bot zur Anzeige aller WoWS-Erfolge.
  • Datenquelle über build_achievements.py – Die JSON-Datei achievements.json wird lokal erzeugt (API mit SSL-Bypass, Paging-Unterstützung).
  • Dynamische Typenerkennung – Neue oder unbekannte type-Werte aus der API werden automatisch erkannt und verwendbar.
  • Anzeige nach Typfilter – Erfolge können gezielt nach type (z. B. epic, festival, clan) gefiltert ausgegeben werden.
  • Subtypen berücksichtigt – Wenn vorhanden, wird auch sub_type (z. B. solo, group) angezeigt.
  • Alle Erfolge sichtbar – Unabhängig vom hidden-Status werden sämtliche Erfolge pro Typ angezeigt.
  • Adminschutz für Komplettliste – Nur Administratoren können über !errungenschaften alle alle Einträge ungefiltert abrufen.
  • Einzelausgabe ohne Pagination – Jede Errungenschaft wird als separates Discord-Embed dargestellt.
  • Erweiterte Hilfe – Der !help-Befehl beschreibt nun auch die Errungenschaftsfunktionen samt Typ-Übersicht.
23.06.2025 +
  • Neue Konsolenmeldungen in watchdog.py für maximale Transparenz bei jedem Durchlauf.
  • Statusanzeigen auch bei unveränderten Dateien – zum Beispiel [CHECK] ships.json ist aktuell – kein Neubau nötig.
  • Remote-Abgleich erweitert – Meldung [REMOTE] bot_simple.py unverändert – keine Änderungen. erscheint bei Gleichstand.
  • Internetverbindung wird vor jedem Durchlauf geprüft – mit Meldungen wie [NET] Internetverbindung steht. oder [NET] Offline – verschiebe Datei-Checks.
  • Beginn jeder Schleife ist deutlich markiert – zum Beispiel [LOOP] Neue Runde – 2025-06-24 11:30:00.
  • JSON-Rebuilds führen nun ebenfalls zu einem Bot-Neustart, auch wenn bot_simple.py nicht verändert wurde.
  • Die Funktion ensure_json_up_to_date() liefert jetzt Rückgabewerte und gibt für jede Datei einen Status aus.
  • Bestehender Bot-Prozess wird bei Änderungen sauber beendet und anschließend neu gestartet (Prozessbaum wird vollständig geschlossen).
  • Die bestehende Neustart-Logik wurde nicht verändert, sondern nur erweitert – stabiler Ablauf bleibt erhalten.
  • Code wurde umfassend kommentiert und logisch in Abschnitte gegliedert (zum Beispiel IMPORTS & BASIS-KONSTANTEN, MAIN LOOP).
22.06.2025 +
  • Logging in bot_simple.py – Jede Bot-Aktion schreibt in die Log-Datei bot.log (Level INFO).
  • Heartbeat im Watchdog – Jede Minute Konsolenzeile “[WATCHDOG] Statusprüfung: Bot läuft …”.
  • Sequenzielle Datei-Prüfung – Reihenfolge bot_simple.pyships.json mit differenzierten Meldungen.
  • Sauberer Neustart – Der Bot-Prozess wird terminiert, bevor er neu gestartet wird.
  • Erweitertes Konsolen-Logging – Alle Schritte des Watchdogs enthalten aussagekräftige Log-Zeilen.
21.06.2025 +
  • Nation-Übersetzung auf Deutsch – Einführung einer NATION_MAP, die alle WoWS-Nationen von Englisch auf Deutsch abbildet (z. B. germany → Deutschland, pan_asia → Pan-Asien).
  • Module und Schiffsbilder einbinden – Module und Schiffe ziehen ihre Thumbnail-URLs direkt aus der JSON und zeigen sie per Embed.set_thumbnail. Später ergänzt um die Anzeige des großen Schiffsbildes oben im Embed via Embed.set_image(url=…).
  • Sichtweiten korrekt auslesen – Aus default_profile.concealment die Werte für Wasser-, Luft- und U-Boot-Erkennung gezogen und als „m“ ausgegeben.
  • Torpedowerte aus Modulen – Anstatt aus dem Ship-Profil werden nun torpedo_speed und max_damage aus dem ersten Modul mit profile.torpedoes gelesen.
  • Preise & Flags – Einlesen von is_premium, is_special, price_credit und price_gold aus der API; Ausgabe als „Ja/Nein“ bzw. Beträge.
  • Module als eigene Embeds – Jedes Modul bekommt ein eigenes Embed mit Name, Typ, Preis, Profilwerten und Thumbnail.
  • Fehler-Fallback („n/a“) und Anzeige-Schema – Wo keine Daten verfügbar sind (None/leeres Dict), wird konsequent „–“ ausgegeben. Alle Felder zeilenweise („Name: Wert“) statt nebeneinander.
  • Sekundär-Reichweite aus default_profile.atbas.distance – Hinzufügen des Felds secondary_range im JSON und Ausgabe im Bot.
  • Anzahl der Hauptgeschütztürme – Aus default_profile.hull.artillery_barrels übernommen und im Feld „Hauptgeschütze (… (X Türme))“ angezeigt.
  • Feuerrate & Streuung – Neuerstellung der Felder gun_rate und max_dispersion aus default_profile.artillery im JSON und Bot.
  • Römische Tier-Anzeige – Konvertierung der arabischen Tierzahl 1–10 in römische Ziffern („I“ bis „X“) im Embed-Titel.
  • !liste-Command erweitert – Unterstützung von !liste allein, !liste <Nation>, !liste <Nation> <Klasse> mit Paginierung bei langen Listen.
  • !help komplettiert – Dokumentation aller Befehle inklusive Nationen- und Klassenliste direkt im Chat.
  • Button-Link zur Wargaming-Wiki – Hinzufügen eines Buttons „Mehr zur <Schiffsname> auf der Wiki ansehen“ unter dem Embed.
  • Pagination-Buttons für Module – Einbau von „⬅️“/„➡️“-Buttons, um durch die Modul-Embeds zu blättern.
  • Brandwahrscheinlichkeit (Sekundär-HE) – Auslesen von default_profile.atbas.slots.burn_probability, Speichern im JSON und Ausgabe als Prozentwert.
  • secondary_data-Array – Im Build-Script Zusammenstellung aller Sekundär-Module mit Name, Anzahl, Reichweite und Burn-Probability.
  • Mobility-Daten – Einlesen von default_profile.mobility.max_speed, .rudder_time, .turning_radius und Ausgabe als „Höchstgeschwindigkeit“, „Ruderstellzeit“ und „Wendekreis“.
  • Embed-Farben für Premium/Spezial – Spezialschiffe: Silber (0xC0C0C0), Premiumschiffe: Gold (0xFFD700), Standard-Schiffe: Blau (0x0077CC).
  • !liste Premiumschiffe – Neuer Sub-Command, der mit !liste Premiumschiffe alle Schiffe mit is_premium == True listet; in !help ergänzt.
  • Premium- & Spezial-Status im Embed – Zusätzliche Felder „Premiumschiff: Ja/Nein“ und „Spezialschiff: Ja/Nein“ nach Brandwahrscheinlichkeit ausgegeben.

Impressum

Friendly-Helpers Clan • Lars Heuschkel • Merschweg 6a • 33449 Langenberg

E-Mail: immerda [at] friendly-helpers.de

Wir haben keinerlei Verbindung zu Wargaming oder Wargaming.net.

Alle im Bot und auf dieser Website verwendeten Bilder, Logos und Markenzeichen stammen aus der Wargaming API und unterliegen den Urheberrechten von Wargaming.net. Jegliche Nutzung erfolgt ohne ausdrückliche Genehmigung von Wargaming.net in dessen rechtlicher Verantwortung.