async def receiveUpdates(p: Player, pr: BanchoPacketReader) -> None: val, = await pr.read(osuTypes.i32) if val not in range(3): plog(f'{p} tried to set his presence filter to {val}?') return p.pres_filter = PresenceFilter(val)
async def handle(self, p: Player) -> None: if not 0 <= self.value < 3: log(f'{p} tried to set his presence filter to {self.value}?') return p.pres_filter = PresenceFilter(self.value)
# Leave the channel server-side. p.leave_channel(c) # Enqueue new channelinfo (playercount) to all players. glob.players.enqueue(packets.channelInfo(*c.basic_info)) # PacketID: 79 @bancho_packet(Packet.c_ReceiveUpdates) def receiveUpdates(p: Player, pr: PacketReader) -> None: if (f := pr.read(osuTypes.i32)[0]) not in range(3): printlog(f'{p} tried to set his presence filter to {f}?') return p.pres_filter = PresenceFilter(f) # PacketID: 82 @bancho_packet(Packet.c_setAwayMessage) def setAwayMessage(p: Player, pr: PacketReader) -> None: pr.ignore(3) # why does first string send \x0b\x00? p.away_msg = pr.read(osuTypes.string)[0] pr.ignore(4) # PacketID: 85 @bancho_packet(Packet.c_userStatsRequest) def statsRequest(p: Player, pr: PacketReader) -> None: if len(pr.data) < 6: return