Exemplo n.º 1
0
            public static void Prefix([HarmonyArgument(1)] MessageReader writer, [HarmonyArgument(0)] int callId)
            {
                switch ((CustomRpcMessage)callId)
                {
                case CustomRpcMessage.SetCustomRoles:     // Set Custom Roles
                    CustomRoles.Clear();
                    var giveRole = writer.ReadBoolean();
                    if (!giveRole)
                    {
                        return;
                    }
                    var playerId = writer.ReadByte();
                    var player   = GameData.Instance.GetPlayerById(playerId).CBEJMNMADDB;
                    CustomRoles.Add(player.PlayerId, true);

                    if (CustomRoles.ContainsKey(PlayerControl.LocalPlayer.PlayerId))
                    {
                        var role = CustomRoles[PlayerControl.LocalPlayer.PlayerId];
                        if (role)
                        {
                            PlayerControl.LocalPlayer.nameText.Color = JesterRole.Color;
                        }
                    }

                    return;
                }
            }
Exemplo n.º 2
0
            public static void Prefix()
            {
                if (JesterWon)
                {
                    TempData.winners = JesterRole.GetWinners(CustomRoles);
                }
                else
                {
                    for (var i = 0; i < TempData.winners.Count; i++)
                    {
                        var  winner   = TempData.winners[i];
                        byte playerId = 255;
                        foreach (var player in GameData.Instance.AllPlayers)
                        {
                            if (player.LNFMCJAPLBH == winner.Name)
                            {
                                playerId = player.FMAAJCIEMEH;
                                break;
                            }
                        }

                        CustomRoles.TryGetValue(playerId, out var isJester);
                        if (isJester)
                        {
                            TempData.winners.RemoveAt(i);
                            i--;
                        }
                    }
                }
            }
Exemplo n.º 3
0
 public static void Postfix(ExileController __instance, [HarmonyArgument(0)] GameData.Nested_1 exiled)
 {
     CustomRoles.TryGetValue(exiled.FMAAJCIEMEH, out var isJester);
     if (isJester)
     {
         __instance.ImpostorText.Text = "But they were the Jester.";
     }
 }
        public ApplicationUser() : base()
        {
            Nom    = "";
            Prenom = "";
            CustomRoles cr = new CustomRoles();

            Role = cr.getProf();
        }
Exemplo n.º 5
0
            public static void Postfix(PlayerControl __instance,
                                       [HarmonyArgument(0)] Il2CppReferenceArray <GameData.Nested_1> infected)
            {
                var playersToGiveRoles = new List <GameData.Nested_1>();

                foreach (var p in GameData.Instance.AllPlayers)
                {
                    if (infected.All(imposter => imposter.FMAAJCIEMEH != p.FMAAJCIEMEH))
                    {
                        playersToGiveRoles.Add(p);
                    }
                }

                var giveRole = false;;

                switch (GameOptionsPatches.JesterMode)
                {
                case GameOptionsPatches.JesterModes.Always:
                    giveRole = true;
                    break;

                case GameOptionsPatches.JesterModes.Maybe:
                    if (HashRandom.Method_1(10000) % 2 == 0)
                    {
                        giveRole = true;
                    }
                    break;
                }

                var messageWriter = AmongUsClient.Instance.StartRpc(__instance.NetId,
                                                                    (byte)CustomRpcMessage.SetCustomRoles, SendOption.Reliable);

                CustomRoles.Clear();

                messageWriter.Write(giveRole);
                if (giveRole)
                {
                    int index = HashRandom.Method_1(playersToGiveRoles.Count);
                    CustomRoles.Add(playersToGiveRoles[index].ACBLKMFEPKC, true);
                    messageWriter.Write(playersToGiveRoles[index].ACBLKMFEPKC);
                    if (CustomRoles.ContainsKey(PlayerControl.LocalPlayer.PlayerId))
                    {
                        var role = CustomRoles[PlayerControl.LocalPlayer.PlayerId];
                        if (role)
                        {
                            __instance.nameText.Color = JesterRole.Color;
                        }
                    }
                }

                messageWriter.EndMessage();

                // foreach (var (key, value) in CustomRoles)
                // {
                //     System.Console.WriteLine(key + ": " + value.Join(null, ", "));
                // }
            }
