FrederikP / csgo-ts-mover

Moves players to teamspeak channels according to the team they are on. Especially fun for retake and similar game modes.
MIT License
14 stars 5 forks source link

Moin nach Karlsruhe #1

Closed BliZzi1337 closed 4 years ago

BliZzi1337 commented 4 years ago

Wir suchen genau so ein Plugin. Wir haben nur keine Ahnung wie man es installiert. Wir haben einen VServer wo ein Teamspeakserver läuft und mehrere gameserver. Das Plugin auf dem Gameserver wurde erfolgreich erstellt sowie die .cfg wurde erstellt. Nun scheitern wir an dem Punkt wo es um Phyton geht da steigen wir einfach nicht durch. Magst du uns helfen wir würden für den Service bezahlen. MFG Chris

erreichbar per teamspeak 213.202.228.89:27215 steam https://steamcommunity.com/id/BliZzi1337/ und hier bei github unter meiner E-Mail.

Vielen Dank

FrederikP commented 4 years ago

Moin,

ich hab im Moment dank Nachwuchs und viel Arbeit nicht so viel Zeit für private Projekte. Aber ich versuch euch gerne - so gut es geht - (ohne Bezahlung) zu helfen.

Das Plugin läuft auf jeden Fall in der Form noch, das hab ich gerade letztens nochmal ausprobiert. Es hat allerdings noch so seine Schwächen, einfach weil es nicht viele (soweit ich weiß) nutzen und ich auch nicht viel Zeit habe.

Kannst du ein bisschen konkreter sagen woran es gerade scheitert? Ich kann dann gerne nochmal in diesem Zuge ein detaillierteres Tutorial erarbeiten. Am besten du stellst hier einfach alle Fragen, die dich daran hindern voranzukommen und ich nutz das als Input, um ein Tutorial zu schreiben.

Wenn ihr dann mit dem Tutorial klarkommt, dann ist das n guter Beweise, dass das Tutorial auch was bringt.

BliZzi1337 commented 4 years ago

Glückwunsch zum Nachwuchs. Meine Tochter ist 3 und hält uns auch ganz gut auf trap. Ich habe bisher die sourcemod dateien auf den Gameserver geschoben, in dem Zuge wurde auch eine .cfg erstellt. Weiter sind wir noch nicht. Ich habe einfach keinen Plan wie ich mit dem Python verfahren soll. 213.202.228.89:9987 Das ist unser Teamspeakserver. Mysql datenbanken haben wir auch. Also ansich scheitert es an der config und an der .py datein. Ich weiß nicht wohin damit.

MFG Chris Gölling aka Blizzi

Am So., 29. März 2020 um 18:38 Uhr schrieb Frederik Petersen < notifications@github.com>:

Moin,

ich hab im Moment dank Nachwuchs und viel Arbeit nicht so viel Zeit für private Projekte. Aber ich versuch euch gerne - so gut es geht - (ohne Bezahlung) zu helfen.

Das Plugin läuft auf jeden Fall in der Form noch, das hab ich gerade letztens nochmal ausprobiert. Es hat allerdings noch so seine Schwächen, einfach weil es nicht viele (soweit ich weiß) nutzen und ich auch nicht viel Zeit habe.

Kannst du ein bisschen konkreter sagen woran es gerade scheitert? Ich kann dann gerne nochmal in diesem Zuge ein detaillierteres Tutorial erarbeiten. Am besten du stellst hier einfach alle Fragen, die dich daran hindern voranzukommen und ich nutz das als Input, um ein Tutorial zu schreiben.

Wenn ihr dann mit dem Tutorial klarkommt, dann ist das n guter Beweise, dass das Tutorial auch was bringt.

— You are receiving this because you authored the thread. Reply to this email directly, view it on GitHub https://github.com/FrederikP/csgo-ts-mover/issues/1#issuecomment-605664014, or unsubscribe https://github.com/notifications/unsubscribe-auth/AD45X5KGFXGBEDTGS5I4LLTRJ52RNANCNFSM4LV5HE6Q .

FrederikP commented 4 years ago

Okay, was läuft denn für ein Betriebssystem auf dem Server? Debian? Dann kann ich das Tutorial ein bisschen darauf auslegen.

BliZzi1337 commented 4 years ago

Genau weiß ich das garnicht. Da wir alles über Plesk machen. Ich habe über das webinterface vom Vserver Zugang zu einer Konsole, wenn du einen command hast zum auslesen der OS, dann kann ich dir mehr Infos geben. Plesk spuckt da nicht viele Infos aus.

