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); }
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); } }
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); }