User Tools

Site Tools


tutorial:command_argument_types

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revisionPrevious revision
Next revisionBoth sides next revision
tutorial:command_argument_types [2024/04/15 06:58] – [Custom argument serializer] solidblocktutorial:command_argument_types [2024/04/15 07:03] – [Custom argument serializer] solidblock
Line 253: Line 253:
  
       @Override       @Override
-      public ArgumentSerializer<ExampleArgumentType, ?> getSerializer() { +      public ArgumentSerializer<ExampleArgumentType, Serializer.Properties> getSerializer() { 
-        return new Serializer();+        // Do not create a new ''Serializer'' object here. 
 +        return Serializer.this;
       }       }
     }     }
Line 260: Line 261:
 } }
 </code> </code>
 +
 +And now you can register it like this:
 +<code java>
 +ArgumentTypeRegistry.registerArgumentType(new Identifier("tutorial", "example"), ExampleArgumentType.class, new ExampleArgumentType.Serializer());
 +</code>
 +
 +==== Another possible way to define serializer ====
  
 If the argument does not require ''CommandRegistryAccess'', it itself may extend ''ArgumentSerializer.ArgumentTypeProperties'': If the argument does not require ''CommandRegistryAccess'', it itself may extend ''ArgumentSerializer.ArgumentTypeProperties'':
Line 307: Line 315:
   }   }
 } }
 +</code>
 +
 +And now you can register it like this:
 +<code java>
 +ArgumentTypeRegistry.registerArgumentType(new Identifier("tutorial", "example"), ExampleArgumentType.class, ExampleArgumentType.Serializer.INSTANCE);
 </code> </code>
tutorial/command_argument_types.txt · Last modified: 2024/04/15 07:21 by solidblock