[Python] Je veux gérer 7DaysToDie depuis Discord! 1/3

Aperçu

[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)

À propos de l'arrière-plan

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.

À propos de ce programme

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.

Conditions préalables

Environnement d'exploitation

--Utilisez Python3.6.9 (fonctionne pour 3 séries)

Structure du répertoire


$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.

Installation des bibliothèques nécessaires à la mise en œuvre

//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

Paramètres de Firewalld

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

DL & IN 7DaysToDie de SteamCMD


//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

7DaysToDie modifier startserver.sh

$ 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

Modifier serverconfig.xml

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

[Python] Je veux gérer 7DaysToDie depuis Discord! 1/3
[Python] Je veux gérer 7DaysToDie depuis Discord! 2/3
Je veux utiliser jar de python
Je souhaite envoyer un e-mail depuis Gmail en utilisant Python.
Je veux utiliser le solveur ceres de python
Je veux créer du code C ++ à partir de code Python!
Je veux déboguer avec Python
Je veux démarrer beaucoup de processus à partir de python
Je souhaite envoyer un message de Python à LINE Bot
Je veux créer un environnement Python
Je veux analyser les journaux avec Python
Je veux jouer avec aws avec python
Je souhaite me connecter à PostgreSQL à partir de plusieurs langues
Je veux faire le test de Dunnett en Python
Je veux utiliser MATLAB feval avec python
Changements de Python 3.0 à Python 3.5
Changements de Python 2 à Python 3.0
Je veux mémoriser, y compris les arguments de mots clés de Python
Je veux faire un jeu avec Python
[Mémo Python] Je souhaite obtenir un nombre hexadécimal à 2 chiffres à partir d'un nombre décimal
Je veux fusionner des dictionnaires imbriqués en Python
Je veux faire des crises de ma tête
Je veux gérer systemd par fuseau horaire! !!
Je souhaite utiliser le répertoire temporaire avec Python2
#Unresolved Je veux compiler gobject-introspection avec Python3
Je veux résoudre APG4b avec Python (chapitre 2)
Ce que j'ai fait lors de la mise à jour de Python 2.6 vers 2.7
Je souhaite vendre les produits que j'ai listés par python scraping Mercari
Je veux écrire dans un fichier avec Python
Je veux afficher la progression en Python!
Je veux obtenir / exécuter des variables / fonctions / classes de fichiers externes à partir de Python
Je veux écrire en Python! (1) Vérification du format de code
Je veux voir le nom de fichier de DataLoader
Même les débutants veulent dire "Je comprends parfaitement Python"
Je souhaite intégrer une variable dans une chaîne Python
Je veux facilement implémenter le délai d'expiration en python
Je veux détecter des images de chats d'Instagram
Je veux répéter plusieurs fois un générateur Python
Je veux générer rapidement UUID (memo memo) ~ Edition Python ~
Je veux gérer l'optimisation avec python et cplex
Je veux écrire en Python! (2) Écrivons un test
Même avec JavaScript, je veux voir Python `range ()`!
Je voulais utiliser la bibliothèque Python de MATLAB
Je veux échantillonner au hasard un fichier avec Python
Je veux hériter de l'arrière avec la classe de données python
Je veux travailler avec un robot en python.
[Python] Je veux faire d'une liste imbriquée un taple
Je veux écrire en Python! (3) Utiliser des simulacres
Je veux AWS Lambda avec Python sur Mac!
Je veux utiliser le jeu de données R avec python
Je veux faire fonctionner un ordinateur quantique avec Python
Je veux faire quelque chose avec Python à la fin
Je veux manipuler des chaînes dans Kotlin comme Python!
Publier de Python vers Slack
Flirter de PHP à Python
Anaconda mis à jour de 4.2.0 à 4.3.0 (python3.5 mis à jour vers python3.6)
Je veux résoudre SUDOKU