Ubuntu v.18.04 r4.15.18-23-pve

Laut plesk

MFG

BliZzi1337 commented 4 years ago

Ich habe jetzt Webmin für Ubuntu auf dem VServer installiert. Nun habe ich mehr Übersicht über alle Daten, ich hoffe das hilft für die Installation.

FrederikP commented 4 years ago

Okay, ich versuch am Wochenende dazu zu kommen. Aber schonmal als Ankündigung: Das meiste wird sich auf der Kommandozeile abspielen. 1. Kenn ich mich nicht gut mit Software wie Plesk und co aus. Und 2. sollte es keine Voraussetzung sein. Schauen wir mal was das wird ;)

FrederikP commented 4 years ago

@BliZzi1337 Hab jetzt doch schon heute schnell n genaueren Guide runtergeschrieben: https://github.com/FrederikP/csgo-ts-mover#tutorial

Probierts mal aus und sagt mir wos stockt oder was unverständlich ist. Habs aus dem Kopf gemacht, kann sein, dass ich irgendwo was ausgelassen hab.

Ich empfehle direkt per ssh auf die Kiste zu gehen (statt per Plesk terminal), aber nur weil ich nicht einschaetzen kann, ob ihr dort die screen tastenkombinationen (strg-a + d) richtig uebermitteln koennt.

BliZzi1337 commented 4 years ago

Alles klar danke dir schon mal für das Tutorial. Ich werde es morgen direkt mal durchgehen. MFG

BliZzi1337 commented 4 years ago

root@c1360796:~/csgo-ts-mover# . venv/bin/activate (venv) root@c1360796:~/csgo-ts-mover# export FLASK_APP=ts-mover-service.py (venv) root@c1360796:~/csgo-ts-mover# flask run --port 6666 Traceback (most recent call last): File "/root/csgo-ts-mover/venv/bin/flask", line 8, in sys.exit(main()) File "/root/csgo-ts-mover/venv/lib/python3.6/site-packages/flask/cli.py", line 966, in main cli.main(prog_name="python -m flask" if as_module else None) File "/root/csgo-ts-mover/venv/lib/python3.6/site-packages/flask/cli.py", line 586, in main return super(FlaskGroup, self).main(*args, **kwargs) File "/root/csgo-ts-mover/venv/lib/python3.6/site-packages/click/core.py", line 760, in main _verify_python3_env() File "/root/csgo-ts-mover/venv/lib/python3.6/site-packages/click/_unicodefun.py", line 130, in _verify_python3_env " mitigation steps.{}".format(extra) RuntimeError: Click will abort further execution because Python 3 was configured to use ASCII as encoding for the environment. Consult https://click.palletsprojects.com/python3/ for mitigation steps.

This system supports the C.UTF-8 locale which is recommended. You might be able to resolve your issue by exporting the following environment variables:

export LC_ALL=C.UTF-8
export LANG=C.UTF-8

(venv) root@c1360796:~/csgo-ts-mover#

Was habe ich falsch gemacht?

BliZzi1337 commented 4 years ago

Ich melde mich heute Nachmittag ob es klappt. Das Tutorial ist super. Jetzt verstehe Ich erst den Sinn hinter den Python Dateien.

​export LC_ALL=C.UTF-8 export LANG=C.UTF-8

Habe dies eingegeben und kam etwas. Aber genaures probiere ich später.

Mfg

BliZzi1337 commented 4 years ago

Wenn ich am ende des Tutorials angekommen bin sieht es so aus. Aber Logs sehe ich keine. Muss ich die Spieler vorher in die Config schreiben? Oder passiert das automatisch?

SSH Screenshot: https://prnt.sc/rrkaew Config Datei: https://prnt.sc/rrkc7r

Kann man irgendwo auslesen ob was passiert oder ob Fehler auftreten? Ab wann wird überhaupt gemoved direkt im warmup oder erst wenn rdy?

MFG

FrederikP commented 4 years ago

Aber Logs sehe ich keine.

Also was du da im SSH Screenshot siehst, sind die ersten Logzeilen. Sobald auf dem CSGO Server dann etwas passiert, sollten auch schon Einträge kommen, selbst wenn die Spieler noch nicht konfiguriert sind. Also lass das SSH Fenster offen und joine parallel dem Server. Wenn du einem Team beitrittst und eine Runde beginnt sollte folgender Eintrag kommen im SSH Fenster:

Need TS mapping for steam id: [...]

