geforkt von Mirrors/Paper
44 Zeilen
3.1 KiB
Diff
44 Zeilen
3.1 KiB
Diff
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 d44807c16712afd37efdbf434d1afb12a7c3d343..2ed442c8d36f285420cf84a956e90b6036384ce0 100644
|
|
--- a/src/main/java/net/minecraft/world/entity/animal/Cat.java
|
|
+++ b/src/main/java/net/minecraft/world/entity/animal/Cat.java
|
|
@@ -378,6 +378,13 @@ 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 22e37ac785340e2521f69a144a761732ce0a1a3f..31d7beca9797ab1a26792c3e30171a751c3846b1 100644
|
|
--- a/src/main/java/net/minecraft/world/entity/animal/Wolf.java
|
|
+++ b/src/main/java/net/minecraft/world/entity/animal/Wolf.java
|
|
@@ -452,6 +452,14 @@ 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;
|