Пример #1
0
 def broadcast(self, message, who="@a"):
     """Broadcasts the specified message to all clients
     connected. message can be a JSON chat object, or a
     string with formatting codes using the § as a prefix.
     """
     if isinstance(message, dict):
         if self.version_compute < 10700:
             self.console("say %s %s" % (who, chattocolorcodes(message)))
         else:
             encoding = self.wrapper.encoding
             self.console("tellraw %s %s" % (
                 who, json.dumps(message, ensure_ascii=False)))
     else:
         if self.version_compute < 10700:
             temp = processcolorcodes(message)
             self.console("say %s %s" % (
                 who, chattocolorcodes(json.loads(temp))))
         else:
             self.console("tellraw %s %s" % (
                 who, processcolorcodes(message)))
Пример #2
0
 def broadcast(self, message, who="@a"):
     """Broadcasts the specified message to all clients
     connected. message can be a JSON chat object, or a
     string with formatting codes using the § as a prefix.
     """
     if isinstance(message, dict):
         if self.vitals.version_compute < 10700:
             self.console("say %s %s" % (who, chattocolorcodes(message)))
         else:
             encoding = self.wrapper.encoding
             self.console("tellraw %s %s" % (
                 who, json.dumps(message, ensure_ascii=False)))
     else:
         if self.vitals.version_compute < 10700:
             temp = processcolorcodes(message)
             self.console("say %s %s" % (
                 who, chattocolorcodes(json.loads(temp))))
         else:
             self.console("tellraw %s %s" % (
                 who, processcolorcodes(message)))
    def _parse_status_request(self):
        # self.log.debug("SB -> STATUS REQUEST")
        sample = []
        for player in self.servervitals.players:
            playerobj = self.servervitals.players[player]
            if playerobj.username not in self.hidden_ops:
                sample.append({"name": playerobj.username,
                               "id": str(playerobj.mojangUuid)})
            if len(sample) > 5:
                break
        reported_version = self.servervitals.protocolVersion
        reported_name = self.servervitals.version
        motdtext = self.servervitals.motd
        if self.clientversion >= PROTOCOL_1_8START:
            motdtext = json.loads(processcolorcodes(motdtext.replace(
                "\\", "")))
        self.MOTD = {
            "description": motdtext,
            "players": {
                "max": int(self.servervitals.maxPlayers),
                "online": len(self.servervitals.players),
                "sample": sample
            },
            "version": {
                "name": reported_name,
                "protocol": reported_version
            }
        }

        # add Favicon, if it exists
        if self.servervitals.serverIcon:
            self.MOTD["favicon"] = self.servervitals.serverIcon

        # add Forge information, if applicable.
        if self.proxy.forge:
            self.MOTD["modinfo"] = self.proxy.mod_info["modinfo"]

        self.packet.sendpkt(
            self.pktCB.PING_JSON_RESPONSE,
            [STRING],
            [json.dumps(self.MOTD)])

        # self.log.debug("CB (W)-> JSON RESPONSE")
        # after this, proxy waits for the expected PING to
        #  go back to Handshake mode
        return False
Пример #4
0
    def _parse_status_request(self):
        # self.log.debug("SB -> STATUS REQUEST")
        sample = []
        for player in self.servervitals.players:
            playerobj = self.servervitals.players[player]
            if playerobj.username not in self.hidden_ops:
                sample.append({
                    "name": playerobj.username,
                    "id": str(playerobj.mojangUuid)
                })
            if len(sample) > 5:
                break
        reported_version = self.servervitals.protocolVersion
        reported_name = self.servervitals.version
        motdtext = self.servervitals.motd
        if self.clientversion >= PROTOCOL_1_8START:
            motdtext = json.loads(processcolorcodes(motdtext.replace("\\",
                                                                     "")))
        self.MOTD = {
            "description": motdtext,
            "players": {
                "max": int(self.servervitals.maxPlayers),
                "online": len(self.servervitals.players),
                "sample": sample
            },
            "version": {
                "name": reported_name,
                "protocol": reported_version
            }
        }

        # add Favicon, if it exists
        if self.servervitals.serverIcon:
            self.MOTD["favicon"] = self.servervitals.serverIcon

        # add Forge information, if applicable.
        if self.proxy.forge:
            self.MOTD["modinfo"] = self.proxy.mod_info["modinfo"]

        self.packet.sendpkt(self.pktCB.PING_JSON_RESPONSE, [STRING],
                            [json.dumps(self.MOTD)])

        # self.log.debug("CB (W)-> JSON RESPONSE")
        # after this, proxy waits for the expected PING to
        #  go back to Handshake mode
        return False