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