public PrefixInstance RegisterPrefixInstance(string prefix, bool canBeChanged = true, bool forceExecuteCommands = false) { PrefixInstance newPrefix = new PrefixInstance(prefix.ToLower(), canBeChanged, forceExecuteCommands); CommandHandler.Prefixes.Add(prefix, newPrefix); return(newPrefix); }
public void RegisterAsDefault() { if (Default == null) { Default = this; } else { Log.WarningAt("SetDefaultPrefix", "Default prefix is already defined!"); } }
public async Task <string> GetIdentifierAsync(ulong guildId, PrefixInstance prefix) { using (var context = new IAContext()) { Identifier i = await context.Identifiers.FindAsync(guildId); if (i == null) { i = context.Identifiers.Add(new Identifier() { GuildId = guildId.ToDbLong(), Value = prefix.DefaultValue }); await context.SaveChangesAsync(); } return(i.Value); } }
public async Task <bool> TryRunCommandAsync(IDiscordMessage msg, PrefixInstance prefix) { string identifier = await prefix.GetForGuildAsync(msg.Guild.Id); string message = msg.Content.ToLower(); if (msg.Content.StartsWith(identifier)) { message = Regex.Replace(message, @"\r\n?|\n", ""); string command = message .Substring(identifier.Length) .Split(' ') .First(); command = (aliases.ContainsKey(command)) ? aliases[command] : command; ICommandEvent eventInstance = GetCommandEvent(command); if (eventInstance == null) { return(false); } if (GetUserAccessibility(msg) >= eventInstance.Accessibility) { if (await eventInstance.IsEnabled(msg.Channel.Id) || prefix.ForceCommandExecution && GetUserAccessibility(msg) >= EventAccessibility.DEVELOPERONLY) { await eventInstance.Check(msg, this, identifier); return(true); } } else { await eventSystem.OnCommandDone(msg, eventInstance, false); } } return(false); }