Exemple #1
0
        public static async Task RestoreTempbanRoles(ulong id)
        {
            var user = await Global.GetSwissbotUser(id);

            if (user == null)
            {
                return;
            }

            var tmban = TempBans.FirstOrDefault(x => x.UserId == id);

            if (tmban == null)
            {
                return;
            }

            await SwissbotWorkerHandler.AssignTasks(WorkerTask.AddRoles, "add", tmban.PreviousRoles, user.Id);

            WorkerTaskCreator.CreateTask(WorkerTask.RemoveRoles, user.Id, "remove", 783462878976016385);
            WorkerTaskCreator.CreateTask(WorkerTask.RemoveRoles, user.Id, "remove", 627683033151176744);
        }
Exemple #2
0
        private async Task HandleUserActionEvent(RawWebsocketMessage msg)
        {
            // Get the data
            var data = EventVcUserAction.FromRaw(msg.rawMessage);

            if (data.action == EventVcUserAction.VcAction.Disconnect)
            {
                var user = await Global.GetSwissbotUser(data.targetUser);

                if (user == null)
                {
                    return;
                }
                await user.ModifyAsync(x => x.Channel = null);
            }
            else
            {
                var vcAction = data.action == EventVcUserAction.VcAction.Mute ? WorkerTask.Mute : WorkerTask.Deafen;

                WorkerTaskCreator.CreateTask(vcAction, data.targetUser, data.value);
            }
        }
Exemple #3
0
        public static async Task <ulong[]> ClearAndAddTempbanRoles(ulong id)
        {
            var user = await Global.GetSwissbotUser(id);

            if (user == null)
            {
                return(null);
            }

            ulong[] roles = null;

            RoleRevokes.Add(id, false);

            while (RoleRevokes.Any(x => x.Key == id && !x.Value))
            {
                user = await Global.GetSwissbotUser(id);

                roles = user.RoleIds.Where(x => x != Global.SwissGuildId && x != 627683033151176744 && x != 783462878976016385).ToArray();

                await SwissbotWorkerHandler.AssignTasks(WorkerTask.RemoveRoles, "remove", roles.Select(x => x).ToArray(), user.Id);

                if (!user.RoleIds.Any(x => x == 783462878976016385))
                {
                    WorkerTaskCreator.CreateTask(WorkerTask.AddRoles, user.Id, "add", 783462878976016385);
                }
                if (!user.RoleIds.Any(x => x == 627683033151176744))
                {
                    WorkerTaskCreator.CreateTask(WorkerTask.AddRoles, user.Id, "add", 627683033151176744);
                }

                await Task.Delay(1000);
            }

            RoleRevokes.Remove(id);

            return(roles);
        }