Exemplo n.º 1
0
        public void Init()
        {
            for (int i = 0; i < raw_events.Count; i++)
            {
                raw_events[i].LoadData();
                for (int j = 0; j < raw_events[i].Names.Length; j++)
                {
                    Events.Add(raw_events[i].Names[j], raw_events[i]);
                }
            }

            QueueLog.LogPath = "./dispatch_log.txt";

            MessageQueue.OnDispatch = (msg) =>
            {
                QueueLog.Log(msg.EventName + " has been dispatched!");
            };

            display.RegisterElement(Logger);
            display.RegisterElement(QueueLog);
            display.RegisterElement(Shell);
            display.RegisterElement(StatusDisp);

            DestructionHandler.RegisterDestructible(QueueLog);
            DestructionHandler.RegisterDestructible(TarangBot);
            DestructionHandler.RegisterDestructible(Logger);

            GmailDaemon.SetCredentials(MailUsername, Encoding.UTF8.GetString(Convert.FromBase64String(MailPassword)));
        }
Exemplo n.º 2
0
        public static void ReloadConfig()
        {
            if (!File.Exists("./Data/config.txt"))
            {
                throw new Exception("Config file not found!");
            }

            TarangData data = TarangData.Load("./Data/config.txt");

            Data.AnnouncementChannel = data.AnnouncementChannel;
            Data.BotMessagesChannel  = data.BotMessagesChannel;
            Data.DashboardChannel    = data.DashboardChannel;
            Data.DashboardMessageId  = data.DashboardMessageId;
            Data.DiscordBotPrefix    = data.DiscordBotPrefix;
            Data.DiscordBotToken     = data.DiscordBotToken;
            Data.DiscordInvite       = data.DiscordInvite;
            Data.GuildId             = data.GuildId;
            Data.LastError           = data.LastError;
            Data.MailPassword        = data.MailPassword;
            Data.MailUsername        = data.MailUsername;
            Data.participants        = data.participants;
            Data.raw_events          = data.raw_events;
            Data.SheetPollInterval   = data.SheetPollInterval;

            Data.Events.Clear();

            for (int i = 0; i < Data.raw_events.Count; i++)
            {
                Data.raw_events[i].LoadData();
                for (int j = 0; j < Data.raw_events[i].Names.Length; j++)
                {
                    Data.Events.Add(Data.raw_events[i].Names[j], Data.raw_events[i]);
                }
            }

            GmailDaemon.SetCredentials(Data.MailUsername, Encoding.UTF8.GetString(Convert.FromBase64String(Data.MailPassword)));
        }
Exemplo n.º 3
0
        public void Init()
        {
            Tarang.Data.MessageQueue.On("NewRegistration", (new_registration) =>
            {
                Registration registration = (Registration)new_registration[0];

                if (Tarang.Data.MailEnabled)
                {
                    GmailDaemon.SendMail(registration.TeacherCoordinator.email_id, "Tarang 2020 Discord Invite", File.ReadAllText("./InviteMail.html").Replace("$--link--$", Tarang.Data.DiscordInvite), true);
                }

                foreach (Participant participant in registration.participants.Values)
                {
                    if (!participant.UserName.Contains('#'))
                    {
                        continue;
                    }
                    string user = participant.UserName.Split('#')[0].Trim() + "#" + participant.UserName.Split('#')[1].Trim();


                    if (UsernamesToAssign.ContainsKey(user))
                    {
                        foreach (string id in participant.Registered_Events)
                        {
                            if (!UsernamesToAssign[user].Registered_Events.Contains(id))
                            {
                                UsernamesToAssign[user].Registered_Events.Add(id);
                            }
                        }
                        Tarang.Data.participants.RemoveWhere((p) => p.UserName == participant.UserName);
                        Tarang.Data.participants.Add(UsernamesToAssign[user]);
                    }
                    else
                    {
                        UsernamesToAssign.Add(user, participant);
                        Tarang.Data.participants.Add(participant);
                    }

                    SocketGuildUser disc_user;
                    if ((disc_user = Tarang.Data.TarangBot._client.GetUser(participant.UserName.Split('#')[0].Trim(), participant.UserName.Split('#')[1].Trim()) as SocketGuildUser) != null)
                    {
                        disc_user.AddRolesAsync(UsernamesToAssign[user].GetRoles());
                    }
                }
            });

            Tarang.Data.MessageQueue.On("OnUserJoin", async(a) =>
            {
                SocketGuildUser arg = (SocketGuildUser)a[0];
                string user         = arg.Username + "#" + arg.Discriminator;
                if (UsernamesToAssign.ContainsKey(user))
                {
                    UsernamesToAssign[user].Guild_Id = arg.Guild.Id;

                    //Welcome messages?
                    for (int i = 0; i < UsernamesToAssign[user].Registered_Events.Count; i++)
                    {
                        Event @event = Tarang.Data.GetEventById(UsernamesToAssign[user].Registered_Events[i]);

                        await(Tarang.Data.TarangBot._client.GetChannel(@event.TextChannel) as SocketTextChannel).SendMessageAsync($"Welcome to {@event.Names[0]}, {UsernamesToAssign[user].Name}");
                    }

                    await arg.AddRolesAsync(UsernamesToAssign[user].GetRoles());
                }
            });
        }