mirror of
https://github.com/PurpurMC/Purpur.git
synced 2026-02-17 16:37:43 +01:00
Upstream has released updates that appear to apply and compile correctly Paper Changes: PaperMC/Paper@a2c9f58a Update to 1.21.11-pre3 (#13194) PaperMC/Paper@168287b2 Update exact choice recipe patch (#13346) PaperMC/Paper@354a5d54 [ci/skip] Add missing Nullable annotation for KineticWeapon.Builder methods (#13347) PaperMC/Paper@df4b6681 Restore legacy command restrictions PaperMC/Paper@2efb4e7a Merge branch 'ver/1.21.10' PaperMC/Paper@fdfdec66 Trigger build after merge commit PaperMC/Paper@6348ac89 Schedule PlayerSpawnFinder chunk callbacks to mainThreadProcessor instead of server queue fixes #13354 PaperMC/Paper@b786cbe8 Update to 1.21.11-pre4 (#13357) PaperMC/Paper@889c6617 Flush region storage if configured for ChunkMap#synchronize PaperMC/Paper@c7a138b0 Remove ItemStack mutation on drop methods (#11831) PaperMC/Paper@1d09b617 Fix ItemType#isEdible to also check for DataComponents#CONSUMABLE (#13348) PaperMC/Paper@84a789b2 Add Decorated Pot wobble API (#12994) PaperMC/Paper@ec0ad8b9 Update to 1.21.11-pre5 PaperMC/Paper@ffce96cf Fix wrong translation key in /give command (#13364) PaperMC/Paper@1cb31fd3 Update to 1.21.11-rc1 PaperMC/Paper@51c1b16b Optimize getEntityCount by directly accessing Moonrise data structures
66 lines
2.8 KiB
Diff
66 lines
2.8 KiB
Diff
From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
|
|
From: William Blake Galbreath <Blake.Galbreath@GMail.com>
|
|
Date: Sun, 5 Jul 2020 22:19:49 -0500
|
|
Subject: [PATCH] Ridables
|
|
|
|
|
|
diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftEntity.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftEntity.java
|
|
index 2f940ec42f4d657e40f4da1d974f46c87837a48c..da588e4622aac635ecc2205ea09ceb9722cd59c9 100644
|
|
--- a/src/main/java/org/bukkit/craftbukkit/entity/CraftEntity.java
|
|
+++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftEntity.java
|
|
@@ -1343,4 +1343,26 @@ public abstract class CraftEntity implements org.bukkit.entity.Entity {
|
|
return this.entity.get(io.papermc.paper.datacomponent.PaperDataComponentType.bukkitToMinecraft(type)) != null;
|
|
}
|
|
|
|
+ // Purpur start - Ridables
|
|
+ @Override
|
|
+ public org.bukkit.entity.Player getRider() {
|
|
+ net.minecraft.world.entity.player.Player rider = getHandle().getRider();
|
|
+ return rider != null ? (org.bukkit.entity.Player) rider.getBukkitEntity() : null;
|
|
+ }
|
|
+
|
|
+ @Override
|
|
+ public boolean hasRider() {
|
|
+ return getHandle().getRider() != null;
|
|
+ }
|
|
+
|
|
+ @Override
|
|
+ public boolean isRidable() {
|
|
+ return getHandle().isRidable();
|
|
+ }
|
|
+
|
|
+ @Override
|
|
+ public boolean isRidableInWater() {
|
|
+ return !getHandle().dismountsUnderwater();
|
|
+ }
|
|
+ // Purpur end - Ridables
|
|
}
|
|
diff --git a/src/main/java/org/bukkit/craftbukkit/event/CraftEventFactory.java b/src/main/java/org/bukkit/craftbukkit/event/CraftEventFactory.java
|
|
index 0cc84ce2074734a910599cdc66d7ddad3b081a76..690181c032667326c2e9c7edf678b2cdcd319c64 100644
|
|
--- a/src/main/java/org/bukkit/craftbukkit/event/CraftEventFactory.java
|
|
+++ b/src/main/java/org/bukkit/craftbukkit/event/CraftEventFactory.java
|
|
@@ -653,6 +653,15 @@ public class CraftEventFactory {
|
|
}
|
|
craftServer.getPluginManager().callEvent(event);
|
|
|
|
+ // Purpur start - Ridables
|
|
+ if (player != null) {
|
|
+ switch (action) {
|
|
+ case LEFT_CLICK_BLOCK, LEFT_CLICK_AIR -> player.processClick(InteractionHand.MAIN_HAND);
|
|
+ case RIGHT_CLICK_BLOCK, RIGHT_CLICK_AIR -> player.processClick(InteractionHand.OFF_HAND);
|
|
+ }
|
|
+ }
|
|
+ // Purpur end - Ridables
|
|
+
|
|
return event;
|
|
}
|
|
|
|
@@ -1174,6 +1183,7 @@ public class CraftEventFactory {
|
|
EntityDamageEvent event;
|
|
if (damager != null) {
|
|
event = new EntityDamageByEntityEvent(damager.getBukkitEntity(), damagee.getBukkitEntity(), cause, bukkitDamageSource, modifiers, modifierFunctions, critical);
|
|
+ damager.processClick(InteractionHand.MAIN_HAND); // Purpur - Ridables
|
|
} else {
|
|
event = new EntityDamageEvent(damagee.getBukkitEntity(), cause, bukkitDamageSource, modifiers, modifierFunctions);
|
|
}
|