mirror of
https://github.com/PurpurMC/Purpur.git
synced 2026-02-17 08:27:43 +01:00
respect the sidedSuccess InteractionResult, fixes #611
This commit is contained in:
@@ -66,7 +66,7 @@ index f3024b03ff7709893d6e39f54504597bb59f5315..f6360f2973c03e0105361f9e001360ec
|
|||||||
|
|
||||||
public void doTick() {
|
public void doTick() {
|
||||||
diff --git a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java
|
diff --git a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java
|
||||||
index f79ca89b430636bf5c0e140499ac20f743f22f33..ebc2707fa3eeec4c80d7f186fce39ddcbd8eb414 100644
|
index 6ca749d957ff04f9c6e48271da0046a353508c10..132c3e1ab9e65c778d3f1a7527a9f9c49337d8b4 100644
|
||||||
--- a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java
|
--- a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java
|
||||||
+++ b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java
|
+++ b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java
|
||||||
@@ -716,7 +716,6 @@ public class ServerGamePacketListenerImpl implements ServerPlayerConnection, Tic
|
@@ -716,7 +716,6 @@ public class ServerGamePacketListenerImpl implements ServerPlayerConnection, Tic
|
||||||
@@ -202,7 +202,7 @@ index c1e9b40a4a0f9cdc650caa88b5ea132e06ee2496..882ab40c8cdea8c214cb8344b3ccecdd
|
|||||||
protected ParticleOptions getInkParticle() {
|
protected ParticleOptions getInkParticle() {
|
||||||
return ParticleTypes.GLOW_SQUID_INK;
|
return ParticleTypes.GLOW_SQUID_INK;
|
||||||
diff --git a/src/main/java/net/minecraft/world/entity/LivingEntity.java b/src/main/java/net/minecraft/world/entity/LivingEntity.java
|
diff --git a/src/main/java/net/minecraft/world/entity/LivingEntity.java b/src/main/java/net/minecraft/world/entity/LivingEntity.java
|
||||||
index 120c0804010fd5b38a5f806ca580962ff8b47339..518c4cadf549d045d17f7c0eab548bde221a5442 100644
|
index 413652284e229a51e3eefe47f239e8fa9a09ccb2..1f9f59f4ec936e365ad6428717a7d92983a66222 100644
|
||||||
--- a/src/main/java/net/minecraft/world/entity/LivingEntity.java
|
--- a/src/main/java/net/minecraft/world/entity/LivingEntity.java
|
||||||
+++ b/src/main/java/net/minecraft/world/entity/LivingEntity.java
|
+++ b/src/main/java/net/minecraft/world/entity/LivingEntity.java
|
||||||
@@ -221,9 +221,9 @@ public abstract class LivingEntity extends Entity {
|
@@ -221,9 +221,9 @@ public abstract class LivingEntity extends Entity {
|
||||||
@@ -280,7 +280,7 @@ index 120c0804010fd5b38a5f806ca580962ff8b47339..518c4cadf549d045d17f7c0eab548bde
|
|||||||
// Paper end
|
// Paper end
|
||||||
if (!this.level.isClientSide && this.isSensitiveToWater() && this.isInWaterRainOrBubble()) {
|
if (!this.level.isClientSide && this.isSensitiveToWater() && this.isInWaterRainOrBubble()) {
|
||||||
diff --git a/src/main/java/net/minecraft/world/entity/Mob.java b/src/main/java/net/minecraft/world/entity/Mob.java
|
diff --git a/src/main/java/net/minecraft/world/entity/Mob.java b/src/main/java/net/minecraft/world/entity/Mob.java
|
||||||
index 94b45579dc371ee980565aed2f5dee78ebd44427..286f6a7ebc38378bb730db5d8ffef226f6a94e3d 100644
|
index 94b45579dc371ee980565aed2f5dee78ebd44427..4072a189813cc1a89b64b2997df0938288fab743 100644
|
||||||
--- a/src/main/java/net/minecraft/world/entity/Mob.java
|
--- a/src/main/java/net/minecraft/world/entity/Mob.java
|
||||||
+++ b/src/main/java/net/minecraft/world/entity/Mob.java
|
+++ b/src/main/java/net/minecraft/world/entity/Mob.java
|
||||||
@@ -146,8 +146,8 @@ public abstract class Mob extends LivingEntity {
|
@@ -146,8 +146,8 @@ public abstract class Mob extends LivingEntity {
|
||||||
@@ -303,7 +303,7 @@ index 94b45579dc371ee980565aed2f5dee78ebd44427..286f6a7ebc38378bb730db5d8ffef226
|
|||||||
}
|
}
|
||||||
|
|
||||||
public boolean isWithinRestriction() {
|
public boolean isWithinRestriction() {
|
||||||
@@ -1728,4 +1728,52 @@ public abstract class Mob extends LivingEntity {
|
@@ -1728,4 +1728,56 @@ public abstract class Mob extends LivingEntity {
|
||||||
|
|
||||||
return itemmonsteregg == null ? null : new ItemStack(itemmonsteregg);
|
return itemmonsteregg == null ? null : new ItemStack(itemmonsteregg);
|
||||||
}
|
}
|
||||||
@@ -314,8 +314,12 @@ index 94b45579dc371ee980565aed2f5dee78ebd44427..286f6a7ebc38378bb730db5d8ffef226
|
|||||||
+ }
|
+ }
|
||||||
+
|
+
|
||||||
+ public InteractionResult tryRide(Player player, InteractionHand hand) {
|
+ public InteractionResult tryRide(Player player, InteractionHand hand) {
|
||||||
|
+ return tryRide(player, hand, InteractionResult.PASS);
|
||||||
|
+ }
|
||||||
|
+
|
||||||
|
+ public InteractionResult tryRide(Player player, InteractionHand hand, InteractionResult result) {
|
||||||
+ if (!isRidable()) {
|
+ if (!isRidable()) {
|
||||||
+ return InteractionResult.PASS;
|
+ return result;
|
||||||
+ }
|
+ }
|
||||||
+ if (hand != InteractionHand.MAIN_HAND) {
|
+ if (hand != InteractionHand.MAIN_HAND) {
|
||||||
+ return InteractionResult.PASS;
|
+ return InteractionResult.PASS;
|
||||||
@@ -5010,7 +5014,7 @@ index 904826ea563bd2eb469f403df459def62cc1b5e6..456ebb0829d19d13abe05d83035c4abe
|
|||||||
|
|
||||||
public static void applyDarknessAround(ServerLevel world, Vec3 pos, @Nullable Entity entity, int range) {
|
public static void applyDarknessAround(ServerLevel world, Vec3 pos, @Nullable Entity entity, int range) {
|
||||||
diff --git a/src/main/java/net/minecraft/world/entity/npc/Villager.java b/src/main/java/net/minecraft/world/entity/npc/Villager.java
|
diff --git a/src/main/java/net/minecraft/world/entity/npc/Villager.java b/src/main/java/net/minecraft/world/entity/npc/Villager.java
|
||||||
index 76a9da8209d557b913c49ccd281bf147b9ac4fa4..2bbfa9a7d0fe71597e4e9a1e883be68018caadd7 100644
|
index 76a9da8209d557b913c49ccd281bf147b9ac4fa4..4d0426dbbc3d87d7450acf983c45f3b8636e11e2 100644
|
||||||
--- a/src/main/java/net/minecraft/world/entity/npc/Villager.java
|
--- a/src/main/java/net/minecraft/world/entity/npc/Villager.java
|
||||||
+++ b/src/main/java/net/minecraft/world/entity/npc/Villager.java
|
+++ b/src/main/java/net/minecraft/world/entity/npc/Villager.java
|
||||||
@@ -155,6 +155,28 @@ public class Villager extends AbstractVillager implements ReputationEventHandler
|
@@ -155,6 +155,28 @@ public class Villager extends AbstractVillager implements ReputationEventHandler
|
||||||
@@ -5056,7 +5060,7 @@ index 76a9da8209d557b913c49ccd281bf147b9ac4fa4..2bbfa9a7d0fe71597e4e9a1e883be680
|
|||||||
if (this.isBaby()) {
|
if (this.isBaby()) {
|
||||||
this.setUnhappy();
|
this.setUnhappy();
|
||||||
- return InteractionResult.sidedSuccess(this.level.isClientSide);
|
- return InteractionResult.sidedSuccess(this.level.isClientSide);
|
||||||
+ return tryRide(player, hand); // Purpur
|
+ return tryRide(player, hand, InteractionResult.sidedSuccess(this.level.isClientSide)); // Purpur
|
||||||
} else {
|
} else {
|
||||||
boolean flag = this.getOffers().isEmpty();
|
boolean flag = this.getOffers().isEmpty();
|
||||||
|
|
||||||
@@ -5065,14 +5069,14 @@ index 76a9da8209d557b913c49ccd281bf147b9ac4fa4..2bbfa9a7d0fe71597e4e9a1e883be680
|
|||||||
|
|
||||||
if (flag) {
|
if (flag) {
|
||||||
- return InteractionResult.sidedSuccess(this.level.isClientSide);
|
- return InteractionResult.sidedSuccess(this.level.isClientSide);
|
||||||
+ return tryRide(player, hand); // Purpur
|
+ return tryRide(player, hand, InteractionResult.sidedSuccess(this.level.isClientSide)); // Purpur
|
||||||
} else {
|
} else {
|
||||||
+ if (level.purpurConfig.villagerRidable && itemstack.isEmpty()) return tryRide(player, hand); // Purpur
|
+ if (level.purpurConfig.villagerRidable && itemstack.isEmpty()) return tryRide(player, hand); // Purpur
|
||||||
if (!this.level.isClientSide && !this.offers.isEmpty()) {
|
if (!this.level.isClientSide && !this.offers.isEmpty()) {
|
||||||
this.startTrading(player);
|
this.startTrading(player);
|
||||||
}
|
}
|
||||||
diff --git a/src/main/java/net/minecraft/world/entity/npc/WanderingTrader.java b/src/main/java/net/minecraft/world/entity/npc/WanderingTrader.java
|
diff --git a/src/main/java/net/minecraft/world/entity/npc/WanderingTrader.java b/src/main/java/net/minecraft/world/entity/npc/WanderingTrader.java
|
||||||
index e92e6fb4cf97f4d5406b5b5d5786bfa5fb55f536..0e7d5540763d56020cd59d9aef09f7a7d2cde1b1 100644
|
index e92e6fb4cf97f4d5406b5b5d5786bfa5fb55f536..64fb6f2ea7b792d131feca7278034336056c49b9 100644
|
||||||
--- a/src/main/java/net/minecraft/world/entity/npc/WanderingTrader.java
|
--- a/src/main/java/net/minecraft/world/entity/npc/WanderingTrader.java
|
||||||
+++ b/src/main/java/net/minecraft/world/entity/npc/WanderingTrader.java
|
+++ b/src/main/java/net/minecraft/world/entity/npc/WanderingTrader.java
|
||||||
@@ -66,6 +66,23 @@ public class WanderingTrader extends net.minecraft.world.entity.npc.AbstractVill
|
@@ -66,6 +66,23 @@ public class WanderingTrader extends net.minecraft.world.entity.npc.AbstractVill
|
||||||
@@ -5104,7 +5108,7 @@ index e92e6fb4cf97f4d5406b5b5d5786bfa5fb55f536..0e7d5540763d56020cd59d9aef09f7a7
|
|||||||
|
|
||||||
if (this.getOffers().isEmpty()) {
|
if (this.getOffers().isEmpty()) {
|
||||||
- return InteractionResult.sidedSuccess(this.level.isClientSide);
|
- return InteractionResult.sidedSuccess(this.level.isClientSide);
|
||||||
+ return tryRide(player, hand); // Purpur
|
+ return tryRide(player, hand, InteractionResult.sidedSuccess(this.level.isClientSide)); // Purpur
|
||||||
} else {
|
} else {
|
||||||
+ if (level.purpurConfig.wanderingTraderRidable && itemstack.isEmpty()) return tryRide(player, hand); // Purpur
|
+ if (level.purpurConfig.wanderingTraderRidable && itemstack.isEmpty()) return tryRide(player, hand); // Purpur
|
||||||
if (!this.level.isClientSide) {
|
if (!this.level.isClientSide) {
|
||||||
|
|||||||
@@ -5,11 +5,11 @@ Subject: [PATCH] Add config for villager trading
|
|||||||
|
|
||||||
|
|
||||||
diff --git a/src/main/java/net/minecraft/world/entity/npc/Villager.java b/src/main/java/net/minecraft/world/entity/npc/Villager.java
|
diff --git a/src/main/java/net/minecraft/world/entity/npc/Villager.java b/src/main/java/net/minecraft/world/entity/npc/Villager.java
|
||||||
index 304c7e23fd38aa3e869918cbabf77d835ac5a8cd..873bc6c7ec79b713fcb9ac9a5a5c421c00d2cd79 100644
|
index 78efd0c4a3350602757a54950cabdccbda8c5d18..7b324a9b971ed263e8e8f0724de68ec9180de8ad 100644
|
||||||
--- a/src/main/java/net/minecraft/world/entity/npc/Villager.java
|
--- a/src/main/java/net/minecraft/world/entity/npc/Villager.java
|
||||||
+++ b/src/main/java/net/minecraft/world/entity/npc/Villager.java
|
+++ b/src/main/java/net/minecraft/world/entity/npc/Villager.java
|
||||||
@@ -366,7 +366,7 @@ public class Villager extends AbstractVillager implements ReputationEventHandler
|
@@ -366,7 +366,7 @@ public class Villager extends AbstractVillager implements ReputationEventHandler
|
||||||
return tryRide(player, hand); // Purpur
|
return tryRide(player, hand, InteractionResult.sidedSuccess(this.level.isClientSide)); // Purpur
|
||||||
} else {
|
} else {
|
||||||
if (level.purpurConfig.villagerRidable && itemstack.isEmpty()) return tryRide(player, hand); // Purpur
|
if (level.purpurConfig.villagerRidable && itemstack.isEmpty()) return tryRide(player, hand); // Purpur
|
||||||
- if (!this.level.isClientSide && !this.offers.isEmpty()) {
|
- if (!this.level.isClientSide && !this.offers.isEmpty()) {
|
||||||
@@ -18,11 +18,11 @@ index 304c7e23fd38aa3e869918cbabf77d835ac5a8cd..873bc6c7ec79b713fcb9ac9a5a5c421c
|
|||||||
}
|
}
|
||||||
|
|
||||||
diff --git a/src/main/java/net/minecraft/world/entity/npc/WanderingTrader.java b/src/main/java/net/minecraft/world/entity/npc/WanderingTrader.java
|
diff --git a/src/main/java/net/minecraft/world/entity/npc/WanderingTrader.java b/src/main/java/net/minecraft/world/entity/npc/WanderingTrader.java
|
||||||
index a028732368cdc6b249135742b4a86920d95fa76e..eed9fed34fde4d27e424507f2f05510d46f64601 100644
|
index 264e9372118dcf95840fef2dfa5db3be96e46c6a..0f347989aa776c3adeae51bf299ccf5707342aba 100644
|
||||||
--- a/src/main/java/net/minecraft/world/entity/npc/WanderingTrader.java
|
--- a/src/main/java/net/minecraft/world/entity/npc/WanderingTrader.java
|
||||||
+++ b/src/main/java/net/minecraft/world/entity/npc/WanderingTrader.java
|
+++ b/src/main/java/net/minecraft/world/entity/npc/WanderingTrader.java
|
||||||
@@ -149,7 +149,7 @@ public class WanderingTrader extends net.minecraft.world.entity.npc.AbstractVill
|
@@ -149,7 +149,7 @@ public class WanderingTrader extends net.minecraft.world.entity.npc.AbstractVill
|
||||||
return tryRide(player, hand); // Purpur
|
return tryRide(player, hand, InteractionResult.sidedSuccess(this.level.isClientSide)); // Purpur
|
||||||
} else {
|
} else {
|
||||||
if (level.purpurConfig.wanderingTraderRidable && itemstack.isEmpty()) return tryRide(player, hand); // Purpur
|
if (level.purpurConfig.wanderingTraderRidable && itemstack.isEmpty()) return tryRide(player, hand); // Purpur
|
||||||
- if (!this.level.isClientSide) {
|
- if (!this.level.isClientSide) {
|
||||||
|
|||||||
Reference in New Issue
Block a user