Das passiert aber erst sobald mindestens so viele spieler auf dem csgo server sind, wie in lobby_threshold konfiguriert. Ich sehe du hast es schon auf 1 gestellt, also sollte eigentlich immer so ein log eintrag kommen, sobald eine runde anfaengt, in der mindestens ein spieler in einem team ist. Kann sein, dass es nach dem warmup losgeht. Wir haben es nur auf einem retake server ohne warmup laufen, deshalb bin ich mir nicht sicher.

Falls du so eine Logzeile noch nicht siehst, funktioniert die Kommunikation zwischen dem csgo plugin und dem python server nicht.

Wie sieht denn die config von dem csgo plugin aus? Kannst du das Plugin aus und anschalten per rcon in csgo?

sm_rcon sm_ts_mover_enabled 0 sm_rcon sm_ts_mover_enabled 1

Falls da ne fehlermeldung kommt laeuft das sourcemod plugin nicht (richtig).

Edit: Ja die Spielermappings müssen dann im Moment manuell einkonfiguriert werden. Ist ein bisschen lästig, aber ich hatte bisher nicht die Zeit (und wohl auch kein anderer) um das komfortabler zu gestalten.

BliZzi1337 commented 4 years ago

sm_rcon sm_ts_mover_enabled 0 sm_rcon sm_ts_mover_enabled 1 bei den commands kommen keine fehler meldungen, aber auch keine anderen Meldungen.

sm_rcon sm_ts_mover_enabled 1 L 04/02/2020 - 16:11:45: [basecommands.smx] "Console<0>" console command (cmdline "sm_ts_mover_enabled 1") L 04/02/2020 - 16:11:45: rcon from "213.202.228.89:41602": command "sm_rcon sm_ts_mover_enabled 1"

Wie komme ich per ssh wieder in die logs von dem plugin. Oder muss ich beim Tutorial wieder oben anfangen?

BliZzi1337 commented 4 years ago

Wie muss das Mapping aussehen?

steam_to_ts_mapping:

Hans

'46564198230576902': P5H2hrN6+gpQI4n/dXp3p17vtY0=

Peter

'46561598032676402': yXM6PUfbCcPU+joxIFek1xOQwwQ=

BliZzi1337

'46561598032676402': yXM6PUfbCcPU+joxIFek1xOQwwQ=

Woher bekomme ich den ersten wert 46561598032676402? und woher den zweiten yXM6PUfbCcPU+joxIFek1xOQwwQ= oder hänge ich aufm schlauch

FrederikP commented 4 years ago

ne nicht von oben anfangen. Wie bist du denn am Ende rausgekommen?

Eigentlich steht alles in den Kommentaren unten im Tutorial. Wenn du wieder bei ssh drauf bist, dann kannst du dich mit screen -r csgo-ts-mover wieder mit der screen session verbinden wo der server laeuft. und mit CTRL-A + D spaeter wieder detachen

FrederikP commented 4 years ago

Der lesbare Name ist nur für dich als Admin, um dir zu merken wer wer ist.

Die anderen IDs sind die Steam id (in einer bestimmten Form und die Teamspeak ID). Wenn du danach googlest findest du raus, wie du die auslesen kannst. Ich guck aber mal eben nach.

Steam ID:

https://steamidfinder.com/lookup/BliZzi1337/

image

du musst die steamID64 benutzen.

Teamspeak ID (habs nur englisch):

Permissions (oben im Teamspeak Menue) > List all clients

Da siehste dann die unique identifier. die musste als TS id im mapping benutzen

BliZzi1337 commented 4 years ago

https://prnt.sc/rrmh0z

So sieht es jetzt aus wenn ich nochmal rein will. Habe eben den VServer neugestarten. Ich habe es nicht hinbekommen wieder in die detached sessions reinzukommen. Userfehler ^^

FrederikP commented 4 years ago

Ich habe es nicht hinbekommen wieder in die detached sessions reinzukommen.

Was gibt dir ein screen -ls aus?

BliZzi1337 commented 4 years ago

https://prnt.sc/rrmn64

FrederikP commented 4 years ago

Dann muss screen -r csgo-ts-mover doch funktionieren! Oder kommt dann nen fehler?

BliZzi1337 commented 4 years ago

https://prnt.sc/rrmp0y

BliZzi1337 commented 4 years ago

https://prnt.sc/rrmqgp

So habe ich es jetzt in die Config eingetragen.

Soll ich vllt noch mal alles neu machen?

Also der SSH part.

FrederikP commented 4 years ago

ne musst nicht alles neu machen

FrederikP commented 4 years ago

screen -r 4317 ?

BliZzi1337 commented 4 years ago

