void OnDoorStateChanged(ref HookContext ctx, ref HookArgs.DoorStateChanged args)
        {
            if ((!restrictGuests) || (!restrictGuestsDoors))
            {
                return;
            }

            var player = ctx.Player;

            if (player == null)
            {
                return;
            }

            if (player.AuthenticatedAs == null)
            {
                ctx.SetResult(HookResult.RECTIFY);
                player.sendMessage("<Restrict> You are not allowed to open and close doors as a guest.");
                player.sendMessage("<Restrict> Type \"/reg password\" to request registration.");
            }
            else if (IsRestrictedForUser(ctx.Player, DoorChange))
            {
                ctx.SetResult(HookResult.RECTIFY);
                player.sendMessage("<Restrict> You are not allowed to open and close doors without permissions.");
            }
        }
Exemple #2
0
 void OnDoorStateChange(ref HookContext ctx, ref HookArgs.DoorStateChanged args)
 {
     foreach (Region rgn in regionManager.Regions)
     {
         if (rgn.HasPoint(new Vector2(args.X, args.Y)))
         {
             if (ctx.Sender is Player)
             {
                 Player player = ctx.Sender as Player;
                 if (IsRestrictedForUser(player, rgn, DoorChange))
                 {
                     ctx.SetResult(HookResult.RECTIFY);
                     player.sendMessage("You cannot edit this area!", ChatColor.Red);
                     return;
                 }
             }
             else if (ctx.Sender is NPC)
             {
                 if (rgn.RestrictedNPCs)
                 {
                     ctx.SetResult(HookResult.RECTIFY);     //[TODO] look into RECIFYing for NPC's, They don't need to be resent, only cancelled, IGRNORE?
                     return;
                 }
             }
         }
     }
 }