Mod Examples: Difference between revisions

From fCraft Wiki
Jump to navigation Jump to search
Created page with "This page demonstrates how to use fCraft's event system to add functionality."
 
No edit summary
Line 1: Line 1:
This page demonstrates how to use fCraft's event system to add functionality.
This page demonstrates how to use fCraft's event system to add functionality.
==Adding a new command==
<syntaxhighlight lang="csharp">
// Command descriptor
CommandDescriptor CdBleep = new CommandDescriptor {
    Name = "bleep",
    Aliases = new[] { "bloop" },
    Category = CommandCategory.Chat,
    Permissions = new[] { Permission.Chat },
    Help = "Prints a number of bleeps in chat.",
    Usage = "/bleep [Times]",
    Handler = Bleep
};
// Command handler - must implement CommandHandler delegate
void Bleep( Player player, Command cmd ){
    int numberOfBleeps;
    // try to parse next argument as a number
    if( !cmd.NextInt( out numberOfBleeps ) ){
        // fall back to 10 if no number was given
        numberOfBleeps = 10;
    }
    // check the range
    if( numberOfBleeps < 1 || numberOfBleeps > 32 ){
        player.Message( "Specify between 1 and 32 bleeps." );
        return;
    }
    for( int i=0; i<numberOfBleeps; i++ ){
        Chat.SendGlobal( player, "bleep" );
    }
}
// Registering your command with the server
CommandManager.RegisterCustomCommand( CdBleep );
</syntaxhighlight>

Revision as of 02:45, 23 June 2011

This page demonstrates how to use fCraft's event system to add functionality.

Adding a new command

// Command descriptor
CommandDescriptor CdBleep = new CommandDescriptor {
    Name = "bleep",
    Aliases = new[] { "bloop" },
    Category = CommandCategory.Chat,
    Permissions = new[] { Permission.Chat },
    Help = "Prints a number of bleeps in chat.",
    Usage = "/bleep [Times]",
    Handler = Bleep
};

// Command handler - must implement CommandHandler delegate
void Bleep( Player player, Command cmd ){
    int numberOfBleeps;

    // try to parse next argument as a number
    if( !cmd.NextInt( out numberOfBleeps ) ){
        // fall back to 10 if no number was given
        numberOfBleeps = 10;
    }

    // check the range
    if( numberOfBleeps < 1 || numberOfBleeps > 32 ){
        player.Message( "Specify between 1 and 32 bleeps." );
        return;
    }

    for( int i=0; i<numberOfBleeps; i++ ){
        Chat.SendGlobal( player, "bleep" );
    }
}

// Registering your command with the server
CommandManager.RegisterCustomCommand( CdBleep );