Ghost Commands
  • Getting Started
    • Quickstart
    • Syntax
      • Command syntax
      • Arguments with multiple values
    • Custom commands
  • Documentation
    • Commands
      • Static commands
      • Non-static commands
      • Dynamic commands
      • Overloads
      • Parameters
      • Additional attributes
    • Suggestions
      • Suggestion attributes
      • Suggestor methods
    • Converters
      • Custom parameter types
      • Using the ArgumentReader
      • Multiple ways to interpret an argument
    • Processors
      • Creating a processor
      • Setting priorities
      • Cheat codes example
    • Macros
    • Settings
    • Customization
    • Included Commands
Powered by GitBook
On this page

Was this helpful?

  1. Documentation
  2. Converters

Custom parameter types

To demonstrate how a custom type can be supported, we are going to create a converter for an arbitrary class.

public class Person
{
    public readonly string name;
    public readonly int age;

    public Person(string name, int age)
    {
        this.name = name;
        this.age = age;
    }
}

Converter methods

The way converters work, is by creating a method that takes in a string and return an actual value. Converter methods must return a non-primitive type, and they must only take 1 parameter of type ArgumentReader.

To mark a method as a converter method, simply place a [Converter] attribute on it.

[Converter]
public static Person PersonTypeConverter(ArgumentReader reader)
{
    
}

Note

The method doesn't have to be located within the type we're attempting to convert. These methods can be stored anywhere you prefer

PreviousConvertersNextUsing the ArgumentReader

Last updated 7 months ago

Was this helpful?