Exemplo n.º 6
0
        /// <summary>
        /// When overridden, provides an entry point for custom authorization checks.
        /// </summary>
        /// <param name="httpContext">The HTTP context, which encapsulates all HTTP-specific information about an individual HTTP request.</param>
        /// <returns>true if the user is authorized; otherwise, false.</returns>
        protected virtual bool AuthorizeCore(HttpContextBase httpContext)
        {
            if (Metadata != null)
            {
                if (!Metadata.AllowAnonymous && !httpContext.User.Identity.IsAuthenticated)
                {
                    return(false);
                }
                switch (Action)
                {
                case EntityAuthorizeAction.Create:
                    return(Metadata.AddRoles.Count() == 0 ||
                           (Metadata.AuthenticationRequiredMode == ComponentModel.DataAnnotations.AuthenticationRequiredMode.All ?
                            Metadata.AddRoles.All(t => httpContext.User.IsInRole(t)) :
                            Metadata.AddRoles.Any(t => httpContext.User.IsInRole(t))));

                case EntityAuthorizeAction.Edit:
                    return(Metadata.EditRoles.Count() == 0 ||
                           (Metadata.AuthenticationRequiredMode == ComponentModel.DataAnnotations.AuthenticationRequiredMode.All ?
                            Metadata.EditRoles.All(t => httpContext.User.IsInRole(t)) :
                            Metadata.EditRoles.Any(t => httpContext.User.IsInRole(t))));

                case EntityAuthorizeAction.Remove:
                    return(Metadata.RemoveRoles.Count() == 0 ||
                           (Metadata.AuthenticationRequiredMode == ComponentModel.DataAnnotations.AuthenticationRequiredMode.All ?
                            Metadata.RemoveRoles.All(t => httpContext.User.IsInRole(t)) :
                            Metadata.RemoveRoles.Any(t => httpContext.User.IsInRole(t))));

                case EntityAuthorizeAction.View:
                    return(Metadata.ViewRoles.Count() == 0 ||
                           (Metadata.AuthenticationRequiredMode == ComponentModel.DataAnnotations.AuthenticationRequiredMode.All ?
                            Metadata.ViewRoles.All(t => httpContext.User.IsInRole(t)) :
                            Metadata.ViewRoles.Any(t => httpContext.User.IsInRole(t))));

                case EntityAuthorizeAction.None:
                    return(CustomRoles == null ||
                           (CustomRolesRequiredMode == ComponentModel.DataAnnotations.AuthenticationRequiredMode.All ?
                            CustomRoles.All(t => httpContext.User.IsInRole(t)) :
                            CustomRoles.Any(t => httpContext.User.IsInRole(t))));

                default:
                    return(false);
                }
            }
            else
            if (Action == EntityAuthorizeAction.None && CustomRoles != null)
            {
                return(CustomRolesRequiredMode == ComponentModel.DataAnnotations.AuthenticationRequiredMode.All ?
                       CustomRoles.All(t => httpContext.User.IsInRole(t)) :
                       CustomRoles.Any(t => httpContext.User.IsInRole(t)));
            }
            else
            {
                return(httpContext.User.Identity.IsAuthenticated);
            }
        }
