[Python] Je veux gérer 7DaysToDie depuis Discord! 1/3 (Construction de l'environnement) [Python] Je veux gérer 7DaysToDie depuis Discord! 2/3 (Création d'un BOT pouvant être géré à partir de Discord) [Python] Je veux gérer 7DaysToDie depuis Discord! 3/3 (contrôle de fonctionnement)
J'avais l'habitude de vouloir écrire un programme capable de gérer Minecraft à partir de Discord. Cette fois, j'ai décidé de faire Steam 7Days, alors je l'ai fait parce que je pouvais le faire même avec 7Days.
À l'origine, c'était gênant, et ouvrir l'écran de la console et le gérer était également gênant. Parfois, vous souhaitez laisser l'opération à un sous-contrôle autre que vous-même. Je suis venu à la production pour une raison quelconque.
Ce programme utilise Discord Bot et Discord Webhook. De plus, j'apprends toujours Python ~~ avec l'idée de m'amuser ~~. Si vous avez d'autres opinions telles qu'une meilleure rédaction du programme ou des points d'amélioration du blog, il serait encourageant de commenter.
--Utilisez Python3.6.9 (fonctionne pour 3 séries)
$HOME/
┝ python/
┕ discord/
┝ sdtd_run.py
┝ sdtd_start.sh
┕ Sdtd/
┕ command.py
┝ steamcmd
┝ linux32
┝ linux64
┝ .... //Les répertoires par défaut suivants
┕ sdtd ← C'est le répertoire utilisé cette fois.
//Utilisé avec steamcmd
# yum -y install glibc.i686 libstdc++.i686
//Utilisé avec discorde
# yum -y install libffi-dev libnacl-dev python3-dev
//Utilisé dans les programmes python
# yum -y install screen lsof awk
# pip install discord.py requests
Faites un trou dans le port à utiliser.
# firewall-cmd --permanent --add-port=26900/tcp
# firewall-cmd --permanent --add-port=26900-2603/udp
# firewall-cmd --reload
//Travaillez en tant qu'utilisateur général parmi les suivants.
$ 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
Comme Telnet est utilisé pour le fonctionnement de la console, une description est requise. (Parce que c'est localhost, c'est OK sans chemin) Le port doit être 8081. Il n'est pas nécessaire d'ouvrir le port.
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 -->
C'est tout pour construire l'environnement. Ensuite, faisons Implémentation principale!
Recommended Posts