1 /*
2  * This file has been automatically generated by Soupply and released under the MIT license.
3  * Generated from java393
4  */
5 module soupply.java393.metadata;
6 
7 import packetmaker;
8 import packetmaker.maker : EndianType, writeLength, writeImpl, readLength, readImpl;
9 
10 import soupply.util;
11 
12 static import soupply.java393.types;
13 
14 class MetadataValue : PacketImpl!(Endian.bigEndian, varuint, varuint)
15 {
16 
17     @EncodeOnly ubyte type;
18 
19     this(ubyte type) pure nothrow @safe @nogc
20     {
21         this.type = type;
22     }
23 
24     mixin Make;
25 
26 }
27 
28 class MetadataByte : MetadataValue
29 {
30 
31     byte value;
32 
33     this() pure nothrow @safe @nogc
34     {
35         super(0);
36     }
37 
38     this(byte value) pure nothrow @safe @nogc
39     {
40         this();
41         this.value = value;
42     }
43 
44     mixin Make;
45 
46 }
47 
48 class MetadataInt : MetadataValue
49 {
50 
51     @Var uint value;
52 
53     this() pure nothrow @safe @nogc
54     {
55         super(1);
56     }
57 
58     this(uint value) pure nothrow @safe @nogc
59     {
60         this();
61         this.value = value;
62     }
63 
64     mixin Make;
65 
66 }
67 
68 class MetadataFloat : MetadataValue
69 {
70 
71     float value;
72 
73     this() pure nothrow @safe @nogc
74     {
75         super(2);
76     }
77 
78     this(float value) pure nothrow @safe @nogc
79     {
80         this();
81         this.value = value;
82     }
83 
84     mixin Make;
85 
86 }
87 
88 class MetadataString : MetadataValue
89 {
90 
91     string value;
92 
93     this() pure nothrow @safe @nogc
94     {
95         super(3);
96     }
97 
98     this(string value) pure nothrow @safe @nogc
99     {
100         this();
101         this.value = value;
102     }
103 
104     mixin Make;
105 
106 }
107 
108 class MetadataChat : MetadataValue
109 {
110 
111     string value;
112 
113     this() pure nothrow @safe @nogc
114     {
115         super(4);
116     }
117 
118     this(string value) pure nothrow @safe @nogc
119     {
120         this();
121         this.value = value;
122     }
123 
124     mixin Make;
125 
126 }
127 
128 class MetadataOptionalChat : MetadataValue
129 {
130 
131     soupply.java393.types.OptionalChat value;
132 
133     this() pure nothrow @safe @nogc
134     {
135         super(5);
136     }
137 
138     this(soupply.java393.types.OptionalChat value) pure nothrow @safe @nogc
139     {
140         this();
141         this.value = value;
142     }
143 
144     mixin Make;
145 
146 }
147 
148 class MetadataSlot : MetadataValue
149 {
150 
151     soupply.java393.types.Slot value;
152 
153     this() pure nothrow @safe @nogc
154     {
155         super(6);
156     }
157 
158     this(soupply.java393.types.Slot value) pure nothrow @safe @nogc
159     {
160         this();
161         this.value = value;
162     }
163 
164     mixin Make;
165 
166 }
167 
168 class MetadataBool : MetadataValue
169 {
170 
171     bool value;
172 
173     this() pure nothrow @safe @nogc
174     {
175         super(7);
176     }
177 
178     this(bool value) pure nothrow @safe @nogc
179     {
180         this();
181         this.value = value;
182     }
183 
184     mixin Make;
185 
186 }
187 
188 class MetadataRotation : MetadataValue
189 {
190 
191     Vector!(float, "xyz") value;
192 
193     this() pure nothrow @safe @nogc
194     {
195         super(8);
196     }
197 
198     this(Vector!(float, "xyz") value) pure nothrow @safe @nogc
199     {
200         this();
201         this.value = value;
202     }
203 
204     mixin Make;
205 
206 }
207 
208 class MetadataPosition : MetadataValue
209 {
210 
211     ulong value;
212 
213     this() pure nothrow @safe @nogc
214     {
215         super(9);
216     }
217 
218     this(ulong value) pure nothrow @safe @nogc
219     {
220         this();
221         this.value = value;
222     }
223 
224     mixin Make;
225 
226 }
227 
228 class MetadataOptionalPosition : MetadataValue
229 {
230 
231     soupply.java393.types.OptionalPosition value;
232 
233     this() pure nothrow @safe @nogc
234     {
235         super(10);
236     }
237 
238     this(soupply.java393.types.OptionalPosition value) pure nothrow @safe @nogc
239     {
240         this();
241         this.value = value;
242     }
243 
244     mixin Make;
245 
246 }
247 
248 class MetadataDirection : MetadataValue
249 {
250 
251     @Var uint value;
252 
253     this() pure nothrow @safe @nogc
254     {
255         super(11);
256     }
257 
258     this(uint value) pure nothrow @safe @nogc
259     {
260         this();
261         this.value = value;
262     }
263 
264     mixin Make;
265 
266 }
267 
268 class MetadataOptionalUuid : MetadataValue
269 {
270 
271     soupply.java393.types.OptionalUuid value;
272 
273     this() pure nothrow @safe @nogc
274     {
275         super(12);
276     }
277 
278     this(soupply.java393.types.OptionalUuid value) pure nothrow @safe @nogc
279     {
280         this();
281         this.value = value;
282     }
283 
284     mixin Make;
285 
286 }
287 
288 class MetadataBlock : MetadataValue
289 {
290 
291     @Var uint value;
292 
293     this() pure nothrow @safe @nogc
294     {
295         super(13);
296     }
297 
298     this(uint value) pure nothrow @safe @nogc
299     {
300         this();
301         this.value = value;
302     }
303 
304     mixin Make;
305 
306 }
307 
308 class MetadataNbt : MetadataValue
309 {
310 
311     @Bytes ubyte[] value;
312 
313     this() pure nothrow @safe @nogc
314     {
315         super(14);
316     }
317 
318     this(ubyte[] value) pure nothrow @safe @nogc
319     {
320         this();
321         this.value = value;
322     }
323 
324     mixin Make;
325 
326 }
327 
328 class MetadataParticle : MetadataValue
329 {
330 
331     soupply.java393.types.Particle value;
332 
333     this() pure nothrow @safe @nogc
334     {
335         super(15);
336     }
337 
338     this(soupply.java393.types.Particle value) pure nothrow @safe @nogc
339     {
340         this();
341         this.value = value;
342     }
343 
344     mixin Make;
345 
346 }
347 
348 struct Metadata
349 {
350 
351     MetadataValue[ubyte] values;
352 
353     void encodeBody(Buffer buffer)
354     {
355         foreach(id, value; values)
356         {
357             writeImpl!(EndianType.bigEndian, ubyte)(buffer, id);
358             value.encodeBody(buffer);
359         }
360         buffer.write(ubyte(255));
361     }
362 
363     void decodeBody(Buffer buffer)
364     {
365         ubyte id;
366         while((id = buffer.read!ubyte()) != 255)
367         {
368             switch(readImpl!(EndianType.bigEndian, ubyte)(buffer))
369             {
370                 case 0:
371                     auto value = new MetadataByte();
372                     value.decodeBody(buffer);
373                     this.values[id] = value;
374                     break;
375                 case 1:
376                     auto value = new MetadataInt();
377                     value.decodeBody(buffer);
378                     this.values[id] = value;
379                     break;
380                 case 2:
381                     auto value = new MetadataFloat();
382                     value.decodeBody(buffer);
383                     this.values[id] = value;
384                     break;
385                 case 3:
386                     auto value = new MetadataString();
387                     value.decodeBody(buffer);
388                     this.values[id] = value;
389                     break;
390                 case 4:
391                     auto value = new MetadataChat();
392                     value.decodeBody(buffer);
393                     this.values[id] = value;
394                     break;
395                 case 5:
396                     auto value = new MetadataOptionalChat();
397                     value.decodeBody(buffer);
398                     this.values[id] = value;
399                     break;
400                 case 6:
401                     auto value = new MetadataSlot();
402                     value.decodeBody(buffer);
403                     this.values[id] = value;
404                     break;
405                 case 7:
406                     auto value = new MetadataBool();
407                     value.decodeBody(buffer);
408                     this.values[id] = value;
409                     break;
410                 case 8:
411                     auto value = new MetadataRotation();
412                     value.decodeBody(buffer);
413                     this.values[id] = value;
414                     break;
415                 case 9:
416                     auto value = new MetadataPosition();
417                     value.decodeBody(buffer);
418                     this.values[id] = value;
419                     break;
420                 case 10:
421                     auto value = new MetadataOptionalPosition();
422                     value.decodeBody(buffer);
423                     this.values[id] = value;
424                     break;
425                 case 11:
426                     auto value = new MetadataDirection();
427                     value.decodeBody(buffer);
428                     this.values[id] = value;
429                     break;
430                 case 12:
431                     auto value = new MetadataOptionalUuid();
432                     value.decodeBody(buffer);
433                     this.values[id] = value;
434                     break;
435                 case 13:
436                     auto value = new MetadataBlock();
437                     value.decodeBody(buffer);
438                     this.values[id] = value;
439                     break;
440                 case 14:
441                     auto value = new MetadataNbt();
442                     value.decodeBody(buffer);
443                     this.values[id] = value;
444                     break;
445                 case 15:
446                     auto value = new MetadataParticle();
447                     value.decodeBody(buffer);
448                     this.values[id] = value;
449                     break;
450                 default: throw new Exception("Unknown metadata type");
451             }
452         }
453     }
454 
455     @property byte entityFlags()
456     {
457         auto ptr = 0 in this.values;
458         if(ptr && cast(MetadataByte)*ptr) return (cast(MetadataByte)*ptr).value;
459         return (byte).init;
460     }
461 
462     @property byte entityFlags(byte value)
463     {
464         auto ptr = 0 in this.values;
465         if(ptr && cast(MetadataByte)*ptr) (cast(MetadataByte)*ptr).value = value;
466         else this.values[0] = new MetadataByte(value);
467         return value;
468     }
469 
470     @property uint air()
471     {
472         auto ptr = 1 in this.values;
473         if(ptr && cast(MetadataInt)*ptr) return (cast(MetadataInt)*ptr).value;
474         return uint(300);
475     }
476 
477     @property uint air(uint value)
478     {
479         auto ptr = 1 in this.values;
480         if(ptr && cast(MetadataInt)*ptr) (cast(MetadataInt)*ptr).value = value;
481         else this.values[1] = new MetadataInt(value);
482         return value;
483     }
484 
485     @property soupply.java393.types.OptionalChat customName()
486     {
487         auto ptr = 2 in this.values;
488         if(ptr && cast(MetadataOptionalChat)*ptr) return (cast(MetadataOptionalChat)*ptr).value;
489         return (soupply.java393.types.OptionalChat).init;
490     }
491 
492     @property soupply.java393.types.OptionalChat customName(soupply.java393.types.OptionalChat value)
493     {
494         auto ptr = 2 in this.values;
495         if(ptr && cast(MetadataOptionalChat)*ptr) (cast(MetadataOptionalChat)*ptr).value = value;
496         else this.values[2] = new MetadataOptionalChat(value);
497         return value;
498     }
499 
500     @property bool customNameVisible()
501     {
502         auto ptr = 3 in this.values;
503         if(ptr && cast(MetadataBool)*ptr) return (cast(MetadataBool)*ptr).value;
504         return (bool).init;
505     }
506 
507     @property bool customNameVisible(bool value)
508     {
509         auto ptr = 3 in this.values;
510         if(ptr && cast(MetadataBool)*ptr) (cast(MetadataBool)*ptr).value = value;
511         else this.values[3] = new MetadataBool(value);
512         return value;
513     }
514 
515     @property bool silent()
516     {
517         auto ptr = 4 in this.values;
518         if(ptr && cast(MetadataBool)*ptr) return (cast(MetadataBool)*ptr).value;
519         return (bool).init;
520     }
521 
522     @property bool silent(bool value)
523     {
524         auto ptr = 4 in this.values;
525         if(ptr && cast(MetadataBool)*ptr) (cast(MetadataBool)*ptr).value = value;
526         else this.values[4] = new MetadataBool(value);
527         return value;
528     }
529 
530     @property bool noGravity()
531     {
532         auto ptr = 5 in this.values;
533         if(ptr && cast(MetadataBool)*ptr) return (cast(MetadataBool)*ptr).value;
534         return (bool).init;
535     }
536 
537     @property bool noGravity(bool value)
538     {
539         auto ptr = 5 in this.values;
540         if(ptr && cast(MetadataBool)*ptr) (cast(MetadataBool)*ptr).value = value;
541         else this.values[5] = new MetadataBool(value);
542         return value;
543     }
544 
545     @property soupply.java393.types.Slot potion()
546     {
547         auto ptr = 6 in this.values;
548         if(ptr && cast(MetadataSlot)*ptr) return (cast(MetadataSlot)*ptr).value;
549         return (soupply.java393.types.Slot).init;
550     }
551 
552     @property soupply.java393.types.Slot potion(soupply.java393.types.Slot value)
553     {
554         auto ptr = 6 in this.values;
555         if(ptr && cast(MetadataSlot)*ptr) (cast(MetadataSlot)*ptr).value = value;
556         else this.values[6] = new MetadataSlot(value);
557         return value;
558     }
559 
560     @property ulong spawnPosition()
561     {
562         auto ptr = 6 in this.values;
563         if(ptr && cast(MetadataPosition)*ptr) return (cast(MetadataPosition)*ptr).value;
564         return (ulong).init;
565     }
566 
567     @property ulong spawnPosition(ulong value)
568     {
569         auto ptr = 6 in this.values;
570         if(ptr && cast(MetadataPosition)*ptr) (cast(MetadataPosition)*ptr).value = value;
571         else this.values[6] = new MetadataPosition(value);
572         return value;
573     }
574 
575     @property float radius()
576     {
577         auto ptr = 6 in this.values;
578         if(ptr && cast(MetadataFloat)*ptr) return (cast(MetadataFloat)*ptr).value;
579         return float(0.5);
580     }
581 
582     @property float radius(float value)
583     {
584         auto ptr = 6 in this.values;
585         if(ptr && cast(MetadataFloat)*ptr) (cast(MetadataFloat)*ptr).value = value;
586         else this.values[6] = new MetadataFloat(value);
587         return value;
588     }
589 
590     @property uint color()
591     {
592         auto ptr = 7 in this.values;
593         if(ptr && cast(MetadataInt)*ptr) return (cast(MetadataInt)*ptr).value;
594         return uint(0);
595     }
596 
597     @property uint color(uint value)
598     {
599         auto ptr = 7 in this.values;
600         if(ptr && cast(MetadataInt)*ptr) (cast(MetadataInt)*ptr).value = value;
601         else this.values[7] = new MetadataInt(value);
602         return value;
603     }
604 
605     @property bool isSinglePoint()
606     {
607         auto ptr = 8 in this.values;
608         if(ptr && cast(MetadataBool)*ptr) return (cast(MetadataBool)*ptr).value;
609         return (bool).init;
610     }
611 
612     @property bool isSinglePoint(bool value)
613     {
614         auto ptr = 8 in this.values;
615         if(ptr && cast(MetadataBool)*ptr) (cast(MetadataBool)*ptr).value = value;
616         else this.values[8] = new MetadataBool(value);
617         return value;
618     }
619 
620     @property soupply.java393.types.Particle particle()
621     {
622         auto ptr = 9 in this.values;
623         if(ptr && cast(MetadataParticle)*ptr) return (cast(MetadataParticle)*ptr).value;
624         return (soupply.java393.types.Particle).init;
625     }
626 
627     @property soupply.java393.types.Particle particle(soupply.java393.types.Particle value)
628     {
629         auto ptr = 9 in this.values;
630         if(ptr && cast(MetadataParticle)*ptr) (cast(MetadataParticle)*ptr).value = value;
631         else this.values[9] = new MetadataParticle(value);
632         return value;
633     }
634 
635     @property uint hookedEntity()
636     {
637         auto ptr = 6 in this.values;
638         if(ptr && cast(MetadataInt)*ptr) return (cast(MetadataInt)*ptr).value;
639         return (uint).init;
640     }
641 
642     @property uint hookedEntity(uint value)
643     {
644         auto ptr = 6 in this.values;
645         if(ptr && cast(MetadataInt)*ptr) (cast(MetadataInt)*ptr).value = value;
646         else this.values[6] = new MetadataInt(value);
647         return value;
648     }
649 
650     @property byte arrowFlags()
651     {
652         auto ptr = 6 in this.values;
653         if(ptr && cast(MetadataByte)*ptr) return (cast(MetadataByte)*ptr).value;
654         return (byte).init;
655     }
656 
657     @property byte arrowFlags(byte value)
658     {
659         auto ptr = 6 in this.values;
660         if(ptr && cast(MetadataByte)*ptr) (cast(MetadataByte)*ptr).value = value;
661         else this.values[6] = new MetadataByte(value);
662         return value;
663     }
664 
665     @property uint timeSinceLastHit()
666     {
667         auto ptr = 6 in this.values;
668         if(ptr && cast(MetadataInt)*ptr) return (cast(MetadataInt)*ptr).value;
669         return (uint).init;
670     }
671 
672     @property uint timeSinceLastHit(uint value)
673     {
674         auto ptr = 6 in this.values;
675         if(ptr && cast(MetadataInt)*ptr) (cast(MetadataInt)*ptr).value = value;
676         else this.values[6] = new MetadataInt(value);
677         return value;
678     }
679 
680     @property uint forwardDirection()
681     {
682         auto ptr = 7 in this.values;
683         if(ptr && cast(MetadataInt)*ptr) return (cast(MetadataInt)*ptr).value;
684         return uint(1);
685     }
686 
687     @property uint forwardDirection(uint value)
688     {
689         auto ptr = 7 in this.values;
690         if(ptr && cast(MetadataInt)*ptr) (cast(MetadataInt)*ptr).value = value;
691         else this.values[7] = new MetadataInt(value);
692         return value;
693     }
694 
695     @property float damageTaken()
696     {
697         auto ptr = 8 in this.values;
698         if(ptr && cast(MetadataFloat)*ptr) return (cast(MetadataFloat)*ptr).value;
699         return float(0);
700     }
701 
702     @property float damageTaken(float value)
703     {
704         auto ptr = 8 in this.values;
705         if(ptr && cast(MetadataFloat)*ptr) (cast(MetadataFloat)*ptr).value = value;
706         else this.values[8] = new MetadataFloat(value);
707         return value;
708     }
709 
710     @property uint boatVariant()
711     {
712         auto ptr = 9 in this.values;
713         if(ptr && cast(MetadataInt)*ptr) return (cast(MetadataInt)*ptr).value;
714         return (uint).init;
715     }
716 
717     @property uint boatVariant(uint value)
718     {
719         auto ptr = 9 in this.values;
720         if(ptr && cast(MetadataInt)*ptr) (cast(MetadataInt)*ptr).value = value;
721         else this.values[9] = new MetadataInt(value);
722         return value;
723     }
724 
725     @property bool rightPaddleTurning()
726     {
727         auto ptr = 10 in this.values;
728         if(ptr && cast(MetadataBool)*ptr) return (cast(MetadataBool)*ptr).value;
729         return (bool).init;
730     }
731 
732     @property bool rightPaddleTurning(bool value)
733     {
734         auto ptr = 10 in this.values;
735         if(ptr && cast(MetadataBool)*ptr) (cast(MetadataBool)*ptr).value = value;
736         else this.values[10] = new MetadataBool(value);
737         return value;
738     }
739 
740     @property bool leftPaddleTurning()
741     {
742         auto ptr = 11 in this.values;
743         if(ptr && cast(MetadataBool)*ptr) return (cast(MetadataBool)*ptr).value;
744         return (bool).init;
745     }
746 
747     @property bool leftPaddleTurning(bool value)
748     {
749         auto ptr = 11 in this.values;
750         if(ptr && cast(MetadataBool)*ptr) (cast(MetadataBool)*ptr).value = value;
751         else this.values[11] = new MetadataBool(value);
752         return value;
753     }
754 
755     @property uint splashTimer()
756     {
757         auto ptr = 12 in this.values;
758         if(ptr && cast(MetadataInt)*ptr) return (cast(MetadataInt)*ptr).value;
759         return (uint).init;
760     }
761 
762     @property uint splashTimer(uint value)
763     {
764         auto ptr = 12 in this.values;
765         if(ptr && cast(MetadataInt)*ptr) (cast(MetadataInt)*ptr).value = value;
766         else this.values[12] = new MetadataInt(value);
767         return value;
768     }
769 
770     @property soupply.java393.types.OptionalPosition beamTarget()
771     {
772         auto ptr = 6 in this.values;
773         if(ptr && cast(MetadataOptionalPosition)*ptr) return (cast(MetadataOptionalPosition)*ptr).value;
774         return (soupply.java393.types.OptionalPosition).init;
775     }
776 
777     @property soupply.java393.types.OptionalPosition beamTarget(soupply.java393.types.OptionalPosition value)
778     {
779         auto ptr = 6 in this.values;
780         if(ptr && cast(MetadataOptionalPosition)*ptr) (cast(MetadataOptionalPosition)*ptr).value = value;
781         else this.values[6] = new MetadataOptionalPosition(value);
782         return value;
783     }
784 
785     @property bool showBottom()
786     {
787         auto ptr = 7 in this.values;
788         if(ptr && cast(MetadataBool)*ptr) return (cast(MetadataBool)*ptr).value;
789         return (bool).init;
790     }
791 
792     @property bool showBottom(bool value)
793     {
794         auto ptr = 7 in this.values;
795         if(ptr && cast(MetadataBool)*ptr) (cast(MetadataBool)*ptr).value = value;
796         else this.values[7] = new MetadataBool(value);
797         return value;
798     }
799 
800     @property soupply.java393.types.Slot firework()
801     {
802         auto ptr = 6 in this.values;
803         if(ptr && cast(MetadataSlot)*ptr) return (cast(MetadataSlot)*ptr).value;
804         return (soupply.java393.types.Slot).init;
805     }
806 
807     @property soupply.java393.types.Slot firework(soupply.java393.types.Slot value)
808     {
809         auto ptr = 6 in this.values;
810         if(ptr && cast(MetadataSlot)*ptr) (cast(MetadataSlot)*ptr).value = value;
811         else this.values[6] = new MetadataSlot(value);
812         return value;
813     }
814 
815     @property uint fireworkThrower()
816     {
817         auto ptr = 7 in this.values;
818         if(ptr && cast(MetadataInt)*ptr) return (cast(MetadataInt)*ptr).value;
819         return (uint).init;
820     }
821 
822     @property uint fireworkThrower(uint value)
823     {
824         auto ptr = 7 in this.values;
825         if(ptr && cast(MetadataInt)*ptr) (cast(MetadataInt)*ptr).value = value;
826         else this.values[7] = new MetadataInt(value);
827         return value;
828     }
829 
830     @property soupply.java393.types.Slot item()
831     {
832         auto ptr = 6 in this.values;
833         if(ptr && cast(MetadataSlot)*ptr) return (cast(MetadataSlot)*ptr).value;
834         return (soupply.java393.types.Slot).init;
835     }
836 
837     @property soupply.java393.types.Slot item(soupply.java393.types.Slot value)
838     {
839         auto ptr = 6 in this.values;
840         if(ptr && cast(MetadataSlot)*ptr) (cast(MetadataSlot)*ptr).value = value;
841         else this.values[6] = new MetadataSlot(value);
842         return value;
843     }
844 
845     @property uint rotation()
846     {
847         auto ptr = 7 in this.values;
848         if(ptr && cast(MetadataInt)*ptr) return (cast(MetadataInt)*ptr).value;
849         return (uint).init;
850     }
851 
852     @property uint rotation(uint value)
853     {
854         auto ptr = 7 in this.values;
855         if(ptr && cast(MetadataInt)*ptr) (cast(MetadataInt)*ptr).value = value;
856         else this.values[7] = new MetadataInt(value);
857         return value;
858     }
859 
860     @property uint loyaltyLevel()
861     {
862         auto ptr = 7 in this.values;
863         if(ptr && cast(MetadataInt)*ptr) return (cast(MetadataInt)*ptr).value;
864         return (uint).init;
865     }
866 
867     @property uint loyaltyLevel(uint value)
868     {
869         auto ptr = 7 in this.values;
870         if(ptr && cast(MetadataInt)*ptr) (cast(MetadataInt)*ptr).value = value;
871         else this.values[7] = new MetadataInt(value);
872         return value;
873     }
874 
875     @property byte livingFlags()
876     {
877         auto ptr = 6 in this.values;
878         if(ptr && cast(MetadataByte)*ptr) return (cast(MetadataByte)*ptr).value;
879         return (byte).init;
880     }
881 
882     @property byte livingFlags(byte value)
883     {
884         auto ptr = 6 in this.values;
885         if(ptr && cast(MetadataByte)*ptr) (cast(MetadataByte)*ptr).value = value;
886         else this.values[6] = new MetadataByte(value);
887         return value;
888     }
889 
890     @property float health()
891     {
892         auto ptr = 7 in this.values;
893         if(ptr && cast(MetadataFloat)*ptr) return (cast(MetadataFloat)*ptr).value;
894         return float(1);
895     }
896 
897     @property float health(float value)
898     {
899         auto ptr = 7 in this.values;
900         if(ptr && cast(MetadataFloat)*ptr) (cast(MetadataFloat)*ptr).value = value;
901         else this.values[7] = new MetadataFloat(value);
902         return value;
903     }
904 
905     @property uint potionColor()
906     {
907         auto ptr = 8 in this.values;
908         if(ptr && cast(MetadataInt)*ptr) return (cast(MetadataInt)*ptr).value;
909         return (uint).init;
910     }
911 
912     @property uint potionColor(uint value)
913     {
914         auto ptr = 8 in this.values;
915         if(ptr && cast(MetadataInt)*ptr) (cast(MetadataInt)*ptr).value = value;
916         else this.values[8] = new MetadataInt(value);
917         return value;
918     }
919 
920     @property bool potionAmbient()
921     {
922         auto ptr = 9 in this.values;
923         if(ptr && cast(MetadataBool)*ptr) return (cast(MetadataBool)*ptr).value;
924         return (bool).init;
925     }
926 
927     @property bool potionAmbient(bool value)
928     {
929         auto ptr = 9 in this.values;
930         if(ptr && cast(MetadataBool)*ptr) (cast(MetadataBool)*ptr).value = value;
931         else this.values[9] = new MetadataBool(value);
932         return value;
933     }
934 
935     @property uint arrows()
936     {
937         auto ptr = 10 in this.values;
938         if(ptr && cast(MetadataInt)*ptr) return (cast(MetadataInt)*ptr).value;
939         return (uint).init;
940     }
941 
942     @property uint arrows(uint value)
943     {
944         auto ptr = 10 in this.values;
945         if(ptr && cast(MetadataInt)*ptr) (cast(MetadataInt)*ptr).value = value;
946         else this.values[10] = new MetadataInt(value);
947         return value;
948     }
949 
950     @property float additionalHearts()
951     {
952         auto ptr = 11 in this.values;
953         if(ptr && cast(MetadataFloat)*ptr) return (cast(MetadataFloat)*ptr).value;
954         return float(0);
955     }
956 
957     @property float additionalHearts(float value)
958     {
959         auto ptr = 11 in this.values;
960         if(ptr && cast(MetadataFloat)*ptr) (cast(MetadataFloat)*ptr).value = value;
961         else this.values[11] = new MetadataFloat(value);
962         return value;
963     }
964 
965     @property uint score()
966     {
967         auto ptr = 12 in this.values;
968         if(ptr && cast(MetadataInt)*ptr) return (cast(MetadataInt)*ptr).value;
969         return (uint).init;
970     }
971 
972     @property uint score(uint value)
973     {
974         auto ptr = 12 in this.values;
975         if(ptr && cast(MetadataInt)*ptr) (cast(MetadataInt)*ptr).value = value;
976         else this.values[12] = new MetadataInt(value);
977         return value;
978     }
979 
980     @property byte skinParts()
981     {
982         auto ptr = 13 in this.values;
983         if(ptr && cast(MetadataByte)*ptr) return (cast(MetadataByte)*ptr).value;
984         return byte(0);
985     }
986 
987     @property byte skinParts(byte value)
988     {
989         auto ptr = 13 in this.values;
990         if(ptr && cast(MetadataByte)*ptr) (cast(MetadataByte)*ptr).value = value;
991         else this.values[13] = new MetadataByte(value);
992         return value;
993     }
994 
995     @property byte mainHand()
996     {
997         auto ptr = 14 in this.values;
998         if(ptr && cast(MetadataByte)*ptr) return (cast(MetadataByte)*ptr).value;
999         return byte(1);
1000     }
1001 
1002     @property byte mainHand(byte value)
1003     {
1004         auto ptr = 14 in this.values;
1005         if(ptr && cast(MetadataByte)*ptr) (cast(MetadataByte)*ptr).value = value;
1006         else this.values[14] = new MetadataByte(value);
1007         return value;
1008     }
1009 
1010     @property ubyte[] leftShoulder()
1011     {
1012         auto ptr = 15 in this.values;
1013         if(ptr && cast(MetadataNbt)*ptr) return (cast(MetadataNbt)*ptr).value;
1014         return (ubyte[]).init;
1015     }
1016 
1017     @property ubyte[] leftShoulder(ubyte[] value)
1018     {
1019         auto ptr = 15 in this.values;
1020         if(ptr && cast(MetadataNbt)*ptr) (cast(MetadataNbt)*ptr).value = value;
1021         else this.values[15] = new MetadataNbt(value);
1022         return value;
1023     }
1024 
1025     @property ubyte[] rightShoulder()
1026     {
1027         auto ptr = 16 in this.values;
1028         if(ptr && cast(MetadataNbt)*ptr) return (cast(MetadataNbt)*ptr).value;
1029         return (ubyte[]).init;
1030     }
1031 
1032     @property ubyte[] rightShoulder(ubyte[] value)
1033     {
1034         auto ptr = 16 in this.values;
1035         if(ptr && cast(MetadataNbt)*ptr) (cast(MetadataNbt)*ptr).value = value;
1036         else this.values[16] = new MetadataNbt(value);
1037         return value;
1038     }
1039 
1040     @property byte armorStandFlags()
1041     {
1042         auto ptr = 11 in this.values;
1043         if(ptr && cast(MetadataByte)*ptr) return (cast(MetadataByte)*ptr).value;
1044         return (byte).init;
1045     }
1046 
1047     @property byte armorStandFlags(byte value)
1048     {
1049         auto ptr = 11 in this.values;
1050         if(ptr && cast(MetadataByte)*ptr) (cast(MetadataByte)*ptr).value = value;
1051         else this.values[11] = new MetadataByte(value);
1052         return value;
1053     }
1054 
1055     @property Vector!(float, "xyz") headRotation()
1056     {
1057         auto ptr = 12 in this.values;
1058         if(ptr && cast(MetadataRotation)*ptr) return (cast(MetadataRotation)*ptr).value;
1059         return (Vector!(float, "xyz")).init;
1060     }
1061 
1062     @property Vector!(float, "xyz") headRotation(Vector!(float, "xyz") value)
1063     {
1064         auto ptr = 12 in this.values;
1065         if(ptr && cast(MetadataRotation)*ptr) (cast(MetadataRotation)*ptr).value = value;
1066         else this.values[12] = new MetadataRotation(value);
1067         return value;
1068     }
1069 
1070     @property Vector!(float, "xyz") bodyRotation()
1071     {
1072         auto ptr = 13 in this.values;
1073         if(ptr && cast(MetadataRotation)*ptr) return (cast(MetadataRotation)*ptr).value;
1074         return (Vector!(float, "xyz")).init;
1075     }
1076 
1077     @property Vector!(float, "xyz") bodyRotation(Vector!(float, "xyz") value)
1078     {
1079         auto ptr = 13 in this.values;
1080         if(ptr && cast(MetadataRotation)*ptr) (cast(MetadataRotation)*ptr).value = value;
1081         else this.values[13] = new MetadataRotation(value);
1082         return value;
1083     }
1084 
1085     @property Vector!(float, "xyz") leftArmRotation()
1086     {
1087         auto ptr = 14 in this.values;
1088         if(ptr && cast(MetadataRotation)*ptr) return (cast(MetadataRotation)*ptr).value;
1089         return (Vector!(float, "xyz")).init;
1090     }
1091 
1092     @property Vector!(float, "xyz") leftArmRotation(Vector!(float, "xyz") value)
1093     {
1094         auto ptr = 14 in this.values;
1095         if(ptr && cast(MetadataRotation)*ptr) (cast(MetadataRotation)*ptr).value = value;
1096         else this.values[14] = new MetadataRotation(value);
1097         return value;
1098     }
1099 
1100     @property Vector!(float, "xyz") rightArmRotation()
1101     {
1102         auto ptr = 15 in this.values;
1103         if(ptr && cast(MetadataRotation)*ptr) return (cast(MetadataRotation)*ptr).value;
1104         return (Vector!(float, "xyz")).init;
1105     }
1106 
1107     @property Vector!(float, "xyz") rightArmRotation(Vector!(float, "xyz") value)
1108     {
1109         auto ptr = 15 in this.values;
1110         if(ptr && cast(MetadataRotation)*ptr) (cast(MetadataRotation)*ptr).value = value;
1111         else this.values[15] = new MetadataRotation(value);
1112         return value;
1113     }
1114 
1115     @property Vector!(float, "xyz") leftLegRotation()
1116     {
1117         auto ptr = 16 in this.values;
1118         if(ptr && cast(MetadataRotation)*ptr) return (cast(MetadataRotation)*ptr).value;
1119         return (Vector!(float, "xyz")).init;
1120     }
1121 
1122     @property Vector!(float, "xyz") leftLegRotation(Vector!(float, "xyz") value)
1123     {
1124         auto ptr = 16 in this.values;
1125         if(ptr && cast(MetadataRotation)*ptr) (cast(MetadataRotation)*ptr).value = value;
1126         else this.values[16] = new MetadataRotation(value);
1127         return value;
1128     }
1129 
1130     @property Vector!(float, "xyz") rightLegRotation()
1131     {
1132         auto ptr = 17 in this.values;
1133         if(ptr && cast(MetadataRotation)*ptr) return (cast(MetadataRotation)*ptr).value;
1134         return (Vector!(float, "xyz")).init;
1135     }
1136 
1137     @property Vector!(float, "xyz") rightLegRotation(Vector!(float, "xyz") value)
1138     {
1139         auto ptr = 17 in this.values;
1140         if(ptr && cast(MetadataRotation)*ptr) (cast(MetadataRotation)*ptr).value = value;
1141         else this.values[17] = new MetadataRotation(value);
1142         return value;
1143     }
1144 
1145     @property byte instentientFlags()
1146     {
1147         auto ptr = 11 in this.values;
1148         if(ptr && cast(MetadataByte)*ptr) return (cast(MetadataByte)*ptr).value;
1149         return (byte).init;
1150     }
1151 
1152     @property byte instentientFlags(byte value)
1153     {
1154         auto ptr = 11 in this.values;
1155         if(ptr && cast(MetadataByte)*ptr) (cast(MetadataByte)*ptr).value = value;
1156         else this.values[11] = new MetadataByte(value);
1157         return value;
1158     }
1159 
1160     @property byte hanging()
1161     {
1162         auto ptr = 12 in this.values;
1163         if(ptr && cast(MetadataByte)*ptr) return (cast(MetadataByte)*ptr).value;
1164         return (byte).init;
1165     }
1166 
1167     @property byte hanging(byte value)
1168     {
1169         auto ptr = 12 in this.values;
1170         if(ptr && cast(MetadataByte)*ptr) (cast(MetadataByte)*ptr).value = value;
1171         else this.values[12] = new MetadataByte(value);
1172         return value;
1173     }
1174 
1175     @property bool baby()
1176     {
1177         auto ptr = 12 in this.values;
1178         if(ptr && cast(MetadataBool)*ptr) return (cast(MetadataBool)*ptr).value;
1179         return (bool).init;
1180     }
1181 
1182     @property bool baby(bool value)
1183     {
1184         auto ptr = 12 in this.values;
1185         if(ptr && cast(MetadataBool)*ptr) (cast(MetadataBool)*ptr).value = value;
1186         else this.values[12] = new MetadataBool(value);
1187         return value;
1188     }
1189 
1190     @property byte horseFlags()
1191     {
1192         auto ptr = 13 in this.values;
1193         if(ptr && cast(MetadataByte)*ptr) return (cast(MetadataByte)*ptr).value;
1194         return (byte).init;
1195     }
1196 
1197     @property byte horseFlags(byte value)
1198     {
1199         auto ptr = 13 in this.values;
1200         if(ptr && cast(MetadataByte)*ptr) (cast(MetadataByte)*ptr).value = value;
1201         else this.values[13] = new MetadataByte(value);
1202         return value;
1203     }
1204 
1205     @property soupply.java393.types.OptionalUuid ownerUuid()
1206     {
1207         auto ptr = 14 in this.values;
1208         if(ptr && cast(MetadataOptionalUuid)*ptr) return (cast(MetadataOptionalUuid)*ptr).value;
1209         return (soupply.java393.types.OptionalUuid).init;
1210     }
1211 
1212     @property soupply.java393.types.OptionalUuid ownerUuid(soupply.java393.types.OptionalUuid value)
1213     {
1214         auto ptr = 14 in this.values;
1215         if(ptr && cast(MetadataOptionalUuid)*ptr) (cast(MetadataOptionalUuid)*ptr).value = value;
1216         else this.values[14] = new MetadataOptionalUuid(value);
1217         return value;
1218     }
1219 
1220     @property uint horseVariant()
1221     {
1222         auto ptr = 15 in this.values;
1223         if(ptr && cast(MetadataInt)*ptr) return (cast(MetadataInt)*ptr).value;
1224         return (uint).init;
1225     }
1226 
1227     @property uint horseVariant(uint value)
1228     {
1229         auto ptr = 15 in this.values;
1230         if(ptr && cast(MetadataInt)*ptr) (cast(MetadataInt)*ptr).value = value;
1231         else this.values[15] = new MetadataInt(value);
1232         return value;
1233     }
1234 
1235     @property uint horseArmor()
1236     {
1237         auto ptr = 16 in this.values;
1238         if(ptr && cast(MetadataInt)*ptr) return (cast(MetadataInt)*ptr).value;
1239         return (uint).init;
1240     }
1241 
1242     @property uint horseArmor(uint value)
1243     {
1244         auto ptr = 16 in this.values;
1245         if(ptr && cast(MetadataInt)*ptr) (cast(MetadataInt)*ptr).value = value;
1246         else this.values[16] = new MetadataInt(value);
1247         return value;
1248     }
1249 
1250     @property bool chested()
1251     {
1252         auto ptr = 15 in this.values;
1253         if(ptr && cast(MetadataBool)*ptr) return (cast(MetadataBool)*ptr).value;
1254         return (bool).init;
1255     }
1256 
1257     @property bool chested(bool value)
1258     {
1259         auto ptr = 15 in this.values;
1260         if(ptr && cast(MetadataBool)*ptr) (cast(MetadataBool)*ptr).value = value;
1261         else this.values[15] = new MetadataBool(value);
1262         return value;
1263     }
1264 
1265     @property uint llamaStrength()
1266     {
1267         auto ptr = 16 in this.values;
1268         if(ptr && cast(MetadataInt)*ptr) return (cast(MetadataInt)*ptr).value;
1269         return (uint).init;
1270     }
1271 
1272     @property uint llamaStrength(uint value)
1273     {
1274         auto ptr = 16 in this.values;
1275         if(ptr && cast(MetadataInt)*ptr) (cast(MetadataInt)*ptr).value = value;
1276         else this.values[16] = new MetadataInt(value);
1277         return value;
1278     }
1279 
1280     @property uint carpetColor()
1281     {
1282         auto ptr = 17 in this.values;
1283         if(ptr && cast(MetadataInt)*ptr) return (cast(MetadataInt)*ptr).value;
1284         return uint(-1);
1285     }
1286 
1287     @property uint carpetColor(uint value)
1288     {
1289         auto ptr = 17 in this.values;
1290         if(ptr && cast(MetadataInt)*ptr) (cast(MetadataInt)*ptr).value = value;
1291         else this.values[17] = new MetadataInt(value);
1292         return value;
1293     }
1294 
1295     @property uint llamaVariant()
1296     {
1297         auto ptr = 18 in this.values;
1298         if(ptr && cast(MetadataInt)*ptr) return (cast(MetadataInt)*ptr).value;
1299         return (uint).init;
1300     }
1301 
1302     @property uint llamaVariant(uint value)
1303     {
1304         auto ptr = 18 in this.values;
1305         if(ptr && cast(MetadataInt)*ptr) (cast(MetadataInt)*ptr).value = value;
1306         else this.values[18] = new MetadataInt(value);
1307         return value;
1308     }
1309 
1310     @property bool pigSaddled()
1311     {
1312         auto ptr = 13 in this.values;
1313         if(ptr && cast(MetadataBool)*ptr) return (cast(MetadataBool)*ptr).value;
1314         return (bool).init;
1315     }
1316 
1317     @property bool pigSaddled(bool value)
1318     {
1319         auto ptr = 13 in this.values;
1320         if(ptr && cast(MetadataBool)*ptr) (cast(MetadataBool)*ptr).value = value;
1321         else this.values[13] = new MetadataBool(value);
1322         return value;
1323     }
1324 
1325     @property uint carrotBoost()
1326     {
1327         auto ptr = 14 in this.values;
1328         if(ptr && cast(MetadataInt)*ptr) return (cast(MetadataInt)*ptr).value;
1329         return (uint).init;
1330     }
1331 
1332     @property uint carrotBoost(uint value)
1333     {
1334         auto ptr = 14 in this.values;
1335         if(ptr && cast(MetadataInt)*ptr) (cast(MetadataInt)*ptr).value = value;
1336         else this.values[14] = new MetadataInt(value);
1337         return value;
1338     }
1339 
1340     @property uint rabbitVariant()
1341     {
1342         auto ptr = 13 in this.values;
1343         if(ptr && cast(MetadataInt)*ptr) return (cast(MetadataInt)*ptr).value;
1344         return (uint).init;
1345     }
1346 
1347     @property uint rabbitVariant(uint value)
1348     {
1349         auto ptr = 13 in this.values;
1350         if(ptr && cast(MetadataInt)*ptr) (cast(MetadataInt)*ptr).value = value;
1351         else this.values[13] = new MetadataInt(value);
1352         return value;
1353     }
1354 
1355     @property bool standingUp()
1356     {
1357         auto ptr = 13 in this.values;
1358         if(ptr && cast(MetadataBool)*ptr) return (cast(MetadataBool)*ptr).value;
1359         return (bool).init;
1360     }
1361 
1362     @property bool standingUp(bool value)
1363     {
1364         auto ptr = 13 in this.values;
1365         if(ptr && cast(MetadataBool)*ptr) (cast(MetadataBool)*ptr).value = value;
1366         else this.values[13] = new MetadataBool(value);
1367         return value;
1368     }
1369 
1370     @property byte sheepFlagsAndColor()
1371     {
1372         auto ptr = 13 in this.values;
1373         if(ptr && cast(MetadataByte)*ptr) return (cast(MetadataByte)*ptr).value;
1374         return (byte).init;
1375     }
1376 
1377     @property byte sheepFlagsAndColor(byte value)
1378     {
1379         auto ptr = 13 in this.values;
1380         if(ptr && cast(MetadataByte)*ptr) (cast(MetadataByte)*ptr).value = value;
1381         else this.values[13] = new MetadataByte(value);
1382         return value;
1383     }
1384 
1385     @property byte tameableFlags()
1386     {
1387         auto ptr = 13 in this.values;
1388         if(ptr && cast(MetadataByte)*ptr) return (cast(MetadataByte)*ptr).value;
1389         return (byte).init;
1390     }
1391 
1392     @property byte tameableFlags(byte value)
1393     {
1394         auto ptr = 13 in this.values;
1395         if(ptr && cast(MetadataByte)*ptr) (cast(MetadataByte)*ptr).value = value;
1396         else this.values[13] = new MetadataByte(value);
1397         return value;
1398     }
1399 
1400     @property uint ocelotVariant()
1401     {
1402         auto ptr = 15 in this.values;
1403         if(ptr && cast(MetadataInt)*ptr) return (cast(MetadataInt)*ptr).value;
1404         return (uint).init;
1405     }
1406 
1407     @property uint ocelotVariant(uint value)
1408     {
1409         auto ptr = 15 in this.values;
1410         if(ptr && cast(MetadataInt)*ptr) (cast(MetadataInt)*ptr).value = value;
1411         else this.values[15] = new MetadataInt(value);
1412         return value;
1413     }
1414 
1415     @property uint parrotColor()
1416     {
1417         auto ptr = 15 in this.values;
1418         if(ptr && cast(MetadataInt)*ptr) return (cast(MetadataInt)*ptr).value;
1419         return (uint).init;
1420     }
1421 
1422     @property uint parrotColor(uint value)
1423     {
1424         auto ptr = 15 in this.values;
1425         if(ptr && cast(MetadataInt)*ptr) (cast(MetadataInt)*ptr).value = value;
1426         else this.values[15] = new MetadataInt(value);
1427         return value;
1428     }
1429 
1430     @property float wolfHealth()
1431     {
1432         auto ptr = 15 in this.values;
1433         if(ptr && cast(MetadataFloat)*ptr) return (cast(MetadataFloat)*ptr).value;
1434         return (float).init;
1435     }
1436 
1437     @property float wolfHealth(float value)
1438     {
1439         auto ptr = 15 in this.values;
1440         if(ptr && cast(MetadataFloat)*ptr) (cast(MetadataFloat)*ptr).value = value;
1441         else this.values[15] = new MetadataFloat(value);
1442         return value;
1443     }
1444 
1445     @property bool begging()
1446     {
1447         auto ptr = 16 in this.values;
1448         if(ptr && cast(MetadataBool)*ptr) return (cast(MetadataBool)*ptr).value;
1449         return (bool).init;
1450     }
1451 
1452     @property bool begging(bool value)
1453     {
1454         auto ptr = 16 in this.values;
1455         if(ptr && cast(MetadataBool)*ptr) (cast(MetadataBool)*ptr).value = value;
1456         else this.values[16] = new MetadataBool(value);
1457         return value;
1458     }
1459 
1460     @property uint collarColor()
1461     {
1462         auto ptr = 17 in this.values;
1463         if(ptr && cast(MetadataInt)*ptr) return (cast(MetadataInt)*ptr).value;
1464         return uint(14);
1465     }
1466 
1467     @property uint collarColor(uint value)
1468     {
1469         auto ptr = 17 in this.values;
1470         if(ptr && cast(MetadataInt)*ptr) (cast(MetadataInt)*ptr).value = value;
1471         else this.values[17] = new MetadataInt(value);
1472         return value;
1473     }
1474 
1475     @property uint profession()
1476     {
1477         auto ptr = 13 in this.values;
1478         if(ptr && cast(MetadataInt)*ptr) return (cast(MetadataInt)*ptr).value;
1479         return (uint).init;
1480     }
1481 
1482     @property uint profession(uint value)
1483     {
1484         auto ptr = 13 in this.values;
1485         if(ptr && cast(MetadataInt)*ptr) (cast(MetadataInt)*ptr).value = value;
1486         else this.values[13] = new MetadataInt(value);
1487         return value;
1488     }
1489 
1490     @property byte createdByPlayer()
1491     {
1492         auto ptr = 12 in this.values;
1493         if(ptr && cast(MetadataByte)*ptr) return (cast(MetadataByte)*ptr).value;
1494         return (byte).init;
1495     }
1496 
1497     @property byte createdByPlayer(byte value)
1498     {
1499         auto ptr = 12 in this.values;
1500         if(ptr && cast(MetadataByte)*ptr) (cast(MetadataByte)*ptr).value = value;
1501         else this.values[12] = new MetadataByte(value);
1502         return value;
1503     }
1504 
1505     @property byte snowmanFlags()
1506     {
1507         auto ptr = 12 in this.values;
1508         if(ptr && cast(MetadataByte)*ptr) return (cast(MetadataByte)*ptr).value;
1509         return (byte).init;
1510     }
1511 
1512     @property byte snowmanFlags(byte value)
1513     {
1514         auto ptr = 12 in this.values;
1515         if(ptr && cast(MetadataByte)*ptr) (cast(MetadataByte)*ptr).value = value;
1516         else this.values[12] = new MetadataByte(value);
1517         return value;
1518     }
1519 
1520     @property uint shulkerDirection()
1521     {
1522         auto ptr = 12 in this.values;
1523         if(ptr && cast(MetadataDirection)*ptr) return (cast(MetadataDirection)*ptr).value;
1524         return (uint).init;
1525     }
1526 
1527     @property uint shulkerDirection(uint value)
1528     {
1529         auto ptr = 12 in this.values;
1530         if(ptr && cast(MetadataDirection)*ptr) (cast(MetadataDirection)*ptr).value = value;
1531         else this.values[12] = new MetadataDirection(value);
1532         return value;
1533     }
1534 
1535     @property soupply.java393.types.OptionalPosition shulkerAttachment()
1536     {
1537         auto ptr = 13 in this.values;
1538         if(ptr && cast(MetadataOptionalPosition)*ptr) return (cast(MetadataOptionalPosition)*ptr).value;
1539         return (soupply.java393.types.OptionalPosition).init;
1540     }
1541 
1542     @property soupply.java393.types.OptionalPosition shulkerAttachment(soupply.java393.types.OptionalPosition value)
1543     {
1544         auto ptr = 13 in this.values;
1545         if(ptr && cast(MetadataOptionalPosition)*ptr) (cast(MetadataOptionalPosition)*ptr).value = value;
1546         else this.values[13] = new MetadataOptionalPosition(value);
1547         return value;
1548     }
1549 
1550     @property byte shulkerShieldHeight()
1551     {
1552         auto ptr = 14 in this.values;
1553         if(ptr && cast(MetadataByte)*ptr) return (cast(MetadataByte)*ptr).value;
1554         return (byte).init;
1555     }
1556 
1557     @property byte shulkerShieldHeight(byte value)
1558     {
1559         auto ptr = 14 in this.values;
1560         if(ptr && cast(MetadataByte)*ptr) (cast(MetadataByte)*ptr).value = value;
1561         else this.values[14] = new MetadataByte(value);
1562         return value;
1563     }
1564 
1565     @property byte shulkerColor()
1566     {
1567         auto ptr = 15 in this.values;
1568         if(ptr && cast(MetadataByte)*ptr) return (cast(MetadataByte)*ptr).value;
1569         return (byte).init;
1570     }
1571 
1572     @property byte shulkerColor(byte value)
1573     {
1574         auto ptr = 15 in this.values;
1575         if(ptr && cast(MetadataByte)*ptr) (cast(MetadataByte)*ptr).value = value;
1576         else this.values[15] = new MetadataByte(value);
1577         return value;
1578     }
1579 
1580     @property byte blazeOnFire()
1581     {
1582         auto ptr = 12 in this.values;
1583         if(ptr && cast(MetadataByte)*ptr) return (cast(MetadataByte)*ptr).value;
1584         return (byte).init;
1585     }
1586 
1587     @property byte blazeOnFire(byte value)
1588     {
1589         auto ptr = 12 in this.values;
1590         if(ptr && cast(MetadataByte)*ptr) (cast(MetadataByte)*ptr).value = value;
1591         else this.values[12] = new MetadataByte(value);
1592         return value;
1593     }
1594 
1595     @property uint creeperState()
1596     {
1597         auto ptr = 12 in this.values;
1598         if(ptr && cast(MetadataInt)*ptr) return (cast(MetadataInt)*ptr).value;
1599         return uint(-1);
1600     }
1601 
1602     @property uint creeperState(uint value)
1603     {
1604         auto ptr = 12 in this.values;
1605         if(ptr && cast(MetadataInt)*ptr) (cast(MetadataInt)*ptr).value = value;
1606         else this.values[12] = new MetadataInt(value);
1607         return value;
1608     }
1609 
1610     @property bool charged()
1611     {
1612         auto ptr = 13 in this.values;
1613         if(ptr && cast(MetadataBool)*ptr) return (cast(MetadataBool)*ptr).value;
1614         return (bool).init;
1615     }
1616 
1617     @property bool charged(bool value)
1618     {
1619         auto ptr = 13 in this.values;
1620         if(ptr && cast(MetadataBool)*ptr) (cast(MetadataBool)*ptr).value = value;
1621         else this.values[13] = new MetadataBool(value);
1622         return value;
1623     }
1624 
1625     @property bool ignited()
1626     {
1627         auto ptr = 14 in this.values;
1628         if(ptr && cast(MetadataBool)*ptr) return (cast(MetadataBool)*ptr).value;
1629         return (bool).init;
1630     }
1631 
1632     @property bool ignited(bool value)
1633     {
1634         auto ptr = 14 in this.values;
1635         if(ptr && cast(MetadataBool)*ptr) (cast(MetadataBool)*ptr).value = value;
1636         else this.values[14] = new MetadataBool(value);
1637         return value;
1638     }
1639 
1640     @property bool rectractingSpikes()
1641     {
1642         auto ptr = 12 in this.values;
1643         if(ptr && cast(MetadataBool)*ptr) return (cast(MetadataBool)*ptr).value;
1644         return (bool).init;
1645     }
1646 
1647     @property bool rectractingSpikes(bool value)
1648     {
1649         auto ptr = 12 in this.values;
1650         if(ptr && cast(MetadataBool)*ptr) (cast(MetadataBool)*ptr).value = value;
1651         else this.values[12] = new MetadataBool(value);
1652         return value;
1653     }
1654 
1655     @property uint guardianTarget()
1656     {
1657         auto ptr = 13 in this.values;
1658         if(ptr && cast(MetadataInt)*ptr) return (cast(MetadataInt)*ptr).value;
1659         return (uint).init;
1660     }
1661 
1662     @property uint guardianTarget(uint value)
1663     {
1664         auto ptr = 13 in this.values;
1665         if(ptr && cast(MetadataInt)*ptr) (cast(MetadataInt)*ptr).value = value;
1666         else this.values[13] = new MetadataInt(value);
1667         return value;
1668     }
1669 
1670     @property byte spell()
1671     {
1672         auto ptr = 12 in this.values;
1673         if(ptr && cast(MetadataByte)*ptr) return (cast(MetadataByte)*ptr).value;
1674         return (byte).init;
1675     }
1676 
1677     @property byte spell(byte value)
1678     {
1679         auto ptr = 12 in this.values;
1680         if(ptr && cast(MetadataByte)*ptr) (cast(MetadataByte)*ptr).value = value;
1681         else this.values[12] = new MetadataByte(value);
1682         return value;
1683     }
1684 
1685     @property byte attackMode()
1686     {
1687         auto ptr = 12 in this.values;
1688         if(ptr && cast(MetadataByte)*ptr) return (cast(MetadataByte)*ptr).value;
1689         return (byte).init;
1690     }
1691 
1692     @property byte attackMode(byte value)
1693     {
1694         auto ptr = 12 in this.values;
1695         if(ptr && cast(MetadataByte)*ptr) (cast(MetadataByte)*ptr).value = value;
1696         else this.values[12] = new MetadataByte(value);
1697         return value;
1698     }
1699 
1700     @property bool swingingArms()
1701     {
1702         auto ptr = 12 in this.values;
1703         if(ptr && cast(MetadataBool)*ptr) return (cast(MetadataBool)*ptr).value;
1704         return (bool).init;
1705     }
1706 
1707     @property bool swingingArms(bool value)
1708     {
1709         auto ptr = 12 in this.values;
1710         if(ptr && cast(MetadataBool)*ptr) (cast(MetadataBool)*ptr).value = value;
1711         else this.values[12] = new MetadataBool(value);
1712         return value;
1713     }
1714 
1715     @property byte climbing()
1716     {
1717         auto ptr = 12 in this.values;
1718         if(ptr && cast(MetadataByte)*ptr) return (cast(MetadataByte)*ptr).value;
1719         return (byte).init;
1720     }
1721 
1722     @property byte climbing(byte value)
1723     {
1724         auto ptr = 12 in this.values;
1725         if(ptr && cast(MetadataByte)*ptr) (cast(MetadataByte)*ptr).value = value;
1726         else this.values[12] = new MetadataByte(value);
1727         return value;
1728     }
1729 
1730     @property uint centerHeadTarget()
1731     {
1732         auto ptr = 12 in this.values;
1733         if(ptr && cast(MetadataInt)*ptr) return (cast(MetadataInt)*ptr).value;
1734         return (uint).init;
1735     }
1736 
1737     @property uint centerHeadTarget(uint value)
1738     {
1739         auto ptr = 12 in this.values;
1740         if(ptr && cast(MetadataInt)*ptr) (cast(MetadataInt)*ptr).value = value;
1741         else this.values[12] = new MetadataInt(value);
1742         return value;
1743     }
1744 
1745     @property uint leftHeadTarget()
1746     {
1747         auto ptr = 13 in this.values;
1748         if(ptr && cast(MetadataInt)*ptr) return (cast(MetadataInt)*ptr).value;
1749         return (uint).init;
1750     }
1751 
1752     @property uint leftHeadTarget(uint value)
1753     {
1754         auto ptr = 13 in this.values;
1755         if(ptr && cast(MetadataInt)*ptr) (cast(MetadataInt)*ptr).value = value;
1756         else this.values[13] = new MetadataInt(value);
1757         return value;
1758     }
1759 
1760     @property uint rightHeadTarget()
1761     {
1762         auto ptr = 14 in this.values;
1763         if(ptr && cast(MetadataInt)*ptr) return (cast(MetadataInt)*ptr).value;
1764         return (uint).init;
1765     }
1766 
1767     @property uint rightHeadTarget(uint value)
1768     {
1769         auto ptr = 14 in this.values;
1770         if(ptr && cast(MetadataInt)*ptr) (cast(MetadataInt)*ptr).value = value;
1771         else this.values[14] = new MetadataInt(value);
1772         return value;
1773     }
1774 
1775     @property uint invulnerableTime()
1776     {
1777         auto ptr = 15 in this.values;
1778         if(ptr && cast(MetadataInt)*ptr) return (cast(MetadataInt)*ptr).value;
1779         return (uint).init;
1780     }
1781 
1782     @property uint invulnerableTime(uint value)
1783     {
1784         auto ptr = 15 in this.values;
1785         if(ptr && cast(MetadataInt)*ptr) (cast(MetadataInt)*ptr).value = value;
1786         else this.values[15] = new MetadataInt(value);
1787         return value;
1788     }
1789 
1790     @property bool handsHeldUp()
1791     {
1792         auto ptr = 14 in this.values;
1793         if(ptr && cast(MetadataBool)*ptr) return (cast(MetadataBool)*ptr).value;
1794         return (bool).init;
1795     }
1796 
1797     @property bool handsHeldUp(bool value)
1798     {
1799         auto ptr = 14 in this.values;
1800         if(ptr && cast(MetadataBool)*ptr) (cast(MetadataBool)*ptr).value = value;
1801         else this.values[14] = new MetadataBool(value);
1802         return value;
1803     }
1804 
1805     @property bool converting()
1806     {
1807         auto ptr = 15 in this.values;
1808         if(ptr && cast(MetadataBool)*ptr) return (cast(MetadataBool)*ptr).value;
1809         return (bool).init;
1810     }
1811 
1812     @property bool converting(bool value)
1813     {
1814         auto ptr = 15 in this.values;
1815         if(ptr && cast(MetadataBool)*ptr) (cast(MetadataBool)*ptr).value = value;
1816         else this.values[15] = new MetadataBool(value);
1817         return value;
1818     }
1819 
1820     @property uint zombieVillagerProfession()
1821     {
1822         auto ptr = 16 in this.values;
1823         if(ptr && cast(MetadataInt)*ptr) return (cast(MetadataInt)*ptr).value;
1824         return (uint).init;
1825     }
1826 
1827     @property uint zombieVillagerProfession(uint value)
1828     {
1829         auto ptr = 16 in this.values;
1830         if(ptr && cast(MetadataInt)*ptr) (cast(MetadataInt)*ptr).value = value;
1831         else this.values[16] = new MetadataInt(value);
1832         return value;
1833     }
1834 
1835     @property uint carriedBlock()
1836     {
1837         auto ptr = 12 in this.values;
1838         if(ptr && cast(MetadataBlock)*ptr) return (cast(MetadataBlock)*ptr).value;
1839         return (uint).init;
1840     }
1841 
1842     @property uint carriedBlock(uint value)
1843     {
1844         auto ptr = 12 in this.values;
1845         if(ptr && cast(MetadataBlock)*ptr) (cast(MetadataBlock)*ptr).value = value;
1846         else this.values[12] = new MetadataBlock(value);
1847         return value;
1848     }
1849 
1850     @property bool screaming()
1851     {
1852         auto ptr = 13 in this.values;
1853         if(ptr && cast(MetadataBool)*ptr) return (cast(MetadataBool)*ptr).value;
1854         return (bool).init;
1855     }
1856 
1857     @property bool screaming(bool value)
1858     {
1859         auto ptr = 13 in this.values;
1860         if(ptr && cast(MetadataBool)*ptr) (cast(MetadataBool)*ptr).value = value;
1861         else this.values[13] = new MetadataBool(value);
1862         return value;
1863     }
1864 
1865     @property uint dragonPhase()
1866     {
1867         auto ptr = 12 in this.values;
1868         if(ptr && cast(MetadataInt)*ptr) return (cast(MetadataInt)*ptr).value;
1869         return (uint).init;
1870     }
1871 
1872     @property uint dragonPhase(uint value)
1873     {
1874         auto ptr = 12 in this.values;
1875         if(ptr && cast(MetadataInt)*ptr) (cast(MetadataInt)*ptr).value = value;
1876         else this.values[12] = new MetadataInt(value);
1877         return value;
1878     }
1879 
1880     @property bool ghastAttacking()
1881     {
1882         auto ptr = 12 in this.values;
1883         if(ptr && cast(MetadataBool)*ptr) return (cast(MetadataBool)*ptr).value;
1884         return (bool).init;
1885     }
1886 
1887     @property bool ghastAttacking(bool value)
1888     {
1889         auto ptr = 12 in this.values;
1890         if(ptr && cast(MetadataBool)*ptr) (cast(MetadataBool)*ptr).value = value;
1891         else this.values[12] = new MetadataBool(value);
1892         return value;
1893     }
1894 
1895     @property uint slimeSize()
1896     {
1897         auto ptr = 12 in this.values;
1898         if(ptr && cast(MetadataInt)*ptr) return (cast(MetadataInt)*ptr).value;
1899         return uint(1);
1900     }
1901 
1902     @property uint slimeSize(uint value)
1903     {
1904         auto ptr = 12 in this.values;
1905         if(ptr && cast(MetadataInt)*ptr) (cast(MetadataInt)*ptr).value = value;
1906         else this.values[12] = new MetadataInt(value);
1907         return value;
1908     }
1909 
1910     @property uint shakingPower()
1911     {
1912         auto ptr = 6 in this.values;
1913         if(ptr && cast(MetadataInt)*ptr) return (cast(MetadataInt)*ptr).value;
1914         return (uint).init;
1915     }
1916 
1917     @property uint shakingPower(uint value)
1918     {
1919         auto ptr = 6 in this.values;
1920         if(ptr && cast(MetadataInt)*ptr) (cast(MetadataInt)*ptr).value = value;
1921         else this.values[6] = new MetadataInt(value);
1922         return value;
1923     }
1924 
1925     @property uint shakingDirection()
1926     {
1927         auto ptr = 7 in this.values;
1928         if(ptr && cast(MetadataInt)*ptr) return (cast(MetadataInt)*ptr).value;
1929         return (uint).init;
1930     }
1931 
1932     @property uint shakingDirection(uint value)
1933     {
1934         auto ptr = 7 in this.values;
1935         if(ptr && cast(MetadataInt)*ptr) (cast(MetadataInt)*ptr).value = value;
1936         else this.values[7] = new MetadataInt(value);
1937         return value;
1938     }
1939 
1940     @property float shakingMultiplier()
1941     {
1942         auto ptr = 8 in this.values;
1943         if(ptr && cast(MetadataFloat)*ptr) return (cast(MetadataFloat)*ptr).value;
1944         return float(0);
1945     }
1946 
1947     @property float shakingMultiplier(float value)
1948     {
1949         auto ptr = 8 in this.values;
1950         if(ptr && cast(MetadataFloat)*ptr) (cast(MetadataFloat)*ptr).value = value;
1951         else this.values[8] = new MetadataFloat(value);
1952         return value;
1953     }
1954 
1955     @property uint minecartBlock()
1956     {
1957         auto ptr = 9 in this.values;
1958         if(ptr && cast(MetadataInt)*ptr) return (cast(MetadataInt)*ptr).value;
1959         return (uint).init;
1960     }
1961 
1962     @property uint minecartBlock(uint value)
1963     {
1964         auto ptr = 9 in this.values;
1965         if(ptr && cast(MetadataInt)*ptr) (cast(MetadataInt)*ptr).value = value;
1966         else this.values[9] = new MetadataInt(value);
1967         return value;
1968     }
1969 
1970     @property uint minecartBlockPosition()
1971     {
1972         auto ptr = 10 in this.values;
1973         if(ptr && cast(MetadataInt)*ptr) return (cast(MetadataInt)*ptr).value;
1974         return uint(6);
1975     }
1976 
1977     @property uint minecartBlockPosition(uint value)
1978     {
1979         auto ptr = 10 in this.values;
1980         if(ptr && cast(MetadataInt)*ptr) (cast(MetadataInt)*ptr).value = value;
1981         else this.values[10] = new MetadataInt(value);
1982         return value;
1983     }
1984 
1985     @property bool minecartCustomBlock()
1986     {
1987         auto ptr = 11 in this.values;
1988         if(ptr && cast(MetadataBool)*ptr) return (cast(MetadataBool)*ptr).value;
1989         return (bool).init;
1990     }
1991 
1992     @property bool minecartCustomBlock(bool value)
1993     {
1994         auto ptr = 11 in this.values;
1995         if(ptr && cast(MetadataBool)*ptr) (cast(MetadataBool)*ptr).value = value;
1996         else this.values[11] = new MetadataBool(value);
1997         return value;
1998     }
1999 
2000     @property bool furnacePowered()
2001     {
2002         auto ptr = 12 in this.values;
2003         if(ptr && cast(MetadataBool)*ptr) return (cast(MetadataBool)*ptr).value;
2004         return (bool).init;
2005     }
2006 
2007     @property bool furnacePowered(bool value)
2008     {
2009         auto ptr = 12 in this.values;
2010         if(ptr && cast(MetadataBool)*ptr) (cast(MetadataBool)*ptr).value = value;
2011         else this.values[12] = new MetadataBool(value);
2012         return value;
2013     }
2014 
2015     @property string command()
2016     {
2017         auto ptr = 12 in this.values;
2018         if(ptr && cast(MetadataString)*ptr) return (cast(MetadataString)*ptr).value;
2019         return (string).init;
2020     }
2021 
2022     @property string command(string value)
2023     {
2024         auto ptr = 12 in this.values;
2025         if(ptr && cast(MetadataString)*ptr) (cast(MetadataString)*ptr).value = value;
2026         else this.values[12] = new MetadataString(value);
2027         return value;
2028     }
2029 
2030     @property string lastOutput()
2031     {
2032         auto ptr = 13 in this.values;
2033         if(ptr && cast(MetadataChat)*ptr) return (cast(MetadataChat)*ptr).value;
2034         return (string).init;
2035     }
2036 
2037     @property string lastOutput(string value)
2038     {
2039         auto ptr = 13 in this.values;
2040         if(ptr && cast(MetadataChat)*ptr) (cast(MetadataChat)*ptr).value = value;
2041         else this.values[13] = new MetadataChat(value);
2042         return value;
2043     }
2044 
2045     @property uint fuseTime()
2046     {
2047         auto ptr = 6 in this.values;
2048         if(ptr && cast(MetadataInt)*ptr) return (cast(MetadataInt)*ptr).value;
2049         return (uint).init;
2050     }
2051 
2052     @property uint fuseTime(uint value)
2053     {
2054         auto ptr = 6 in this.values;
2055         if(ptr && cast(MetadataInt)*ptr) (cast(MetadataInt)*ptr).value = value;
2056         else this.values[6] = new MetadataInt(value);
2057         return value;
2058     }
2059 
2060     @property uint phantomSize()
2061     {
2062         auto ptr = 12 in this.values;
2063         if(ptr && cast(MetadataInt)*ptr) return (cast(MetadataInt)*ptr).value;
2064         return (uint).init;
2065     }
2066 
2067     @property uint phantomSize(uint value)
2068     {
2069         auto ptr = 12 in this.values;
2070         if(ptr && cast(MetadataInt)*ptr) (cast(MetadataInt)*ptr).value = value;
2071         else this.values[12] = new MetadataInt(value);
2072         return value;
2073     }
2074 
2075     @property bool fromBucket()
2076     {
2077         auto ptr = 12 in this.values;
2078         if(ptr && cast(MetadataBool)*ptr) return (cast(MetadataBool)*ptr).value;
2079         return (bool).init;
2080     }
2081 
2082     @property bool fromBucket(bool value)
2083     {
2084         auto ptr = 12 in this.values;
2085         if(ptr && cast(MetadataBool)*ptr) (cast(MetadataBool)*ptr).value = value;
2086         else this.values[12] = new MetadataBool(value);
2087         return value;
2088     }
2089 
2090     @property uint puffState()
2091     {
2092         auto ptr = 13 in this.values;
2093         if(ptr && cast(MetadataInt)*ptr) return (cast(MetadataInt)*ptr).value;
2094         return (uint).init;
2095     }
2096 
2097     @property uint puffState(uint value)
2098     {
2099         auto ptr = 13 in this.values;
2100         if(ptr && cast(MetadataInt)*ptr) (cast(MetadataInt)*ptr).value = value;
2101         else this.values[13] = new MetadataInt(value);
2102         return value;
2103     }
2104 
2105     @property uint tropicalFishVariant()
2106     {
2107         auto ptr = 13 in this.values;
2108         if(ptr && cast(MetadataInt)*ptr) return (cast(MetadataInt)*ptr).value;
2109         return (uint).init;
2110     }
2111 
2112     @property uint tropicalFishVariant(uint value)
2113     {
2114         auto ptr = 13 in this.values;
2115         if(ptr && cast(MetadataInt)*ptr) (cast(MetadataInt)*ptr).value = value;
2116         else this.values[13] = new MetadataInt(value);
2117         return value;
2118     }
2119 
2120     @property ulong homePosition()
2121     {
2122         auto ptr = 13 in this.values;
2123         if(ptr && cast(MetadataPosition)*ptr) return (cast(MetadataPosition)*ptr).value;
2124         return (ulong).init;
2125     }
2126 
2127     @property ulong homePosition(ulong value)
2128     {
2129         auto ptr = 13 in this.values;
2130         if(ptr && cast(MetadataPosition)*ptr) (cast(MetadataPosition)*ptr).value = value;
2131         else this.values[13] = new MetadataPosition(value);
2132         return value;
2133     }
2134 
2135     @property bool hasEgg()
2136     {
2137         auto ptr = 14 in this.values;
2138         if(ptr && cast(MetadataBool)*ptr) return (cast(MetadataBool)*ptr).value;
2139         return (bool).init;
2140     }
2141 
2142     @property bool hasEgg(bool value)
2143     {
2144         auto ptr = 14 in this.values;
2145         if(ptr && cast(MetadataBool)*ptr) (cast(MetadataBool)*ptr).value = value;
2146         else this.values[14] = new MetadataBool(value);
2147         return value;
2148     }
2149 
2150     @property bool layingEgg()
2151     {
2152         auto ptr = 15 in this.values;
2153         if(ptr && cast(MetadataBool)*ptr) return (cast(MetadataBool)*ptr).value;
2154         return (bool).init;
2155     }
2156 
2157     @property bool layingEgg(bool value)
2158     {
2159         auto ptr = 15 in this.values;
2160         if(ptr && cast(MetadataBool)*ptr) (cast(MetadataBool)*ptr).value = value;
2161         else this.values[15] = new MetadataBool(value);
2162         return value;
2163     }
2164 
2165     @property ulong travelPos()
2166     {
2167         auto ptr = 16 in this.values;
2168         if(ptr && cast(MetadataPosition)*ptr) return (cast(MetadataPosition)*ptr).value;
2169         return (ulong).init;
2170     }
2171 
2172     @property ulong travelPos(ulong value)
2173     {
2174         auto ptr = 16 in this.values;
2175         if(ptr && cast(MetadataPosition)*ptr) (cast(MetadataPosition)*ptr).value = value;
2176         else this.values[16] = new MetadataPosition(value);
2177         return value;
2178     }
2179 
2180     @property bool goingHome()
2181     {
2182         auto ptr = 17 in this.values;
2183         if(ptr && cast(MetadataBool)*ptr) return (cast(MetadataBool)*ptr).value;
2184         return (bool).init;
2185     }
2186 
2187     @property bool goingHome(bool value)
2188     {
2189         auto ptr = 17 in this.values;
2190         if(ptr && cast(MetadataBool)*ptr) (cast(MetadataBool)*ptr).value = value;
2191         else this.values[17] = new MetadataBool(value);
2192         return value;
2193     }
2194 
2195     @property bool traveling()
2196     {
2197         auto ptr = 18 in this.values;
2198         if(ptr && cast(MetadataBool)*ptr) return (cast(MetadataBool)*ptr).value;
2199         return (bool).init;
2200     }
2201 
2202     @property bool traveling(bool value)
2203     {
2204         auto ptr = 18 in this.values;
2205         if(ptr && cast(MetadataBool)*ptr) (cast(MetadataBool)*ptr).value = value;
2206         else this.values[18] = new MetadataBool(value);
2207         return value;
2208     }
2209 
2210     @property bool hasTarget()
2211     {
2212         auto ptr = 15 in this.values;
2213         if(ptr && cast(MetadataBool)*ptr) return (cast(MetadataBool)*ptr).value;
2214         return (bool).init;
2215     }
2216 
2217     @property bool hasTarget(bool value)
2218     {
2219         auto ptr = 15 in this.values;
2220         if(ptr && cast(MetadataBool)*ptr) (cast(MetadataBool)*ptr).value = value;
2221         else this.values[15] = new MetadataBool(value);
2222         return value;
2223     }
2224 
2225 }