Example #1
0
        private static bool CheckPerms(Synapse.Api.Player ply, KeycardPermissions RequiredPermissions)
        {
            if (RequiredPermissions == KeycardPermissions.None)
            {
                return(true);
            }


            if (ply != null)
            {
                if (ply.Bypass)
                {
                    return(true);
                }

                if (Server.Get.Configs.synapseConfiguration.RemoteKeyCard)
                {
                    foreach (var item in ply.Inventory.Items.Where(x => x.ItemCategory == ItemCategory.Keycard))
                    {
                        if (((item.ItemBase as KeycardItem).Permissions & RequiredPermissions) == RequiredPermissions)
                        {
                            var allowcard = true;
                            EventHandler.Get.Player.InvokePlayerItemUseEvent(ply, item, Api.Events.SynapseEventArguments.ItemInteractState.Finalizing, ref allowcard);
                            if (allowcard)
                            {
                                return(allowcard);
                            }
                        }
                    }
                }
                else
                {
                    if (ply.ItemInHand == null || !(ply.ItemInHand.ItemBase is KeycardItem keycardItem))
                    {
                        return(false);
                    }

                    var allowcard = (keycardItem.Permissions & RequiredPermissions) == RequiredPermissions;
                    if (allowcard)
                    {
                        EventHandler.Get.Player.InvokePlayerItemUseEvent(ply, ply.ItemInHand, Api.Events.SynapseEventArguments.ItemInteractState.Finalizing, ref allowcard);
                    }
                    return(allowcard);
                }
            }
            return(false);
        }
 public static Permissions ToTruthyPermissions(this KeycardPermissions keycardPermissions) => (Permissions)keycardPermissions;