Added toggle-able deletion of greet/bye messages
This commit is contained in:
		| @@ -69,9 +69,9 @@ namespace NadekoBot.Modules.Administration.Commands | |||||||
|                     if (channel == null) return; |                     if (channel == null) return; | ||||||
|                     Greeted++; |                     Greeted++; | ||||||
|                     var toDelete = await channel.SendMessage(msg).ConfigureAwait(false); |                     var toDelete = await channel.SendMessage(msg).ConfigureAwait(false); | ||||||
|                     if (e.Server.CurrentUser.GetPermissions(channel).ManageMessages) |                     if (e.Server.CurrentUser.GetPermissions(channel).ManageMessages && controls.DeleteGreetMessages) | ||||||
|                     { |                     { | ||||||
|                         await Task.Delay(300000).ConfigureAwait(false); // 5 minutes |                         await Task.Delay(30000).ConfigureAwait(false); // 5 minutes | ||||||
|                         await toDelete.Delete().ConfigureAwait(false); |                         await toDelete.Delete().ConfigureAwait(false); | ||||||
|                     } |                     } | ||||||
|                 } |                 } | ||||||
| @@ -102,9 +102,9 @@ namespace NadekoBot.Modules.Administration.Commands | |||||||
|                     if (channel == null) return; |                     if (channel == null) return; | ||||||
|                     Greeted++; |                     Greeted++; | ||||||
|                     var toDelete = await channel.SendMessage(msg).ConfigureAwait(false); |                     var toDelete = await channel.SendMessage(msg).ConfigureAwait(false); | ||||||
|                     if (e.Server.CurrentUser.GetPermissions(channel).ManageMessages) |                     if (e.Server.CurrentUser.GetPermissions(channel).ManageMessages && controls.DeleteGreetMessages) | ||||||
|                     { |                     { | ||||||
|                         await Task.Delay(300000).ConfigureAwait(false); // 5 minutes |                         await Task.Delay(30000).ConfigureAwait(false); // 5 minutes | ||||||
|                         await toDelete.Delete().ConfigureAwait(false); |                         await toDelete.Delete().ConfigureAwait(false); | ||||||
|                     } |                     } | ||||||
|                 } |                 } | ||||||
| @@ -160,6 +160,15 @@ namespace NadekoBot.Modules.Administration.Commands | |||||||
|                 set { _model.ServerId = (long)value; } |                 set { _model.ServerId = (long)value; } | ||||||
|             } |             } | ||||||
|  |  | ||||||
|  |             public bool DeleteGreetMessages { | ||||||
|  |                 get { | ||||||
|  |                     return _model.DeleteGreetMessages; | ||||||
|  |                 } | ||||||
|  |                 set { | ||||||
|  |                     _model.DeleteGreetMessages = value; Save(); | ||||||
|  |                 } | ||||||
|  |             } | ||||||
|  |  | ||||||
|             public AnnounceControls(DataModels.Announcement model) |             public AnnounceControls(DataModels.Announcement model) | ||||||
|             { |             { | ||||||
|                 this._model = model; |                 this._model = model; | ||||||
| @@ -196,6 +205,8 @@ namespace NadekoBot.Modules.Administration.Commands | |||||||
|                     return Greet = true; |                     return Greet = true; | ||||||
|                 } |                 } | ||||||
|             } |             } | ||||||
|  |  | ||||||
|  |             internal bool ToggleDelete() => DeleteGreetMessages = !DeleteGreetMessages; | ||||||
|             internal bool ToggleGreetPM() => GreetPM = !GreetPM; |             internal bool ToggleGreetPM() => GreetPM = !GreetPM; | ||||||
|             internal bool ToggleByePM() => ByePM = !ByePM; |             internal bool ToggleByePM() => ByePM = !ByePM; | ||||||
|  |  | ||||||
| @@ -207,6 +218,21 @@ namespace NadekoBot.Modules.Administration.Commands | |||||||
|  |  | ||||||
|         internal override void Init(CommandGroupBuilder cgb) |         internal override void Init(CommandGroupBuilder cgb) | ||||||
|         { |         { | ||||||
|  |             cgb.CreateCommand(Module.Prefix + "grdel") | ||||||
|  |                 .Description("Enables or Disables automatic deletion of greet and bye messages.") | ||||||
|  |                 .Do(async e => | ||||||
|  |                 { | ||||||
|  |                     if (!e.User.ServerPermissions.ManageServer) return; | ||||||
|  |                     if (!AnnouncementsDictionary.ContainsKey(e.Server.Id)) | ||||||
|  |                         AnnouncementsDictionary.TryAdd(e.Server.Id, new AnnounceControls(e.Server.Id)); | ||||||
|  |  | ||||||
|  |                     var controls = AnnouncementsDictionary[e.Server.Id]; | ||||||
|  |  | ||||||
|  |                     if (controls.ToggleDelete()) | ||||||
|  |                         await e.Channel.SendMessage("`Automatic deletion of greet and bye messages has been enabled.`").ConfigureAwait(false); | ||||||
|  |                     else | ||||||
|  |                         await e.Channel.SendMessage("`Automatic deletion of greet and bye messages has been disabled.`").ConfigureAwait(false); | ||||||
|  |                 }); | ||||||
|  |  | ||||||
|             cgb.CreateCommand(Module.Prefix + "greet") |             cgb.CreateCommand(Module.Prefix + "greet") | ||||||
|                 .Description("Enables or Disables anouncements on the current channel when someone joins the server.") |                 .Description("Enables or Disables anouncements on the current channel when someone joins the server.") | ||||||
|   | |||||||
| @@ -15,5 +15,6 @@ namespace NadekoBot.DataModels | |||||||
|         [JsonProperty("byeChannel")] |         [JsonProperty("byeChannel")] | ||||||
|         public long ByeChannelId { get; set; } = 0; |         public long ByeChannelId { get; set; } = 0; | ||||||
|         public string ByeText { get; set; } = "%user% has left the server."; |         public string ByeText { get; set; } = "%user% has left the server."; | ||||||
|  |         public bool DeleteGreetMessages { get; set; } = true; | ||||||
|     } |     } | ||||||
| } | } | ||||||
|   | |||||||
		Reference in New Issue
	
	Block a user