Modding:Wishes: Difference between revisions
Jump to navigation
Jump to search
No edit summary |
No edit summary |
||
Line 2: | Line 2: | ||
Creating your own wishes requires 2.0.200.24 or greater. | Creating your own wishes requires 2.0.200.24 or greater. | ||
To create a wish, you define a <code>XRL. | To create a wish, you define a <code>XRL.Wish.WishCommand</code> attribute on a public method. This method should either be void or bool. | ||
<syntaxhighlight lang="csharp"> | <syntaxhighlight lang="csharp"> | ||
public class MyWishHandler | |||
public | |||
{ | { | ||
// Handles "testwish:foo" or "testwish foo" as a wish command | |||
[XRL.Wish.WishCommand(Command = "testwish")] | |||
public static bool TestWishHandler(string rest) | |||
Popup.Show("Matched: " + | { | ||
Popup.Show("Matched: " + rest); | |||
// if we dont return true, other wishes will also parse this wish message | // if we dont return true, other wishes will also parse this wish message | ||
return true; | return true; | ||
} | |||
// Handles "testwish" with nothing else! (no string param) | |||
[XRL.Wish.WishCommand(Command = "testwish")] | |||
public static void TestWishHandler() | |||
{ | |||
Popup.Show("Matched it the short way"); | |||
// if we return void, it assumes we handled it | |||
} | |||
// showing of non-static also! | |||
public int count = 0; | |||
// no command -- uses the method name by default! | |||
[XRL.Wish.WishCommand] | |||
public void inc() | |||
{ | |||
Popup.Show(count++); | |||
} | |||
[XRL.Wish.WishCommand] | |||
public void dec() | |||
{ | |||
Popup.Show(count--); | |||
} | |||
[XRL.Wish.WishCommand(Regex = @"other fancy match \d things"] | |||
public void Handle(System.Text.RegularExpression.Match match) | |||
{ | |||
Popup.Show(match.Groups[0].ToString()); | |||
} | |||
} | } | ||
</syntaxhighlight> | </syntaxhighlight> | ||
The regular expression passed to the attribute is parsed using case insensitive matching. | The regular expression passed to the attribute is parsed using case insensitive matching. |
Revision as of 06:27, 17 April 2020
Creating your own wishes requires 2.0.200.24 or greater.
To create a wish, you define a XRL.Wish.WishCommand
attribute on a public method. This method should either be void or bool.
public class MyWishHandler
{
// Handles "testwish:foo" or "testwish foo" as a wish command
[XRL.Wish.WishCommand(Command = "testwish")]
public static bool TestWishHandler(string rest)
{
Popup.Show("Matched: " + rest);
// if we dont return true, other wishes will also parse this wish message
return true;
}
// Handles "testwish" with nothing else! (no string param)
[XRL.Wish.WishCommand(Command = "testwish")]
public static void TestWishHandler()
{
Popup.Show("Matched it the short way");
// if we return void, it assumes we handled it
}
// showing of non-static also!
public int count = 0;
// no command -- uses the method name by default!
[XRL.Wish.WishCommand]
public void inc()
{
Popup.Show(count++);
}
[XRL.Wish.WishCommand]
public void dec()
{
Popup.Show(count--);
}
[XRL.Wish.WishCommand(Regex = @"other fancy match \d things"]
public void Handle(System.Text.RegularExpression.Match match)
{
Popup.Show(match.Groups[0].ToString());
}
}
The regular expression passed to the attribute is parsed using case insensitive matching.