From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Jake Potrebic <jake.m.potrebic@gmail.com> Date: Fri, 18 Mar 2022 21:15:55 -0700 Subject: [PATCH] Add EntityDyeEvent and CollarColorable interface diff --git a/src/main/java/net/minecraft/world/entity/animal/Cat.java b/src/main/java/net/minecraft/world/entity/animal/Cat.java index 0000000000000000000000000000000000000000..0000000000000000000000000000000000000000 100644 --- a/src/main/java/net/minecraft/world/entity/animal/Cat.java +++ b/src/main/java/net/minecraft/world/entity/animal/Cat.java @@ -0,0 +0,0 @@ public class Cat extends TamableAnimal implements VariantHolder<Holder<CatVarian DyeColor enumcolor = itemdye.getDyeColor(); if (enumcolor != this.getCollarColor()) { + // Paper start - Add EntityDyeEvent and CollarColorable interface + final io.papermc.paper.event.entity.EntityDyeEvent event = new io.papermc.paper.event.entity.EntityDyeEvent(this.getBukkitEntity(), org.bukkit.DyeColor.getByWoolData((byte) enumcolor.getId()), ((net.minecraft.server.level.ServerPlayer) player).getBukkitEntity()); + if (!event.callEvent()) { + return InteractionResult.FAIL; + } + enumcolor = DyeColor.byId(event.getColor().getWoolData()); + // Paper end - Add EntityDyeEvent and CollarColorable interface if (!this.level().isClientSide()) { this.setCollarColor(enumcolor); itemstack.consume(1, player); diff --git a/src/main/java/net/minecraft/world/entity/animal/Wolf.java b/src/main/java/net/minecraft/world/entity/animal/Wolf.java index 0000000000000000000000000000000000000000..0000000000000000000000000000000000000000 100644 --- a/src/main/java/net/minecraft/world/entity/animal/Wolf.java +++ b/src/main/java/net/minecraft/world/entity/animal/Wolf.java @@ -0,0 +0,0 @@ public class Wolf extends TamableAnimal implements NeutralMob, VariantHolder<Hol DyeColor enumcolor = itemdye.getDyeColor(); if (enumcolor != this.getCollarColor()) { + // Paper start - Add EntityDyeEvent and CollarColorable interface + final io.papermc.paper.event.entity.EntityDyeEvent event = new io.papermc.paper.event.entity.EntityDyeEvent(this.getBukkitEntity(), org.bukkit.DyeColor.getByWoolData((byte) enumcolor.getId()), ((net.minecraft.server.level.ServerPlayer) player).getBukkitEntity()); + if (!event.callEvent()) { + return InteractionResult.FAIL; + } + enumcolor = DyeColor.byId(event.getColor().getWoolData()); + // Paper end - Add EntityDyeEvent and CollarColorable interface + this.setCollarColor(enumcolor); itemstack.consume(1, player); return InteractionResult.SUCCESS;