|
@@ -10,6 +10,7 @@ import net.minecraft.entity.*;
|
|
|
import net.minecraft.entity.ai.attributes.Attributes;
|
|
|
import net.minecraft.entity.item.*;
|
|
|
import net.minecraft.entity.monster.CreeperEntity;
|
|
|
+import net.minecraft.entity.passive.horse.AbstractHorseEntity;
|
|
|
import net.minecraft.entity.passive.SheepEntity;
|
|
|
import net.minecraft.entity.passive.TameableEntity;
|
|
|
import net.minecraft.entity.player.PlayerEntity;
|
|
@@ -230,16 +231,36 @@ public class EntityCommands {
|
|
|
(sc, in) -> ((SheepEntity) in[0].get(sc)).getFleeceColor().toString());
|
|
|
sm.registerConsumer("creeper.explode",
|
|
|
(sc, in) -> ((CreeperEntity) in[0].get(sc)).ignite());
|
|
|
- sm.registerFunction("pet.istamed", (sc, in) -> ((TameableEntity) in[0].get(sc)).isTamed());
|
|
|
+ sm.registerFunction("pet.istamed", (sc, in) -> {
|
|
|
+ Object o = in[0].get(sc);
|
|
|
+ if(o instanceof AbstractHorseEntity) {
|
|
|
+ return ((AbstractHorseEntity) o).isTame();
|
|
|
+ }
|
|
|
+ return ((TameableEntity) o).isTamed();
|
|
|
+ });
|
|
|
sm.registerConsumer("pet.settamed", (sc, in) -> {
|
|
|
- TameableEntity t = (TameableEntity) in[0].get(sc);
|
|
|
+ Object o = in[0].get(sc);
|
|
|
boolean b = in[1].getBoolean(sc);
|
|
|
- if(b) {
|
|
|
+ if(o instanceof AbstractHorseEntity) {
|
|
|
+ AbstractHorseEntity h = (AbstractHorseEntity) o;
|
|
|
+ if(in.length >= 3) {
|
|
|
+ h.setTamedBy((PlayerEntity) in[2].get(sc));
|
|
|
+ }
|
|
|
+ h.setHorseTamed(b);
|
|
|
+ return;
|
|
|
+ }
|
|
|
+ TameableEntity t = (TameableEntity) o;
|
|
|
+ if(in.length >= 3) {
|
|
|
t.setTamedBy((PlayerEntity) in[2].get(sc));
|
|
|
}
|
|
|
t.setTamed(b);
|
|
|
});
|
|
|
- sm.registerFunction("pet.getowner",
|
|
|
- (sc, in) -> ((TameableEntity) in[0].get(sc)).getOwner());
|
|
|
+ sm.registerFunction("pet.getowner", (sc, in) -> {
|
|
|
+ Object o = in[0].get(sc);
|
|
|
+ if(o instanceof AbstractHorseEntity) {
|
|
|
+ return ((AbstractHorseEntity) o).getOwnerUniqueId();
|
|
|
+ }
|
|
|
+ return ((TameableEntity) in[0].get(sc)).getOwnerId();
|
|
|
+ });
|
|
|
}
|
|
|
}
|