[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)
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.
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.
--Verwenden Sie Python3.6.9 (funktioniert für 3 Serien)
$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.
//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
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
//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
$ 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
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