Мне просто нужно немного помочь с добавлением командной строки консоли в существующий цикл сервера для моей игры. Я немного новичок в Python, поэтому я не совсем уверен, лучший способ написать то, что мне нужно. У меня есть базовая структура сервера, и мне нужна возможность набирать команды на сервере, которые влияют на переменные и / или параметры игрока и сервера.
А-ля Minecraft или Skyrim Консоль: "set player money x
", "kick x
", "set time 1000
"
Я знаю, как настроить реальный анализатор команд и библиотеку команд, так что это не требуется. Просто даю общую картину того, что мне нужно.
Я пытался просто добавить функцию ввода в цикл while, но, похоже, это не работает должным образом, хотя и не выдает ошибку.
Если требуется уточнение, я с удовольствием отвечу на вопрос или отредактирую вопрос. Любая помощь приветствуется. Спасибо всем.
import socket
import threading
class Server:
sock = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
connections = []
def __init__(self):
self.sock.bind(('0.0.0.0', 5555))
self.sock.listen(1)
def handler(self, c, a):
while True:
data = c.recv(1024)
for connection in self.connections:
connection.send(data)
if not data:
break
def run(self):
while True:
c, a = self.sock.accept()
cThread = threading.Thread(target = self.handler, args=(c, a))
cThread.daemon = True
cThread.start()
self.connections.append(c)
print(self.connections)
server = Server()
server.run()