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)))
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
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