import threading from src.modules.plugin_modules import BasePlugin, MessageContext import time from rcon import Client import time # 服务器IP、端口、RCON密码 def send_message(message,host,port,password): """ 发送消息到Minecraft服务器 :param message: 要发送的消息列表 """ try: with Client(host, passwd = password, port = port) as mcr: mcr.run('/say {}'.format(message)) except ConnectionRefusedError as e: print("连接被拒绝,请检查服务器是否运行和RCON配置是否正确。错误信息:", e) except TimeoutError: print("连接超时,请检查服务器网络连接是否正常。") except Exception as e: print("发生未知错误:", e) class Mc_rcon(BasePlugin): def before_load(self):#加载消息前 config = self.config gid = config.get("group").get("id") config = config.get("mc_rcon") if self.ctx.group is None: return None print(self.ctx.group.group_id) if self.ctx.group.group_id == gid:#转发群消息至 Minecraft if "CQ:image" in self.ctx.raw_message: mesg = f"{self.ctx.user.nickname} 发送了一张图片" print(f"转发消息至 Minecraft: {mesg}") elif "CQ:video" in self.ctx.raw_message: mesg = f"{self.ctx.user.nickname} 发送了一段视频" print(f"转发消息至 Minecraft: {mesg}") elif "CQ:record" in self.ctx.raw_message: mesg = f"{self.ctx.user.nickname} 发送了一段语音" print(f"转发消息至 Minecraft: {mesg}") elif "CQ:file" in self.ctx.raw_message: mesg = f"{self.ctx.user.nickname} 发送了一个文件" print(f"转发消息至 Minecraft: {mesg}") else: print(f"转发消息至 Minecraft: {self.ctx.raw_message}") mesg = f"{self.ctx.user.nickname} 说 {self.ctx.raw_message}" send_message(message = mesg,host = config.get("host"),port = config.get("port"),password = config.get("password"))