New lib, created some mock class for editing
The class would allow you to edit users LINQ-style , i just need to convince voltana to make this happen
This commit is contained in:
@ -241,10 +241,14 @@ namespace NadekoBot.Modules
|
||||
.Parameter("user",Discord.Commands.ParameterType.Required)
|
||||
.Do(async e =>
|
||||
{
|
||||
if (e.Message.MentionedUsers.Any())
|
||||
await e.Send( "Id of the user " + e.Message.MentionedUsers.First().Mention + " is " + e.Message.MentionedUsers.First().Id);
|
||||
else
|
||||
await e.Send( "You must mention a user.");
|
||||
var usr = client.FindUsers(e.Channel, e.GetArg("user")).FirstOrDefault();
|
||||
if (usr == null)
|
||||
{
|
||||
await e.Send("You must mention a user.");
|
||||
return;
|
||||
}
|
||||
|
||||
await e.Send( "Id of the user " + usr.Name + " is " + usr.Id);
|
||||
});
|
||||
|
||||
cgb.CreateCommand(".cid").Alias(".channelid")
|
||||
|
@ -94,7 +94,7 @@ namespace NadekoBot.Modules
|
||||
}
|
||||
}
|
||||
|
||||
private PokeType GetType(long id) {
|
||||
private PokeType GetType(ulong id) {
|
||||
var remainder = id % 10;
|
||||
if (remainder < 3)
|
||||
return PokeType.WATER;
|
||||
|
@ -22,6 +22,81 @@ namespace NadekoBot.Modules
|
||||
|
||||
}
|
||||
|
||||
class EditUserBuilder {
|
||||
|
||||
public Discord.DiscordClient Client { get; set; }
|
||||
public Discord.User User { get; set; }
|
||||
private bool? ShouldMute { get; set; }
|
||||
private bool? ShouldDeaf { get; set; }
|
||||
private Discord.Channel TargetVoiceChannel { get; set; }
|
||||
private Dictionary<Discord.EditMode, IEnumerable<Discord.Role>> TargetRoles { get; set; }
|
||||
|
||||
|
||||
public EditUserBuilder(Discord.User user, Discord.DiscordClient client = null) {
|
||||
this.User = user;
|
||||
this.Client = client;
|
||||
TargetRoles = new Dictionary<Discord.EditMode, IEnumerable<Discord.Role>>();
|
||||
}
|
||||
|
||||
public EditUserBuilder Mute(bool mute = true) {
|
||||
ShouldMute = mute;
|
||||
return this;
|
||||
}
|
||||
|
||||
public EditUserBuilder Deaf(bool mute = true)
|
||||
{
|
||||
ShouldDeaf = mute;
|
||||
return this;
|
||||
}
|
||||
|
||||
public EditUserBuilder VoiceChannel(Discord.Channel voiceChannel = null)
|
||||
{
|
||||
TargetVoiceChannel = voiceChannel;
|
||||
return this;
|
||||
}
|
||||
|
||||
public EditUserBuilder Roles(IEnumerable<Discord.Role> roles, Discord.EditMode mode)
|
||||
{
|
||||
if (TargetRoles.Keys.Contains(mode))
|
||||
{
|
||||
TargetRoles[mode] = TargetRoles[mode].Concat(roles);
|
||||
}
|
||||
else
|
||||
{
|
||||
TargetRoles[mode] = roles;
|
||||
}
|
||||
return this;
|
||||
}
|
||||
|
||||
public async Task Apply() {
|
||||
if (Client == null || User == null) return; //throw exception?
|
||||
await Client.EditUser(User, ShouldMute, ShouldDeaf, TargetVoiceChannel);
|
||||
foreach (var mode in TargetRoles.Keys) {
|
||||
await Client.EditUser(User, null, null, null, TargetRoles[mode], mode);
|
||||
}
|
||||
return;
|
||||
}
|
||||
|
||||
public EditUserBuilder SetUser(Discord.User user)
|
||||
{
|
||||
this.User = user;
|
||||
return this;
|
||||
}
|
||||
|
||||
public EditUserBuilder SetClient(Discord.DiscordClient client)
|
||||
{
|
||||
this.Client = client;
|
||||
return this;
|
||||
}
|
||||
|
||||
public EditUserBuilder DoWhen(Func<EditUserBuilder, EditUserBuilder> func, Func<bool> predicate) {
|
||||
if (predicate())
|
||||
return func(this);
|
||||
return this;
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
public override void Install(ModuleManager manager)
|
||||
{
|
||||
var client = NadekoBot.client;
|
||||
|
Reference in New Issue
Block a user