Configurable delays for the Pig Cube self destruct feature

This commit is contained in:
barelyprofessional
2025-05-02 12:41:40 -05:00
parent 7c2b1354aa
commit adf38b9c53
2 changed files with 38 additions and 3 deletions

View File

@@ -148,7 +148,8 @@ public class GetRandomImage : ICommand
if (!await images.AnyAsync(ctx)) return; if (!await images.AnyAsync(ctx)) return;
var settings = await Helpers.GetMultipleValues([ var settings = await Helpers.GetMultipleValues([
BuiltIn.Keys.BotImageRandomSliceDivideBy, BuiltIn.Keys.BotImagePigCubeSelfDestruct, BuiltIn.Keys.BotImageRandomSliceDivideBy, BuiltIn.Keys.BotImagePigCubeSelfDestruct,
BuiltIn.Keys.BotImageInvertedCubeUrl BuiltIn.Keys.BotImageInvertedCubeUrl, BuiltIn.Keys.BotImagePigCubeSelfDestructMin,
BuiltIn.Keys.BotImagePigCubeSelfDestructMax, BuiltIn.Keys.BotImageInvertedPigCubeSelfDestructDelay
]); ]);
var divideBy = settings[BuiltIn.Keys.BotImageRandomSliceDivideBy].ToType<int>(); var divideBy = settings[BuiltIn.Keys.BotImageRandomSliceDivideBy].ToType<int>();
var limit = 1; var limit = 1;
@@ -185,8 +186,9 @@ public class GetRandomImage : ICommand
} }
var timeToDeletionMsec = image.Url == settings[BuiltIn.Keys.BotImageInvertedCubeUrl].Value var timeToDeletionMsec = image.Url == settings[BuiltIn.Keys.BotImageInvertedCubeUrl].Value
? 5000 ? settings[BuiltIn.Keys.BotImageInvertedPigCubeSelfDestructDelay].ToType<int>()
: new Random().Next(5 * 1000, 15 * 1000); : new Random().Next(settings[BuiltIn.Keys.BotImagePigCubeSelfDestructMin].ToType<int>(),
settings[BuiltIn.Keys.BotImagePigCubeSelfDestructMax].ToType<int>());
logger.Info($"Deleting pig cube in {timeToDeletionMsec}ms"); logger.Info($"Deleting pig cube in {timeToDeletionMsec}ms");
await Task.Delay(timeToDeletionMsec, ctx); await Task.Delay(timeToDeletionMsec, ctx);
await botInstance.KfClient.DeleteMessageAsync(msg.ChatMessageId.Value); await botInstance.KfClient.DeleteMessageAsync(msg.ChatMessageId.Value);

View File

@@ -804,6 +804,36 @@ public static class BuiltIn
IsSecret = false, IsSecret = false,
CacheDuration = TimeSpan.FromHours(1), CacheDuration = TimeSpan.FromHours(1),
ValueType = SettingValueType.Text ValueType = SettingValueType.Text
},
new BuiltInSettingsModel
{
Key = Keys.BotImagePigCubeSelfDestructMin,
Regex = @"\d+",
Description = "Min value for the Pig Cube self destruct Random.Next() in milliseconds",
Default = "5000",
IsSecret = false,
CacheDuration = TimeSpan.FromHours(1),
ValueType = SettingValueType.Text
},
new BuiltInSettingsModel
{
Key = Keys.BotImagePigCubeSelfDestructMax,
Regex = @"\d+",
Description = "Max value for the Pig Cube self destruct Random.Next() in milliseconds",
Default = "15000",
IsSecret = false,
CacheDuration = TimeSpan.FromHours(1),
ValueType = SettingValueType.Text
},
new BuiltInSettingsModel
{
Key = Keys.BotImageInvertedPigCubeSelfDestructDelay,
Regex = @"\d+",
Description = "Value in milliseconds for how long the bot should wait before self destructing the inverted pig cube",
Default = "5000",
IsSecret = false,
CacheDuration = TimeSpan.FromHours(1),
ValueType = SettingValueType.Text
} }
]; ];
@@ -878,5 +908,8 @@ public static class BuiltIn
public static string BotImagePigCubeSelfDestruct = "Bot.Image.PigCubeSelfDestruct"; public static string BotImagePigCubeSelfDestruct = "Bot.Image.PigCubeSelfDestruct";
public static string BotImageInvertedCubeUrl = "Bot.Image.InvertedCubeUrl"; public static string BotImageInvertedCubeUrl = "Bot.Image.InvertedCubeUrl";
public static string JuiceAutoDeleteMsgDelay = "Juice.AutoDeleteMsgDelay"; public static string JuiceAutoDeleteMsgDelay = "Juice.AutoDeleteMsgDelay";
public static string BotImagePigCubeSelfDestructMin = "Bot.Image.PigCubeSelfDestructMin";
public static string BotImagePigCubeSelfDestructMax = "Bot.Image.PigCubeSelfDestructMax";
public static string BotImageInvertedPigCubeSelfDestructDelay = "Bot.Image.InvertedPigCubeSelfDestructDelay";
} }
} }