From 16d55d54d69ddd1e7b74b43fe466750dab871e66 Mon Sep 17 00:00:00 2001 From: Ed Halley <1223980+hariedo@users.noreply.github.com> Date: Sun, 3 May 2026 22:13:54 -0500 Subject: [PATCH 1/2] Update Slap Weighting Ensure the !slap object table uses a 'unique only' mode to avoid heavily weighing objects appearing in multiple confics. --- DiscordBot/Modules/UserModule.cs | 1 + 1 file changed, 1 insertion(+) diff --git a/DiscordBot/Modules/UserModule.cs b/DiscordBot/Modules/UserModule.cs index d8bc3b65..b743972a 100644 --- a/DiscordBot/Modules/UserModule.cs +++ b/DiscordBot/Modules/UserModule.cs @@ -623,6 +623,7 @@ public async Task SlapUser(params IUser[] users) { try { + _slapObjects.Unique = true; if (_slapObjects.Count == 0) _slapObjects.Load(Settings.UserModuleSlapObjectsTable); } From 40c93b76c7b5bc9230a325cd58fcea2df3513873 Mon Sep 17 00:00:00 2001 From: Ed Halley <1223980+hariedo@users.noreply.github.com> Date: Sun, 3 May 2026 22:19:54 -0500 Subject: [PATCH 2/2] Update FuzzTable.cs Add the 'Unique' property to allow for rejecting duplicate choices. The default is false, which allows duplicates for extra weighting of being picked later. --- DiscordBot/Data/FuzzTable.cs | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) diff --git a/DiscordBot/Data/FuzzTable.cs b/DiscordBot/Data/FuzzTable.cs index 6d423672..a6efd391 100644 --- a/DiscordBot/Data/FuzzTable.cs +++ b/DiscordBot/Data/FuzzTable.cs @@ -26,20 +26,28 @@ public class FuzzTable private List choices = new(); private Queue recent = new(); + // By default, multiple equal entries adds weight to their selection. + // If true, duplicates are rejected silently. + // + public bool Unique { get; set; } = false; + public void Clear() { choices.Clear(); recent.Clear(); + Unique = false; } public int Count => choices.Count + recent.Count; // Add a string as a valid choice from which to pick. // Note that empty strings or whitespace can be added manually as valid choices. - // Duplicate choices are also allowed for weighting. + // Duplicate choices are also allowed for weighting, unless Unique is set true. // public void Add(string choice) { + if (Unique && choices.Contains(choice)) + return; choices.Add(choice); }