Ich mache das ganze per Putty ich hoffe da habe ich keine einschränkungen. Ich meine Tastenkombinationen CTRL A D z.b.

FrederikP commented 4 years ago

hm ja weiß nicht so genau. aber der screen laeuft auf jeden fall. das steht ja da in der ausgabe. Du musst dich nur wieder verbinden, weiß nicht warum der reattach mit dem namen der session nicht funktioniert.

FrederikP commented 4 years ago

du kannst auch mal einfach nur screen -r probieren

FrederikP commented 4 years ago

solange es nur die eine session gibt, sollte das auch gehen

BliZzi1337 commented 4 years ago

ich hatte vorhin soviel probiert das dort 4 sessions waren.

Ist das ein Problem^^

BliZzi1337 commented 4 years ago

soll ich vllt den VServer nochmal restarten?

BliZzi1337 commented 4 years ago

screen -r

kommt auch die selbe meldung

FrederikP commented 4 years ago

nein, nicht immer gleich mit kanonen auf spatzen schießen :dagger: :D

FrederikP commented 4 years ago

hast du den screen als ein ander user (nicht root) gestartet?

BliZzi1337 commented 4 years ago

ne

BliZzi1337 commented 4 years ago

du denkst dir auch "was macht der da" xD

BliZzi1337 commented 4 years ago

möchtest du vllt zugriff haben?

FrederikP commented 4 years ago

bist du auf deinem TS? dann komm ich mal rum

BliZzi1337 commented 4 years ago

ja 213.202.228.89

BliZzi1337 commented 4 years ago

also wenn du wieder mal kurz zeit hast wäre super ich habe einiges versucht. Aber ich raff es nicht.

https://prnt.sc/rroniq

So bleibt es aktuell

FrederikP commented 4 years ago

Heute nachmittag wars ein timeout. Jetzt ist es ein connection refused. Also hat sich zumindest mal irgendwas geaendert. Aber kann ich dir jetzt auf die schnelle auch nicht sagen.

Game server und teamspeak server laufen auf dem gleichen Server, soweit ich das verstanden hab? Der Port 10011 ist auf jeden Fall der richtige, hab ich gerade mal gecheckt bei euch. Ueber die externe IP ist der auch ez erreichbar. Vielleicht lauscht der nicht auf localhost? Probier mal die externe IP 213.202.228.89 als Wert bei ts3_host:

BliZzi1337 commented 4 years ago

Ja das wars jetzt switched er. Top Eine Frage noch wenn ich die config Datei geändert habe. Wie ist der kürzeste Weg, das es zu refreshen. Ich habe bisher immer beim Tutorial in der Mitte wieder angefangen. Ich weiß nicht so recht wie ich da wieder rein komme. Wenn ich z.b. den vserver neustarte, ist das Plug-in dann wieder aktiv oder muss ich es neu anstoßen?

MfG Danke nochmal für deinen Support.

FrederikP commented 4 years ago

Schön, dass es endlich geklappt hat. Ist halt leider nicht ganz so einfach das Setup, aber mir ist nix einfacheres eingefallen, womit ich schnell zu nem Ergebnis komme.

Zu deiner Frage:

  1. ganzen vserver neustarten sollte eigentlich nie die notwendige Lösung für irgendwas sein. Meine server (auf denen dutzende Applikationen laufen, die ich regelmäßig aktualisiere, etc.), haben teilweise uptimes von mehr als einem Jahr.
  2. nein, nach einem server neustart ist der web server nicht mehr aktiv (das python ding) und muss gestartet werden. Wenn das ein Problem ist, weil du den Server oft neu startest, dann musst du dir da was ueberlegen. z.b. ein init script wrapper drumherum schreiben oder so

Abgesehen davon:

Situation 1 - Config Änderung

Stellen wir uns mal vor dein Server laeuft gerade, das ts-mover-zeug laeuft auch alles und du bist gerade nicht per ssh drauf. Du willst jetzt die config aendern und musst danach den ts-mover python server neu starten. Dafuer machst du folgendes:

  1. per ssh verbinden
  2. screen -r (danach sollte das log vom python prozess angezeigt werden)
  3. STRG-C (damit stoppst du den python prozess)
  4. Config aendern, falls du das nicht schon gemacht hast
  5. flask run --port 6666 (damit startest du den python prozess wieder und die neue config wird geladen)
  6. STRG-A + D (vom screen detachen, waehrend dieser weiter laeuft)
  7. bei bedarf ssh session beenden

Situation 2 - Server Neustart

