Modding:Wishes: Difference between revisions

56 bytes added ,  19:02, 24 March 2021
Update to include [HasWishCommand]
No edit summary
(Update to include [HasWishCommand])
Line 3: Line 3:
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.Wish.WishCommand</code> attribute on a public method.  This method should either be void or bool.
To create a wish, you define a <code>WishCommand</code> attribute on a public method.  This method should either be void or bool. The enclosing class must also have the <code>HasWishCommand</code> attribute


<syntaxhighlight lang="csharp">
<syntaxhighlight lang="csharp">
using XRL.Wish;


[HasWishCommand]
public class MyWishHandler
public class MyWishHandler
{
{
   // Handles "testwish:foo" or "testwish foo" as a wish command
   // Handles "testwish:foo" or "testwish foo" as a wish command
   [XRL.Wish.WishCommand(Command = "testwish")]
   [WishCommand(Command = "testwish")]
   public static bool TestWishHandler(string rest)
   public static bool TestWishHandler(string rest)
   {
   {
Line 19: Line 21:


   // Handles "testwish" with nothing else! (no string param)
   // Handles "testwish" with nothing else! (no string param)
   [XRL.Wish.WishCommand(Command = "testwish")]
   [WishCommand(Command = "testwish")]
   public static void TestWishHandler()
   public static void TestWishHandler()
   {
   {
Line 30: Line 32:


   // no command -- uses the method name by default!
   // no command -- uses the method name by default!
   [XRL.Wish.WishCommand]
   [WishCommand]
   public void inc()
   public void inc()
   {
   {
Line 36: Line 38:
   }
   }


   [XRL.Wish.WishCommand]
   [WishCommand]
   public void dec()
   public void dec()
   {
   {
Line 42: Line 44:
   }
   }


   [XRL.Wish.WishCommand(Regex = @"other fancy match \d things"]
   [WishCommand(Regex = @"other fancy match \d things"]
   public void Handle(System.Text.RegularExpression.Match match)
   public void Handle(System.Text.RegularExpression.Match match)
   {
   {