1 /* 2 * This file has been automatically generated by Soupply and released under the MIT license. 3 * Generated from data/java210.xml 4 */ 5 module soupply.java210.types; 6 7 static import std.conv; 8 import packetmaker; 9 import packetmaker.maker : EndianType, writeLength, readLength; 10 11 import xbuffer.memory : xalloc, xfree; 12 13 import soupply.util; 14 import soupply.java210.metadata; 15 16 struct Statistic 17 { 18 19 enum string[] __fields = ["name", "value"]; 20 21 string name; 22 @Var uint value; 23 24 mixin Make!(Endian.bigEndian, varuint); 25 26 string toString() 27 { 28 return "Statistic(name: " ~ std.conv.to!string(this.name) ~ ", value: " ~ std.conv.to!string(this.value) ~ ")"; 29 } 30 31 } 32 33 struct BlockChange 34 { 35 36 enum string[] __fields = ["xz", "y", "block"]; 37 38 ubyte xz; 39 ubyte y; 40 @Var uint block; 41 42 mixin Make!(Endian.bigEndian, varuint); 43 44 string toString() 45 { 46 return "BlockChange(xz: " ~ std.conv.to!string(this.xz) ~ ", y: " ~ std.conv.to!string(this.y) ~ ", block: " ~ std.conv.to!string(this.block) ~ ")"; 47 } 48 49 } 50 51 struct Slot 52 { 53 54 enum string[] __fields = ["id", "count", "damage", "nbt"]; 55 56 short id; 57 @Condition("id>0") ubyte count; 58 @Condition("id>0") ushort damage; 59 @Condition("id>0") @Bytes ubyte[] nbt; 60 61 mixin Make!(Endian.bigEndian, varuint); 62 63 string toString() 64 { 65 return "Slot(id: " ~ std.conv.to!string(this.id) ~ ", count: " ~ std.conv.to!string(this.count) ~ ", damage: " ~ std.conv.to!string(this.damage) ~ ", nbt: " ~ std.conv.to!string(this.nbt) ~ ")"; 66 } 67 68 } 69 70 struct Icon 71 { 72 73 // direction and type 74 enum ubyte WHITE_ARROW = 0; 75 enum ubyte GREEN_ARROW = 1; 76 enum ubyte RED_ARROW = 2; 77 enum ubyte BLUE_ARROW = 3; 78 enum ubyte WHITE_CROSS = 4; 79 enum ubyte RED_POINTER = 5; 80 enum ubyte WHITE_CIRCLE = 6; 81 82 enum string[] __fields = ["directionAndType", "position"]; 83 84 ubyte directionAndType; 85 Vector!(ubyte, "xz") position; 86 87 mixin Make!(Endian.bigEndian, varuint); 88 89 string toString() 90 { 91 return "Icon(directionAndType: " ~ std.conv.to!string(this.directionAndType) ~ ", position: " ~ std.conv.to!string(this.position) ~ ")"; 92 } 93 94 } 95 96 struct Property 97 { 98 99 enum string[] __fields = ["name", "value", "signed", "signature"]; 100 101 string name; 102 string value; 103 bool signed; 104 @Condition("signed==true") string signature; 105 106 mixin Make!(Endian.bigEndian, varuint); 107 108 string toString() 109 { 110 return "Property(name: " ~ std.conv.to!string(this.name) ~ ", value: " ~ std.conv.to!string(this.value) ~ ", signed: " ~ std.conv.to!string(this.signed) ~ ", signature: " ~ std.conv.to!string(this.signature) ~ ")"; 111 } 112 113 } 114 115 struct ListAddPlayer 116 { 117 118 // gamemode 119 enum uint SURVIVAL = 0; 120 enum uint CREATIVE = 1; 121 enum uint ADVENTURE = 2; 122 enum uint SPECTATOR = 3; 123 124 enum string[] __fields = ["uuid", "name", "properties", "gamemode", "latency", "hasDisplayName", "displayName"]; 125 126 UUID uuid; 127 string name; 128 soupply.java210.types.Property[] properties; 129 @Var uint gamemode; 130 @Var uint latency; 131 bool hasDisplayName; 132 @Condition("hasDisplayName==true") string displayName; 133 134 mixin Make!(Endian.bigEndian, varuint); 135 136 string toString() 137 { 138 return "ListAddPlayer(uuid: " ~ std.conv.to!string(this.uuid) ~ ", name: " ~ std.conv.to!string(this.name) ~ ", properties: " ~ std.conv.to!string(this.properties) ~ ", gamemode: " ~ std.conv.to!string(this.gamemode) ~ ", latency: " ~ std.conv.to!string(this.latency) ~ ", hasDisplayName: " ~ std.conv.to!string(this.hasDisplayName) ~ ", displayName: " ~ std.conv.to!string(this.displayName) ~ ")"; 139 } 140 141 } 142 143 struct ListUpdateGamemode 144 { 145 146 // gamemode 147 enum uint SURVIVAL = 0; 148 enum uint CREATIVE = 1; 149 enum uint ADVENTURE = 2; 150 enum uint SPECTATOR = 3; 151 152 enum string[] __fields = ["uuid", "gamemode"]; 153 154 UUID uuid; 155 @Var uint gamemode; 156 157 mixin Make!(Endian.bigEndian, varuint); 158 159 string toString() 160 { 161 return "ListUpdateGamemode(uuid: " ~ std.conv.to!string(this.uuid) ~ ", gamemode: " ~ std.conv.to!string(this.gamemode) ~ ")"; 162 } 163 164 } 165 166 struct ListUpdateLatency 167 { 168 169 enum string[] __fields = ["uuid", "latency"]; 170 171 UUID uuid; 172 @Var uint latency; 173 174 mixin Make!(Endian.bigEndian, varuint); 175 176 string toString() 177 { 178 return "ListUpdateLatency(uuid: " ~ std.conv.to!string(this.uuid) ~ ", latency: " ~ std.conv.to!string(this.latency) ~ ")"; 179 } 180 181 } 182 183 struct ListUpdateDisplayName 184 { 185 186 enum string[] __fields = ["uuid", "hasDisplayName", "displayName"]; 187 188 UUID uuid; 189 bool hasDisplayName; 190 @Condition("hasDisplayName==true") string displayName; 191 192 mixin Make!(Endian.bigEndian, varuint); 193 194 string toString() 195 { 196 return "ListUpdateDisplayName(uuid: " ~ std.conv.to!string(this.uuid) ~ ", hasDisplayName: " ~ std.conv.to!string(this.hasDisplayName) ~ ", displayName: " ~ std.conv.to!string(this.displayName) ~ ")"; 197 } 198 199 } 200 201 struct Modifier 202 { 203 204 // operation 205 enum ubyte ADD_SUBSTRACT_AMOUNT = 0; 206 enum ubyte ADD_SUBSTRACT_AMOUNT_PERCENTAGE = 1; 207 enum ubyte MULTIPLY_AMOUNT_PERCENTAGE = 2; 208 209 enum string[] __fields = ["uuid", "amount", "operation"]; 210 211 UUID uuid; 212 double amount; 213 ubyte operation; 214 215 mixin Make!(Endian.bigEndian, varuint); 216 217 string toString() 218 { 219 return "Modifier(uuid: " ~ std.conv.to!string(this.uuid) ~ ", amount: " ~ std.conv.to!string(this.amount) ~ ", operation: " ~ std.conv.to!string(this.operation) ~ ")"; 220 } 221 222 } 223 224 struct Attribute 225 { 226 227 enum string[] __fields = ["key", "value", "modifiers"]; 228 229 string key; 230 double value; 231 soupply.java210.types.Modifier[] modifiers; 232 233 mixin Make!(Endian.bigEndian, varuint); 234 235 string toString() 236 { 237 return "Attribute(key: " ~ std.conv.to!string(this.key) ~ ", value: " ~ std.conv.to!string(this.value) ~ ", modifiers: " ~ std.conv.to!string(this.modifiers) ~ ")"; 238 } 239 240 } 241 242 struct OptionalPosition 243 { 244 245 enum string[] __fields = ["hasPosition", "position"]; 246 247 bool hasPosition; 248 @Condition("hasPosition==true") ulong position; 249 250 mixin Make!(Endian.bigEndian, varuint); 251 252 string toString() 253 { 254 return "OptionalPosition(hasPosition: " ~ std.conv.to!string(this.hasPosition) ~ ", position: " ~ std.conv.to!string(this.position) ~ ")"; 255 } 256 257 } 258 259 struct OptionalUuid 260 { 261 262 enum string[] __fields = ["hasUuid", "uuid"]; 263 264 bool hasUuid; 265 UUID uuid; 266 267 mixin Make!(Endian.bigEndian, varuint); 268 269 string toString() 270 { 271 return "OptionalUuid(hasUuid: " ~ std.conv.to!string(this.hasUuid) ~ ", uuid: " ~ std.conv.to!string(this.uuid) ~ ")"; 272 } 273 274 }