[Python] Ich möchte 7DaysToDie von Discord aus verwalten! 1/3

Überblick

[Python] Ich möchte 7DaysToDie von Discord aus verwalten! 1/3 (Umgebungskonstruktion) [Python] Ich möchte 7DaysToDie von Discord aus verwalten! 2/3 (Erstellen eines BOT, der über Discord verwaltet werden kann) [Python] Ich möchte 7DaysToDie von Discord aus verwalten! 3/3 (Funktionsprüfung)

Über den Hintergrund

Früher wollte ich ein Programm schreiben, das Minecraft von Discord aus verwalten kann. Dieses Mal habe ich mich für Steam 7Days entschieden, also habe ich es geschafft, weil ich es sogar mit 7Days machen konnte.

Ursprünglich war es problematisch, und das Öffnen und Verwalten des Konsolenbildschirms war ebenfalls problematisch. Es gibt Zeiten, in denen Sie den Vorgang einer anderen Untersteuerung als Ihnen selbst überlassen möchten. Ich bin aus irgendeinem Grund zur Produktion gekommen.

Über dieses Programm

Dieses Programm verwendet Discord Bot und Discord Webhook. Außerdem lerne ich immer noch Python ~~ mit der Idee, Spaß zu haben ~~. Wenn Sie andere Meinungen haben, wie z. B. besseres Programmschreiben oder Verbesserungspunkte des Blogs, wäre es ermutigend, Kommentare abzugeben.

Voraussetzungen

Betriebsumgebung

--Verwenden Sie Python3.6.9 (funktioniert für 3 Serien)

Verzeichnisaufbau


$HOME/
   ┝ python/
          ┕ discord/
                 ┝ sdtd_run.py
                 ┝ sdtd_start.sh
                 ┕ Sdtd/
                     ┕ command.py
   ┝ steamcmd
          ┝ linux32
          ┝ linux64 
          ┝ .... //Die folgenden Standardverzeichnisse
┕ sdtd ← Dies ist das Verzeichnis, das dieses Mal verwendet wird.

Installation der für die Implementierung erforderlichen Bibliotheken

//Wird mit Steamcmd verwendet
# yum -y install glibc.i686 libstdc++.i686

//Wird mit Zwietracht verwendet
# yum -y install libffi-dev libnacl-dev python3-dev

//Wird in Python-Programmen verwendet
# yum -y install screen lsof awk
# pip install discord.py requests

Firewalld-Einstellungen

Machen Sie ein Loch in den zu verwendenden Anschluss.

# firewall-cmd --permanent --add-port=26900/tcp
# firewall-cmd --permanent --add-port=26900-2603/udp
# firewall-cmd --reload

DL & IN 7DaysToDie von SteamCMD


//Arbeiten Sie als allgemeiner Benutzer wie folgt.
$ mkdir steamcmd
$ cd steamcmd/
$ curl -sqL "https://steamcdn-a.akamaihd.net/client/installer/steamcmd_linux.tar.gz" | tar zxf -
$ ./steamcmd.sh
Steam>login anonymous
Steam>force_install_dir sdtd
Steam>app_update 294420 validate
Steam>quit

7DaysToDie edit startserver.sh bearbeiten

$ cd sdtd
$ vim startserver.sh

startserver.sh


#!/bin/sh
SERVERDIR=`dirname "$0"`
cd "$SERVERDIR"

PARAMS=$@

CONFIGFILE=
while test $# -gt 0
do
    if [ `echo $1 | cut -c 1-12` = "-configfile=" ]; then
        CONFIGFILE=`echo $1 | cut -c 13-`
    fi
    shift
done

if [ "$CONFIGFILE" = "" ]; then
    PARAMS="-configfile=serverconfig.xml"
else
    if [ -f "$CONFIGFILE" ]; then
        echo Using config file: $CONFIGFILE
    else
        echo "Specified config file $CONFIGFILE does not exist."
        exit 1
    fi
fi

export LD_LIBRARY_PATH=.
#export MALLOC_CHECK_=0

if [ "$(uname -m)" = "x86_64" ]; then
    ./7DaysToDieServer.x86_64 -logfile $SERVERDIR/7DaysToDieServer_Data/logs/output_log__`date +%Y-%m-%d__%H-%M-%S`.txt -quit -batchmode -nographics -dedicated $PARAMS
else
    echo "7 Days to Die only supports 64 bit operating systems!"
    exit 1
fi

Bearbeiten Sie die Datei serverconfig.xml

