fCraft.ModerationCommands.Slap C# (CSharp) Method

Slap() private static method

private static Slap ( Player player, Command cmd ) : void
player Player
cmd Command
return void
        private static void Slap( Player player, Command cmd )
        {
            string name = cmd.Next();
            string item = cmd.Next();
            if ( name == null ) {
                player.Message( "Please enter a name" );
                return;
            }
            Player target = Server.FindPlayerOrPrintMatches( player, name, false, true );
            if ( target == null )
                return;
            if ( target.Immortal ) {
                player.Message( "&SYou failed to slap {0}&S, they are immortal", target.ClassyName );
                return;
            }
            if ( target == player ) {
                player.Message( "&sYou can't slap yourself.... What's wrong with you???" );
                return;
            }
            double time = ( DateTime.UtcNow - player.Info.LastUsedSlap ).TotalSeconds;
            if ( time < 10 ) {
                player.Message( "&WYou can use /Slap again in " + Math.Round( 10 - time ) + " seconds." );
                return;
            }
            if ( player.Can( Permission.Slap, target.Info.Rank ) ) {
                var slap = new Position( target.Position.X, target.Position.Y, ( target.World.Map.Bounds.ZMax ) * 32 );
                target.TeleportTo( slap );
                string aMessage;
                if ( string.IsNullOrEmpty( item ) ) {
                    Server.Players.CanSee( target ).Union( target ).Message( "{0} &Swas slapped sky high by {1}", target.ClassyName, player.ClassyName );
                    IRC.PlayerSomethingMessage( player, "slapped", target, null );
                    player.Info.LastUsedSlap = DateTime.UtcNow;
                    return;
                } else switch (item.ToLower())
                {
                    case "bakingtray":
                        aMessage = String.Format( "{0} &Swas slapped by {1}&S with a Baking Tray", target.ClassyName, player.ClassyName );
                        break;
                    case "fish":
                        aMessage = String.Format( "{0} &Swas slapped by {1}&S with a Giant Fish", target.ClassyName, player.ClassyName );
                        break;
                    case "bitchslap":
                        aMessage = String.Format( "{0} &Swas bitch-slapped by {1}", target.ClassyName, player.ClassyName );
                        break;
                    case "shoe":
                        aMessage = String.Format( "{0} &Swas slapped by {1}&S with a Shoe", target.ClassyName, player.ClassyName );
                        break;
                    default:
                        Server.Players.CanSee( target ).Union( target ).Message( "{0} &Swas slapped sky high by {1}", target.ClassyName, player.ClassyName );
                        IRC.PlayerSomethingMessage( player, "slapped", target, null );
                        player.Info.LastUsedSlap = DateTime.UtcNow;
                        return;
                }
                Server.Players.CanSee( target ).Union( target ).Message( aMessage );
                IRC.PlayerSomethingMessage( player, "slapped", target, null );
                player.Info.LastUsedSlap = DateTime.UtcNow;
                return;
            } else {
                player.Message( "&sYou can only Slap players ranked {0}&S or lower",
                               player.Info.Rank.GetLimit( Permission.Slap ).ClassyName );
                player.Message( "{0}&S is ranked {1}", target.ClassyName, target.Info.Rank.ClassyName );
            }
        }