Modding:Wishes: Difference between revisions

Jump to navigation Jump to search
97 bytes added ,  19:03, 24 March 2021
m
no edit summary
No edit summary
mNo edit summary
 
(One intermediate revision by the same user not shown)
Line 1: Line 1:
{{Modding Info}}{{Modding Topic Prerequisites | Modding:C Sharp Scripting}}
{{Modding Info}}{{Modding Topic Prerequisites | Modding:C Sharp Scripting}}


Creating your own wishes requires 2.0.200.24 or greater.
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
 
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">
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 19:


   // 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 30:


   // 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 36:
   }
   }


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


   [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)
   {
   {
Line 52: Line 52:


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.
For another example of wish command, refer to the [[Modding:Tiles#Creating_a_Player-Tile]] topic.
[[Category:Script Modding]]
[[Category:Script Modding]]
{{Modding Navbox}}
{{Modding Navbox}}

Navigation menu