vim serverconfig.xml

Da Telnet für den Konsolenbetrieb verwendet wird, ist eine Beschreibung erforderlich. (Da es localhost ist, ist es ohne Pfad in Ordnung.) Der Port sollte 8081 sein. Der Port muss nicht geöffnet werden.

serverconfig.xml


    <property name="TelnetEnabled"                  value="true"/>              <!-- Enable/Disable the telnet -->
    <property name="TelnetPort"                     value="8081"/>              <!-- Port of the telnet server -->
    <property name="TelnetPassword"                 value=""/>                  <!-- Password to gain entry to telnet interface. If no password is set the server will only listen on the local loopback interface -->

Das ist alles für den Aufbau der Umwelt. Als nächstes machen wir Hauptimplementierung!

Recommended Posts

[Python] Ich möchte 7DaysToDie von Discord aus verwalten! 1/3
[Python] Ich möchte 7DaysToDie von Discord aus verwalten! 2/3
Ich möchte ein Glas aus Python verwenden
Ich möchte mit Python eine E-Mail von Google Mail senden.
Ich möchte Ceres Solver aus Python verwenden
Ich möchte C ++ - Code aus Python-Code erstellen!
Ich möchte mit Python debuggen
Ich möchte viele Prozesse von Python aus starten
Ich möchte eine Nachricht von Python an LINE Bot senden
Ich möchte eine Python-Umgebung erstellen
Ich möchte Protokolle mit Python analysieren
Ich möchte mit aws mit Python spielen
Ich möchte aus verschiedenen Sprachen eine Verbindung zu PostgreSQL herstellen
Ich möchte Dunnetts Test in Python machen
Ich möchte MATLAB feval mit Python verwenden
Änderungen von Python 3.0 zu Python 3.5
Änderungen von Python 2 zu Python 3.0
Ich möchte mich mit Schlüsselwortargumenten von Python merken
Ich möchte ein Spiel mit Python machen
[Python-Memo] Ich möchte eine zweistellige Hexadezimalzahl aus einer Dezimalzahl erhalten
Ich möchte verschachtelte Dicts in Python zusammenführen
Ich möchte Passungen aus meinem Kopf machen
Ich möchte systemd nach Zeitzone verwalten! !!
Ich möchte Temporäres Verzeichnis mit Python2 verwenden
#Unresolved Ich möchte Gobject-Introspection mit Python3 kompilieren
Ich möchte APG4b mit Python lösen (Kapitel 2)
Was ich beim Update von Python 2.6 auf 2.7 gemacht habe
Ich möchte die Produkte verkaufen, die ich durch Python Scraping Mercari aufgelistet habe
Ich möchte mit Python in eine Datei schreiben
Ich möchte den Fortschritt in Python anzeigen!
Ich möchte Variablen / Funktionen / Klassen externer Dateien von Python abrufen / ausführen
Ich möchte in Python schreiben! (1) Überprüfung des Codeformats
Ich möchte den Dateinamen von DataLoader sehen
Selbst Anfänger möchten sagen "Ich verstehe Python voll und ganz"
Ich möchte eine Variable in einen Python-String einbetten
Ich möchte Timeout einfach in Python implementieren
Ich möchte Bilder von Katzen von Instagram erkennen
Ich möchte einen Python-Generator viele Male iterieren
Ich möchte schnell UUID generieren (Gedenknotiz) ~ Python Edition ~
Ich möchte die Optimierung mit Python und CPlex behandeln
Ich möchte in Python schreiben! (2) Schreiben wir einen Test
Auch mit JavaScript möchte ich Python `range ()` sehen!
Ich wollte die Python-Bibliothek von MATLAB verwenden
Ich möchte eine Datei mit Python zufällig testen
Ich möchte mit Python-Datenklasse nach hinten erben
Ich möchte mit einem Roboter in Python arbeiten.
[Python] Ich möchte aus einer verschachtelten Liste einen Taple machen
Ich möchte in Python schreiben! (3) Verwenden Sie Mock
Ich möchte Lambda mit Python auf Mac AWS!
Ich möchte R-Datensatz mit Python verwenden
Ich möchte einen Quantencomputer mit Python betreiben
Ich möchte am Ende etwas mit Python machen
Ich möchte Strings in Kotlin wie Python manipulieren!
Post von Python nach Slack
Flirte von PHP nach Python
Anaconda aktualisiert von 4.2.0 auf 4.3.0 (python3.5 aktualisiert auf python3.6)
Ich möchte SUDOKU lösen