1 /* 2 * This file has been automatically generated by Soupply and released under the MIT license. 3 * Generated from data/java335.xml 4 */ 5 module soupply.java335.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.java335.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 enum ubyte SMALL_WHITE_CIRCLE = 7; 82 enum ubyte MANSION = 8; 83 enum ubyte TEMPLE = 9; 84 85 enum string[] __fields = ["directionAndType", "position"]; 86 87 ubyte directionAndType; 88 Vector!(ubyte, "xz") position; 89 90 mixin Make!(Endian.bigEndian, varuint); 91 92 string toString() 93 { 94 return "Icon(directionAndType: " ~ std.conv.to!string(this.directionAndType) ~ ", position: " ~ std.conv.to!string(this.position) ~ ")"; 95 } 96 97 } 98 99 struct Property 100 { 101 102 enum string[] __fields = ["name", "value", "signed", "signature"]; 103 104 string name; 105 string value; 106 bool signed; 107 @Condition("signed==true") string signature; 108 109 mixin Make!(Endian.bigEndian, varuint); 110 111 string toString() 112 { 113 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) ~ ")"; 114 } 115 116 } 117 118 struct ListAddPlayer 119 { 120 121 // gamemode 122 enum uint SURVIVAL = 0; 123 enum uint CREATIVE = 1; 124 enum uint ADVENTURE = 2; 125 enum uint SPECTATOR = 3; 126 127 enum string[] __fields = ["uuid", "name", "properties", "gamemode", "latency", "hasDisplayName", "displayName"]; 128 129 UUID uuid; 130 string name; 131 soupply.java335.types.Property[] properties; 132 @Var uint gamemode; 133 @Var uint latency; 134 bool hasDisplayName; 135 @Condition("hasDisplayName==true") string displayName; 136 137 mixin Make!(Endian.bigEndian, varuint); 138 139 string toString() 140 { 141 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) ~ ")"; 142 } 143 144 } 145 146 struct ListUpdateGamemode 147 { 148 149 // gamemode 150 enum uint SURVIVAL = 0; 151 enum uint CREATIVE = 1; 152 enum uint ADVENTURE = 2; 153 enum uint SPECTATOR = 3; 154 155 enum string[] __fields = ["uuid", "gamemode"]; 156 157 UUID uuid; 158 @Var uint gamemode; 159 160 mixin Make!(Endian.bigEndian, varuint); 161 162 string toString() 163 { 164 return "ListUpdateGamemode(uuid: " ~ std.conv.to!string(this.uuid) ~ ", gamemode: " ~ std.conv.to!string(this.gamemode) ~ ")"; 165 } 166 167 } 168 169 struct ListUpdateLatency 170 { 171 172 enum string[] __fields = ["uuid", "latency"]; 173 174 UUID uuid; 175 @Var uint latency; 176 177 mixin Make!(Endian.bigEndian, varuint); 178 179 string toString() 180 { 181 return "ListUpdateLatency(uuid: " ~ std.conv.to!string(this.uuid) ~ ", latency: " ~ std.conv.to!string(this.latency) ~ ")"; 182 } 183 184 } 185 186 struct ListUpdateDisplayName 187 { 188 189 enum string[] __fields = ["uuid", "hasDisplayName", "displayName"]; 190 191 UUID uuid; 192 bool hasDisplayName; 193 @Condition("hasDisplayName==true") string displayName; 194 195 mixin Make!(Endian.bigEndian, varuint); 196 197 string toString() 198 { 199 return "ListUpdateDisplayName(uuid: " ~ std.conv.to!string(this.uuid) ~ ", hasDisplayName: " ~ std.conv.to!string(this.hasDisplayName) ~ ", displayName: " ~ std.conv.to!string(this.displayName) ~ ")"; 200 } 201 202 } 203 204 struct Modifier 205 { 206 207 // operation 208 enum ubyte ADD_SUBSTRACT_AMOUNT = 0; 209 enum ubyte ADD_SUBSTRACT_AMOUNT_PERCENTAGE = 1; 210 enum ubyte MULTIPLY_AMOUNT_PERCENTAGE = 2; 211 212 enum string[] __fields = ["uuid", "amount", "operation"]; 213 214 UUID uuid; 215 double amount; 216 ubyte operation; 217 218 mixin Make!(Endian.bigEndian, varuint); 219 220 string toString() 221 { 222 return "Modifier(uuid: " ~ std.conv.to!string(this.uuid) ~ ", amount: " ~ std.conv.to!string(this.amount) ~ ", operation: " ~ std.conv.to!string(this.operation) ~ ")"; 223 } 224 225 } 226 227 struct Attribute 228 { 229 230 enum string[] __fields = ["key", "value", "modifiers"]; 231 232 string key; 233 double value; 234 soupply.java335.types.Modifier[] modifiers; 235 236 mixin Make!(Endian.bigEndian, varuint); 237 238 string toString() 239 { 240 return "Attribute(key: " ~ std.conv.to!string(this.key) ~ ", value: " ~ std.conv.to!string(this.value) ~ ", modifiers: " ~ std.conv.to!string(this.modifiers) ~ ")"; 241 } 242 243 } 244 245 struct Entry 246 { 247 248 enum string[] __fields = ["item", "craftingSlot", "playerSlot"]; 249 250 soupply.java335.types.Slot item; 251 ubyte craftingSlot; 252 ubyte playerSlot; 253 254 mixin Make!(Endian.bigEndian, varuint); 255 256 string toString() 257 { 258 return "Entry(item: " ~ std.conv.to!string(this.item) ~ ", craftingSlot: " ~ std.conv.to!string(this.craftingSlot) ~ ", playerSlot: " ~ std.conv.to!string(this.playerSlot) ~ ")"; 259 } 260 261 } 262 263 struct OptionalPosition 264 { 265 266 enum string[] __fields = ["hasPosition", "position"]; 267 268 bool hasPosition; 269 @Condition("hasPosition==true") ulong position; 270 271 mixin Make!(Endian.bigEndian, varuint); 272 273 string toString() 274 { 275 return "OptionalPosition(hasPosition: " ~ std.conv.to!string(this.hasPosition) ~ ", position: " ~ std.conv.to!string(this.position) ~ ")"; 276 } 277 278 } 279 280 struct OptionalUuid 281 { 282 283 enum string[] __fields = ["hasUuid", "uuid"]; 284 285 bool hasUuid; 286 UUID uuid; 287 288 mixin Make!(Endian.bigEndian, varuint); 289 290 string toString() 291 { 292 return "OptionalUuid(hasUuid: " ~ std.conv.to!string(this.hasUuid) ~ ", uuid: " ~ std.conv.to!string(this.uuid) ~ ")"; 293 } 294 295 }