Exemplo n.º 7
0
 public static void Postfix(EndGameManager __instance)
 {
     if (JesterWon)
     {
         __instance.WinText.Color = JesterRole.Color;
         __instance.BackgroundBar.material.SetColor(Color, JesterRole.Color);
         JesterWon = false;
         CustomRoles.Clear();
     }
 }
        /// <summary>
        /// Delete a particular role for a user. This option will reduce their role rank by one. A user will never be without a role.
        /// </summary>
        /// <param name="UserName">The user whose rank will be reduced.</param>
        private void DeleteRoleForUser(string UserName)
        {
            ApplicationUser user = context.Users.FirstOrDefault(u => u.UserName.Equals(UserName, StringComparison.CurrentCultureIgnoreCase));

            if (user == null)
            {
                ViewBag.ResultMessageError = "Cannot find \"" + UserName + "\" in the database.";
            }

            else
            {
                // Don't let them be removed from the admin role to prevent lockout.
                if (UserManager.GetRoles(user.Id).Contains("Admin") && AccountInfoHelper.NumberAdminsLeft() == 1)
                {
                    ViewBag.ResultMessageError = UserName + " is an admin and the only admin remaining. The user must be deleted instead.";
                }

                else
                {
                    // Get all the user roles (will only be 1).
                    var oldRole = (string)UserManager.GetRoles(user.Id).ElementAt(0);

                    // Get the list of roles.
                    Dictionary <int, string> roleList = CustomRoles.Roles();

                    // Get the key associated with the role name.
                    var key = roleList.Keys.Single(k => roleList[k] == oldRole);

                    // If they are already the lowest user role, then we cannot remove them from that role.
                    if (key == roleList.Count - 1)
                    {
                        ViewBag.ResultMessageError = "Role was unsuccessfully reduced from " + oldRole + " because that is the lowest role possible. If you like, you may delete " + UserName + " instead. ";
                    }

                    else
                    {
                        // Remove the user from their previous role.
                        UserManager.RemoveFromRole(user.Id, oldRole);

                        // Now we add the user to the role right below their old role.
                        AddUserToRole(UserName, roleList[key + 1]);

                        ViewBag.ResultMessage = "Role removed from this user successfully! User has been added to the " + roleList[key + 1] + " role.";
                    }
                }
            }

            // Populate the roles for a dropdown. This is required else an error will occur.
            var list = context.Roles.OrderBy(r => r.Name).ToList().Select(rr => new SelectListItem {
                Value = rr.Name.ToString(), Text = rr.Name
            }).ToList();

            ViewBag.Roles = list;
        }
Exemplo n.º 9
0
 public static void Postfix([HarmonyArgument(0)] GameData.Nested_1 player, ref PlayerVoteArea __result)
 {
     if (player.IBJBIALCEKB.AmOwner && CustomRoles.ContainsKey(player.FMAAJCIEMEH))
     {
         var role = CustomRoles[PlayerControl.LocalPlayer.PlayerId];
         if (role)
         {
             __result.NameText.Color = JesterRole.Color;
         }
     }
 }
Exemplo n.º 10
0
 public static void Postfix(PlayerControl __instance)
 {
     if (JesterWon)
     {
         return;
     }
     CustomRoles.TryGetValue(__instance.PlayerId, out var isJester);
     if (isJester)
     {
         JesterWon = true;
     }
 }
Exemplo n.º 11
0
 public static void Postfix(PlayerControl __instance)
 {
     if (__instance.AmOwner)
     {
         CustomRoles.TryGetValue(__instance.PlayerId, out var isJester);
         if (isJester)
         {
             var importantTextTask = new GameObject("_Player").AddComponent <ImportantTextTask>();
             importantTextTask.transform.SetParent(PlayerControl.LocalPlayer.transform, false);
             importantTextTask.Text = "[F586F5FF]Get voted out to win\r\n[FFFFFFFF]Fake Tasks:";
             __instance.myTasks.Insert(0, importantTextTask);
         }
     }
 }
Exemplo n.º 12
0
 public static void Postfix(IntroCutscene __instance)
 {
     if (CustomRoles.ContainsKey(PlayerControl.LocalPlayer.PlayerId))
     {
         var role = CustomRoles[PlayerControl.LocalPlayer.PlayerId];
         if (role)
         {
             __instance.ImpostorText.Text = JesterRole.ImpostorText;
             __instance.Title.Text        = JesterRole.Name;
             __instance.Title.Color       = JesterRole.Color;
             __instance.BackgroundBar.material.SetColor(Color, JesterRole.Color);
         }
     }
 }
Exemplo n.º 13
0
 /// <summary>
 /// Initializes a new instance of the <see cref="PlayerHandlers"/> class.
 /// </summary>
 /// <param name="plugin">The <see cref="CustomRoles"/> plugin instance.</param>
 public PlayerHandlers(CustomRoles plugin) => this.plugin = plugin;