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