Example #1
0
		public bool HasPermissionToCreateProjectile(TSPlayer ply)
		{
			if (ply == null)
				return false;

			if (ply.HasPermission(Permissions.canusebannedprojectiles))
				return true;

			PermissionHookResult hookResult = PlayerHooks.OnPlayerProjbanPermission(ply, this);
			if (hookResult != PermissionHookResult.Unhandled)
				return hookResult == PermissionHookResult.Granted;

			var cur = ply.Group;
			var traversed = new List<Group>();
			while (cur != null)
			{
				if (AllowedGroups.Contains(cur.Name))
				{
					return true;
				}
				if (traversed.Contains(cur))
				{
					throw new InvalidOperationException("Infinite group parenting ({0})".SFormat(cur.Name));
				}
				traversed.Add(cur);
				cur = cur.Parent;
			}
			return false;
			// could add in the other permissions in this class instead of a giant if switch.
		}
Example #2
0
 /// <summary>
 /// Initializes a new instance of the PlayerTilebanPermissionEventArgs class.
 /// </summary>
 /// <param name="player">The player who fired the event.</param>
 /// <param name="checkedTile">The banned tile being checked.</param>
 public PlayerTilebanPermissionEventArgs(TSPlayer player, TileBan checkedTile)
 {
     Player     = player;
     BannedTile = checkedTile;
     Result     = PermissionHookResult.Unhandled;
 }
Example #3
0
 /// <summary>
 /// Initializes a new instance of the PlayerProjbanPermissionEventArgs class.
 /// </summary>
 /// <param name="player">The player who fired the event.</param>
 /// <param name="checkedProjectile">The banned projectile being checked.</param>
 public PlayerProjbanPermissionEventArgs(TSPlayer player, ProjectileBan checkedProjectile)
 {
     Player           = player;
     BannedProjectile = checkedProjectile;
     Result           = PermissionHookResult.Unhandled;
 }
Example #4
0
 /// <summary>
 /// Initializes a new instance of the PlayerItembanPermissionEventArgs class.
 /// </summary>
 /// <param name="player">The player who fired the event.</param>
 /// <param name="bannedItem">The banned item being checked.</param>
 public PlayerItembanPermissionEventArgs(TSPlayer player, ItemBan bannedItem)
 {
     Player     = player;
     BannedItem = bannedItem;
     Result     = PermissionHookResult.Unhandled;
 }
Example #5
0
 /// <summary>
 /// Initializes a new instance of the PlayerPermissionEventArgs class.
 /// </summary>
 /// <param name="player">The player who fired the event.</param>
 /// <param name="permission">The permission being checked.</param>
 public PlayerPermissionEventArgs(TSPlayer player, string permission)
 {
     Player     = player;
     Permission = permission;
     Result     = PermissionHookResult.Unhandled;
 }