Du musst deinen ganzen vserver aus irgendeinem Grund neustarten. Danach läuft weder der Python prozess noch die screen session, die diesen beherbergt. Beides muss gestartet werden. Dazu:

  1. per ssh verbinden, in den richtigen ordner gehen
  2. screen -S csgo-ts-mover (macht eine neue screen session auf)
  3. . venv/bin/activate (aktiviert die richtige python umgebung aus der installation)
  4. export FLASK_APP=ts-mover-service.py
  5. flask run --port 6666
  6. STRG-A + D (vom screen detachen, waehrend dieser weiter laeuft)
  7. bei bedarf ssh session beenden
BliZzi1337 commented 4 years ago

Alles klar soweit verstanden. Bei Situation 1 Punkt 1-4 geht einwandfrei. Problem ist punkt 5, wenn ich "flask run --port 6666" eingebe kommt https://prnt.sc/rs9ykh Permission Denied

BliZzi1337 commented 4 years ago

Deswegen habe ich bisher dann immer mit dem Tutorial in der Mitte neu angefangen. Venv Ordner löschen etc. und dann den Venv Ordner neu anlegen PIP Installieren usw.

MFG

BliZzi1337 commented 4 years ago

Putty schmeisst mich ab und an raus connection Timeout. Wenn ich in dem Fall in dem Attached screen war und dann erneut auf den ssh zugreife komme bin ich angeblich im Screen -r aber ich bin nicht mehr im Csgotsmover verzeichnis. Ich hoffe du verstehst halbwegs was ich meine. Ich hänge in einem Loop irgendwie. SSH sagt ich bin Attached kann aber nicht detachen mit strg-a-d.

FrederikP commented 4 years ago

Permission denied kann sein, weil schon irgendwo der server läuft und auf dem port lauscht. Das kann dann kein zweiter Prozess.

PIP sachen immer neu installieren ist unnoetig.

Stell immer sicher, dass du nur eine screen session für den python server offen hast. Also wenn du detached bist (zur sicherheit einfach mal strg-a-d ausfuehren) und dann screen -ls eingibst, sollte hoechstens ein eintrag kommen. Falls keiner da ist machst du einen neuen auf screen -S csgo-ts-mover, aber im besten fall gibt es immer den einen. Auf den kommst du ja dann mit screen -r. An sich sollte dich ein screen -r immer in den ordner verfrachten, in dem du zuletzt in dem screen warst. Falls du nicht im richtigen Ordner bist, dann cd da halt hin.

Falls mehrere screen sessions offen sind (mehrere eintraege gelistet bei screen -ls), dann geh in die sessions rein und beende sie (moeglicherweise laufenden prozess mit strg-c beenden, dann strg-d oder exit, zack weg ist die session)

BliZzi1337 commented 4 years ago

ok soweit verstanden. Wenn ich aber die PIP Dienste nicht neu installiere und flask starten will. Kommt immer ts3modul fehler.

Wenn ich auf den SSH connecte und noch nicht gemacht habe, bin ich dann automatisch in einem screen? Weil wenn ich screen -r mache kommt "es gibt keinen screen" er zeigt mir dann die liste mit dem einzigen screen (attached). Wenn ich aber angeblich attached bin, dann müsste ich doch mit strg a d detachen können oder?

BliZzi1337 commented 4 years ago

Jetzt z.b. bin ich bei Putty wieder rausgeflogen Wenn ich dann wieder connecte und screen -r eingebe kommt das https://prnt.sc/rsc5y3 wenn ich screen -r 11722 eingebe kommt there is no screen. Weil ich angeblich bei beiden attached bin?

BliZzi1337 commented 4 years ago

Ok ich konnte per screen -d und dann die id detachen.

Denke ich habe es raus. Danke für die kostenlosen Lerneinheiten^^

Das meinte ich: https://kb.iu.edu/d/ahrm

FrederikP commented 4 years ago

Wenn ich aber die PIP Dienste nicht neu installiere und flask starten will. Kommt immer ts3modul fehler.

Das . venv/bin/activate musst du immer dann machen, wenn du es in einer screen session bisher noch nicht gemacht hast. Damit initialisierst du die richtige python umgebung. Es kann natürlich durch chaotisches Ausführen von irgendwelchen Befehlen auch zu Problemen kommen ;)

Wie du schon rausgefunden hast, bleibt der screen wohl bei deinen putty/ssh disconnects noch attached. Da bekommt der Server den disconnect wohl nicht oder erst spaeter mit. Du hast ja aber schon eine Lösung gefunden. Kann so passieren. Aber du solltest vielleicht auch mal nachforschen, warum diese disconnects so häufig passieren.