tutorial:command_argument_types
Differences
This shows you the differences between two versions of the page.
Both sides previous revisionPrevious revisionNext revision | Previous revision | ||
tutorial:command_argument_types [2023/11/18 12:59] – [Specifying suggestions] solidblock | tutorial:command_argument_types [2024/04/15 07:21] (current) – [Custom argument serializer] solidblock | ||
---|---|---|---|
Line 80: | Line 80: | ||
// Brigadier has support to show examples for what the argument should look like, | // Brigadier has support to show examples for what the argument should look like, | ||
// this should contain a Collection of only the argument this type will return. | // this should contain a Collection of only the argument this type will return. | ||
- | // This is mainly used to calculate ambiguous commands | + | // This is mainly used to detect ambiguity, |
return EXAMPLES; | return EXAMPLES; | ||
} | } | ||
Line 90: | Line 90: | ||
<code java [enable_line_numbers=" | <code java [enable_line_numbers=" | ||
- | ArgumentTypeRegistry.registerArgumentType(new Identifier(" | + | ArgumentTypeRegistry.registerArgumentType( |
+ | | ||
+ | | ||
// The argument should be what will create the ArgumentType. | // The argument should be what will create the ArgumentType. | ||
</ | </ | ||
Line 166: | Line 168: | ||
// Brigadier has support to show examples for what the argument should look like, | // Brigadier has support to show examples for what the argument should look like, | ||
// this should contain a Collection of only the argument this type will return. | // this should contain a Collection of only the argument this type will return. | ||
- | // This is mainly used to calculate ambiguous commands | + | // This is mainly used to detect ambiguity, |
return EXAMPLES; | return EXAMPLES; | ||
} | } | ||
Line 220: | Line 222: | ||
public void writePacket(Properties properties, PacketByteBuf buf) { | public void writePacket(Properties properties, PacketByteBuf buf) { | ||
// Writes the basic properties to a packet. You should ensure all properties | // Writes the basic properties to a packet. You should ensure all properties | ||
- | // can be in some ways stored in the packed. | + | // can be in some ways stored in the packet. |
buf.writeBoolean(properties.booleanValue).writeInt(properties.intValue); | buf.writeBoolean(properties.booleanValue).writeInt(properties.intValue); | ||
} | } | ||
Line 251: | Line 253: | ||
@Override | @Override | ||
- | public ArgumentSerializer< | + | public ArgumentSerializer< |
- | | + | |
+ | return Serializer.this; | ||
} | } | ||
} | } | ||
Line 258: | Line 261: | ||
} | } | ||
</ | </ | ||
+ | |||
+ | And now you can register it like this: | ||
+ | <code java> | ||
+ | ArgumentTypeRegistry.registerArgumentType(new Identifier(" | ||
+ | </ | ||
+ | |||
+ | ==== Another possible way to define serializer ==== | ||
If the argument does not require '' | If the argument does not require '' | ||
Line 275: | Line 285: | ||
@Override | @Override | ||
public ArgumentSerializer< | public ArgumentSerializer< | ||
- | return | + | |
+ | | ||
} | } | ||
public static class Serializer implements ArgumentSerializer< | public static class Serializer implements ArgumentSerializer< | ||
+ | public static final Serializer INSTANCE = new Serializer(); | ||
+ | private Serializer() {} | ||
+ | | ||
@Override | @Override | ||
public void writePacket(ExampleArgumentType properties, PacketByteBuf buf) { | public void writePacket(ExampleArgumentType properties, PacketByteBuf buf) { | ||
Line 301: | Line 315: | ||
} | } | ||
} | } | ||
+ | </ | ||
+ | |||
+ | And now you can register it like this: | ||
+ | <code java> | ||
+ | ArgumentTypeRegistry.registerArgumentType(new Identifier(" | ||
</ | </ |
tutorial/command_argument_types.1700312392.txt.gz · Last modified: 2023/11/18 12:59 by solidblock