【Python】 我想要通过Discord管理7DaysToDie!1/3

简述

【Python】我想要从Discord管理7DaysToDie!1/3(环境设置)
【Python】我想要从Discord管理7DaysToDie!2/3(创建可从Discord管理的机器人)
【Python】我想要从Discord管理7DaysToDie!3/3(操作检查)

我已将其存储在GitHub上。
https://github.com/Trusted-Dream/7DaysToDie_Launcher

关于经过

我以前写了一个可以用Discord管理Minecraft的程序,
但这次我们要玩Steam的7Days,所以我也做了一个可以在7Days中使用的程序。

最初本来是因为懒得打开控制台界面管理而产生的,也因为觉得很麻烦,有时候还想将操作委托给其他副管。基于这些原因,才进行了制作的工作。

有关本程序的事项。

这个程序是使用Discord Bot和Discord Webhook的。
同时,我目前也在以享受学习Python为思考来继续学习。
如果有更好的编程方式或者博客改进的建议等其他意见,非常希望能在评论中得到,这将给予我动力。

前提

只需一种选项

    • 基本的なUnix系の知識、コマンドを使用できること。

 

    • Pythonの基礎知識があること。(なくてもほぼコピペで動くようには書くつもり)

Discordを導入していること
DiscordのAPIが利用できること。(Bot導入済みであること)

执行环境

    • Python3.6.9 使用(3系なら動く)

 

    CentOS Linux release 7.8.2003 (Core)

目录结构


$HOME/
   ┝ python/
          ┕ discord/
                 ┝ sdtd_run.py
                 ┝ sdtd_start.sh
                 ┕ Sdtd/
                     ┕ command.py
   ┝ steamcmd
          ┝ linux32
          ┝ linux64 
          ┝ .... //以下デフォルトのディレクトリ群
          ┕ sdtd ← これが今回使用するディレクトリになります。

安装所需的库和其他实施措施

//steamcmdで使用
# yum -y install glibc.i686 libstdc++.i686

//discordで使用
# yum -y install libffi-dev libnacl-dev python3-dev

//pythonプログラムで使用
# yum -y install screen lsof awk
# pip install discord.py requests

防火墙的设置(Firewalld的设置)

请进行所需端口的穿孔。

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

使用SteamCMD下载并安装《7 Days To Die》。


//以下から一般ユーザーで作業を行います。
$ 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的startserver.sh文件。

$ cd sdtd
$ vim 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

编辑serverconfig.xml

vim serverconfig.xml

由于在控制台操作中使用Telnet,需要进行描述(由于是本地主机,所以无需输入路径)。请将端口设置为8081。无需进行端口开放。

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

环境已经配置完毕,接下来我们开始主要的实现工作吧!

广告
将在 10 秒后关闭
bannerAds