Browse Source

Make birthdays add/deleteable by self

master
amki 5 years ago
parent
commit
076dc16e03
  1. BIN
      DiscoBot/299585558710190101-bdaygreet.db
  2. 27
      DiscoBot/bdaygreet/BDayGreet.cs

BIN
DiscoBot/299585558710190101-bdaygreet.db

Binary file not shown.

27
DiscoBot/bdaygreet/BDayGreet.cs

@ -115,23 +115,25 @@ namespace DiscoBot.bdaygreet
private async Task HandleBDayAddCommand(SocketMessage msg, string[] parameters) private async Task HandleBDayAddCommand(SocketMessage msg, string[] parameters)
{ {
var gauthor = guild.Users.Where(u => u.Id == msg.Author.Id).Single(); var gauthor = guild.Users.Where(u => u.Id == msg.Author.Id).Single();
if(!gauthor.GuildPermissions.Administrator)
{
await msg.Channel.SendMessageAsync("Sorry only administrators can add birthdays :(");
return;
}
var gchan = msg.Channel as IGuildChannel;
string name = parameters[1]; string name = parameters[1];
string date = parameters[2]; string date = parameters[2];
SocketGuildUser user; SocketGuildUser user;
try { try
{
var id = MentionUtils.ParseUser(name); var id = MentionUtils.ParseUser(name);
user = guild.Users.Where(u => u.Id == id).Single(); user = guild.Users.Where(u => u.Id == id).Single();
} catch(Exception) }
catch (Exception)
{ {
await msg.Channel.SendMessageAsync("I can't find user " + name + " so I can't add them."); await msg.Channel.SendMessageAsync("I can't find user " + name + " so I can't add them.");
return; return;
} }
if (gauthor.Id != user.Id && !gauthor.GuildPermissions.Administrator)
{
await msg.Channel.SendMessageAsync("Only administrators can add arbitrary birthdays. You can add your own though! :)");
return;
}
var gchan = msg.Channel as IGuildChannel;
DateTimeOffset d; DateTimeOffset d;
try { try {
d = DateTimeOffset.ParseExact(date,new string[] { "dd.MM.", "d.MM.", "dd.M", "d.M." }, null, DateTimeStyles.AssumeUniversal); d = DateTimeOffset.ParseExact(date,new string[] { "dd.MM.", "d.MM.", "dd.M", "d.M." }, null, DateTimeStyles.AssumeUniversal);
@ -201,13 +203,14 @@ namespace DiscoBot.bdaygreet
private async Task HandleBDayDelCommand(SocketMessage msg, string[] parameters) private async Task HandleBDayDelCommand(SocketMessage msg, string[] parameters)
{ {
var gauthor = guild.Users.Where(u => u.Id == msg.Author.Id).Single(); var gauthor = guild.Users.Where(u => u.Id == msg.Author.Id).Single();
if (!gauthor.GuildPermissions.Administrator)
var gchan = msg.Channel as IGuildChannel;
string tag = ((IModule)this).ConcatParameters(parameters[1..]);
if (tag != msg.Author.Username+"#"+msg.Author.DiscriminatorValue && !gauthor.GuildPermissions.Administrator)
{ {
await msg.Channel.SendMessageAsync("Sorry only administrators can delete birthdays :("); await msg.Channel.SendMessageAsync("Only administrators can delete arbitrary birthdays. You can delete your own...");
return; return;
} }
var gchan = msg.Channel as IGuildChannel;
string tag = ((IModule)this).ConcatParameters(parameters[1..]);
try try
{ {
var b = bdayGreetContext.BDays.Where(b => b.DiscordTag == tag).Single(); var b = bdayGreetContext.BDays.Where(b => b.DiscordTag == tag).Single();

Loading…
Cancel
Save