用discord机器人操作Minecraft服务器【综合编辑】
首先
这篇文章是关于从Discord机器人中运行Minecraft服务器的目标的圣诞节日历的最后一天。
必备的环境是什么。
-
- Python 3.8以降
-
- discord.py 2以上
- java 17以上
我的环境是如此。
-
- WSL, Ubuntu22.04.1
-
- Python 3.10.6
- discord.py 2.1.0
目前的状况如下。
创造一个 Discord 机器人
首先,您需要获取一个账号来创建机器人。您可以参考这篇文章,在 Discord 开发者门户网站创建一个账号。请确保在此过程中复制并保存好您的令牌。
将令牌设置为环境变量
先将刚刚复制的令牌设置为环境变量。在.env文件中设置环境变量,并使用dotenv进行加载。这种方法在这篇文章中有说明。使用不使用dotenv的方法在这篇文章中也有说明。
用discord.py编写程序。
在这篇文章中,我提供了discord.py安装的方法和最基本的程序演示。
启动和停止Minecraft服务器。
我在这里注册应用程序命令,用于启动和停止Minecraft服务器。这在这篇文章中进行了解释。关于如何在这篇文章中对命令进行注册并以面向对象的方式进行类别分割以便于维护的方法,在这篇文章中进行了解释。另外,Minecraft服务器是使用Python的subprocess运行的。这在这篇文章中进行了说明。
顺便提一下,服务器本身无法设置多个,因此最好限制不要多次运行。我认为对于这一点,单例设计模式是有效的解决方法。关于这个问题,这篇文章中已经做了解释,不过评论可能更有用。
用机器人从bot输入Minecraft的指令。
在Minecraft中,您可以执行更改游戏难度、更改时间、传送等命令。您可以通过机器人来操作这些命令。这在这篇文章中有解释。然而,因为任何人都可以执行命令可能会带来麻烦,所以需要将Minecraft服务器权限与命令执行权限相对应。这也在这篇文章中有说明。此外,关于其他限制,已经在下面进行了解释。
-
- discord botのcooldownとinteraction_check
- discord botのコマンド実行を制限するためのcheck
让discord机器人持续在线
启动bot来启动minecraft服务器是没有意义的情况,所以我们将使bot一直驻留,可以随时启动。这一概念在准备篇和后篇中有所介绍,这两篇文章都有详细解释。
使用这个基本的Discord机器人程序来操作Minecraft服务器就完成了。
以灵活的方式创建指令
通过机器人,您可以创建各种命令。比如创建按钮,或通过右键单击消息来执行命令。我已经发布了很多文章,如果有需要的话,希望可以对您有所帮助。
-
- discord pyのcontext menuとbutton
-
- discord botでドロップダウンメニューを作る
-
- discord.pyのTextInput
-
- discord botで定期的に処理をさせるためのLoop
-
- discord botにminecraftの座標を登録してtpコマンドを作ってもらう
-
- discord botでメッセージを転送する
- discord.pyのslash commandでhelp表示
希望您也能够看到上述的内容。谢谢您的辛勤工作。