Jump to content

Mod Examples: Difference between revisions

From fCraft Wiki
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 );