Fix inconsistencies in guest nick name generation
When the setting net/nick is empty, HW generates a guest name. But there were several problems:
- Team name did not match guest name
- Random guest number was re-rolled multiple times, causing inconsistencies
- Guest number was often too large (now capped at 99999)
pub mod bad_words;
pub mod letter_repeat;
use unicode_skeleton::UnicodeSkeleton;
#[derive(PartialEq, Debug)]
enum Severity {
Pass,
Warn,
Silence,
Ban,
}
trait MessageChecker<T> {
fn check(&self, player_id: T, message: &str) -> Severity;
fn fix(&self, player_id: T, message: &str) -> Option<String> {
None
}
}
fn normalized_message(s: &str) -> String {
s.chars()
.flat_map(|c| c.to_lowercase())
.skeleton_chars()
.collect::<String>()
}