mirror of
https://github.com/PurpurMC/Purpur.git
synced 2026-02-21 18:37:42 +01:00
remove LivingEntity#safeFallDistance API
This commit is contained in:
@@ -1,160 +0,0 @@
|
||||
From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
|
||||
From: BillyGalbreath <Blake.Galbreath@Gmail.com>
|
||||
Date: Mon, 3 Jan 2022 00:06:51 -0600
|
||||
Subject: [PATCH] Shears can have looting enchantment
|
||||
|
||||
|
||||
diff --git a/src/main/java/net/minecraft/core/dispenser/ShearsDispenseItemBehavior.java b/src/main/java/net/minecraft/core/dispenser/ShearsDispenseItemBehavior.java
|
||||
index a024c697a65bbab27408da1d6a75e531d9719b47..e4fab82b369f2c2ea0d8c8acd814d06140d551fc 100644
|
||||
--- a/src/main/java/net/minecraft/core/dispenser/ShearsDispenseItemBehavior.java
|
||||
+++ b/src/main/java/net/minecraft/core/dispenser/ShearsDispenseItemBehavior.java
|
||||
@@ -105,7 +105,7 @@ public class ShearsDispenseItemBehavior extends OptionalDispenseItemBehavior {
|
||||
if (ishearable.readyForShearing()) {
|
||||
// CraftBukkit start
|
||||
// Paper start - Add drops to shear events
|
||||
- org.bukkit.event.block.BlockShearEntityEvent event = CraftEventFactory.callBlockShearEntityEvent(entityliving, bukkitBlock, craftItem, ishearable.generateDefaultDrops());
|
||||
+ org.bukkit.event.block.BlockShearEntityEvent event = CraftEventFactory.callBlockShearEntityEvent(entityliving, bukkitBlock, craftItem, ishearable.generateDefaultDrops(net.minecraft.world.item.enchantment.EnchantmentHelper.getItemEnchantmentLevel(net.minecraft.world.item.enchantment.Enchantments.LOOTING, CraftItemStack.asNMSCopy(craftItem)))); // Purpur
|
||||
if (event.isCancelled()) {
|
||||
// Paper end - Add drops to shear events
|
||||
continue;
|
||||
diff --git a/src/main/java/net/minecraft/world/entity/Shearable.java b/src/main/java/net/minecraft/world/entity/Shearable.java
|
||||
index 2ee48ac3b665db2b02bcb1a30ec972d43a3725b0..59e8f5431ce5026209e1428b5fa5b5485dcfebc7 100644
|
||||
--- a/src/main/java/net/minecraft/world/entity/Shearable.java
|
||||
+++ b/src/main/java/net/minecraft/world/entity/Shearable.java
|
||||
@@ -8,7 +8,7 @@ public interface Shearable {
|
||||
|
||||
boolean readyForShearing();
|
||||
// Paper start - custom shear drops; ensure all implementing entities override this
|
||||
- default java.util.List<net.minecraft.world.item.ItemStack> generateDefaultDrops() {
|
||||
+ default java.util.List<net.minecraft.world.item.ItemStack> generateDefaultDrops(int looting) { // Purpur
|
||||
return java.util.Collections.emptyList();
|
||||
}
|
||||
// Paper end - custom shear drops
|
||||
diff --git a/src/main/java/net/minecraft/world/entity/animal/MushroomCow.java b/src/main/java/net/minecraft/world/entity/animal/MushroomCow.java
|
||||
index 06fac8dae42451f912c2db14d792461cee3dba83..a7c95199234231db14faa4a07953bcde57d9861d 100644
|
||||
--- a/src/main/java/net/minecraft/world/entity/animal/MushroomCow.java
|
||||
+++ b/src/main/java/net/minecraft/world/entity/animal/MushroomCow.java
|
||||
@@ -161,7 +161,7 @@ public class MushroomCow extends Cow implements Shearable, VariantHolder<Mushroo
|
||||
} else if (itemstack.is(Items.SHEARS) && this.readyForShearing()) {
|
||||
// CraftBukkit start
|
||||
// Paper start - custom shear drops
|
||||
- java.util.List<ItemStack> drops = this.generateDefaultDrops();
|
||||
+ java.util.List<ItemStack> drops = this.generateDefaultDrops(net.minecraft.world.item.enchantment.EnchantmentHelper.getMobLooting(player)); // Purpur
|
||||
org.bukkit.event.player.PlayerShearEntityEvent event = CraftEventFactory.handlePlayerShearEntityEvent(player, this, itemstack, hand, drops);
|
||||
if (event != null) {
|
||||
if (event.isCancelled()) {
|
||||
@@ -209,13 +209,13 @@ public class MushroomCow extends Cow implements Shearable, VariantHolder<Mushroo
|
||||
@Override
|
||||
public void shear(SoundSource shearedSoundCategory) {
|
||||
// Paper start - custom shear drops
|
||||
- this.shear(shearedSoundCategory, this.generateDefaultDrops());
|
||||
+ this.shear(shearedSoundCategory, this.generateDefaultDrops(0)); // Purpur
|
||||
}
|
||||
|
||||
@Override
|
||||
- public java.util.List<ItemStack> generateDefaultDrops() {
|
||||
+ public java.util.List<ItemStack> generateDefaultDrops(int looting) { // Purpur
|
||||
java.util.List<ItemStack> dropEntities = new java.util.ArrayList<>(5);
|
||||
- for (int i = 0; i < 5; ++i) {
|
||||
+ for (int i = 0; i < 5 + (org.purpurmc.purpur.PurpurConfig.allowShearsLooting ? looting : 0); ++i) { // Purpur
|
||||
dropEntities.add(new ItemStack(this.getVariant().getBlockState().getBlock()));
|
||||
}
|
||||
return dropEntities;
|
||||
diff --git a/src/main/java/net/minecraft/world/entity/animal/Sheep.java b/src/main/java/net/minecraft/world/entity/animal/Sheep.java
|
||||
index 9e617b3f1ec4eac5f83bdf19a3563cdc81b008d8..6b1244d3957e7f62c96ffd34692b8916337839fd 100644
|
||||
--- a/src/main/java/net/minecraft/world/entity/animal/Sheep.java
|
||||
+++ b/src/main/java/net/minecraft/world/entity/animal/Sheep.java
|
||||
@@ -297,7 +297,7 @@ public class Sheep extends Animal implements Shearable {
|
||||
if (!this.level().isClientSide && this.readyForShearing()) {
|
||||
// CraftBukkit start
|
||||
// Paper start - custom shear drops
|
||||
- java.util.List<ItemStack> drops = this.generateDefaultDrops();
|
||||
+ java.util.List<ItemStack> drops = this.generateDefaultDrops(net.minecraft.world.item.enchantment.EnchantmentHelper.getMobLooting(player)); // Purpur
|
||||
org.bukkit.event.player.PlayerShearEntityEvent event = CraftEventFactory.handlePlayerShearEntityEvent(player, this, itemstack, hand, drops);
|
||||
if (event != null) {
|
||||
if (event.isCancelled()) {
|
||||
@@ -322,12 +322,13 @@ public class Sheep extends Animal implements Shearable {
|
||||
@Override
|
||||
public void shear(SoundSource shearedSoundCategory) {
|
||||
// Paper start - custom shear drops
|
||||
- this.shear(shearedSoundCategory, this.generateDefaultDrops());
|
||||
+ this.shear(shearedSoundCategory, this.generateDefaultDrops(0)); // Purpur
|
||||
}
|
||||
|
||||
@Override
|
||||
- public java.util.List<ItemStack> generateDefaultDrops() {
|
||||
+ public java.util.List<ItemStack> generateDefaultDrops(int looting) { // Purpur
|
||||
int count = 1 + this.random.nextInt(3);
|
||||
+ if (org.purpurmc.purpur.PurpurConfig.allowShearsLooting) count += looting; // Purpur
|
||||
java.util.List<ItemStack> dropEntities = new java.util.ArrayList<>(count);
|
||||
for (int j = 0; j < count; ++j) {
|
||||
dropEntities.add(new ItemStack(Sheep.ITEM_BY_DYE.get(this.getColor())));
|
||||
diff --git a/src/main/java/net/minecraft/world/entity/animal/SnowGolem.java b/src/main/java/net/minecraft/world/entity/animal/SnowGolem.java
|
||||
index 69cdccca01fe7d10e6d958e16d91efe08f699505..3b74931ae4e3a869d8db38c119e57b44af887859 100644
|
||||
--- a/src/main/java/net/minecraft/world/entity/animal/SnowGolem.java
|
||||
+++ b/src/main/java/net/minecraft/world/entity/animal/SnowGolem.java
|
||||
@@ -189,7 +189,7 @@ public class SnowGolem extends AbstractGolem implements Shearable, RangedAttackM
|
||||
if (itemstack.is(Items.SHEARS) && this.readyForShearing()) {
|
||||
// CraftBukkit start
|
||||
// Paper start - custom shear drops
|
||||
- java.util.List<ItemStack> drops = this.generateDefaultDrops();
|
||||
+ java.util.List<ItemStack> drops = this.generateDefaultDrops(net.minecraft.world.item.enchantment.EnchantmentHelper.getMobLooting(player)); // Purpur
|
||||
org.bukkit.event.player.PlayerShearEntityEvent event = CraftEventFactory.handlePlayerShearEntityEvent(player, this, itemstack, hand, drops);
|
||||
if (event != null) {
|
||||
if (event.isCancelled()) {
|
||||
@@ -222,11 +222,20 @@ public class SnowGolem extends AbstractGolem implements Shearable, RangedAttackM
|
||||
@Override
|
||||
public void shear(SoundSource shearedSoundCategory) {
|
||||
// Paper start - custom shear drops
|
||||
- this.shear(shearedSoundCategory, this.generateDefaultDrops());
|
||||
+ this.shear(shearedSoundCategory, this.generateDefaultDrops(0)); // Purpur
|
||||
}
|
||||
|
||||
@Override
|
||||
- public java.util.List<ItemStack> generateDefaultDrops() {
|
||||
+ // Purpur start
|
||||
+ public java.util.List<ItemStack> generateDefaultDrops(int looting) {
|
||||
+ if (org.purpurmc.purpur.PurpurConfig.allowShearsLooting) {
|
||||
+ java.util.ArrayList<ItemStack> list = new java.util.ArrayList<>();
|
||||
+ for (int i = 0; i < 1 + looting; i++) {
|
||||
+ list.add(new ItemStack(Items.CARVED_PUMPKIN));
|
||||
+ }
|
||||
+ return java.util.Collections.unmodifiableList(list);
|
||||
+ }
|
||||
+ // Purpur end
|
||||
return java.util.Collections.singletonList(new ItemStack(Items.CARVED_PUMPKIN));
|
||||
}
|
||||
|
||||
diff --git a/src/main/java/net/minecraft/world/entity/monster/Bogged.java b/src/main/java/net/minecraft/world/entity/monster/Bogged.java
|
||||
index 754eb747179d9318bc5a3883e5622cc400c4e06c..4e929539cb093d58f3311d5f6a62bd1aeb71cfb0 100644
|
||||
--- a/src/main/java/net/minecraft/world/entity/monster/Bogged.java
|
||||
+++ b/src/main/java/net/minecraft/world/entity/monster/Bogged.java
|
||||
@@ -155,7 +155,7 @@ public class Bogged extends AbstractSkeleton implements Shearable {
|
||||
|
||||
// Paper start - shear drops API
|
||||
@Override
|
||||
- public java.util.List<ItemStack> generateDefaultDrops() {
|
||||
+ public java.util.List<ItemStack> generateDefaultDrops(int looting) { // Purpur
|
||||
final java.util.List<ItemStack> drops = new java.util.ArrayList<>();
|
||||
this.generateShearedMushrooms(drops::add);
|
||||
return drops;
|
||||
diff --git a/src/main/java/org/purpurmc/purpur/PurpurConfig.java b/src/main/java/org/purpurmc/purpur/PurpurConfig.java
|
||||
index 9e4824e7cb7561a40cae7ccdcf49e01fd5118615..a34c44ba770ded446b7969a31d3d05016717c13b 100644
|
||||
--- a/src/main/java/org/purpurmc/purpur/PurpurConfig.java
|
||||
+++ b/src/main/java/org/purpurmc/purpur/PurpurConfig.java
|
||||
@@ -375,6 +375,7 @@ public class PurpurConfig {
|
||||
|
||||
public static boolean allowInfinityMending = false;
|
||||
public static boolean allowCrossbowInfinity = true;
|
||||
+ public static boolean allowShearsLooting = false;
|
||||
public static boolean allowUnsafeEnchants = false;
|
||||
public static boolean allowInapplicableEnchants = true;
|
||||
public static boolean allowIncompatibleEnchants = true;
|
||||
@@ -397,6 +398,7 @@ public class PurpurConfig {
|
||||
}
|
||||
allowInfinityMending = getBoolean("settings.enchantment.allow-infinity-and-mending-together", allowInfinityMending);
|
||||
allowCrossbowInfinity = getBoolean("settings.enchantment.allow-infinity-on-crossbow", allowCrossbowInfinity);
|
||||
+ allowShearsLooting = getBoolean("settings.enchantment.allow-looting-on-shears", allowShearsLooting);
|
||||
allowUnsafeEnchants = getBoolean("settings.enchantment.anvil.allow-unsafe-enchants", allowUnsafeEnchants);
|
||||
allowInapplicableEnchants = getBoolean("settings.enchantment.anvil.allow-inapplicable-enchants", allowInapplicableEnchants);
|
||||
allowIncompatibleEnchants = getBoolean("settings.enchantment.anvil.allow-incompatible-enchants", allowIncompatibleEnchants);
|
||||
Reference in New Issue
Block a user