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.protocol.clientbound; 6 7 static import std.conv; 8 import std.typetuple : TypeTuple; 9 import xpacket; 10 11 import soupply.util; 12 import soupply.java210.metadata : Metadata; 13 import soupply.java210.packet : Java210Packet; 14 15 static import soupply.java210.types; 16 17 alias Packets = TypeTuple!(SpawnObject, SpawnExperienceOrb, SpawnGlobalEntity, SpawnMob, SpawnPainting, SpawnPlayer, Animation, Statistics, BlockBreakAnimation, UpdateBlockEntity, BlockAction, BlockChange, BossBar, ServerDifficulty, TabComplete, ChatMessage, MultiBlockChange, ConfirmTransaction, CloseWindow, OpenWindow, WindowItems, WindowProperty, SetSlot, SetCooldown, PluginMessage, NamedSoundEffect, Disconnect, EntityStatus, Explosion, UnloadChunk, ChangeGameState, KeepAlive, ChunkData, Effect, Particle, JoinGame, Map, EntityRelativeMove, EntityLookAndRelativeMove, EntityLook, Entity, VehicleMove, OpenSignEditor, PlayerAbilities, CombatEvent, PlayerListItem, PlayerPositionAndLook, UseBed, DestroyEntities, RemoveEntityEffect, ResourcePackSend, Respawn, EntityHeadLook, WorldBorder, Camera, HeldItemChange, DisplayScoreboard, EntityMetadata, AttachEntity, EntityVelocity, EntityEquipment, SetExperience, UpdateHealth, ScoreboardObjective, SetPassengers, Teams, UpdateScore, SpawnPosition, TimeUpdate, Title, SoundEffect, PlayerListHeaderAndFooter, CollectItem, EntityTeleport, EntityProperties, EntityEffect); 18 19 class SpawnObject : Java210Packet 20 { 21 22 enum uint ID = 0; 23 24 enum bool CLIENTBOUND = true; 25 enum bool SERVERBOUND = false; 26 27 enum string[] __fields = ["entityId", "uuid", "type", "position", "pitch", "yaw", "data", "velocity"]; 28 29 @Var uint entityId; 30 UUID uuid; 31 ubyte type; 32 Vector!(double, "xyz") position; 33 ubyte pitch; 34 ubyte yaw; 35 int data; 36 Vector!(short, "xyz") velocity; 37 38 this() pure nothrow @safe @nogc {} 39 40 this(uint entityId, UUID uuid=UUID.init, ubyte type=ubyte.init, Vector!(double, "xyz") position=Vector!(double, "xyz").init, ubyte pitch=ubyte.init, ubyte yaw=ubyte.init, int data=int.init, Vector!(short, "xyz") velocity=Vector!(short, "xyz").init) pure nothrow @safe @nogc 41 { 42 this.entityId = entityId; 43 this.uuid = uuid; 44 this.type = type; 45 this.position = position; 46 this.pitch = pitch; 47 this.yaw = yaw; 48 this.data = data; 49 this.velocity = velocity; 50 } 51 52 mixin Make; 53 54 public static typeof(this) fromBuffer(ubyte[] buffer) 55 { 56 SpawnObject ret = new SpawnObject(); 57 ret.decode(buffer); 58 return ret; 59 } 60 61 override string toString() 62 { 63 return "SpawnObject(entityId: " ~ std.conv.to!string(this.entityId) ~ ", uuid: " ~ std.conv.to!string(this.uuid) ~ ", type: " ~ std.conv.to!string(this.type) ~ ", position: " ~ std.conv.to!string(this.position) ~ ", pitch: " ~ std.conv.to!string(this.pitch) ~ ", yaw: " ~ std.conv.to!string(this.yaw) ~ ", data: " ~ std.conv.to!string(this.data) ~ ", velocity: " ~ std.conv.to!string(this.velocity) ~ ")"; 64 } 65 66 } 67 68 class SpawnExperienceOrb : Java210Packet 69 { 70 71 enum uint ID = 1; 72 73 enum bool CLIENTBOUND = true; 74 enum bool SERVERBOUND = false; 75 76 enum string[] __fields = ["entityId", "position", "count"]; 77 78 @Var uint entityId; 79 Vector!(double, "xyz") position; 80 ushort count; 81 82 this() pure nothrow @safe @nogc {} 83 84 this(uint entityId, Vector!(double, "xyz") position=Vector!(double, "xyz").init, ushort count=ushort.init) pure nothrow @safe @nogc 85 { 86 this.entityId = entityId; 87 this.position = position; 88 this.count = count; 89 } 90 91 mixin Make; 92 93 public static typeof(this) fromBuffer(ubyte[] buffer) 94 { 95 SpawnExperienceOrb ret = new SpawnExperienceOrb(); 96 ret.decode(buffer); 97 return ret; 98 } 99 100 override string toString() 101 { 102 return "SpawnExperienceOrb(entityId: " ~ std.conv.to!string(this.entityId) ~ ", position: " ~ std.conv.to!string(this.position) ~ ", count: " ~ std.conv.to!string(this.count) ~ ")"; 103 } 104 105 } 106 107 class SpawnGlobalEntity : Java210Packet 108 { 109 110 enum uint ID = 2; 111 112 enum bool CLIENTBOUND = true; 113 enum bool SERVERBOUND = false; 114 115 // type 116 enum ubyte THUNDERBOLT = 1; 117 118 enum string[] __fields = ["entityId", "type", "position"]; 119 120 @Var uint entityId; 121 ubyte type; 122 Vector!(double, "xyz") position; 123 124 this() pure nothrow @safe @nogc {} 125 126 this(uint entityId, ubyte type=ubyte.init, Vector!(double, "xyz") position=Vector!(double, "xyz").init) pure nothrow @safe @nogc 127 { 128 this.entityId = entityId; 129 this.type = type; 130 this.position = position; 131 } 132 133 mixin Make; 134 135 public static typeof(this) fromBuffer(ubyte[] buffer) 136 { 137 SpawnGlobalEntity ret = new SpawnGlobalEntity(); 138 ret.decode(buffer); 139 return ret; 140 } 141 142 override string toString() 143 { 144 return "SpawnGlobalEntity(entityId: " ~ std.conv.to!string(this.entityId) ~ ", type: " ~ std.conv.to!string(this.type) ~ ", position: " ~ std.conv.to!string(this.position) ~ ")"; 145 } 146 147 } 148 149 class SpawnMob : Java210Packet 150 { 151 152 enum uint ID = 3; 153 154 enum bool CLIENTBOUND = true; 155 enum bool SERVERBOUND = false; 156 157 enum string[] __fields = ["entityId", "uuid", "type", "position", "yaw", "pitch", "headPitch", "velocity", "metadata"]; 158 159 @Var uint entityId; 160 UUID uuid; 161 ubyte type; 162 Vector!(double, "xyz") position; 163 ubyte yaw; 164 ubyte pitch; 165 ubyte headPitch; 166 Vector!(short, "xyz") velocity; 167 Metadata metadata; 168 169 this() pure nothrow @safe @nogc {} 170 171 this(uint entityId, UUID uuid=UUID.init, ubyte type=ubyte.init, Vector!(double, "xyz") position=Vector!(double, "xyz").init, ubyte yaw=ubyte.init, ubyte pitch=ubyte.init, ubyte headPitch=ubyte.init, Vector!(short, "xyz") velocity=Vector!(short, "xyz").init, Metadata metadata=Metadata.init) pure nothrow @safe @nogc 172 { 173 this.entityId = entityId; 174 this.uuid = uuid; 175 this.type = type; 176 this.position = position; 177 this.yaw = yaw; 178 this.pitch = pitch; 179 this.headPitch = headPitch; 180 this.velocity = velocity; 181 this.metadata = metadata; 182 } 183 184 mixin Make; 185 186 public static typeof(this) fromBuffer(ubyte[] buffer) 187 { 188 SpawnMob ret = new SpawnMob(); 189 ret.decode(buffer); 190 return ret; 191 } 192 193 override string toString() 194 { 195 return "SpawnMob(entityId: " ~ std.conv.to!string(this.entityId) ~ ", uuid: " ~ std.conv.to!string(this.uuid) ~ ", type: " ~ std.conv.to!string(this.type) ~ ", position: " ~ std.conv.to!string(this.position) ~ ", yaw: " ~ std.conv.to!string(this.yaw) ~ ", pitch: " ~ std.conv.to!string(this.pitch) ~ ", headPitch: " ~ std.conv.to!string(this.headPitch) ~ ", velocity: " ~ std.conv.to!string(this.velocity) ~ ", metadata: " ~ std.conv.to!string(this.metadata) ~ ")"; 196 } 197 198 } 199 200 class SpawnPainting : Java210Packet 201 { 202 203 enum uint ID = 4; 204 205 enum bool CLIENTBOUND = true; 206 enum bool SERVERBOUND = false; 207 208 // direction 209 enum ubyte SOUTH = 0; 210 enum ubyte WEST = 1; 211 enum ubyte NORTH = 2; 212 enum ubyte EAST = 3; 213 214 enum string[] __fields = ["entityId", "uuid", "title", "position", "direction"]; 215 216 @Var uint entityId; 217 UUID uuid; 218 string title; 219 ulong position; 220 ubyte direction; 221 222 this() pure nothrow @safe @nogc {} 223 224 this(uint entityId, UUID uuid=UUID.init, string title=string.init, ulong position=ulong.init, ubyte direction=ubyte.init) pure nothrow @safe @nogc 225 { 226 this.entityId = entityId; 227 this.uuid = uuid; 228 this.title = title; 229 this.position = position; 230 this.direction = direction; 231 } 232 233 mixin Make; 234 235 public static typeof(this) fromBuffer(ubyte[] buffer) 236 { 237 SpawnPainting ret = new SpawnPainting(); 238 ret.decode(buffer); 239 return ret; 240 } 241 242 override string toString() 243 { 244 return "SpawnPainting(entityId: " ~ std.conv.to!string(this.entityId) ~ ", uuid: " ~ std.conv.to!string(this.uuid) ~ ", title: " ~ std.conv.to!string(this.title) ~ ", position: " ~ std.conv.to!string(this.position) ~ ", direction: " ~ std.conv.to!string(this.direction) ~ ")"; 245 } 246 247 } 248 249 class SpawnPlayer : Java210Packet 250 { 251 252 enum uint ID = 5; 253 254 enum bool CLIENTBOUND = true; 255 enum bool SERVERBOUND = false; 256 257 enum string[] __fields = ["entityId", "uuid", "position", "yaw", "pitch", "metadata"]; 258 259 @Var uint entityId; 260 UUID uuid; 261 Vector!(double, "xyz") position; 262 ubyte yaw; 263 ubyte pitch; 264 Metadata metadata; 265 266 this() pure nothrow @safe @nogc {} 267 268 this(uint entityId, UUID uuid=UUID.init, Vector!(double, "xyz") position=Vector!(double, "xyz").init, ubyte yaw=ubyte.init, ubyte pitch=ubyte.init, Metadata metadata=Metadata.init) pure nothrow @safe @nogc 269 { 270 this.entityId = entityId; 271 this.uuid = uuid; 272 this.position = position; 273 this.yaw = yaw; 274 this.pitch = pitch; 275 this.metadata = metadata; 276 } 277 278 mixin Make; 279 280 public static typeof(this) fromBuffer(ubyte[] buffer) 281 { 282 SpawnPlayer ret = new SpawnPlayer(); 283 ret.decode(buffer); 284 return ret; 285 } 286 287 override string toString() 288 { 289 return "SpawnPlayer(entityId: " ~ std.conv.to!string(this.entityId) ~ ", uuid: " ~ std.conv.to!string(this.uuid) ~ ", position: " ~ std.conv.to!string(this.position) ~ ", yaw: " ~ std.conv.to!string(this.yaw) ~ ", pitch: " ~ std.conv.to!string(this.pitch) ~ ", metadata: " ~ std.conv.to!string(this.metadata) ~ ")"; 290 } 291 292 } 293 294 class Animation : Java210Packet 295 { 296 297 enum uint ID = 6; 298 299 enum bool CLIENTBOUND = true; 300 enum bool SERVERBOUND = false; 301 302 // animation 303 enum ubyte SWING_MAIN_ARM = 0; 304 enum ubyte TAKE_DAMAGE = 1; 305 enum ubyte LEAVE_BED = 2; 306 enum ubyte SWING_OFFHAND = 3; 307 enum ubyte CRITICAL_EFFECT = 4; 308 enum ubyte MAGICAL_CRITICAL_EFFECT = 5; 309 310 enum string[] __fields = ["entityId", "animation"]; 311 312 @Var uint entityId; 313 ubyte animation; 314 315 this() pure nothrow @safe @nogc {} 316 317 this(uint entityId, ubyte animation=ubyte.init) pure nothrow @safe @nogc 318 { 319 this.entityId = entityId; 320 this.animation = animation; 321 } 322 323 mixin Make; 324 325 public static typeof(this) fromBuffer(ubyte[] buffer) 326 { 327 Animation ret = new Animation(); 328 ret.decode(buffer); 329 return ret; 330 } 331 332 override string toString() 333 { 334 return "Animation(entityId: " ~ std.conv.to!string(this.entityId) ~ ", animation: " ~ std.conv.to!string(this.animation) ~ ")"; 335 } 336 337 } 338 339 class Statistics : Java210Packet 340 { 341 342 enum uint ID = 7; 343 344 enum bool CLIENTBOUND = true; 345 enum bool SERVERBOUND = false; 346 347 enum string[] __fields = ["statistics"]; 348 349 soupply.java210.types.Statistic[] statistics; 350 351 this() pure nothrow @safe @nogc {} 352 353 this(soupply.java210.types.Statistic[] statistics) pure nothrow @safe @nogc 354 { 355 this.statistics = statistics; 356 } 357 358 mixin Make; 359 360 public static typeof(this) fromBuffer(ubyte[] buffer) 361 { 362 Statistics ret = new Statistics(); 363 ret.decode(buffer); 364 return ret; 365 } 366 367 override string toString() 368 { 369 return "Statistics(statistics: " ~ std.conv.to!string(this.statistics) ~ ")"; 370 } 371 372 } 373 374 class BlockBreakAnimation : Java210Packet 375 { 376 377 enum uint ID = 8; 378 379 enum bool CLIENTBOUND = true; 380 enum bool SERVERBOUND = false; 381 382 enum string[] __fields = ["entityId", "position", "stage"]; 383 384 @Var uint entityId; 385 ulong position; 386 ubyte stage; 387 388 this() pure nothrow @safe @nogc {} 389 390 this(uint entityId, ulong position=ulong.init, ubyte stage=ubyte.init) pure nothrow @safe @nogc 391 { 392 this.entityId = entityId; 393 this.position = position; 394 this.stage = stage; 395 } 396 397 mixin Make; 398 399 public static typeof(this) fromBuffer(ubyte[] buffer) 400 { 401 BlockBreakAnimation ret = new BlockBreakAnimation(); 402 ret.decode(buffer); 403 return ret; 404 } 405 406 override string toString() 407 { 408 return "BlockBreakAnimation(entityId: " ~ std.conv.to!string(this.entityId) ~ ", position: " ~ std.conv.to!string(this.position) ~ ", stage: " ~ std.conv.to!string(this.stage) ~ ")"; 409 } 410 411 } 412 413 class UpdateBlockEntity : Java210Packet 414 { 415 416 enum uint ID = 9; 417 418 enum bool CLIENTBOUND = true; 419 enum bool SERVERBOUND = false; 420 421 // action 422 enum ubyte MOB_SPAWNER_DATA = 1; 423 enum ubyte COMMAND_BLOCK_TEXT = 2; 424 enum ubyte BEACON_POWERS = 3; 425 enum ubyte MOB_HEAD_DATA = 4; 426 enum ubyte FLOWER_POT_FLOWER = 5; 427 enum ubyte BANNER_DATA = 6; 428 enum ubyte STRUCTURE_DATA = 7; 429 enum ubyte END_GATEWAY_DESTINATION = 8; 430 enum ubyte SIGN_TEXT = 9; 431 432 enum string[] __fields = ["position", "action", "nbt"]; 433 434 ulong position; 435 ubyte action; 436 @NoLength ubyte[] nbt; 437 438 this() pure nothrow @safe @nogc {} 439 440 this(ulong position, ubyte action=ubyte.init, ubyte[] nbt=(ubyte[]).init) pure nothrow @safe @nogc 441 { 442 this.position = position; 443 this.action = action; 444 this.nbt = nbt; 445 } 446 447 mixin Make; 448 449 public static typeof(this) fromBuffer(ubyte[] buffer) 450 { 451 UpdateBlockEntity ret = new UpdateBlockEntity(); 452 ret.decode(buffer); 453 return ret; 454 } 455 456 override string toString() 457 { 458 return "UpdateBlockEntity(position: " ~ std.conv.to!string(this.position) ~ ", action: " ~ std.conv.to!string(this.action) ~ ", nbt: " ~ std.conv.to!string(this.nbt) ~ ")"; 459 } 460 461 } 462 463 class BlockAction : Java210Packet 464 { 465 466 enum uint ID = 10; 467 468 enum bool CLIENTBOUND = true; 469 enum bool SERVERBOUND = false; 470 471 // action 472 enum ubyte NOTE_BLOCK_HARP = 0; 473 enum ubyte NOTE_BLOCK_BASS_DRUM = 1; 474 enum ubyte NOTE_BLOCK_SNARE_DRUM = 2; 475 enum ubyte NOTE_BLOCK_CLICKS = 3; 476 enum ubyte NOTE_BLOCK_STICKS = 3; 477 enum ubyte NOTE_BLOCK_BASS_GUITAR = 4; 478 enum ubyte PISTON_EXTEND = 0; 479 enum ubyte PISTON_RETRACT = 1; 480 enum ubyte CHEST_WATCHERS = 1; 481 enum ubyte BEACON_RECALCULATE = 1; 482 enum ubyte MOB_SPAWNER_RESET_DELAY = 1; 483 enum ubyte END_GATEWAY_YELLOW_BEAM = 1; 484 485 // parameter 486 enum ubyte PISTON_DOWN = 0; 487 enum ubyte PISTON_UP = 1; 488 enum ubyte PISTON_SOUTH = 2; 489 enum ubyte PISTON_WEST = 3; 490 enum ubyte PISTON_NORTH = 4; 491 enum ubyte PISTON_EAST = 5; 492 493 enum string[] __fields = ["position", "action", "parameter", "blockType"]; 494 495 ulong position; 496 ubyte action; 497 ubyte parameter; 498 @Var uint blockType; 499 500 this() pure nothrow @safe @nogc {} 501 502 this(ulong position, ubyte action=ubyte.init, ubyte parameter=ubyte.init, uint blockType=uint.init) pure nothrow @safe @nogc 503 { 504 this.position = position; 505 this.action = action; 506 this.parameter = parameter; 507 this.blockType = blockType; 508 } 509 510 mixin Make; 511 512 public static typeof(this) fromBuffer(ubyte[] buffer) 513 { 514 BlockAction ret = new BlockAction(); 515 ret.decode(buffer); 516 return ret; 517 } 518 519 override string toString() 520 { 521 return "BlockAction(position: " ~ std.conv.to!string(this.position) ~ ", action: " ~ std.conv.to!string(this.action) ~ ", parameter: " ~ std.conv.to!string(this.parameter) ~ ", blockType: " ~ std.conv.to!string(this.blockType) ~ ")"; 522 } 523 524 } 525 526 class BlockChange : Java210Packet 527 { 528 529 enum uint ID = 11; 530 531 enum bool CLIENTBOUND = true; 532 enum bool SERVERBOUND = false; 533 534 enum string[] __fields = ["position", "block"]; 535 536 ulong position; 537 @Var uint block; 538 539 this() pure nothrow @safe @nogc {} 540 541 this(ulong position, uint block=uint.init) pure nothrow @safe @nogc 542 { 543 this.position = position; 544 this.block = block; 545 } 546 547 mixin Make; 548 549 public static typeof(this) fromBuffer(ubyte[] buffer) 550 { 551 BlockChange ret = new BlockChange(); 552 ret.decode(buffer); 553 return ret; 554 } 555 556 override string toString() 557 { 558 return "BlockChange(position: " ~ std.conv.to!string(this.position) ~ ", block: " ~ std.conv.to!string(this.block) ~ ")"; 559 } 560 561 } 562 563 class BossBar : Java210Packet 564 { 565 566 enum uint ID = 12; 567 568 enum bool CLIENTBOUND = true; 569 enum bool SERVERBOUND = false; 570 571 enum string[] __fields = ["uuid", "action"]; 572 573 UUID uuid; 574 @Var uint action; 575 576 this() pure nothrow @safe @nogc {} 577 578 this(UUID uuid, uint action=uint.init) pure nothrow @safe @nogc 579 { 580 this.uuid = uuid; 581 this.action = action; 582 } 583 584 mixin Make; 585 586 public static typeof(this) fromBuffer(ubyte[] buffer) 587 { 588 BossBar ret = new BossBar(); 589 ret.decode(buffer); 590 return ret; 591 } 592 593 override string toString() 594 { 595 return "BossBar(uuid: " ~ std.conv.to!string(this.uuid) ~ ", action: " ~ std.conv.to!string(this.action) ~ ")"; 596 } 597 598 enum string variantField = "action"; 599 600 alias Variants = TypeTuple!(Add, Remove, UpdateHealth, UpdateTitle, UpdateStyle, UpdateFlags); 601 602 class Add : Java210Packet 603 { 604 605 enum typeof(action) ACTION = 0; 606 607 // color 608 enum uint PINK = 0; 609 enum uint BLUE = 1; 610 enum uint RED = 2; 611 enum uint GREEN = 3; 612 enum uint YELLOW = 4; 613 enum uint PURPLE = 5; 614 enum uint WHITE = 6; 615 616 // division 617 enum uint NO_DIVISION = 0; 618 enum uint SIX_NOTCHES = 1; 619 enum uint TEN_NOTCHES = 2; 620 enum uint TWELVE_NOTCHES = 3; 621 enum uint TWENTY_NOTCHES = 4; 622 623 // flags 624 enum ubyte DARK_SKY = 1; 625 enum ubyte IS_DRAGON_BAR = 2; 626 627 enum string[] __fields = ["title", "health", "color", "division", "flags"]; 628 629 string title; 630 float health; 631 @Var uint color; 632 @Var uint division; 633 ubyte flags; 634 635 this() pure nothrow @safe @nogc {} 636 637 this(string title, float health=float.init, uint color=uint.init, uint division=uint.init, ubyte flags=ubyte.init) pure nothrow @safe @nogc 638 { 639 this.title = title; 640 this.health = health; 641 this.color = color; 642 this.division = division; 643 this.flags = flags; 644 } 645 646 mixin Make; 647 648 override string toString() 649 { 650 return "BossBar.Add(title: " ~ std.conv.to!string(this.title) ~ ", health: " ~ std.conv.to!string(this.health) ~ ", color: " ~ std.conv.to!string(this.color) ~ ", division: " ~ std.conv.to!string(this.division) ~ ", flags: " ~ std.conv.to!string(this.flags) ~ ")"; 651 } 652 653 } 654 655 class Remove : Java210Packet 656 { 657 658 enum typeof(action) ACTION = 1; 659 660 enum string[] __fields = []; 661 662 mixin Make; 663 664 override string toString() 665 { 666 return "BossBar.Remove()"; 667 } 668 669 } 670 671 class UpdateHealth : Java210Packet 672 { 673 674 enum typeof(action) ACTION = 2; 675 676 enum string[] __fields = ["health"]; 677 678 float health; 679 680 this() pure nothrow @safe @nogc {} 681 682 this(float health) pure nothrow @safe @nogc 683 { 684 this.health = health; 685 } 686 687 mixin Make; 688 689 override string toString() 690 { 691 return "BossBar.UpdateHealth(health: " ~ std.conv.to!string(this.health) ~ ")"; 692 } 693 694 } 695 696 class UpdateTitle : Java210Packet 697 { 698 699 enum typeof(action) ACTION = 3; 700 701 enum string[] __fields = ["title"]; 702 703 string title; 704 705 this() pure nothrow @safe @nogc {} 706 707 this(string title) pure nothrow @safe @nogc 708 { 709 this.title = title; 710 } 711 712 mixin Make; 713 714 override string toString() 715 { 716 return "BossBar.UpdateTitle(title: " ~ std.conv.to!string(this.title) ~ ")"; 717 } 718 719 } 720 721 class UpdateStyle : Java210Packet 722 { 723 724 enum typeof(action) ACTION = 4; 725 726 // color 727 enum uint PINK = 0; 728 enum uint BLUE = 1; 729 enum uint RED = 2; 730 enum uint GREEN = 3; 731 enum uint YELLOW = 4; 732 enum uint PURPLE = 5; 733 enum uint WHITE = 6; 734 735 // division 736 enum uint NO_DIVISION = 0; 737 enum uint SIX_NOTCHES = 1; 738 enum uint TEN_NOTCHES = 2; 739 enum uint TWELVE_NOTCHES = 3; 740 enum uint TWENTY_NOTCHES = 4; 741 742 enum string[] __fields = ["color", "division"]; 743 744 @Var uint color; 745 @Var uint division; 746 747 this() pure nothrow @safe @nogc {} 748 749 this(uint color, uint division=uint.init) pure nothrow @safe @nogc 750 { 751 this.color = color; 752 this.division = division; 753 } 754 755 mixin Make; 756 757 override string toString() 758 { 759 return "BossBar.UpdateStyle(color: " ~ std.conv.to!string(this.color) ~ ", division: " ~ std.conv.to!string(this.division) ~ ")"; 760 } 761 762 } 763 764 class UpdateFlags : Java210Packet 765 { 766 767 enum typeof(action) ACTION = 5; 768 769 // flags 770 enum ubyte DARK_SKY = 1; 771 enum ubyte IS_DRAGON_BAR = 2; 772 773 enum string[] __fields = ["flags"]; 774 775 ubyte flags; 776 777 this() pure nothrow @safe @nogc {} 778 779 this(ubyte flags) pure nothrow @safe @nogc 780 { 781 this.flags = flags; 782 } 783 784 mixin Make; 785 786 override string toString() 787 { 788 return "BossBar.UpdateFlags(flags: " ~ std.conv.to!string(this.flags) ~ ")"; 789 } 790 791 } 792 793 } 794 795 class ServerDifficulty : Java210Packet 796 { 797 798 enum uint ID = 13; 799 800 enum bool CLIENTBOUND = true; 801 enum bool SERVERBOUND = false; 802 803 // difficulty 804 enum ubyte PEACEFUL = 0; 805 enum ubyte EASY = 1; 806 enum ubyte NORMAL = 2; 807 enum ubyte HARD = 3; 808 809 enum string[] __fields = ["difficulty"]; 810 811 ubyte difficulty; 812 813 this() pure nothrow @safe @nogc {} 814 815 this(ubyte difficulty) pure nothrow @safe @nogc 816 { 817 this.difficulty = difficulty; 818 } 819 820 mixin Make; 821 822 public static typeof(this) fromBuffer(ubyte[] buffer) 823 { 824 ServerDifficulty ret = new ServerDifficulty(); 825 ret.decode(buffer); 826 return ret; 827 } 828 829 override string toString() 830 { 831 return "ServerDifficulty(difficulty: " ~ std.conv.to!string(this.difficulty) ~ ")"; 832 } 833 834 } 835 836 class TabComplete : Java210Packet 837 { 838 839 enum uint ID = 14; 840 841 enum bool CLIENTBOUND = true; 842 enum bool SERVERBOUND = false; 843 844 enum string[] __fields = ["matches"]; 845 846 string[] matches; 847 848 this() pure nothrow @safe @nogc {} 849 850 this(string[] matches) pure nothrow @safe @nogc 851 { 852 this.matches = matches; 853 } 854 855 mixin Make; 856 857 public static typeof(this) fromBuffer(ubyte[] buffer) 858 { 859 TabComplete ret = new TabComplete(); 860 ret.decode(buffer); 861 return ret; 862 } 863 864 override string toString() 865 { 866 return "TabComplete(matches: " ~ std.conv.to!string(this.matches) ~ ")"; 867 } 868 869 } 870 871 class ChatMessage : Java210Packet 872 { 873 874 enum uint ID = 15; 875 876 enum bool CLIENTBOUND = true; 877 enum bool SERVERBOUND = false; 878 879 // position 880 enum ubyte CHAT = 0; 881 enum ubyte SYSTEM_MESSAGE = 1; 882 enum ubyte ABOVE_HOTBAR = 2; 883 884 enum string[] __fields = ["message", "position"]; 885 886 string message; 887 ubyte position; 888 889 this() pure nothrow @safe @nogc {} 890 891 this(string message, ubyte position=ubyte.init) pure nothrow @safe @nogc 892 { 893 this.message = message; 894 this.position = position; 895 } 896 897 mixin Make; 898 899 public static typeof(this) fromBuffer(ubyte[] buffer) 900 { 901 ChatMessage ret = new ChatMessage(); 902 ret.decode(buffer); 903 return ret; 904 } 905 906 override string toString() 907 { 908 return "ChatMessage(message: " ~ std.conv.to!string(this.message) ~ ", position: " ~ std.conv.to!string(this.position) ~ ")"; 909 } 910 911 } 912 913 class MultiBlockChange : Java210Packet 914 { 915 916 enum uint ID = 16; 917 918 enum bool CLIENTBOUND = true; 919 enum bool SERVERBOUND = false; 920 921 enum string[] __fields = ["chunk", "changes"]; 922 923 Vector!(int, "xz") chunk; 924 soupply.java210.types.BlockChange[] changes; 925 926 this() pure nothrow @safe @nogc {} 927 928 this(Vector!(int, "xz") chunk, soupply.java210.types.BlockChange[] changes=(soupply.java210.types.BlockChange[]).init) pure nothrow @safe @nogc 929 { 930 this.chunk = chunk; 931 this.changes = changes; 932 } 933 934 mixin Make; 935 936 public static typeof(this) fromBuffer(ubyte[] buffer) 937 { 938 MultiBlockChange ret = new MultiBlockChange(); 939 ret.decode(buffer); 940 return ret; 941 } 942 943 override string toString() 944 { 945 return "MultiBlockChange(chunk: " ~ std.conv.to!string(this.chunk) ~ ", changes: " ~ std.conv.to!string(this.changes) ~ ")"; 946 } 947 948 } 949 950 class ConfirmTransaction : Java210Packet 951 { 952 953 enum uint ID = 17; 954 955 enum bool CLIENTBOUND = true; 956 enum bool SERVERBOUND = false; 957 958 enum string[] __fields = ["window", "action", "accepted"]; 959 960 ubyte window; 961 ushort action; 962 bool accepted; 963 964 this() pure nothrow @safe @nogc {} 965 966 this(ubyte window, ushort action=ushort.init, bool accepted=bool.init) pure nothrow @safe @nogc 967 { 968 this.window = window; 969 this.action = action; 970 this.accepted = accepted; 971 } 972 973 mixin Make; 974 975 public static typeof(this) fromBuffer(ubyte[] buffer) 976 { 977 ConfirmTransaction ret = new ConfirmTransaction(); 978 ret.decode(buffer); 979 return ret; 980 } 981 982 override string toString() 983 { 984 return "ConfirmTransaction(window: " ~ std.conv.to!string(this.window) ~ ", action: " ~ std.conv.to!string(this.action) ~ ", accepted: " ~ std.conv.to!string(this.accepted) ~ ")"; 985 } 986 987 } 988 989 class CloseWindow : Java210Packet 990 { 991 992 enum uint ID = 18; 993 994 enum bool CLIENTBOUND = true; 995 enum bool SERVERBOUND = false; 996 997 enum string[] __fields = ["window"]; 998 999 ubyte window; 1000 1001 this() pure nothrow @safe @nogc {} 1002 1003 this(ubyte window) pure nothrow @safe @nogc 1004 { 1005 this.window = window; 1006 } 1007 1008 mixin Make; 1009 1010 public static typeof(this) fromBuffer(ubyte[] buffer) 1011 { 1012 CloseWindow ret = new CloseWindow(); 1013 ret.decode(buffer); 1014 return ret; 1015 } 1016 1017 override string toString() 1018 { 1019 return "CloseWindow(window: " ~ std.conv.to!string(this.window) ~ ")"; 1020 } 1021 1022 } 1023 1024 class OpenWindow : Java210Packet 1025 { 1026 1027 enum uint ID = 19; 1028 1029 enum bool CLIENTBOUND = true; 1030 enum bool SERVERBOUND = false; 1031 1032 enum string[] __fields = ["window", "type", "title", "slots"]; 1033 1034 ubyte window; 1035 string type; 1036 string title; 1037 ubyte slots; 1038 1039 this() pure nothrow @safe @nogc {} 1040 1041 this(ubyte window, string type=string.init, string title=string.init, ubyte slots=ubyte.init) pure nothrow @safe @nogc 1042 { 1043 this.window = window; 1044 this.type = type; 1045 this.title = title; 1046 this.slots = slots; 1047 } 1048 1049 mixin Make; 1050 1051 public static typeof(this) fromBuffer(ubyte[] buffer) 1052 { 1053 OpenWindow ret = new OpenWindow(); 1054 ret.decode(buffer); 1055 return ret; 1056 } 1057 1058 override string toString() 1059 { 1060 return "OpenWindow(window: " ~ std.conv.to!string(this.window) ~ ", type: " ~ std.conv.to!string(this.type) ~ ", title: " ~ std.conv.to!string(this.title) ~ ", slots: " ~ std.conv.to!string(this.slots) ~ ")"; 1061 } 1062 1063 } 1064 1065 class WindowItems : Java210Packet 1066 { 1067 1068 enum uint ID = 20; 1069 1070 enum bool CLIENTBOUND = true; 1071 enum bool SERVERBOUND = false; 1072 1073 enum string[] __fields = ["window", "slots"]; 1074 1075 ubyte window; 1076 @Length!ushort soupply.java210.types.Slot[] slots; 1077 1078 this() pure nothrow @safe @nogc {} 1079 1080 this(ubyte window, soupply.java210.types.Slot[] slots=(soupply.java210.types.Slot[]).init) pure nothrow @safe @nogc 1081 { 1082 this.window = window; 1083 this.slots = slots; 1084 } 1085 1086 mixin Make; 1087 1088 public static typeof(this) fromBuffer(ubyte[] buffer) 1089 { 1090 WindowItems ret = new WindowItems(); 1091 ret.decode(buffer); 1092 return ret; 1093 } 1094 1095 override string toString() 1096 { 1097 return "WindowItems(window: " ~ std.conv.to!string(this.window) ~ ", slots: " ~ std.conv.to!string(this.slots) ~ ")"; 1098 } 1099 1100 } 1101 1102 class WindowProperty : Java210Packet 1103 { 1104 1105 enum uint ID = 21; 1106 1107 enum bool CLIENTBOUND = true; 1108 enum bool SERVERBOUND = false; 1109 1110 // property 1111 enum ushort FURNANCE_FIRE_ICON = 0; 1112 enum ushort FURNACE_MAX_FUEL_BURN_TIME = 1; 1113 enum ushort FURNACE_PROGRESS_ARROW = 2; 1114 enum ushort FURNCE_MAX_PROGRESS = 3; 1115 enum ushort ENCHANTMENT_LEVEL_REQUIREMENT_TOP = 0; 1116 enum ushort ENCHANTMENT_LEVEL_REQUIREMENT_MIDDLE = 1; 1117 enum ushort ENCHANTMENT_LEVEL_REQUIREMENT_BOTTOM = 2; 1118 enum ushort ENCHANTMENT_SEED = 3; 1119 enum ushort ENCHANTMENT_ID_TOP = 4; 1120 enum ushort ENCHANTMENT_ID_MIDDLE = 5; 1121 enum ushort ENCHANTMENT_ID_BOTTOM = 6; 1122 enum ushort ENCHANTMENT_LEVEL_TOP = 7; 1123 enum ushort ENCHANTMENT_LEVEL_MIDDLE = 8; 1124 enum ushort ENCHANTMENT_LEVEL_BOTTOM = 9; 1125 enum ushort BEACON_POWER_LEVEL = 0; 1126 enum ushort BEACON_FIRST_EFFECT = 1; 1127 enum ushort BEACON_SECOND_EFFECT = 2; 1128 enum ushort ANVIL_REPAIR_COST = 0; 1129 enum ushort BREWING_STAND_BREW_TIME = 0; 1130 1131 enum string[] __fields = ["window", "property", "value"]; 1132 1133 ubyte window; 1134 ushort property; 1135 short value; 1136 1137 this() pure nothrow @safe @nogc {} 1138 1139 this(ubyte window, ushort property=ushort.init, short value=short.init) pure nothrow @safe @nogc 1140 { 1141 this.window = window; 1142 this.property = property; 1143 this.value = value; 1144 } 1145 1146 mixin Make; 1147 1148 public static typeof(this) fromBuffer(ubyte[] buffer) 1149 { 1150 WindowProperty ret = new WindowProperty(); 1151 ret.decode(buffer); 1152 return ret; 1153 } 1154 1155 override string toString() 1156 { 1157 return "WindowProperty(window: " ~ std.conv.to!string(this.window) ~ ", property: " ~ std.conv.to!string(this.property) ~ ", value: " ~ std.conv.to!string(this.value) ~ ")"; 1158 } 1159 1160 } 1161 1162 class SetSlot : Java210Packet 1163 { 1164 1165 enum uint ID = 22; 1166 1167 enum bool CLIENTBOUND = true; 1168 enum bool SERVERBOUND = false; 1169 1170 enum string[] __fields = ["window", "slot", "item"]; 1171 1172 ubyte window; 1173 ushort slot; 1174 soupply.java210.types.Slot item; 1175 1176 this() pure nothrow @safe @nogc {} 1177 1178 this(ubyte window, ushort slot=ushort.init, soupply.java210.types.Slot item=soupply.java210.types.Slot.init) pure nothrow @safe @nogc 1179 { 1180 this.window = window; 1181 this.slot = slot; 1182 this.item = item; 1183 } 1184 1185 mixin Make; 1186 1187 public static typeof(this) fromBuffer(ubyte[] buffer) 1188 { 1189 SetSlot ret = new SetSlot(); 1190 ret.decode(buffer); 1191 return ret; 1192 } 1193 1194 override string toString() 1195 { 1196 return "SetSlot(window: " ~ std.conv.to!string(this.window) ~ ", slot: " ~ std.conv.to!string(this.slot) ~ ", item: " ~ std.conv.to!string(this.item) ~ ")"; 1197 } 1198 1199 } 1200 1201 class SetCooldown : Java210Packet 1202 { 1203 1204 enum uint ID = 23; 1205 1206 enum bool CLIENTBOUND = true; 1207 enum bool SERVERBOUND = false; 1208 1209 enum string[] __fields = ["item", "cooldown"]; 1210 1211 @Var uint item; 1212 @Var uint cooldown; 1213 1214 this() pure nothrow @safe @nogc {} 1215 1216 this(uint item, uint cooldown=uint.init) pure nothrow @safe @nogc 1217 { 1218 this.item = item; 1219 this.cooldown = cooldown; 1220 } 1221 1222 mixin Make; 1223 1224 public static typeof(this) fromBuffer(ubyte[] buffer) 1225 { 1226 SetCooldown ret = new SetCooldown(); 1227 ret.decode(buffer); 1228 return ret; 1229 } 1230 1231 override string toString() 1232 { 1233 return "SetCooldown(item: " ~ std.conv.to!string(this.item) ~ ", cooldown: " ~ std.conv.to!string(this.cooldown) ~ ")"; 1234 } 1235 1236 } 1237 1238 class PluginMessage : Java210Packet 1239 { 1240 1241 enum uint ID = 24; 1242 1243 enum bool CLIENTBOUND = true; 1244 enum bool SERVERBOUND = false; 1245 1246 enum string[] __fields = ["channel", "data"]; 1247 1248 string channel; 1249 @NoLength ubyte[] data; 1250 1251 this() pure nothrow @safe @nogc {} 1252 1253 this(string channel, ubyte[] data=(ubyte[]).init) pure nothrow @safe @nogc 1254 { 1255 this.channel = channel; 1256 this.data = data; 1257 } 1258 1259 mixin Make; 1260 1261 public static typeof(this) fromBuffer(ubyte[] buffer) 1262 { 1263 PluginMessage ret = new PluginMessage(); 1264 ret.decode(buffer); 1265 return ret; 1266 } 1267 1268 override string toString() 1269 { 1270 return "PluginMessage(channel: " ~ std.conv.to!string(this.channel) ~ ", data: " ~ std.conv.to!string(this.data) ~ ")"; 1271 } 1272 1273 } 1274 1275 class NamedSoundEffect : Java210Packet 1276 { 1277 1278 enum uint ID = 25; 1279 1280 enum bool CLIENTBOUND = true; 1281 enum bool SERVERBOUND = false; 1282 1283 enum string[] __fields = ["name", "category", "position", "volume", "pitch"]; 1284 1285 string name; 1286 @Var uint category; 1287 Vector!(int, "xyz") position; 1288 float volume; 1289 float pitch; 1290 1291 this() pure nothrow @safe @nogc {} 1292 1293 this(string name, uint category=uint.init, Vector!(int, "xyz") position=Vector!(int, "xyz").init, float volume=float.init, float pitch=float.init) pure nothrow @safe @nogc 1294 { 1295 this.name = name; 1296 this.category = category; 1297 this.position = position; 1298 this.volume = volume; 1299 this.pitch = pitch; 1300 } 1301 1302 mixin Make; 1303 1304 public static typeof(this) fromBuffer(ubyte[] buffer) 1305 { 1306 NamedSoundEffect ret = new NamedSoundEffect(); 1307 ret.decode(buffer); 1308 return ret; 1309 } 1310 1311 override string toString() 1312 { 1313 return "NamedSoundEffect(name: " ~ std.conv.to!string(this.name) ~ ", category: " ~ std.conv.to!string(this.category) ~ ", position: " ~ std.conv.to!string(this.position) ~ ", volume: " ~ std.conv.to!string(this.volume) ~ ", pitch: " ~ std.conv.to!string(this.pitch) ~ ")"; 1314 } 1315 1316 } 1317 1318 class Disconnect : Java210Packet 1319 { 1320 1321 enum uint ID = 26; 1322 1323 enum bool CLIENTBOUND = true; 1324 enum bool SERVERBOUND = false; 1325 1326 enum string[] __fields = ["reason"]; 1327 1328 string reason; 1329 1330 this() pure nothrow @safe @nogc {} 1331 1332 this(string reason) pure nothrow @safe @nogc 1333 { 1334 this.reason = reason; 1335 } 1336 1337 mixin Make; 1338 1339 public static typeof(this) fromBuffer(ubyte[] buffer) 1340 { 1341 Disconnect ret = new Disconnect(); 1342 ret.decode(buffer); 1343 return ret; 1344 } 1345 1346 override string toString() 1347 { 1348 return "Disconnect(reason: " ~ std.conv.to!string(this.reason) ~ ")"; 1349 } 1350 1351 } 1352 1353 class EntityStatus : Java210Packet 1354 { 1355 1356 enum uint ID = 27; 1357 1358 enum bool CLIENTBOUND = true; 1359 enum bool SERVERBOUND = false; 1360 1361 // status 1362 enum ubyte SPAWN_TIPPED_ARROW_PARTICLE_EFFECTS = 0; 1363 enum ubyte PLAY_JUMPING_ANIMATION_AND_PARTICLES = 1; 1364 enum ubyte RESET_SPAWNER_DELAY = 1; 1365 enum ubyte PLAY_HURT_ANIMATION_AND_SOUND = 2; 1366 enum ubyte PLAY_DEATH_ANIMATION_AND_SOUND = 3; 1367 enum ubyte PLAY_ATTACK_ANIMATION_AND_SOUND = 4; 1368 enum ubyte SPAWN_SMOKE_PARTICLES = 6; 1369 enum ubyte SPAWN_HEART_PARTICLES = 7; 1370 enum ubyte PLAY_SHAKING_WATER_ANIMATION = 8; 1371 enum ubyte FINISHED_CONSUMING = 9; 1372 enum ubyte PLAY_EATING_GRASS_ANIMATION = 10; 1373 enum ubyte IGNITE_MINECART_TNT = 10; 1374 enum ubyte HOLD_POPPY = 11; 1375 enum ubyte SPAWN_VILLAGER_MATING_HEART_PARTICLES = 12; 1376 enum ubyte SPAWN_VILLAGER_ANGRY_PARTICLES = 13; 1377 enum ubyte SPAWN_VILLAGER_HAPPY_PARTICLES = 14; 1378 enum ubyte SPAWN_WITCH_MAGIC_PARTICLES = 15; 1379 enum ubyte PLAY_ZOMBIE_CURE_FINISHED_SOUND = 16; 1380 enum ubyte SPAWN_FIREWORK_EXPLOSION_EFFECT = 17; 1381 enum ubyte SPAWN_LOVE_PARTICLES = 18; 1382 enum ubyte RESET_SQUID_ROTATION = 19; 1383 enum ubyte SPAWN_EXPLOSION_PARTICLES = 20; 1384 enum ubyte PLAY_GUARDIAN_SOUND_EFFECT = 21; 1385 enum ubyte ENABLE_REDUCED_DEBUG_SCREEN = 22; 1386 enum ubyte DISABLE_REDUCED_DEBUG_SCREEN = 23; 1387 enum ubyte SET_OP_PERMISSION_LEVEL_0 = 24; 1388 enum ubyte SET_OP_PERMISSION_LEVEL_1 = 25; 1389 enum ubyte SET_OP_PERMISSION_LEVEL_2 = 26; 1390 enum ubyte SET_OP_PERMISSION_LEVEL_3 = 27; 1391 enum ubyte SET_OP_PERMISSION_LEVEL_4 = 28; 1392 enum ubyte PLAY_SHIELD_BLOCK_SOUND = 29; 1393 enum ubyte PLAY_SHIELD_BREAK_SOUND = 30; 1394 enum ubyte HOOK_KNOCKBACK = 31; 1395 enum ubyte PLAY_HIT_SOUND = 32; 1396 enum ubyte PLAY_THORNS_HURT_ANIMATION_AND_SOUND = 33; 1397 enum ubyte REMOVE_POPPY = 34; 1398 enum ubyte PLAY_TOTEM_UNDYING_ANIMATION = 35; 1399 1400 enum string[] __fields = ["entityId", "status"]; 1401 1402 uint entityId; 1403 ubyte status; 1404 1405 this() pure nothrow @safe @nogc {} 1406 1407 this(uint entityId, ubyte status=ubyte.init) pure nothrow @safe @nogc 1408 { 1409 this.entityId = entityId; 1410 this.status = status; 1411 } 1412 1413 mixin Make; 1414 1415 public static typeof(this) fromBuffer(ubyte[] buffer) 1416 { 1417 EntityStatus ret = new EntityStatus(); 1418 ret.decode(buffer); 1419 return ret; 1420 } 1421 1422 override string toString() 1423 { 1424 return "EntityStatus(entityId: " ~ std.conv.to!string(this.entityId) ~ ", status: " ~ std.conv.to!string(this.status) ~ ")"; 1425 } 1426 1427 } 1428 1429 class Explosion : Java210Packet 1430 { 1431 1432 enum uint ID = 28; 1433 1434 enum bool CLIENTBOUND = true; 1435 enum bool SERVERBOUND = false; 1436 1437 enum string[] __fields = ["position", "radius", "records", "motion"]; 1438 1439 Vector!(float, "xyz") position; 1440 float radius; 1441 @Length!uint Vector!(byte, "xyz")[] records; 1442 Vector!(float, "xyz") motion; 1443 1444 this() pure nothrow @safe @nogc {} 1445 1446 this(Vector!(float, "xyz") position, float radius=float.init, Vector!(byte, "xyz")[] records=(Vector!(byte, "xyz")[]).init, Vector!(float, "xyz") motion=Vector!(float, "xyz").init) pure nothrow @safe @nogc 1447 { 1448 this.position = position; 1449 this.radius = radius; 1450 this.records = records; 1451 this.motion = motion; 1452 } 1453 1454 mixin Make; 1455 1456 public static typeof(this) fromBuffer(ubyte[] buffer) 1457 { 1458 Explosion ret = new Explosion(); 1459 ret.decode(buffer); 1460 return ret; 1461 } 1462 1463 override string toString() 1464 { 1465 return "Explosion(position: " ~ std.conv.to!string(this.position) ~ ", radius: " ~ std.conv.to!string(this.radius) ~ ", records: " ~ std.conv.to!string(this.records) ~ ", motion: " ~ std.conv.to!string(this.motion) ~ ")"; 1466 } 1467 1468 } 1469 1470 class UnloadChunk : Java210Packet 1471 { 1472 1473 enum uint ID = 29; 1474 1475 enum bool CLIENTBOUND = true; 1476 enum bool SERVERBOUND = false; 1477 1478 enum string[] __fields = ["position"]; 1479 1480 Vector!(int, "xz") position; 1481 1482 this() pure nothrow @safe @nogc {} 1483 1484 this(Vector!(int, "xz") position) pure nothrow @safe @nogc 1485 { 1486 this.position = position; 1487 } 1488 1489 mixin Make; 1490 1491 public static typeof(this) fromBuffer(ubyte[] buffer) 1492 { 1493 UnloadChunk ret = new UnloadChunk(); 1494 ret.decode(buffer); 1495 return ret; 1496 } 1497 1498 override string toString() 1499 { 1500 return "UnloadChunk(position: " ~ std.conv.to!string(this.position) ~ ")"; 1501 } 1502 1503 } 1504 1505 class ChangeGameState : Java210Packet 1506 { 1507 1508 enum uint ID = 30; 1509 1510 enum bool CLIENTBOUND = true; 1511 enum bool SERVERBOUND = false; 1512 1513 // reason 1514 enum ubyte INVALID_BED = 0; 1515 enum ubyte END_RAINING = 1; 1516 enum ubyte BEGIN_RAINING = 2; 1517 enum ubyte CHANGE_GAMEMODE = 3; 1518 enum ubyte EXIT_END = 4; 1519 enum ubyte DEMO_MESSAGE = 5; 1520 enum ubyte ARROW_HITTING_PLAYER = 6; 1521 enum ubyte FADE_VALUE = 7; 1522 enum ubyte FADE_TIME = 8; 1523 enum ubyte PLAY_ELDER_GUARDIAN_MOB_APPEARANCE = 10; 1524 1525 // value 1526 enum float SURVIVAL = 0; 1527 enum float CREATIVE = 1; 1528 enum float ADVENTURE = 2; 1529 enum float SPECTATOR = 3; 1530 enum float RESPAWN_IMMEDIATELY = 0; 1531 enum float RESPAWN_AFTER_CREDITS = 1; 1532 enum float SHOW_DEMO_SCREEN = 0; 1533 enum float TELL_MOVEMENT_CONTROLS = 101; 1534 enum float TELL_JUMP_CONTROLS = 102; 1535 enum float TELL_INVENTORY_CONTROLS = 103; 1536 enum float BRIGHT = 0; 1537 enum float DARK = 1; 1538 1539 enum string[] __fields = ["reason", "value"]; 1540 1541 ubyte reason; 1542 float value; 1543 1544 this() pure nothrow @safe @nogc {} 1545 1546 this(ubyte reason, float value=float.init) pure nothrow @safe @nogc 1547 { 1548 this.reason = reason; 1549 this.value = value; 1550 } 1551 1552 mixin Make; 1553 1554 public static typeof(this) fromBuffer(ubyte[] buffer) 1555 { 1556 ChangeGameState ret = new ChangeGameState(); 1557 ret.decode(buffer); 1558 return ret; 1559 } 1560 1561 override string toString() 1562 { 1563 return "ChangeGameState(reason: " ~ std.conv.to!string(this.reason) ~ ", value: " ~ std.conv.to!string(this.value) ~ ")"; 1564 } 1565 1566 } 1567 1568 class KeepAlive : Java210Packet 1569 { 1570 1571 enum uint ID = 31; 1572 1573 enum bool CLIENTBOUND = true; 1574 enum bool SERVERBOUND = false; 1575 1576 enum string[] __fields = ["id"]; 1577 1578 @Var uint id; 1579 1580 this() pure nothrow @safe @nogc {} 1581 1582 this(uint id) pure nothrow @safe @nogc 1583 { 1584 this.id = id; 1585 } 1586 1587 mixin Make; 1588 1589 public static typeof(this) fromBuffer(ubyte[] buffer) 1590 { 1591 KeepAlive ret = new KeepAlive(); 1592 ret.decode(buffer); 1593 return ret; 1594 } 1595 1596 override string toString() 1597 { 1598 return "KeepAlive(id: " ~ std.conv.to!string(this.id) ~ ")"; 1599 } 1600 1601 } 1602 1603 class ChunkData : Java210Packet 1604 { 1605 1606 enum uint ID = 32; 1607 1608 enum bool CLIENTBOUND = true; 1609 enum bool SERVERBOUND = false; 1610 1611 enum string[] __fields = ["position", "full", "sections", "data", "tilesCount", "tiles"]; 1612 1613 Vector!(int, "xz") position; 1614 bool full; 1615 @Var uint sections; 1616 ubyte[] data; 1617 @Var uint tilesCount; 1618 @NoLength ubyte[] tiles; 1619 1620 this() pure nothrow @safe @nogc {} 1621 1622 this(Vector!(int, "xz") position, bool full=bool.init, uint sections=uint.init, ubyte[] data=(ubyte[]).init, uint tilesCount=uint.init, ubyte[] tiles=(ubyte[]).init) pure nothrow @safe @nogc 1623 { 1624 this.position = position; 1625 this.full = full; 1626 this.sections = sections; 1627 this.data = data; 1628 this.tilesCount = tilesCount; 1629 this.tiles = tiles; 1630 } 1631 1632 mixin Make; 1633 1634 public static typeof(this) fromBuffer(ubyte[] buffer) 1635 { 1636 ChunkData ret = new ChunkData(); 1637 ret.decode(buffer); 1638 return ret; 1639 } 1640 1641 override string toString() 1642 { 1643 return "ChunkData(position: " ~ std.conv.to!string(this.position) ~ ", full: " ~ std.conv.to!string(this.full) ~ ", sections: " ~ std.conv.to!string(this.sections) ~ ", data: " ~ std.conv.to!string(this.data) ~ ", tilesCount: " ~ std.conv.to!string(this.tilesCount) ~ ", tiles: " ~ std.conv.to!string(this.tiles) ~ ")"; 1644 } 1645 1646 } 1647 1648 class Effect : Java210Packet 1649 { 1650 1651 enum uint ID = 33; 1652 1653 enum bool CLIENTBOUND = true; 1654 enum bool SERVERBOUND = false; 1655 1656 // effect id 1657 enum uint DISPENSER_DISPENSE = 1000; 1658 enum uint DISPENSER_FAIL_DISPENSE = 1001; 1659 enum uint DISPENSER_SHOOT = 1002; 1660 enum uint ENDER_EYE_LAUNCH = 1003; 1661 enum uint FIREWORK_SHOT = 1004; 1662 enum uint IRON_DOOR_OPEN = 1005; 1663 enum uint WOODEN_DOOR_OPEN = 1006; 1664 enum uint WOODEN_TRAPDOOR_OPEN = 1007; 1665 enum uint FENCE_GATE_OPEN = 1008; 1666 enum uint FIRE_EXTINGUISH = 1009; 1667 enum uint PLAY_RECORD = 1010; 1668 enum uint IRON_DOOR_CLOSE = 1011; 1669 enum uint WOODEN_DOOR_CLOSE = 1012; 1670 enum uint WOODEN_TRAPDOOR_CLOSE = 1013; 1671 enum uint FENCE_GATE_CLOSE = 1014; 1672 enum uint GHAST_WARN = 1015; 1673 enum uint GHAST_SHOOT = 1016; 1674 enum uint ENDERDRAGON_SHOOT = 1017; 1675 enum uint BLAZE_SHOOT = 1018; 1676 enum uint ZOMBIE_ATTACK_WOOD_DOOR = 1019; 1677 enum uint ZOMBIE_ATTACK_IRON_DOOR = 1020; 1678 enum uint ZOMBIE_BREAK_WOOD_DOOR = 1021; 1679 enum uint WITHER_BREAK_BLOCK = 1022; 1680 enum uint WITHER_SPAWN = 1023; 1681 enum uint WITHER_SHOOT = 1024; 1682 enum uint BAT_TAKE_OFF = 1025; 1683 enum uint ZOMBIE_INFECT_VILLAGER = 1026; 1684 enum uint ZOMBIE_VILLAGER_CONVERT = 1027; 1685 enum uint ENDER_DRAGON_BREATH = 1028; 1686 enum uint ANVIL_BREAK = 1029; 1687 enum uint ANVIL_USE = 1030; 1688 enum uint ANVIL_LAND = 1031; 1689 enum uint PORTAL_TRAVEL = 1032; 1690 enum uint CHORUS_FLOWER_GROW = 1033; 1691 enum uint CHORUS_FLOWER_DIE = 1034; 1692 enum uint BREWING_STAND_BREW = 1035; 1693 enum uint IRON_TRAPDOOR_OPEN = 1036; 1694 enum uint IRON_TRAPDOOR_CLOSE = 1037; 1695 enum uint SPAWN_10_SMOKE_PARTICLES = 2000; 1696 enum uint BREAK_BREAK_PARTICLES_AND_SOUND = 2001; 1697 enum uint SPLASH_POTION_PARTICLES_AND_SOUND = 2002; 1698 enum uint ENDER_EYE_BREAK_PARTICLES_AND_SOUND = 2003; 1699 enum uint MOB_SPAWN_PARTICLES = 2004; 1700 enum uint BONEMEAL_PARTICLES = 2005; 1701 enum uint DRAGON_BREATH = 2006; 1702 enum uint END_GATEWAY_SPAWN = 3000; 1703 enum uint ENDERDRAGON_GROWL = 3001; 1704 1705 enum string[] __fields = ["effectId", "position", "data", "disableVolume"]; 1706 1707 uint effectId; 1708 ulong position; 1709 uint data; 1710 bool disableVolume; 1711 1712 this() pure nothrow @safe @nogc {} 1713 1714 this(uint effectId, ulong position=ulong.init, uint data=uint.init, bool disableVolume=bool.init) pure nothrow @safe @nogc 1715 { 1716 this.effectId = effectId; 1717 this.position = position; 1718 this.data = data; 1719 this.disableVolume = disableVolume; 1720 } 1721 1722 mixin Make; 1723 1724 public static typeof(this) fromBuffer(ubyte[] buffer) 1725 { 1726 Effect ret = new Effect(); 1727 ret.decode(buffer); 1728 return ret; 1729 } 1730 1731 override string toString() 1732 { 1733 return "Effect(effectId: " ~ std.conv.to!string(this.effectId) ~ ", position: " ~ std.conv.to!string(this.position) ~ ", data: " ~ std.conv.to!string(this.data) ~ ", disableVolume: " ~ std.conv.to!string(this.disableVolume) ~ ")"; 1734 } 1735 1736 } 1737 1738 class Particle : Java210Packet 1739 { 1740 1741 enum uint ID = 34; 1742 1743 enum bool CLIENTBOUND = true; 1744 enum bool SERVERBOUND = false; 1745 1746 // particle id 1747 enum uint EXPLODE = 0; 1748 enum uint LARGE_EXPLOSION = 1; 1749 enum uint HUGE_EXPLOSION = 2; 1750 enum uint FIREWORK_SPARK = 3; 1751 enum uint BUBBLE = 4; 1752 enum uint SPLASH = 5; 1753 enum uint WAKE = 6; 1754 enum uint SUSPENDED = 7; 1755 enum uint DEPTH_SUSPEND = 8; 1756 enum uint CRIT = 9; 1757 enum uint MAGIC_CRIT = 10; 1758 enum uint SMOKE = 11; 1759 enum uint LARGE_SMOKE = 12; 1760 enum uint SPELL = 13; 1761 enum uint INSTANT_SPELL = 14; 1762 enum uint MOB_SPELL = 15; 1763 enum uint MOB_SPELL_AMBIENT = 16; 1764 enum uint WITCH_MAGIC = 17; 1765 enum uint DRIP_WATER = 18; 1766 enum uint DRIP_LAVA = 19; 1767 enum uint ANGRY_VILLAGER = 20; 1768 enum uint HAPPY_VILLAGER = 21; 1769 enum uint TOWN_AURA = 22; 1770 enum uint NOTE = 23; 1771 enum uint PORTAL = 24; 1772 enum uint ENCHANTMENT_TABLE = 25; 1773 enum uint FLAME = 26; 1774 enum uint LAVA = 27; 1775 enum uint FOOTSTEP = 28; 1776 enum uint CLOUD = 29; 1777 enum uint RED_DUST = 30; 1778 enum uint SNOWBALL_POOF = 31; 1779 enum uint SNOW_SHOVEL = 32; 1780 enum uint SLIME = 33; 1781 enum uint HEART = 34; 1782 enum uint BARRIER = 35; 1783 enum uint ITEM_CRACK = 36; 1784 enum uint BLOCK_CRACK = 37; 1785 enum uint BLOCK_DUST = 38; 1786 enum uint DROPLET = 39; 1787 enum uint TAKE = 40; 1788 enum uint MOB_APPEARANCE = 41; 1789 enum uint DRAGON_BREATH = 42; 1790 enum uint ENDROD = 43; 1791 enum uint DAMAGE_INDICATOR = 44; 1792 enum uint SWEEP_ATTACK = 45; 1793 enum uint FALLING_DUST = 46; 1794 1795 enum string[] __fields = ["particleId", "longDistance", "position", "offset", "data", "count", "additionalData"]; 1796 1797 uint particleId; 1798 bool longDistance; 1799 Vector!(float, "xyz") position; 1800 Vector!(float, "xyz") offset; 1801 float data; 1802 uint count; 1803 @Var uint[2] additionalData; 1804 1805 this() pure nothrow @safe @nogc {} 1806 1807 this(uint particleId, bool longDistance=bool.init, Vector!(float, "xyz") position=Vector!(float, "xyz").init, Vector!(float, "xyz") offset=Vector!(float, "xyz").init, float data=float.init, uint count=uint.init, uint[2] additionalData=(uint[2]).init) pure nothrow @safe @nogc 1808 { 1809 this.particleId = particleId; 1810 this.longDistance = longDistance; 1811 this.position = position; 1812 this.offset = offset; 1813 this.data = data; 1814 this.count = count; 1815 this.additionalData = additionalData; 1816 } 1817 1818 mixin Make; 1819 1820 public static typeof(this) fromBuffer(ubyte[] buffer) 1821 { 1822 Particle ret = new Particle(); 1823 ret.decode(buffer); 1824 return ret; 1825 } 1826 1827 override string toString() 1828 { 1829 return "Particle(particleId: " ~ std.conv.to!string(this.particleId) ~ ", longDistance: " ~ std.conv.to!string(this.longDistance) ~ ", position: " ~ std.conv.to!string(this.position) ~ ", offset: " ~ std.conv.to!string(this.offset) ~ ", data: " ~ std.conv.to!string(this.data) ~ ", count: " ~ std.conv.to!string(this.count) ~ ", additionalData: " ~ std.conv.to!string(this.additionalData) ~ ")"; 1830 } 1831 1832 } 1833 1834 class JoinGame : Java210Packet 1835 { 1836 1837 enum uint ID = 35; 1838 1839 enum bool CLIENTBOUND = true; 1840 enum bool SERVERBOUND = false; 1841 1842 // gamemode 1843 enum ubyte SURVIVAL = 0; 1844 enum ubyte CREATIVE = 1; 1845 enum ubyte ADVENTURE = 2; 1846 enum ubyte SPECTATOR = 3; 1847 1848 // dimension 1849 enum int NETHER = -1; 1850 enum int OVERWORLD = 0; 1851 enum int END = 1; 1852 1853 // difficulty 1854 enum ubyte PEACEFUL = 0; 1855 enum ubyte EASY = 1; 1856 enum ubyte NORMAL = 2; 1857 enum ubyte HARD = 3; 1858 1859 // level type 1860 enum string INFINITY = "default"; 1861 enum string FLAT = "flat"; 1862 enum string AMPLIFIED = "amplified"; 1863 enum string LARGE_BIOMES = "largeBiomes"; 1864 1865 enum string[] __fields = ["entityId", "gamemode", "dimension", "difficulty", "maxPlayers", "levelType", "reducedDebug"]; 1866 1867 uint entityId; 1868 ubyte gamemode; 1869 int dimension; 1870 ubyte difficulty; 1871 ubyte maxPlayers; 1872 string levelType; 1873 bool reducedDebug; 1874 1875 this() pure nothrow @safe @nogc {} 1876 1877 this(uint entityId, ubyte gamemode=ubyte.init, int dimension=int.init, ubyte difficulty=ubyte.init, ubyte maxPlayers=ubyte.init, string levelType=string.init, bool reducedDebug=bool.init) pure nothrow @safe @nogc 1878 { 1879 this.entityId = entityId; 1880 this.gamemode = gamemode; 1881 this.dimension = dimension; 1882 this.difficulty = difficulty; 1883 this.maxPlayers = maxPlayers; 1884 this.levelType = levelType; 1885 this.reducedDebug = reducedDebug; 1886 } 1887 1888 mixin Make; 1889 1890 public static typeof(this) fromBuffer(ubyte[] buffer) 1891 { 1892 JoinGame ret = new JoinGame(); 1893 ret.decode(buffer); 1894 return ret; 1895 } 1896 1897 override string toString() 1898 { 1899 return "JoinGame(entityId: " ~ std.conv.to!string(this.entityId) ~ ", gamemode: " ~ std.conv.to!string(this.gamemode) ~ ", dimension: " ~ std.conv.to!string(this.dimension) ~ ", difficulty: " ~ std.conv.to!string(this.difficulty) ~ ", maxPlayers: " ~ std.conv.to!string(this.maxPlayers) ~ ", levelType: " ~ std.conv.to!string(this.levelType) ~ ", reducedDebug: " ~ std.conv.to!string(this.reducedDebug) ~ ")"; 1900 } 1901 1902 } 1903 1904 class Map : Java210Packet 1905 { 1906 1907 enum uint ID = 36; 1908 1909 enum bool CLIENTBOUND = true; 1910 enum bool SERVERBOUND = false; 1911 1912 enum string[] __fields = ["mapId", "scale", "showIcons", "icons", "colums", "rows", "offset", "data"]; 1913 1914 @Var uint mapId; 1915 ubyte scale; 1916 bool showIcons; 1917 soupply.java210.types.Icon[] icons; 1918 ubyte colums; 1919 ubyte rows; 1920 Vector!(ubyte, "xz") offset; 1921 ubyte[] data; 1922 1923 this() pure nothrow @safe @nogc {} 1924 1925 this(uint mapId, ubyte scale=ubyte.init, bool showIcons=bool.init, soupply.java210.types.Icon[] icons=(soupply.java210.types.Icon[]).init, ubyte colums=ubyte.init, ubyte rows=ubyte.init, Vector!(ubyte, "xz") offset=Vector!(ubyte, "xz").init, ubyte[] data=(ubyte[]).init) pure nothrow @safe @nogc 1926 { 1927 this.mapId = mapId; 1928 this.scale = scale; 1929 this.showIcons = showIcons; 1930 this.icons = icons; 1931 this.colums = colums; 1932 this.rows = rows; 1933 this.offset = offset; 1934 this.data = data; 1935 } 1936 1937 mixin Make; 1938 1939 public static typeof(this) fromBuffer(ubyte[] buffer) 1940 { 1941 Map ret = new Map(); 1942 ret.decode(buffer); 1943 return ret; 1944 } 1945 1946 override string toString() 1947 { 1948 return "Map(mapId: " ~ std.conv.to!string(this.mapId) ~ ", scale: " ~ std.conv.to!string(this.scale) ~ ", showIcons: " ~ std.conv.to!string(this.showIcons) ~ ", icons: " ~ std.conv.to!string(this.icons) ~ ", colums: " ~ std.conv.to!string(this.colums) ~ ", rows: " ~ std.conv.to!string(this.rows) ~ ", offset: " ~ std.conv.to!string(this.offset) ~ ", data: " ~ std.conv.to!string(this.data) ~ ")"; 1949 } 1950 1951 } 1952 1953 class EntityRelativeMove : Java210Packet 1954 { 1955 1956 enum uint ID = 37; 1957 1958 enum bool CLIENTBOUND = true; 1959 enum bool SERVERBOUND = false; 1960 1961 enum string[] __fields = ["entityId", "delta", "onGround"]; 1962 1963 @Var uint entityId; 1964 Vector!(short, "xyz") delta; 1965 bool onGround; 1966 1967 this() pure nothrow @safe @nogc {} 1968 1969 this(uint entityId, Vector!(short, "xyz") delta=Vector!(short, "xyz").init, bool onGround=bool.init) pure nothrow @safe @nogc 1970 { 1971 this.entityId = entityId; 1972 this.delta = delta; 1973 this.onGround = onGround; 1974 } 1975 1976 mixin Make; 1977 1978 public static typeof(this) fromBuffer(ubyte[] buffer) 1979 { 1980 EntityRelativeMove ret = new EntityRelativeMove(); 1981 ret.decode(buffer); 1982 return ret; 1983 } 1984 1985 override string toString() 1986 { 1987 return "EntityRelativeMove(entityId: " ~ std.conv.to!string(this.entityId) ~ ", delta: " ~ std.conv.to!string(this.delta) ~ ", onGround: " ~ std.conv.to!string(this.onGround) ~ ")"; 1988 } 1989 1990 } 1991 1992 class EntityLookAndRelativeMove : Java210Packet 1993 { 1994 1995 enum uint ID = 38; 1996 1997 enum bool CLIENTBOUND = true; 1998 enum bool SERVERBOUND = false; 1999 2000 enum string[] __fields = ["entityId", "delta", "yaw", "pitch", "onGround"]; 2001 2002 @Var uint entityId; 2003 Vector!(short, "xyz") delta; 2004 ubyte yaw; 2005 ubyte pitch; 2006 bool onGround; 2007 2008 this() pure nothrow @safe @nogc {} 2009 2010 this(uint entityId, Vector!(short, "xyz") delta=Vector!(short, "xyz").init, ubyte yaw=ubyte.init, ubyte pitch=ubyte.init, bool onGround=bool.init) pure nothrow @safe @nogc 2011 { 2012 this.entityId = entityId; 2013 this.delta = delta; 2014 this.yaw = yaw; 2015 this.pitch = pitch; 2016 this.onGround = onGround; 2017 } 2018 2019 mixin Make; 2020 2021 public static typeof(this) fromBuffer(ubyte[] buffer) 2022 { 2023 EntityLookAndRelativeMove ret = new EntityLookAndRelativeMove(); 2024 ret.decode(buffer); 2025 return ret; 2026 } 2027 2028 override string toString() 2029 { 2030 return "EntityLookAndRelativeMove(entityId: " ~ std.conv.to!string(this.entityId) ~ ", delta: " ~ std.conv.to!string(this.delta) ~ ", yaw: " ~ std.conv.to!string(this.yaw) ~ ", pitch: " ~ std.conv.to!string(this.pitch) ~ ", onGround: " ~ std.conv.to!string(this.onGround) ~ ")"; 2031 } 2032 2033 } 2034 2035 class EntityLook : Java210Packet 2036 { 2037 2038 enum uint ID = 39; 2039 2040 enum bool CLIENTBOUND = true; 2041 enum bool SERVERBOUND = false; 2042 2043 enum string[] __fields = ["entityId", "yaw", "pitch", "onGround"]; 2044 2045 @Var uint entityId; 2046 ubyte yaw; 2047 ubyte pitch; 2048 bool onGround; 2049 2050 this() pure nothrow @safe @nogc {} 2051 2052 this(uint entityId, ubyte yaw=ubyte.init, ubyte pitch=ubyte.init, bool onGround=bool.init) pure nothrow @safe @nogc 2053 { 2054 this.entityId = entityId; 2055 this.yaw = yaw; 2056 this.pitch = pitch; 2057 this.onGround = onGround; 2058 } 2059 2060 mixin Make; 2061 2062 public static typeof(this) fromBuffer(ubyte[] buffer) 2063 { 2064 EntityLook ret = new EntityLook(); 2065 ret.decode(buffer); 2066 return ret; 2067 } 2068 2069 override string toString() 2070 { 2071 return "EntityLook(entityId: " ~ std.conv.to!string(this.entityId) ~ ", yaw: " ~ std.conv.to!string(this.yaw) ~ ", pitch: " ~ std.conv.to!string(this.pitch) ~ ", onGround: " ~ std.conv.to!string(this.onGround) ~ ")"; 2072 } 2073 2074 } 2075 2076 class Entity : Java210Packet 2077 { 2078 2079 enum uint ID = 40; 2080 2081 enum bool CLIENTBOUND = true; 2082 enum bool SERVERBOUND = false; 2083 2084 enum string[] __fields = ["entityId"]; 2085 2086 @Var uint entityId; 2087 2088 this() pure nothrow @safe @nogc {} 2089 2090 this(uint entityId) pure nothrow @safe @nogc 2091 { 2092 this.entityId = entityId; 2093 } 2094 2095 mixin Make; 2096 2097 public static typeof(this) fromBuffer(ubyte[] buffer) 2098 { 2099 Entity ret = new Entity(); 2100 ret.decode(buffer); 2101 return ret; 2102 } 2103 2104 override string toString() 2105 { 2106 return "Entity(entityId: " ~ std.conv.to!string(this.entityId) ~ ")"; 2107 } 2108 2109 } 2110 2111 class VehicleMove : Java210Packet 2112 { 2113 2114 enum uint ID = 41; 2115 2116 enum bool CLIENTBOUND = true; 2117 enum bool SERVERBOUND = false; 2118 2119 enum string[] __fields = ["position", "yaw", "pitch"]; 2120 2121 Vector!(double, "xyz") position; 2122 float yaw; 2123 float pitch; 2124 2125 this() pure nothrow @safe @nogc {} 2126 2127 this(Vector!(double, "xyz") position, float yaw=float.init, float pitch=float.init) pure nothrow @safe @nogc 2128 { 2129 this.position = position; 2130 this.yaw = yaw; 2131 this.pitch = pitch; 2132 } 2133 2134 mixin Make; 2135 2136 public static typeof(this) fromBuffer(ubyte[] buffer) 2137 { 2138 VehicleMove ret = new VehicleMove(); 2139 ret.decode(buffer); 2140 return ret; 2141 } 2142 2143 override string toString() 2144 { 2145 return "VehicleMove(position: " ~ std.conv.to!string(this.position) ~ ", yaw: " ~ std.conv.to!string(this.yaw) ~ ", pitch: " ~ std.conv.to!string(this.pitch) ~ ")"; 2146 } 2147 2148 } 2149 2150 class OpenSignEditor : Java210Packet 2151 { 2152 2153 enum uint ID = 42; 2154 2155 enum bool CLIENTBOUND = true; 2156 enum bool SERVERBOUND = false; 2157 2158 enum string[] __fields = ["position"]; 2159 2160 ulong position; 2161 2162 this() pure nothrow @safe @nogc {} 2163 2164 this(ulong position) pure nothrow @safe @nogc 2165 { 2166 this.position = position; 2167 } 2168 2169 mixin Make; 2170 2171 public static typeof(this) fromBuffer(ubyte[] buffer) 2172 { 2173 OpenSignEditor ret = new OpenSignEditor(); 2174 ret.decode(buffer); 2175 return ret; 2176 } 2177 2178 override string toString() 2179 { 2180 return "OpenSignEditor(position: " ~ std.conv.to!string(this.position) ~ ")"; 2181 } 2182 2183 } 2184 2185 class PlayerAbilities : Java210Packet 2186 { 2187 2188 enum uint ID = 43; 2189 2190 enum bool CLIENTBOUND = true; 2191 enum bool SERVERBOUND = false; 2192 2193 // flags 2194 enum ubyte INVULNERABLE = 1; 2195 enum ubyte FLYING = 2; 2196 enum ubyte ALLOW_FLYING = 4; 2197 enum ubyte CREATIVE_MODE = 8; 2198 2199 enum string[] __fields = ["flags", "flyingSpeed", "fovModifier"]; 2200 2201 ubyte flags; 2202 float flyingSpeed; 2203 float fovModifier; 2204 2205 this() pure nothrow @safe @nogc {} 2206 2207 this(ubyte flags, float flyingSpeed=float.init, float fovModifier=float.init) pure nothrow @safe @nogc 2208 { 2209 this.flags = flags; 2210 this.flyingSpeed = flyingSpeed; 2211 this.fovModifier = fovModifier; 2212 } 2213 2214 mixin Make; 2215 2216 public static typeof(this) fromBuffer(ubyte[] buffer) 2217 { 2218 PlayerAbilities ret = new PlayerAbilities(); 2219 ret.decode(buffer); 2220 return ret; 2221 } 2222 2223 override string toString() 2224 { 2225 return "PlayerAbilities(flags: " ~ std.conv.to!string(this.flags) ~ ", flyingSpeed: " ~ std.conv.to!string(this.flyingSpeed) ~ ", fovModifier: " ~ std.conv.to!string(this.fovModifier) ~ ")"; 2226 } 2227 2228 } 2229 2230 class CombatEvent : Java210Packet 2231 { 2232 2233 enum uint ID = 44; 2234 2235 enum bool CLIENTBOUND = true; 2236 enum bool SERVERBOUND = false; 2237 2238 enum string[] __fields = ["eventId"]; 2239 2240 ubyte eventId; 2241 2242 this() pure nothrow @safe @nogc {} 2243 2244 this(ubyte eventId) pure nothrow @safe @nogc 2245 { 2246 this.eventId = eventId; 2247 } 2248 2249 mixin Make; 2250 2251 public static typeof(this) fromBuffer(ubyte[] buffer) 2252 { 2253 CombatEvent ret = new CombatEvent(); 2254 ret.decode(buffer); 2255 return ret; 2256 } 2257 2258 override string toString() 2259 { 2260 return "CombatEvent(eventId: " ~ std.conv.to!string(this.eventId) ~ ")"; 2261 } 2262 2263 enum string variantField = "eventId"; 2264 2265 alias Variants = TypeTuple!(EnterCombat, EndCombat, EntityDead); 2266 2267 class EnterCombat : Java210Packet 2268 { 2269 2270 enum typeof(eventId) EVENT_ID = 0; 2271 2272 enum string[] __fields = []; 2273 2274 mixin Make; 2275 2276 override string toString() 2277 { 2278 return "CombatEvent.EnterCombat()"; 2279 } 2280 2281 } 2282 2283 class EndCombat : Java210Packet 2284 { 2285 2286 enum typeof(eventId) EVENT_ID = 1; 2287 2288 enum string[] __fields = ["duration", "entityId"]; 2289 2290 @Var uint duration; 2291 uint entityId; 2292 2293 this() pure nothrow @safe @nogc {} 2294 2295 this(uint duration, uint entityId=uint.init) pure nothrow @safe @nogc 2296 { 2297 this.duration = duration; 2298 this.entityId = entityId; 2299 } 2300 2301 mixin Make; 2302 2303 override string toString() 2304 { 2305 return "CombatEvent.EndCombat(duration: " ~ std.conv.to!string(this.duration) ~ ", entityId: " ~ std.conv.to!string(this.entityId) ~ ")"; 2306 } 2307 2308 } 2309 2310 class EntityDead : Java210Packet 2311 { 2312 2313 enum typeof(eventId) EVENT_ID = 2; 2314 2315 enum string[] __fields = ["playerId", "entityId", "message"]; 2316 2317 @Var uint playerId; 2318 uint entityId; 2319 string message; 2320 2321 this() pure nothrow @safe @nogc {} 2322 2323 this(uint playerId, uint entityId=uint.init, string message=string.init) pure nothrow @safe @nogc 2324 { 2325 this.playerId = playerId; 2326 this.entityId = entityId; 2327 this.message = message; 2328 } 2329 2330 mixin Make; 2331 2332 override string toString() 2333 { 2334 return "CombatEvent.EntityDead(playerId: " ~ std.conv.to!string(this.playerId) ~ ", entityId: " ~ std.conv.to!string(this.entityId) ~ ", message: " ~ std.conv.to!string(this.message) ~ ")"; 2335 } 2336 2337 } 2338 2339 } 2340 2341 class PlayerListItem : Java210Packet 2342 { 2343 2344 enum uint ID = 45; 2345 2346 enum bool CLIENTBOUND = true; 2347 enum bool SERVERBOUND = false; 2348 2349 enum string[] __fields = ["action"]; 2350 2351 @Var uint action; 2352 2353 this() pure nothrow @safe @nogc {} 2354 2355 this(uint action) pure nothrow @safe @nogc 2356 { 2357 this.action = action; 2358 } 2359 2360 mixin Make; 2361 2362 public static typeof(this) fromBuffer(ubyte[] buffer) 2363 { 2364 PlayerListItem ret = new PlayerListItem(); 2365 ret.decode(buffer); 2366 return ret; 2367 } 2368 2369 override string toString() 2370 { 2371 return "PlayerListItem(action: " ~ std.conv.to!string(this.action) ~ ")"; 2372 } 2373 2374 enum string variantField = "action"; 2375 2376 alias Variants = TypeTuple!(AddPlayer, UpdateGamemode, UpdateLatency, UpdateDisplayName, RemovePlayer); 2377 2378 class AddPlayer : Java210Packet 2379 { 2380 2381 enum typeof(action) ACTION = 0; 2382 2383 enum string[] __fields = ["players"]; 2384 2385 soupply.java210.types.ListAddPlayer[] players; 2386 2387 this() pure nothrow @safe @nogc {} 2388 2389 this(soupply.java210.types.ListAddPlayer[] players) pure nothrow @safe @nogc 2390 { 2391 this.players = players; 2392 } 2393 2394 mixin Make; 2395 2396 override string toString() 2397 { 2398 return "PlayerListItem.AddPlayer(players: " ~ std.conv.to!string(this.players) ~ ")"; 2399 } 2400 2401 } 2402 2403 class UpdateGamemode : Java210Packet 2404 { 2405 2406 enum typeof(action) ACTION = 1; 2407 2408 enum string[] __fields = ["players"]; 2409 2410 soupply.java210.types.ListUpdateGamemode[] players; 2411 2412 this() pure nothrow @safe @nogc {} 2413 2414 this(soupply.java210.types.ListUpdateGamemode[] players) pure nothrow @safe @nogc 2415 { 2416 this.players = players; 2417 } 2418 2419 mixin Make; 2420 2421 override string toString() 2422 { 2423 return "PlayerListItem.UpdateGamemode(players: " ~ std.conv.to!string(this.players) ~ ")"; 2424 } 2425 2426 } 2427 2428 class UpdateLatency : Java210Packet 2429 { 2430 2431 enum typeof(action) ACTION = 2; 2432 2433 enum string[] __fields = ["players"]; 2434 2435 soupply.java210.types.ListUpdateLatency[] players; 2436 2437 this() pure nothrow @safe @nogc {} 2438 2439 this(soupply.java210.types.ListUpdateLatency[] players) pure nothrow @safe @nogc 2440 { 2441 this.players = players; 2442 } 2443 2444 mixin Make; 2445 2446 override string toString() 2447 { 2448 return "PlayerListItem.UpdateLatency(players: " ~ std.conv.to!string(this.players) ~ ")"; 2449 } 2450 2451 } 2452 2453 class UpdateDisplayName : Java210Packet 2454 { 2455 2456 enum typeof(action) ACTION = 3; 2457 2458 enum string[] __fields = ["players"]; 2459 2460 soupply.java210.types.ListUpdateDisplayName[] players; 2461 2462 this() pure nothrow @safe @nogc {} 2463 2464 this(soupply.java210.types.ListUpdateDisplayName[] players) pure nothrow @safe @nogc 2465 { 2466 this.players = players; 2467 } 2468 2469 mixin Make; 2470 2471 override string toString() 2472 { 2473 return "PlayerListItem.UpdateDisplayName(players: " ~ std.conv.to!string(this.players) ~ ")"; 2474 } 2475 2476 } 2477 2478 class RemovePlayer : Java210Packet 2479 { 2480 2481 enum typeof(action) ACTION = 4; 2482 2483 enum string[] __fields = ["players"]; 2484 2485 UUID[] players; 2486 2487 this() pure nothrow @safe @nogc {} 2488 2489 this(UUID[] players) pure nothrow @safe @nogc 2490 { 2491 this.players = players; 2492 } 2493 2494 mixin Make; 2495 2496 override string toString() 2497 { 2498 return "PlayerListItem.RemovePlayer(players: " ~ std.conv.to!string(this.players) ~ ")"; 2499 } 2500 2501 } 2502 2503 } 2504 2505 class PlayerPositionAndLook : Java210Packet 2506 { 2507 2508 enum uint ID = 46; 2509 2510 enum bool CLIENTBOUND = true; 2511 enum bool SERVERBOUND = false; 2512 2513 // flags 2514 enum ubyte X = 1; 2515 enum ubyte Y = 2; 2516 enum ubyte Z = 4; 2517 enum ubyte Y_ROTATION = 8; 2518 enum ubyte X_ROTATION = 16; 2519 2520 enum string[] __fields = ["position", "yaw", "pitch", "flags", "teleportId"]; 2521 2522 Vector!(double, "xyz") position; 2523 float yaw; 2524 float pitch; 2525 ubyte flags; 2526 @Var uint teleportId; 2527 2528 this() pure nothrow @safe @nogc {} 2529 2530 this(Vector!(double, "xyz") position, float yaw=float.init, float pitch=float.init, ubyte flags=ubyte.init, uint teleportId=uint.init) pure nothrow @safe @nogc 2531 { 2532 this.position = position; 2533 this.yaw = yaw; 2534 this.pitch = pitch; 2535 this.flags = flags; 2536 this.teleportId = teleportId; 2537 } 2538 2539 mixin Make; 2540 2541 public static typeof(this) fromBuffer(ubyte[] buffer) 2542 { 2543 PlayerPositionAndLook ret = new PlayerPositionAndLook(); 2544 ret.decode(buffer); 2545 return ret; 2546 } 2547 2548 override string toString() 2549 { 2550 return "PlayerPositionAndLook(position: " ~ std.conv.to!string(this.position) ~ ", yaw: " ~ std.conv.to!string(this.yaw) ~ ", pitch: " ~ std.conv.to!string(this.pitch) ~ ", flags: " ~ std.conv.to!string(this.flags) ~ ", teleportId: " ~ std.conv.to!string(this.teleportId) ~ ")"; 2551 } 2552 2553 } 2554 2555 class UseBed : Java210Packet 2556 { 2557 2558 enum uint ID = 47; 2559 2560 enum bool CLIENTBOUND = true; 2561 enum bool SERVERBOUND = false; 2562 2563 enum string[] __fields = ["entityId", "position"]; 2564 2565 @Var uint entityId; 2566 ulong position; 2567 2568 this() pure nothrow @safe @nogc {} 2569 2570 this(uint entityId, ulong position=ulong.init) pure nothrow @safe @nogc 2571 { 2572 this.entityId = entityId; 2573 this.position = position; 2574 } 2575 2576 mixin Make; 2577 2578 public static typeof(this) fromBuffer(ubyte[] buffer) 2579 { 2580 UseBed ret = new UseBed(); 2581 ret.decode(buffer); 2582 return ret; 2583 } 2584 2585 override string toString() 2586 { 2587 return "UseBed(entityId: " ~ std.conv.to!string(this.entityId) ~ ", position: " ~ std.conv.to!string(this.position) ~ ")"; 2588 } 2589 2590 } 2591 2592 class DestroyEntities : Java210Packet 2593 { 2594 2595 enum uint ID = 48; 2596 2597 enum bool CLIENTBOUND = true; 2598 enum bool SERVERBOUND = false; 2599 2600 enum string[] __fields = ["entityIds"]; 2601 2602 @Var uint[] entityIds; 2603 2604 this() pure nothrow @safe @nogc {} 2605 2606 this(uint[] entityIds) pure nothrow @safe @nogc 2607 { 2608 this.entityIds = entityIds; 2609 } 2610 2611 mixin Make; 2612 2613 public static typeof(this) fromBuffer(ubyte[] buffer) 2614 { 2615 DestroyEntities ret = new DestroyEntities(); 2616 ret.decode(buffer); 2617 return ret; 2618 } 2619 2620 override string toString() 2621 { 2622 return "DestroyEntities(entityIds: " ~ std.conv.to!string(this.entityIds) ~ ")"; 2623 } 2624 2625 } 2626 2627 class RemoveEntityEffect : Java210Packet 2628 { 2629 2630 enum uint ID = 49; 2631 2632 enum bool CLIENTBOUND = true; 2633 enum bool SERVERBOUND = false; 2634 2635 enum string[] __fields = ["entityId", "effectId"]; 2636 2637 @Var uint entityId; 2638 ubyte effectId; 2639 2640 this() pure nothrow @safe @nogc {} 2641 2642 this(uint entityId, ubyte effectId=ubyte.init) pure nothrow @safe @nogc 2643 { 2644 this.entityId = entityId; 2645 this.effectId = effectId; 2646 } 2647 2648 mixin Make; 2649 2650 public static typeof(this) fromBuffer(ubyte[] buffer) 2651 { 2652 RemoveEntityEffect ret = new RemoveEntityEffect(); 2653 ret.decode(buffer); 2654 return ret; 2655 } 2656 2657 override string toString() 2658 { 2659 return "RemoveEntityEffect(entityId: " ~ std.conv.to!string(this.entityId) ~ ", effectId: " ~ std.conv.to!string(this.effectId) ~ ")"; 2660 } 2661 2662 } 2663 2664 class ResourcePackSend : Java210Packet 2665 { 2666 2667 enum uint ID = 50; 2668 2669 enum bool CLIENTBOUND = true; 2670 enum bool SERVERBOUND = false; 2671 2672 enum string[] __fields = ["url", "hash"]; 2673 2674 string url; 2675 string hash; 2676 2677 this() pure nothrow @safe @nogc {} 2678 2679 this(string url, string hash=string.init) pure nothrow @safe @nogc 2680 { 2681 this.url = url; 2682 this.hash = hash; 2683 } 2684 2685 mixin Make; 2686 2687 public static typeof(this) fromBuffer(ubyte[] buffer) 2688 { 2689 ResourcePackSend ret = new ResourcePackSend(); 2690 ret.decode(buffer); 2691 return ret; 2692 } 2693 2694 override string toString() 2695 { 2696 return "ResourcePackSend(url: " ~ std.conv.to!string(this.url) ~ ", hash: " ~ std.conv.to!string(this.hash) ~ ")"; 2697 } 2698 2699 } 2700 2701 class Respawn : Java210Packet 2702 { 2703 2704 enum uint ID = 51; 2705 2706 enum bool CLIENTBOUND = true; 2707 enum bool SERVERBOUND = false; 2708 2709 // dimension 2710 enum int NETHER = -1; 2711 enum int OVERWORLD = 0; 2712 enum int END = 1; 2713 2714 // difficulty 2715 enum ubyte PEACEFUL = 0; 2716 enum ubyte EASY = 1; 2717 enum ubyte NORMAL = 2; 2718 enum ubyte HARD = 3; 2719 2720 // gamemode 2721 enum ubyte SURVIVAL = 0; 2722 enum ubyte CREATIVE = 1; 2723 enum ubyte ADVENTURE = 2; 2724 enum ubyte SPECTATOR = 3; 2725 2726 // level type 2727 enum string INFINITY = "default"; 2728 enum string FLAT = "flat"; 2729 enum string AMPLIFIED = "amplified"; 2730 enum string LARGE_BIOMES = "largeBiomes"; 2731 2732 enum string[] __fields = ["dimension", "difficulty", "gamemode", "levelType"]; 2733 2734 int dimension; 2735 ubyte difficulty; 2736 ubyte gamemode; 2737 string levelType; 2738 2739 this() pure nothrow @safe @nogc {} 2740 2741 this(int dimension, ubyte difficulty=ubyte.init, ubyte gamemode=ubyte.init, string levelType=string.init) pure nothrow @safe @nogc 2742 { 2743 this.dimension = dimension; 2744 this.difficulty = difficulty; 2745 this.gamemode = gamemode; 2746 this.levelType = levelType; 2747 } 2748 2749 mixin Make; 2750 2751 public static typeof(this) fromBuffer(ubyte[] buffer) 2752 { 2753 Respawn ret = new Respawn(); 2754 ret.decode(buffer); 2755 return ret; 2756 } 2757 2758 override string toString() 2759 { 2760 return "Respawn(dimension: " ~ std.conv.to!string(this.dimension) ~ ", difficulty: " ~ std.conv.to!string(this.difficulty) ~ ", gamemode: " ~ std.conv.to!string(this.gamemode) ~ ", levelType: " ~ std.conv.to!string(this.levelType) ~ ")"; 2761 } 2762 2763 } 2764 2765 class EntityHeadLook : Java210Packet 2766 { 2767 2768 enum uint ID = 52; 2769 2770 enum bool CLIENTBOUND = true; 2771 enum bool SERVERBOUND = false; 2772 2773 enum string[] __fields = ["entityId", "headYaw"]; 2774 2775 @Var uint entityId; 2776 ubyte headYaw; 2777 2778 this() pure nothrow @safe @nogc {} 2779 2780 this(uint entityId, ubyte headYaw=ubyte.init) pure nothrow @safe @nogc 2781 { 2782 this.entityId = entityId; 2783 this.headYaw = headYaw; 2784 } 2785 2786 mixin Make; 2787 2788 public static typeof(this) fromBuffer(ubyte[] buffer) 2789 { 2790 EntityHeadLook ret = new EntityHeadLook(); 2791 ret.decode(buffer); 2792 return ret; 2793 } 2794 2795 override string toString() 2796 { 2797 return "EntityHeadLook(entityId: " ~ std.conv.to!string(this.entityId) ~ ", headYaw: " ~ std.conv.to!string(this.headYaw) ~ ")"; 2798 } 2799 2800 } 2801 2802 class WorldBorder : Java210Packet 2803 { 2804 2805 enum uint ID = 53; 2806 2807 enum bool CLIENTBOUND = true; 2808 enum bool SERVERBOUND = false; 2809 2810 enum string[] __fields = ["action"]; 2811 2812 @Var uint action; 2813 2814 this() pure nothrow @safe @nogc {} 2815 2816 this(uint action) pure nothrow @safe @nogc 2817 { 2818 this.action = action; 2819 } 2820 2821 mixin Make; 2822 2823 public static typeof(this) fromBuffer(ubyte[] buffer) 2824 { 2825 WorldBorder ret = new WorldBorder(); 2826 ret.decode(buffer); 2827 return ret; 2828 } 2829 2830 override string toString() 2831 { 2832 return "WorldBorder(action: " ~ std.conv.to!string(this.action) ~ ")"; 2833 } 2834 2835 enum string variantField = "action"; 2836 2837 alias Variants = TypeTuple!(SetSize, LerpSize, SetCenter, Initialize, SetWarningTime, SetWarningBlocks); 2838 2839 class SetSize : Java210Packet 2840 { 2841 2842 enum typeof(action) ACTION = 0; 2843 2844 enum string[] __fields = ["diameter"]; 2845 2846 double diameter; 2847 2848 this() pure nothrow @safe @nogc {} 2849 2850 this(double diameter) pure nothrow @safe @nogc 2851 { 2852 this.diameter = diameter; 2853 } 2854 2855 mixin Make; 2856 2857 override string toString() 2858 { 2859 return "WorldBorder.SetSize(diameter: " ~ std.conv.to!string(this.diameter) ~ ")"; 2860 } 2861 2862 } 2863 2864 class LerpSize : Java210Packet 2865 { 2866 2867 enum typeof(action) ACTION = 1; 2868 2869 enum string[] __fields = ["oldDiameter", "newDiameter", "speed"]; 2870 2871 double oldDiameter; 2872 double newDiameter; 2873 @Var ulong speed; 2874 2875 this() pure nothrow @safe @nogc {} 2876 2877 this(double oldDiameter, double newDiameter=double.init, ulong speed=ulong.init) pure nothrow @safe @nogc 2878 { 2879 this.oldDiameter = oldDiameter; 2880 this.newDiameter = newDiameter; 2881 this.speed = speed; 2882 } 2883 2884 mixin Make; 2885 2886 override string toString() 2887 { 2888 return "WorldBorder.LerpSize(oldDiameter: " ~ std.conv.to!string(this.oldDiameter) ~ ", newDiameter: " ~ std.conv.to!string(this.newDiameter) ~ ", speed: " ~ std.conv.to!string(this.speed) ~ ")"; 2889 } 2890 2891 } 2892 2893 class SetCenter : Java210Packet 2894 { 2895 2896 enum typeof(action) ACTION = 2; 2897 2898 enum string[] __fields = ["center"]; 2899 2900 Vector!(double, "xyz") center; 2901 2902 this() pure nothrow @safe @nogc {} 2903 2904 this(Vector!(double, "xyz") center) pure nothrow @safe @nogc 2905 { 2906 this.center = center; 2907 } 2908 2909 mixin Make; 2910 2911 override string toString() 2912 { 2913 return "WorldBorder.SetCenter(center: " ~ std.conv.to!string(this.center) ~ ")"; 2914 } 2915 2916 } 2917 2918 class Initialize : Java210Packet 2919 { 2920 2921 enum typeof(action) ACTION = 3; 2922 2923 enum string[] __fields = ["center", "oldDiameter", "newDiameter", "speed", "portalTeleportBoundary", "warningTime", "warningBlocks"]; 2924 2925 Vector!(double, "xyz") center; 2926 double oldDiameter; 2927 double newDiameter; 2928 @Var ulong speed; 2929 @Var uint portalTeleportBoundary; 2930 @Var uint warningTime; 2931 @Var uint warningBlocks; 2932 2933 this() pure nothrow @safe @nogc {} 2934 2935 this(Vector!(double, "xyz") center, double oldDiameter=double.init, double newDiameter=double.init, ulong speed=ulong.init, uint portalTeleportBoundary=uint.init, uint warningTime=uint.init, uint warningBlocks=uint.init) pure nothrow @safe @nogc 2936 { 2937 this.center = center; 2938 this.oldDiameter = oldDiameter; 2939 this.newDiameter = newDiameter; 2940 this.speed = speed; 2941 this.portalTeleportBoundary = portalTeleportBoundary; 2942 this.warningTime = warningTime; 2943 this.warningBlocks = warningBlocks; 2944 } 2945 2946 mixin Make; 2947 2948 override string toString() 2949 { 2950 return "WorldBorder.Initialize(center: " ~ std.conv.to!string(this.center) ~ ", oldDiameter: " ~ std.conv.to!string(this.oldDiameter) ~ ", newDiameter: " ~ std.conv.to!string(this.newDiameter) ~ ", speed: " ~ std.conv.to!string(this.speed) ~ ", portalTeleportBoundary: " ~ std.conv.to!string(this.portalTeleportBoundary) ~ ", warningTime: " ~ std.conv.to!string(this.warningTime) ~ ", warningBlocks: " ~ std.conv.to!string(this.warningBlocks) ~ ")"; 2951 } 2952 2953 } 2954 2955 class SetWarningTime : Java210Packet 2956 { 2957 2958 enum typeof(action) ACTION = 4; 2959 2960 enum string[] __fields = ["warningTime"]; 2961 2962 @Var uint warningTime; 2963 2964 this() pure nothrow @safe @nogc {} 2965 2966 this(uint warningTime) pure nothrow @safe @nogc 2967 { 2968 this.warningTime = warningTime; 2969 } 2970 2971 mixin Make; 2972 2973 override string toString() 2974 { 2975 return "WorldBorder.SetWarningTime(warningTime: " ~ std.conv.to!string(this.warningTime) ~ ")"; 2976 } 2977 2978 } 2979 2980 class SetWarningBlocks : Java210Packet 2981 { 2982 2983 enum typeof(action) ACTION = 5; 2984 2985 enum string[] __fields = ["warningBlocks"]; 2986 2987 @Var uint warningBlocks; 2988 2989 this() pure nothrow @safe @nogc {} 2990 2991 this(uint warningBlocks) pure nothrow @safe @nogc 2992 { 2993 this.warningBlocks = warningBlocks; 2994 } 2995 2996 mixin Make; 2997 2998 override string toString() 2999 { 3000 return "WorldBorder.SetWarningBlocks(warningBlocks: " ~ std.conv.to!string(this.warningBlocks) ~ ")"; 3001 } 3002 3003 } 3004 3005 } 3006 3007 class Camera : Java210Packet 3008 { 3009 3010 enum uint ID = 54; 3011 3012 enum bool CLIENTBOUND = true; 3013 enum bool SERVERBOUND = false; 3014 3015 enum string[] __fields = ["entityId"]; 3016 3017 @Var uint entityId; 3018 3019 this() pure nothrow @safe @nogc {} 3020 3021 this(uint entityId) pure nothrow @safe @nogc 3022 { 3023 this.entityId = entityId; 3024 } 3025 3026 mixin Make; 3027 3028 public static typeof(this) fromBuffer(ubyte[] buffer) 3029 { 3030 Camera ret = new Camera(); 3031 ret.decode(buffer); 3032 return ret; 3033 } 3034 3035 override string toString() 3036 { 3037 return "Camera(entityId: " ~ std.conv.to!string(this.entityId) ~ ")"; 3038 } 3039 3040 } 3041 3042 class HeldItemChange : Java210Packet 3043 { 3044 3045 enum uint ID = 55; 3046 3047 enum bool CLIENTBOUND = true; 3048 enum bool SERVERBOUND = false; 3049 3050 enum string[] __fields = ["slot"]; 3051 3052 ubyte slot; 3053 3054 this() pure nothrow @safe @nogc {} 3055 3056 this(ubyte slot) pure nothrow @safe @nogc 3057 { 3058 this.slot = slot; 3059 } 3060 3061 mixin Make; 3062 3063 public static typeof(this) fromBuffer(ubyte[] buffer) 3064 { 3065 HeldItemChange ret = new HeldItemChange(); 3066 ret.decode(buffer); 3067 return ret; 3068 } 3069 3070 override string toString() 3071 { 3072 return "HeldItemChange(slot: " ~ std.conv.to!string(this.slot) ~ ")"; 3073 } 3074 3075 } 3076 3077 class DisplayScoreboard : Java210Packet 3078 { 3079 3080 enum uint ID = 56; 3081 3082 enum bool CLIENTBOUND = true; 3083 enum bool SERVERBOUND = false; 3084 3085 // position 3086 enum ubyte LIST = 0; 3087 enum ubyte SIDEBAR = 1; 3088 enum ubyte BELOW_NAME = 2; 3089 3090 enum string[] __fields = ["position", "scoreName"]; 3091 3092 ubyte position; 3093 string scoreName; 3094 3095 this() pure nothrow @safe @nogc {} 3096 3097 this(ubyte position, string scoreName=string.init) pure nothrow @safe @nogc 3098 { 3099 this.position = position; 3100 this.scoreName = scoreName; 3101 } 3102 3103 mixin Make; 3104 3105 public static typeof(this) fromBuffer(ubyte[] buffer) 3106 { 3107 DisplayScoreboard ret = new DisplayScoreboard(); 3108 ret.decode(buffer); 3109 return ret; 3110 } 3111 3112 override string toString() 3113 { 3114 return "DisplayScoreboard(position: " ~ std.conv.to!string(this.position) ~ ", scoreName: " ~ std.conv.to!string(this.scoreName) ~ ")"; 3115 } 3116 3117 } 3118 3119 class EntityMetadata : Java210Packet 3120 { 3121 3122 enum uint ID = 57; 3123 3124 enum bool CLIENTBOUND = true; 3125 enum bool SERVERBOUND = false; 3126 3127 enum string[] __fields = ["entityId", "metadata"]; 3128 3129 @Var uint entityId; 3130 Metadata metadata; 3131 3132 this() pure nothrow @safe @nogc {} 3133 3134 this(uint entityId, Metadata metadata=Metadata.init) pure nothrow @safe @nogc 3135 { 3136 this.entityId = entityId; 3137 this.metadata = metadata; 3138 } 3139 3140 mixin Make; 3141 3142 public static typeof(this) fromBuffer(ubyte[] buffer) 3143 { 3144 EntityMetadata ret = new EntityMetadata(); 3145 ret.decode(buffer); 3146 return ret; 3147 } 3148 3149 override string toString() 3150 { 3151 return "EntityMetadata(entityId: " ~ std.conv.to!string(this.entityId) ~ ", metadata: " ~ std.conv.to!string(this.metadata) ~ ")"; 3152 } 3153 3154 } 3155 3156 class AttachEntity : Java210Packet 3157 { 3158 3159 enum uint ID = 58; 3160 3161 enum bool CLIENTBOUND = true; 3162 enum bool SERVERBOUND = false; 3163 3164 enum string[] __fields = ["target", "holder"]; 3165 3166 uint target; 3167 uint holder; 3168 3169 this() pure nothrow @safe @nogc {} 3170 3171 this(uint target, uint holder=uint.init) pure nothrow @safe @nogc 3172 { 3173 this.target = target; 3174 this.holder = holder; 3175 } 3176 3177 mixin Make; 3178 3179 public static typeof(this) fromBuffer(ubyte[] buffer) 3180 { 3181 AttachEntity ret = new AttachEntity(); 3182 ret.decode(buffer); 3183 return ret; 3184 } 3185 3186 override string toString() 3187 { 3188 return "AttachEntity(target: " ~ std.conv.to!string(this.target) ~ ", holder: " ~ std.conv.to!string(this.holder) ~ ")"; 3189 } 3190 3191 } 3192 3193 class EntityVelocity : Java210Packet 3194 { 3195 3196 enum uint ID = 59; 3197 3198 enum bool CLIENTBOUND = true; 3199 enum bool SERVERBOUND = false; 3200 3201 enum string[] __fields = ["entityId", "velocity"]; 3202 3203 @Var uint entityId; 3204 Vector!(short, "xyz") velocity; 3205 3206 this() pure nothrow @safe @nogc {} 3207 3208 this(uint entityId, Vector!(short, "xyz") velocity=Vector!(short, "xyz").init) pure nothrow @safe @nogc 3209 { 3210 this.entityId = entityId; 3211 this.velocity = velocity; 3212 } 3213 3214 mixin Make; 3215 3216 public static typeof(this) fromBuffer(ubyte[] buffer) 3217 { 3218 EntityVelocity ret = new EntityVelocity(); 3219 ret.decode(buffer); 3220 return ret; 3221 } 3222 3223 override string toString() 3224 { 3225 return "EntityVelocity(entityId: " ~ std.conv.to!string(this.entityId) ~ ", velocity: " ~ std.conv.to!string(this.velocity) ~ ")"; 3226 } 3227 3228 } 3229 3230 class EntityEquipment : Java210Packet 3231 { 3232 3233 enum uint ID = 60; 3234 3235 enum bool CLIENTBOUND = true; 3236 enum bool SERVERBOUND = false; 3237 3238 enum string[] __fields = ["entityId", "slot", "item"]; 3239 3240 @Var uint entityId; 3241 @Var uint slot; 3242 soupply.java210.types.Slot item; 3243 3244 this() pure nothrow @safe @nogc {} 3245 3246 this(uint entityId, uint slot=uint.init, soupply.java210.types.Slot item=soupply.java210.types.Slot.init) pure nothrow @safe @nogc 3247 { 3248 this.entityId = entityId; 3249 this.slot = slot; 3250 this.item = item; 3251 } 3252 3253 mixin Make; 3254 3255 public static typeof(this) fromBuffer(ubyte[] buffer) 3256 { 3257 EntityEquipment ret = new EntityEquipment(); 3258 ret.decode(buffer); 3259 return ret; 3260 } 3261 3262 override string toString() 3263 { 3264 return "EntityEquipment(entityId: " ~ std.conv.to!string(this.entityId) ~ ", slot: " ~ std.conv.to!string(this.slot) ~ ", item: " ~ std.conv.to!string(this.item) ~ ")"; 3265 } 3266 3267 } 3268 3269 class SetExperience : Java210Packet 3270 { 3271 3272 enum uint ID = 61; 3273 3274 enum bool CLIENTBOUND = true; 3275 enum bool SERVERBOUND = false; 3276 3277 enum string[] __fields = ["experience", "level", "totalExperience"]; 3278 3279 float experience; 3280 @Var uint level; 3281 @Var uint totalExperience; 3282 3283 this() pure nothrow @safe @nogc {} 3284 3285 this(float experience, uint level=uint.init, uint totalExperience=uint.init) pure nothrow @safe @nogc 3286 { 3287 this.experience = experience; 3288 this.level = level; 3289 this.totalExperience = totalExperience; 3290 } 3291 3292 mixin Make; 3293 3294 public static typeof(this) fromBuffer(ubyte[] buffer) 3295 { 3296 SetExperience ret = new SetExperience(); 3297 ret.decode(buffer); 3298 return ret; 3299 } 3300 3301 override string toString() 3302 { 3303 return "SetExperience(experience: " ~ std.conv.to!string(this.experience) ~ ", level: " ~ std.conv.to!string(this.level) ~ ", totalExperience: " ~ std.conv.to!string(this.totalExperience) ~ ")"; 3304 } 3305 3306 } 3307 3308 class UpdateHealth : Java210Packet 3309 { 3310 3311 enum uint ID = 62; 3312 3313 enum bool CLIENTBOUND = true; 3314 enum bool SERVERBOUND = false; 3315 3316 enum string[] __fields = ["health", "hunger", "saturation"]; 3317 3318 float health; 3319 @Var uint hunger; 3320 float saturation; 3321 3322 this() pure nothrow @safe @nogc {} 3323 3324 this(float health, uint hunger=uint.init, float saturation=float.init) pure nothrow @safe @nogc 3325 { 3326 this.health = health; 3327 this.hunger = hunger; 3328 this.saturation = saturation; 3329 } 3330 3331 mixin Make; 3332 3333 public static typeof(this) fromBuffer(ubyte[] buffer) 3334 { 3335 UpdateHealth ret = new UpdateHealth(); 3336 ret.decode(buffer); 3337 return ret; 3338 } 3339 3340 override string toString() 3341 { 3342 return "UpdateHealth(health: " ~ std.conv.to!string(this.health) ~ ", hunger: " ~ std.conv.to!string(this.hunger) ~ ", saturation: " ~ std.conv.to!string(this.saturation) ~ ")"; 3343 } 3344 3345 } 3346 3347 class ScoreboardObjective : Java210Packet 3348 { 3349 3350 enum uint ID = 63; 3351 3352 enum bool CLIENTBOUND = true; 3353 enum bool SERVERBOUND = false; 3354 3355 // mode 3356 enum ubyte CREATE = 0; 3357 enum ubyte REMOVE = 1; 3358 enum ubyte UPDATE = 2; 3359 3360 // type 3361 enum string NUMERIC = "integer"; 3362 enum string GRAPHIC = "hearts"; 3363 3364 enum string[] __fields = ["name", "mode", "value", "type"]; 3365 3366 string name; 3367 ubyte mode; 3368 @Condition("mode!=1") string value; 3369 @Condition("mode!=1") string type; 3370 3371 this() pure nothrow @safe @nogc {} 3372 3373 this(string name, ubyte mode=ubyte.init, string value=string.init, string type=string.init) pure nothrow @safe @nogc 3374 { 3375 this.name = name; 3376 this.mode = mode; 3377 this.value = value; 3378 this.type = type; 3379 } 3380 3381 mixin Make; 3382 3383 public static typeof(this) fromBuffer(ubyte[] buffer) 3384 { 3385 ScoreboardObjective ret = new ScoreboardObjective(); 3386 ret.decode(buffer); 3387 return ret; 3388 } 3389 3390 override string toString() 3391 { 3392 return "ScoreboardObjective(name: " ~ std.conv.to!string(this.name) ~ ", mode: " ~ std.conv.to!string(this.mode) ~ ", value: " ~ std.conv.to!string(this.value) ~ ", type: " ~ std.conv.to!string(this.type) ~ ")"; 3393 } 3394 3395 } 3396 3397 class SetPassengers : Java210Packet 3398 { 3399 3400 enum uint ID = 64; 3401 3402 enum bool CLIENTBOUND = true; 3403 enum bool SERVERBOUND = false; 3404 3405 enum string[] __fields = ["entityId", "passengers"]; 3406 3407 @Var uint entityId; 3408 @Var uint[] passengers; 3409 3410 this() pure nothrow @safe @nogc {} 3411 3412 this(uint entityId, uint[] passengers=(uint[]).init) pure nothrow @safe @nogc 3413 { 3414 this.entityId = entityId; 3415 this.passengers = passengers; 3416 } 3417 3418 mixin Make; 3419 3420 public static typeof(this) fromBuffer(ubyte[] buffer) 3421 { 3422 SetPassengers ret = new SetPassengers(); 3423 ret.decode(buffer); 3424 return ret; 3425 } 3426 3427 override string toString() 3428 { 3429 return "SetPassengers(entityId: " ~ std.conv.to!string(this.entityId) ~ ", passengers: " ~ std.conv.to!string(this.passengers) ~ ")"; 3430 } 3431 3432 } 3433 3434 class Teams : Java210Packet 3435 { 3436 3437 enum uint ID = 65; 3438 3439 enum bool CLIENTBOUND = true; 3440 enum bool SERVERBOUND = false; 3441 3442 enum string[] __fields = ["name", "mode"]; 3443 3444 string name; 3445 ubyte mode; 3446 3447 this() pure nothrow @safe @nogc {} 3448 3449 this(string name, ubyte mode=ubyte.init) pure nothrow @safe @nogc 3450 { 3451 this.name = name; 3452 this.mode = mode; 3453 } 3454 3455 mixin Make; 3456 3457 public static typeof(this) fromBuffer(ubyte[] buffer) 3458 { 3459 Teams ret = new Teams(); 3460 ret.decode(buffer); 3461 return ret; 3462 } 3463 3464 override string toString() 3465 { 3466 return "Teams(name: " ~ std.conv.to!string(this.name) ~ ", mode: " ~ std.conv.to!string(this.mode) ~ ")"; 3467 } 3468 3469 enum string variantField = "mode"; 3470 3471 alias Variants = TypeTuple!(CreateTeam, RemoveTeam, UpdateTeamInfo, AddPlayers, RemovePlayers); 3472 3473 class CreateTeam : Java210Packet 3474 { 3475 3476 enum typeof(mode) MODE = 0; 3477 3478 // friendly flags 3479 enum ubyte FRIENDLY_FIRE = 1; 3480 enum ubyte SEE_TEAM_INVISIBLE_PLAYERS = 2; 3481 3482 // nametag visibility 3483 enum string ALWAYS_HIDE = "always"; 3484 enum string HIDE_OTHER_TEAMS = "hideOtherTeams"; 3485 enum string HIDE_OWN_TEAM = "hideOwnTeam"; 3486 enum string NEVER_HIDE = "never"; 3487 3488 // collision rule 3489 enum string ALWAYS_PUSH = "always"; 3490 enum string PUSH_OTHER_TEAMS = "pushOtherTeams"; 3491 enum string PUSH_OWN_TEAM = "pushOwnTeam"; 3492 enum string NEVER_PUSH = "never"; 3493 3494 enum string[] __fields = ["displayName", "prefix", "suffix", "friendlyFlags", "nametagVisibility", "collisionRule", "color", "players"]; 3495 3496 string displayName; 3497 string prefix; 3498 string suffix; 3499 ubyte friendlyFlags; 3500 string nametagVisibility; 3501 string collisionRule; 3502 ubyte color; 3503 string[] players; 3504 3505 this() pure nothrow @safe @nogc {} 3506 3507 this(string displayName, string prefix=string.init, string suffix=string.init, ubyte friendlyFlags=ubyte.init, string nametagVisibility=string.init, string collisionRule=string.init, ubyte color=ubyte.init, string[] players=(string[]).init) pure nothrow @safe @nogc 3508 { 3509 this.displayName = displayName; 3510 this.prefix = prefix; 3511 this.suffix = suffix; 3512 this.friendlyFlags = friendlyFlags; 3513 this.nametagVisibility = nametagVisibility; 3514 this.collisionRule = collisionRule; 3515 this.color = color; 3516 this.players = players; 3517 } 3518 3519 mixin Make; 3520 3521 override string toString() 3522 { 3523 return "Teams.CreateTeam(displayName: " ~ std.conv.to!string(this.displayName) ~ ", prefix: " ~ std.conv.to!string(this.prefix) ~ ", suffix: " ~ std.conv.to!string(this.suffix) ~ ", friendlyFlags: " ~ std.conv.to!string(this.friendlyFlags) ~ ", nametagVisibility: " ~ std.conv.to!string(this.nametagVisibility) ~ ", collisionRule: " ~ std.conv.to!string(this.collisionRule) ~ ", color: " ~ std.conv.to!string(this.color) ~ ", players: " ~ std.conv.to!string(this.players) ~ ")"; 3524 } 3525 3526 } 3527 3528 class RemoveTeam : Java210Packet 3529 { 3530 3531 enum typeof(mode) MODE = 1; 3532 3533 enum string[] __fields = []; 3534 3535 mixin Make; 3536 3537 override string toString() 3538 { 3539 return "Teams.RemoveTeam()"; 3540 } 3541 3542 } 3543 3544 class UpdateTeamInfo : Java210Packet 3545 { 3546 3547 enum typeof(mode) MODE = 2; 3548 3549 // friendly flags 3550 enum ubyte FRIENDLY_FIRE = 1; 3551 enum ubyte SEE_TEAM_INVISIBLE_PLAYERS = 2; 3552 3553 // nametag visibility 3554 enum string ALWAYS_HIDE = "always"; 3555 enum string HIDE_OTHER_TEAMS = "hideOtherTeams"; 3556 enum string HIDE_OWN_TEAM = "hideOwnTeam"; 3557 enum string NEVER_HIDE = "never"; 3558 3559 // collision rule 3560 enum string ALWAYS_PUSH = "always"; 3561 enum string PUSH_OTHER_TEAMS = "pushOtherTeams"; 3562 enum string PUSH_OWN_TEAM = "pushOwnTeam"; 3563 enum string NEVER_PUSH = "never"; 3564 3565 enum string[] __fields = ["displayName", "prefix", "suffix", "friendlyFlags", "nametagVisibility", "collisionRule", "color"]; 3566 3567 string displayName; 3568 string prefix; 3569 string suffix; 3570 ubyte friendlyFlags; 3571 string nametagVisibility; 3572 string collisionRule; 3573 ubyte color; 3574 3575 this() pure nothrow @safe @nogc {} 3576 3577 this(string displayName, string prefix=string.init, string suffix=string.init, ubyte friendlyFlags=ubyte.init, string nametagVisibility=string.init, string collisionRule=string.init, ubyte color=ubyte.init) pure nothrow @safe @nogc 3578 { 3579 this.displayName = displayName; 3580 this.prefix = prefix; 3581 this.suffix = suffix; 3582 this.friendlyFlags = friendlyFlags; 3583 this.nametagVisibility = nametagVisibility; 3584 this.collisionRule = collisionRule; 3585 this.color = color; 3586 } 3587 3588 mixin Make; 3589 3590 override string toString() 3591 { 3592 return "Teams.UpdateTeamInfo(displayName: " ~ std.conv.to!string(this.displayName) ~ ", prefix: " ~ std.conv.to!string(this.prefix) ~ ", suffix: " ~ std.conv.to!string(this.suffix) ~ ", friendlyFlags: " ~ std.conv.to!string(this.friendlyFlags) ~ ", nametagVisibility: " ~ std.conv.to!string(this.nametagVisibility) ~ ", collisionRule: " ~ std.conv.to!string(this.collisionRule) ~ ", color: " ~ std.conv.to!string(this.color) ~ ")"; 3593 } 3594 3595 } 3596 3597 class AddPlayers : Java210Packet 3598 { 3599 3600 enum typeof(mode) MODE = 3; 3601 3602 enum string[] __fields = ["players"]; 3603 3604 string[] players; 3605 3606 this() pure nothrow @safe @nogc {} 3607 3608 this(string[] players) pure nothrow @safe @nogc 3609 { 3610 this.players = players; 3611 } 3612 3613 mixin Make; 3614 3615 override string toString() 3616 { 3617 return "Teams.AddPlayers(players: " ~ std.conv.to!string(this.players) ~ ")"; 3618 } 3619 3620 } 3621 3622 class RemovePlayers : Java210Packet 3623 { 3624 3625 enum typeof(mode) MODE = 4; 3626 3627 enum string[] __fields = ["players"]; 3628 3629 string[] players; 3630 3631 this() pure nothrow @safe @nogc {} 3632 3633 this(string[] players) pure nothrow @safe @nogc 3634 { 3635 this.players = players; 3636 } 3637 3638 mixin Make; 3639 3640 override string toString() 3641 { 3642 return "Teams.RemovePlayers(players: " ~ std.conv.to!string(this.players) ~ ")"; 3643 } 3644 3645 } 3646 3647 } 3648 3649 class UpdateScore : Java210Packet 3650 { 3651 3652 enum uint ID = 66; 3653 3654 enum bool CLIENTBOUND = true; 3655 enum bool SERVERBOUND = false; 3656 3657 // action 3658 enum ubyte UPDATE = 0; 3659 enum ubyte REMOVE = 1; 3660 3661 enum string[] __fields = ["scoreName", "action", "objectiveName", "value"]; 3662 3663 string scoreName; 3664 ubyte action; 3665 string objectiveName; 3666 @Condition("action==0") @Var uint value; 3667 3668 this() pure nothrow @safe @nogc {} 3669 3670 this(string scoreName, ubyte action=ubyte.init, string objectiveName=string.init, uint value=uint.init) pure nothrow @safe @nogc 3671 { 3672 this.scoreName = scoreName; 3673 this.action = action; 3674 this.objectiveName = objectiveName; 3675 this.value = value; 3676 } 3677 3678 mixin Make; 3679 3680 public static typeof(this) fromBuffer(ubyte[] buffer) 3681 { 3682 UpdateScore ret = new UpdateScore(); 3683 ret.decode(buffer); 3684 return ret; 3685 } 3686 3687 override string toString() 3688 { 3689 return "UpdateScore(scoreName: " ~ std.conv.to!string(this.scoreName) ~ ", action: " ~ std.conv.to!string(this.action) ~ ", objectiveName: " ~ std.conv.to!string(this.objectiveName) ~ ", value: " ~ std.conv.to!string(this.value) ~ ")"; 3690 } 3691 3692 } 3693 3694 class SpawnPosition : Java210Packet 3695 { 3696 3697 enum uint ID = 67; 3698 3699 enum bool CLIENTBOUND = true; 3700 enum bool SERVERBOUND = false; 3701 3702 enum string[] __fields = ["position"]; 3703 3704 ulong position; 3705 3706 this() pure nothrow @safe @nogc {} 3707 3708 this(ulong position) pure nothrow @safe @nogc 3709 { 3710 this.position = position; 3711 } 3712 3713 mixin Make; 3714 3715 public static typeof(this) fromBuffer(ubyte[] buffer) 3716 { 3717 SpawnPosition ret = new SpawnPosition(); 3718 ret.decode(buffer); 3719 return ret; 3720 } 3721 3722 override string toString() 3723 { 3724 return "SpawnPosition(position: " ~ std.conv.to!string(this.position) ~ ")"; 3725 } 3726 3727 } 3728 3729 class TimeUpdate : Java210Packet 3730 { 3731 3732 enum uint ID = 68; 3733 3734 enum bool CLIENTBOUND = true; 3735 enum bool SERVERBOUND = false; 3736 3737 enum string[] __fields = ["worldAge", "time"]; 3738 3739 ulong worldAge; 3740 long time; 3741 3742 this() pure nothrow @safe @nogc {} 3743 3744 this(ulong worldAge, long time=long.init) pure nothrow @safe @nogc 3745 { 3746 this.worldAge = worldAge; 3747 this.time = time; 3748 } 3749 3750 mixin Make; 3751 3752 public static typeof(this) fromBuffer(ubyte[] buffer) 3753 { 3754 TimeUpdate ret = new TimeUpdate(); 3755 ret.decode(buffer); 3756 return ret; 3757 } 3758 3759 override string toString() 3760 { 3761 return "TimeUpdate(worldAge: " ~ std.conv.to!string(this.worldAge) ~ ", time: " ~ std.conv.to!string(this.time) ~ ")"; 3762 } 3763 3764 } 3765 3766 class Title : Java210Packet 3767 { 3768 3769 enum uint ID = 69; 3770 3771 enum bool CLIENTBOUND = true; 3772 enum bool SERVERBOUND = false; 3773 3774 enum string[] __fields = ["action"]; 3775 3776 @Var uint action; 3777 3778 this() pure nothrow @safe @nogc {} 3779 3780 this(uint action) pure nothrow @safe @nogc 3781 { 3782 this.action = action; 3783 } 3784 3785 mixin Make; 3786 3787 public static typeof(this) fromBuffer(ubyte[] buffer) 3788 { 3789 Title ret = new Title(); 3790 ret.decode(buffer); 3791 return ret; 3792 } 3793 3794 override string toString() 3795 { 3796 return "Title(action: " ~ std.conv.to!string(this.action) ~ ")"; 3797 } 3798 3799 enum string variantField = "action"; 3800 3801 alias Variants = TypeTuple!(SetTitle, SetSubtitle, SetTimings, Hide, Reset); 3802 3803 class SetTitle : Java210Packet 3804 { 3805 3806 enum typeof(action) ACTION = 0; 3807 3808 enum string[] __fields = ["text"]; 3809 3810 string text; 3811 3812 this() pure nothrow @safe @nogc {} 3813 3814 this(string text) pure nothrow @safe @nogc 3815 { 3816 this.text = text; 3817 } 3818 3819 mixin Make; 3820 3821 override string toString() 3822 { 3823 return "Title.SetTitle(text: " ~ std.conv.to!string(this.text) ~ ")"; 3824 } 3825 3826 } 3827 3828 class SetSubtitle : Java210Packet 3829 { 3830 3831 enum typeof(action) ACTION = 1; 3832 3833 enum string[] __fields = ["text"]; 3834 3835 string text; 3836 3837 this() pure nothrow @safe @nogc {} 3838 3839 this(string text) pure nothrow @safe @nogc 3840 { 3841 this.text = text; 3842 } 3843 3844 mixin Make; 3845 3846 override string toString() 3847 { 3848 return "Title.SetSubtitle(text: " ~ std.conv.to!string(this.text) ~ ")"; 3849 } 3850 3851 } 3852 3853 class SetTimings : Java210Packet 3854 { 3855 3856 enum typeof(action) ACTION = 2; 3857 3858 enum string[] __fields = ["fadeIn", "stay", "fadeOut"]; 3859 3860 uint fadeIn; 3861 uint stay; 3862 uint fadeOut; 3863 3864 this() pure nothrow @safe @nogc {} 3865 3866 this(uint fadeIn, uint stay=uint.init, uint fadeOut=uint.init) pure nothrow @safe @nogc 3867 { 3868 this.fadeIn = fadeIn; 3869 this.stay = stay; 3870 this.fadeOut = fadeOut; 3871 } 3872 3873 mixin Make; 3874 3875 override string toString() 3876 { 3877 return "Title.SetTimings(fadeIn: " ~ std.conv.to!string(this.fadeIn) ~ ", stay: " ~ std.conv.to!string(this.stay) ~ ", fadeOut: " ~ std.conv.to!string(this.fadeOut) ~ ")"; 3878 } 3879 3880 } 3881 3882 class Hide : Java210Packet 3883 { 3884 3885 enum typeof(action) ACTION = 3; 3886 3887 enum string[] __fields = []; 3888 3889 mixin Make; 3890 3891 override string toString() 3892 { 3893 return "Title.Hide()"; 3894 } 3895 3896 } 3897 3898 class Reset : Java210Packet 3899 { 3900 3901 enum typeof(action) ACTION = 4; 3902 3903 enum string[] __fields = []; 3904 3905 mixin Make; 3906 3907 override string toString() 3908 { 3909 return "Title.Reset()"; 3910 } 3911 3912 } 3913 3914 } 3915 3916 class SoundEffect : Java210Packet 3917 { 3918 3919 enum uint ID = 70; 3920 3921 enum bool CLIENTBOUND = true; 3922 enum bool SERVERBOUND = false; 3923 3924 enum string[] __fields = ["soundId", "category", "position", "volume", "pitch"]; 3925 3926 @Var uint soundId; 3927 @Var uint category; 3928 Vector!(int, "xyz") position; 3929 float volume; 3930 float pitch; 3931 3932 this() pure nothrow @safe @nogc {} 3933 3934 this(uint soundId, uint category=uint.init, Vector!(int, "xyz") position=Vector!(int, "xyz").init, float volume=float.init, float pitch=float.init) pure nothrow @safe @nogc 3935 { 3936 this.soundId = soundId; 3937 this.category = category; 3938 this.position = position; 3939 this.volume = volume; 3940 this.pitch = pitch; 3941 } 3942 3943 mixin Make; 3944 3945 public static typeof(this) fromBuffer(ubyte[] buffer) 3946 { 3947 SoundEffect ret = new SoundEffect(); 3948 ret.decode(buffer); 3949 return ret; 3950 } 3951 3952 override string toString() 3953 { 3954 return "SoundEffect(soundId: " ~ std.conv.to!string(this.soundId) ~ ", category: " ~ std.conv.to!string(this.category) ~ ", position: " ~ std.conv.to!string(this.position) ~ ", volume: " ~ std.conv.to!string(this.volume) ~ ", pitch: " ~ std.conv.to!string(this.pitch) ~ ")"; 3955 } 3956 3957 } 3958 3959 class PlayerListHeaderAndFooter : Java210Packet 3960 { 3961 3962 enum uint ID = 71; 3963 3964 enum bool CLIENTBOUND = true; 3965 enum bool SERVERBOUND = false; 3966 3967 enum string[] __fields = ["header", "footer"]; 3968 3969 string header; 3970 string footer; 3971 3972 this() pure nothrow @safe @nogc {} 3973 3974 this(string header, string footer=string.init) pure nothrow @safe @nogc 3975 { 3976 this.header = header; 3977 this.footer = footer; 3978 } 3979 3980 mixin Make; 3981 3982 public static typeof(this) fromBuffer(ubyte[] buffer) 3983 { 3984 PlayerListHeaderAndFooter ret = new PlayerListHeaderAndFooter(); 3985 ret.decode(buffer); 3986 return ret; 3987 } 3988 3989 override string toString() 3990 { 3991 return "PlayerListHeaderAndFooter(header: " ~ std.conv.to!string(this.header) ~ ", footer: " ~ std.conv.to!string(this.footer) ~ ")"; 3992 } 3993 3994 } 3995 3996 class CollectItem : Java210Packet 3997 { 3998 3999 enum uint ID = 72; 4000 4001 enum bool CLIENTBOUND = true; 4002 enum bool SERVERBOUND = false; 4003 4004 enum string[] __fields = ["collected", "collector"]; 4005 4006 @Var uint collected; 4007 @Var uint collector; 4008 4009 this() pure nothrow @safe @nogc {} 4010 4011 this(uint collected, uint collector=uint.init) pure nothrow @safe @nogc 4012 { 4013 this.collected = collected; 4014 this.collector = collector; 4015 } 4016 4017 mixin Make; 4018 4019 public static typeof(this) fromBuffer(ubyte[] buffer) 4020 { 4021 CollectItem ret = new CollectItem(); 4022 ret.decode(buffer); 4023 return ret; 4024 } 4025 4026 override string toString() 4027 { 4028 return "CollectItem(collected: " ~ std.conv.to!string(this.collected) ~ ", collector: " ~ std.conv.to!string(this.collector) ~ ")"; 4029 } 4030 4031 } 4032 4033 class EntityTeleport : Java210Packet 4034 { 4035 4036 enum uint ID = 73; 4037 4038 enum bool CLIENTBOUND = true; 4039 enum bool SERVERBOUND = false; 4040 4041 enum string[] __fields = ["entityId", "position", "yaw", "pitch", "onGround"]; 4042 4043 @Var uint entityId; 4044 Vector!(double, "xyz") position; 4045 ubyte yaw; 4046 ubyte pitch; 4047 bool onGround; 4048 4049 this() pure nothrow @safe @nogc {} 4050 4051 this(uint entityId, Vector!(double, "xyz") position=Vector!(double, "xyz").init, ubyte yaw=ubyte.init, ubyte pitch=ubyte.init, bool onGround=bool.init) pure nothrow @safe @nogc 4052 { 4053 this.entityId = entityId; 4054 this.position = position; 4055 this.yaw = yaw; 4056 this.pitch = pitch; 4057 this.onGround = onGround; 4058 } 4059 4060 mixin Make; 4061 4062 public static typeof(this) fromBuffer(ubyte[] buffer) 4063 { 4064 EntityTeleport ret = new EntityTeleport(); 4065 ret.decode(buffer); 4066 return ret; 4067 } 4068 4069 override string toString() 4070 { 4071 return "EntityTeleport(entityId: " ~ std.conv.to!string(this.entityId) ~ ", position: " ~ std.conv.to!string(this.position) ~ ", yaw: " ~ std.conv.to!string(this.yaw) ~ ", pitch: " ~ std.conv.to!string(this.pitch) ~ ", onGround: " ~ std.conv.to!string(this.onGround) ~ ")"; 4072 } 4073 4074 } 4075 4076 class EntityProperties : Java210Packet 4077 { 4078 4079 enum uint ID = 74; 4080 4081 enum bool CLIENTBOUND = true; 4082 enum bool SERVERBOUND = false; 4083 4084 enum string[] __fields = ["entityId", "attributes"]; 4085 4086 @Var uint entityId; 4087 @Length!uint soupply.java210.types.Attribute[] attributes; 4088 4089 this() pure nothrow @safe @nogc {} 4090 4091 this(uint entityId, soupply.java210.types.Attribute[] attributes=(soupply.java210.types.Attribute[]).init) pure nothrow @safe @nogc 4092 { 4093 this.entityId = entityId; 4094 this.attributes = attributes; 4095 } 4096 4097 mixin Make; 4098 4099 public static typeof(this) fromBuffer(ubyte[] buffer) 4100 { 4101 EntityProperties ret = new EntityProperties(); 4102 ret.decode(buffer); 4103 return ret; 4104 } 4105 4106 override string toString() 4107 { 4108 return "EntityProperties(entityId: " ~ std.conv.to!string(this.entityId) ~ ", attributes: " ~ std.conv.to!string(this.attributes) ~ ")"; 4109 } 4110 4111 } 4112 4113 class EntityEffect : Java210Packet 4114 { 4115 4116 enum uint ID = 75; 4117 4118 enum bool CLIENTBOUND = true; 4119 enum bool SERVERBOUND = false; 4120 4121 // flags 4122 enum ubyte AMBIENT = 1; 4123 enum ubyte SHOW_PARTICLES = 2; 4124 4125 enum string[] __fields = ["entityId", "effectId", "amplifier", "duration", "flags"]; 4126 4127 @Var uint entityId; 4128 ubyte effectId; 4129 ubyte amplifier; 4130 @Var uint duration; 4131 ubyte flags; 4132 4133 this() pure nothrow @safe @nogc {} 4134 4135 this(uint entityId, ubyte effectId=ubyte.init, ubyte amplifier=ubyte.init, uint duration=uint.init, ubyte flags=ubyte.init) pure nothrow @safe @nogc 4136 { 4137 this.entityId = entityId; 4138 this.effectId = effectId; 4139 this.amplifier = amplifier; 4140 this.duration = duration; 4141 this.flags = flags; 4142 } 4143 4144 mixin Make; 4145 4146 public static typeof(this) fromBuffer(ubyte[] buffer) 4147 { 4148 EntityEffect ret = new EntityEffect(); 4149 ret.decode(buffer); 4150 return ret; 4151 } 4152 4153 override string toString() 4154 { 4155 return "EntityEffect(entityId: " ~ std.conv.to!string(this.entityId) ~ ", effectId: " ~ std.conv.to!string(this.effectId) ~ ", amplifier: " ~ std.conv.to!string(this.amplifier) ~ ", duration: " ~ std.conv.to!string(this.duration) ~ ", flags: " ~ std.conv.to!string(this.flags) ~ ")"; 4156 } 4157 4158 }