diff --git a/Dockerfile b/Dockerfile index 490503b..351dd05 100644 --- a/Dockerfile +++ b/Dockerfile @@ -32,6 +32,7 @@ ENV basic_Username='' \ commands_SharedSecret='examplecode' \ commands_EnableMasterControls='true' \ commands_MastersCSV='Madpeter Zond' \ + commands_CheckDotNames='false' \ commands_EnforceTimeWindow='false' \ commands_TimeWindowSecs=35 \ commands_Enabled='true' \ diff --git a/SecondBotEvents/Config/CommandsConfig.cs b/SecondBotEvents/Config/CommandsConfig.cs index 6ce6c6f..0e21a6b 100644 --- a/SecondBotEvents/Config/CommandsConfig.cs +++ b/SecondBotEvents/Config/CommandsConfig.cs @@ -16,6 +16,7 @@ namespace SecondBotEvents.Config settings.Add("SharedSecret"); settings.Add("EnableMasterControls"); settings.Add("MastersCSV"); + settings.Add("CheckDotNames"); settings.Add("EnforceTimeWindow"); settings.Add("TimeWindowSecs"); settings.Add("Enabled"); @@ -32,6 +33,11 @@ namespace SecondBotEvents.Config return ReadSettingAsBool("Enabled", true); } + public bool GetCheckDotNames() + { + return ReadSettingAsBool("CheckDotNames", false); + } + public bool GetObjectMasterOptout() { return ReadSettingAsBool("ObjectMasterOptout", false); diff --git a/SecondBotEvents/Services/CommandsService.cs b/SecondBotEvents/Services/CommandsService.cs index eaedfb3..b2c1798 100644 --- a/SecondBotEvents/Services/CommandsService.cs +++ b/SecondBotEvents/Services/CommandsService.cs @@ -149,6 +149,14 @@ namespace SecondBotEvents.Services { string ownername = master.DataStoreService.GetAvatarName(e.IM.FromAgentID); requireSigning = !myConfig.GetMastersCSV().Contains(ownername); + if ((requireSigning == false) && (myConfig.GetCheckDotNames() == true)) + { + string[] bits = e.IM.FromAgentName.ToLower().Split('.'); + if (bits.Length == 2) + { + requireSigning = myConfig.GetMastersCSV().Contains(bits[0].FirstCharToUpper() + " " + bits[1].FirstCharToUpper()); + } + } } break; } @@ -166,6 +174,14 @@ namespace SecondBotEvents.Services master.DataStoreService.AddAvatar(e.IM.FromAgentID, e.IM.FromAgentName); requireSigning = false; acceptMessage = myConfig.GetMastersCSV().Contains(e.IM.FromAgentName); + if ((acceptMessage == false) && (myConfig.GetCheckDotNames() == true)) + { + string[] bits = e.IM.FromAgentName.ToLower().Split('.'); + if (bits.Length == 2) + { + acceptMessage = myConfig.GetMastersCSV().Contains(bits[0].FirstCharToUpper()+" " + bits[1].FirstCharToUpper()); + } + } break; } default: @@ -193,6 +209,7 @@ namespace SecondBotEvents.Services } } } + return false; }