Files
Purpur/purpur-server/paper-patches/features/0002-Ridables.patch
granny 110b3a7813 Updated Upstream (Paper)
Upstream has released updates that appear to apply and compile correctly

Paper Changes:
PaperMC/Paper@dfc38843 deprecate bubble column methods
PaperMC/Paper@480b2ed0 use more specific codecs in click event actions
PaperMC/Paper@e21bf450 fix chunk-gc plugin ticket config
PaperMC/Paper@32fef5d2 do the fix in Ticket record getter instead
PaperMC/Paper@0d8dad65 Quick cursory update of ItemStackDataComponentTest
PaperMC/Paper@0f1f084b Update ItemStackDataComponentEqualsTest
PaperMC/Paper@34dfd5e8 add perm for test command, fix some tests
PaperMC/Paper@740abe1a Update CraftSmithingTransformRecipe
PaperMC/Paper@de93fda5 Merge branch 'update/1.21.5' of github.com:PaperMC/Paper into update/1.21.5
PaperMC/Paper@c02ad46d Update SmithingTripRecipe
PaperMC/Paper@0a5ea70a Also bundle mc source change from last commit
PaperMC/Paper@e7534177 Some marginal work on DataComponents
PaperMC/Paper@db35db76 Implement legacy custom biome
PaperMC/Paper@18b06e38 Implement plugin tickets
PaperMC/Paper@c7b22702 Implement custom legacy biome
PaperMC/Paper@77f07c89 Call drop events for dropping items
PaperMC/Paper@eac69a96 Pray my thesis is better than this
PaperMC/Paper@c5231f91 Update to 1.21.5
PaperMC/Paper@a3f71b0f update some magic values
PaperMC/Paper@704cc38c Add some missing adapters
PaperMC/Paper@536b9b4b fix some more tests
PaperMC/Paper@985ebcfe Quick handling for ChickenVariant data component, remove dupe
PaperMC/Paper@39eafa2a implement wolf sound variants
PaperMC/Paper@c78f5631 make class node tests have a display name
PaperMC/Paper@3be8a83c Allow picking items from inventory
PaperMC/Paper@95beb8c0 register wolf sound variant
2025-03-25 22:20:43 -07:00

67 lines
2.7 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 1a4f42c9e6012a6a074c9d5451d8dc11530a5c5b..67b9963afd91af84459d439697f6230fd67722b4 100644
--- a/src/main/java/org/bukkit/craftbukkit/entity/CraftEntity.java
+++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftEntity.java
@@ -1275,4 +1275,27 @@ public abstract class CraftEntity implements org.bukkit.entity.Entity {
((CraftPlayer) player).sendHurtAnimation(0, this);
}
}
+
+ // 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 a7e3afe04ffbb0fd5fa5fcf7cd15efd7cea1c4e0..9c88a5b6b054636a9f326d0253f65496cf3babc3 100644
--- a/src/main/java/org/bukkit/craftbukkit/event/CraftEventFactory.java
+++ b/src/main/java/org/bukkit/craftbukkit/event/CraftEventFactory.java
@@ -514,6 +514,15 @@ public class CraftEventFactory {
}
craftServer.getPluginManager().callEvent(event);
+ // Purpur start - Ridables
+ if (who != null) {
+ switch (action) {
+ case LEFT_CLICK_BLOCK, LEFT_CLICK_AIR -> who.processClick(InteractionHand.MAIN_HAND);
+ case RIGHT_CLICK_BLOCK, RIGHT_CLICK_AIR -> who.processClick(InteractionHand.OFF_HAND);
+ }
+ }
+ // Purpur end - Ridables
+
return event;
}
@@ -1046,6 +1055,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);
}