У меня была идея запустить сервер майнкрафт используя дискорд - PullRequest
0 голосов
/ 03 мая 2019

У меня была идея создать бот-диск, который может запускать сервер minecraft на моей машине, если кто-то отправит правильное сообщение в канале диссонанса, а затем сможет отправлять сообщения между сервером minecraft и каналом диссонанса.

Проблема в том, что я не могу понять, как

1) запустить сервер minecraft, чтобы код python мог отправлять команды через него 2) читать журнал сервера Minecraft, не останавливая всю мою программу

У меня была другая идея запустить 2 отдельных файла, которые могли бы как-то общаться, чтобы сделать это возможным.

Я знаю, что вы не должны делать это, но это весь мой код

import discord, subprocess, asyncio, os


class MyClient(discord.Client):
    def __init__(self, *args, **kwargs):
        super().__init__(*args, **kwargs)
        self.args = ['java', '-jar', 'server.jar']
        self.directory = 'D:\MC SERVER 2k19'
        self.runing = False
        self.server = False

def server_command(self, cmd):
    self.server.stdin.write(cmd + "\n")


async def on_ready(self):
    print("ready to work")

async def on_message(self, message):
    if message.content.startswith("R please host"):
        self.server = subprocess.Popen(self.args, stdin=subprocess.PIPE, stdout=subprocess.PIPE, cwd=self.directory)
        await message.channel.send("try and join in 15 sec")

    elif message.content.startswith("tell the people"):
        mes = str(message.author) + " says " + message.content[16:len(message.content)]
        print(mes)
        self.server_command(mes)


client = MyClient()
client.run("token")

Что я пытаюсь сделать на самом деле возможно, используя 1 файл? Как я должен идти о кодировании этого?

Спасибо.

...