33
33
import org .bukkit .entity .ArmorStand ;
34
34
import org .bukkit .entity .Bat ;
35
35
import org .bukkit .entity .Boat ;
36
+ import org .bukkit .entity .Breedable ;
36
37
import org .bukkit .entity .ChestedHorse ;
37
38
import org .bukkit .entity .EnderDragon ;
38
39
import org .bukkit .entity .Entity ;
@@ -165,15 +166,15 @@ public ReplicatingEntityWrapper(Entity entity, short depth) {
165
166
//this.horse.style = horse.getStyle();
166
167
//this.horse.color = horse.getColor();
167
168
storeTameable (horse );
168
- storeAgeable (horse );
169
+ storeBreedable (horse );
169
170
storeLiving (horse );
170
171
storeInventory (horse );
171
172
return ;
172
173
}
173
174
// END INVENTORY HOLDER //
174
175
case "WOLF" , "OCELOT" -> {
175
176
storeTameable ((Tameable ) entity );
176
- storeAgeable (( Ageable ) entity );
177
+ storeBreedable (( Breedable ) entity );
177
178
storeLiving ((LivingEntity ) entity );
178
179
return ;
179
180
}
@@ -187,18 +188,18 @@ public ReplicatingEntityWrapper(Entity entity, short depth) {
187
188
this .dataByte = (byte ) 0 ;
188
189
}
189
190
this .dataByte2 = sheep .getColor ().getDyeData ();
190
- storeAgeable (sheep );
191
+ storeBreedable (sheep );
191
192
storeLiving (sheep );
192
193
return ;
193
194
}
194
195
case "VILLAGER" , "CHICKEN" , "COW" , "MUSHROOM_COW" , "PIG" , "TURTLE" , "POLAR_BEAR" -> {
195
- storeAgeable (( Ageable ) entity );
196
+ storeBreedable (( Breedable ) entity );
196
197
storeLiving ((LivingEntity ) entity );
197
198
return ;
198
199
}
199
200
case "RABBIT" -> {
200
201
this .dataByte = getOrdinal (Rabbit .Type .values (), ((Rabbit ) entity ).getRabbitType ());
201
- storeAgeable (( Ageable ) entity );
202
+ storeBreedable (( Breedable ) entity );
202
203
storeLiving ((LivingEntity ) entity );
203
204
return ;
204
205
}
@@ -382,6 +383,11 @@ private void restoreTameable(Tameable entity) {
382
383
}
383
384
}
384
385
386
+ /**
387
+ * @deprecated Use {@link #restoreBreedable(Breedable)} instead
388
+ * @since 7.1.0
389
+ */
390
+ @ Deprecated (forRemoval = true , since = "7.1.0" )
385
391
private void restoreAgeable (Ageable entity ) {
386
392
if (!this .aged .adult ) {
387
393
entity .setBaby ();
@@ -392,13 +398,41 @@ private void restoreAgeable(Ageable entity) {
392
398
}
393
399
}
394
400
401
+ /**
402
+ * @deprecated Use {@link #storeBreedable(Breedable)} instead
403
+ * @since 7.1.0
404
+ */
405
+ @ Deprecated (forRemoval = true , since = "7.1.0" )
395
406
public void storeAgeable (Ageable aged ) {
396
407
this .aged = new AgeableStats ();
397
408
this .aged .age = aged .getAge ();
398
409
this .aged .locked = aged .getAgeLock ();
399
410
this .aged .adult = aged .isAdult ();
400
411
}
401
412
413
+ /**
414
+ * @since 7.1.0
415
+ */
416
+ private void restoreBreedable (Breedable entity ) {
417
+ if (!this .aged .adult ) {
418
+ entity .setBaby ();
419
+ }
420
+ entity .setAgeLock (this .aged .locked );
421
+ if (this .aged .age > 0 ) {
422
+ entity .setAge (this .aged .age );
423
+ }
424
+ }
425
+
426
+ /**
427
+ * @since 7.1.0
428
+ */
429
+ private void storeBreedable (Breedable breedable ) {
430
+ this .aged = new AgeableStats ();
431
+ this .aged .age = breedable .getAge ();
432
+ this .aged .locked = breedable .getAgeLock ();
433
+ this .aged .adult = breedable .isAdult ();
434
+ }
435
+
402
436
public void storeTameable (Tameable tamed ) {
403
437
this .tamed = new TameableStats ();
404
438
this .tamed .owner = tamed .getOwner ();
@@ -502,15 +536,15 @@ public Entity spawn(World world, int xOffset, int zOffset) {
502
536
//horse.setStyle(this.horse.style);
503
537
//horse.setColor(this.horse.color);
504
538
restoreTameable (horse );
505
- restoreAgeable (horse );
539
+ restoreBreedable (horse );
506
540
restoreLiving (horse );
507
541
restoreInventory (horse );
508
542
return entity ;
509
543
}
510
544
// END INVENTORY HOLDER //
511
545
case "WOLF" , "OCELOT" -> {
512
546
restoreTameable ((Tameable ) entity );
513
- restoreAgeable (( Ageable ) entity );
547
+ restoreBreedable (( Breedable ) entity );
514
548
restoreLiving ((LivingEntity ) entity );
515
549
return entity ;
516
550
}
@@ -523,12 +557,12 @@ public Entity spawn(World world, int xOffset, int zOffset) {
523
557
if (this .dataByte2 != 0 ) {
524
558
sheep .setColor (DyeColor .getByDyeData (this .dataByte2 ));
525
559
}
526
- restoreAgeable (sheep );
560
+ restoreBreedable (sheep );
527
561
restoreLiving (sheep );
528
562
return sheep ;
529
563
}
530
564
case "VILLAGER" , "CHICKEN" , "COW" , "TURTLE" , "POLAR_BEAR" , "MUSHROOM_COW" , "PIG" -> {
531
- restoreAgeable (( Ageable ) entity );
565
+ restoreBreedable (( Breedable ) entity );
532
566
restoreLiving ((LivingEntity ) entity );
533
567
return entity ;
534
568
}
@@ -537,7 +571,7 @@ public Entity spawn(World world, int xOffset, int zOffset) {
537
571
if (this .dataByte != 0 ) {
538
572
((Rabbit ) entity ).setRabbitType (Rabbit .Type .values ()[this .dataByte ]);
539
573
}
540
- restoreAgeable (( Ageable ) entity );
574
+ restoreBreedable (( Breedable ) entity );
541
575
restoreLiving ((LivingEntity ) entity );
542
576
return entity ;
543
577
}
0 commit comments