fix attribs
All checks were successful
Build and Test / wii-u-chat (push) Successful in 2m24s
Build and Test / splatoon-testfire (push) Successful in 2m34s
Build and Test / friends (push) Successful in 3m6s
Build and Test / minecraft-wiiu (push) Successful in 3m30s
Build and Test / mario-tennis (push) Successful in 4m13s
Build and Test / super-mario-maker (push) Successful in 5m3s
Build and Test / wii-sports-club (push) Successful in 5m20s
Build and Test / fast-racing-neo (push) Successful in 5m44s
Build and Test / puyopuyo (push) Successful in 6m5s
Build and Test / splatoon (push) Successful in 6m20s

This commit is contained in:
Maple Nebel 2026-05-05 14:48:25 +02:00
commit d63fe663de
3 changed files with 23 additions and 24 deletions

View file

@ -399,31 +399,28 @@ impl ExtendedMatchmakeSession {
#[cfg(feature = "splatoon")]
{
if search_criteria
.attribs
.get(0)
.map(|str| str.parse().ok())
.flatten()
!= self.session.attributes.get(0).map(|v| *v)
{
if search_criteria.attribs.get(0).is_some_and(|s| {
self.session
.attributes
.get(0)
.is_some_and(|a| s.0.contains(a))
}) {
return Ok(false);
}
if search_criteria
.attribs
.get(2)
.map(|str| str.parse().ok())
.flatten()
!= self.session.attributes.get(2).map(|v| *v)
{
if search_criteria.attribs.get(2).is_some_and(|s| {
self.session
.attributes
.get(2)
.is_some_and(|a| s.0.contains(a))
}) {
return Ok(false);
}
if search_criteria
.attribs
.get(3)
.map(|str| str.parse().ok())
.flatten()
!= self.session.attributes.get(3).map(|v| *v)
{
if search_criteria.attribs.get(3).is_some_and(|s| {
self.session
.attributes
.get(3)
.is_some_and(|a| s.0.contains(a))
}) {
return Ok(false);
}
}

View file

@ -5,6 +5,8 @@ use rnex_core::rmc::structures::variant::Variant;
use rnex_core::PID;
use crate::rmc::structures::string_set::StringSet;
// rmc structure
#[derive(RmcSerialize, Debug, Clone, Default, PartialEq)]
#[rmc_struct(0)]
@ -75,7 +77,7 @@ cfg_if! {
#[derive(RmcSerialize, Debug, Clone)]
#[rmc_struct(3)]
pub struct MatchmakeSessionSearchCriteria {
pub attribs: Vec<String>,
pub attribs: Vec<StringSet<u32>>,
pub game_mode: String,
pub minimum_participants: String,
pub maximum_participants: String,

View file

@ -2,8 +2,8 @@ use std::{collections::HashSet, hash::Hash, str::FromStr, string::ToString};
use rnex_core::rmc::structures::RmcSerialize;
#[derive(Debug)]
struct StringSet<T: FromStr + ToString + Eq>(HashSet<T>)
#[derive(Debug, Clone)]
pub struct StringSet<T: FromStr + ToString + Eq>(pub HashSet<T>)
where
<T as FromStr>::Err: std::error::Error + Send + Sync + 'static;