mirror of
https://github.com/PurpurMC/Purpur.git
synced 2026-02-18 00:47:42 +01:00
elytra.ignore-unbreaking option can probably be done through datapacks now
This commit is contained in:
@@ -5,7 +5,7 @@ Subject: [PATCH] Implement elytra settings
|
||||
|
||||
|
||||
diff --git a/src/main/java/net/minecraft/world/entity/LivingEntity.java b/src/main/java/net/minecraft/world/entity/LivingEntity.java
|
||||
index 6f7188ccba2675264ba8fbfd05cacc1c60211157..b183a9e42178ff02c5d70abacee3cfaa7b7b93c3 100644
|
||||
index e7853a16674ee748ebbf378044cb484cfdf6b73e..0c607578b493496e79ea08cdf752828252a66c47 100644
|
||||
--- a/src/main/java/net/minecraft/world/entity/LivingEntity.java
|
||||
+++ b/src/main/java/net/minecraft/world/entity/LivingEntity.java
|
||||
@@ -3558,7 +3558,16 @@ public abstract class LivingEntity extends Entity implements Attackable {
|
||||
@@ -46,18 +46,10 @@ index 218f2f085309f04438f8b07bc41cf242583db2dc..ea8e49b42b9dde74784189430be66ed6
|
||||
itemStack.shrink(1);
|
||||
} else ((net.minecraft.server.level.ServerPlayer) user).getBukkitEntity().updateInventory();
|
||||
diff --git a/src/main/java/net/minecraft/world/item/ItemStack.java b/src/main/java/net/minecraft/world/item/ItemStack.java
|
||||
index 00665c3e81264b440cd27431f7632f3bc2b1ceef..d36b5ddc360e4f4cca3ef5c1b5b3d0cbad02614b 100644
|
||||
index 00665c3e81264b440cd27431f7632f3bc2b1ceef..88db87941bfc84bec7a2dcd3c750a854cac72006 100644
|
||||
--- a/src/main/java/net/minecraft/world/item/ItemStack.java
|
||||
+++ b/src/main/java/net/minecraft/world/item/ItemStack.java
|
||||
@@ -685,6 +685,7 @@ public final class ItemStack implements DataComponentHolder {
|
||||
if (player == null || !player.hasInfiniteMaterials() || force) { // Paper
|
||||
if (amount > 0) {
|
||||
int originalDamage = amount; // Paper - Expand PlayerItemDamageEvent
|
||||
+ // (getItem() == Items.ELYTRA && player != null && player.level().purpurConfig.elytraIgnoreUnbreaking) ? 0 : // Purpur
|
||||
amount = EnchantmentHelper.processDurabilityChange(world, this, amount);
|
||||
// CraftBukkit start
|
||||
if (player instanceof ServerPlayer serverPlayer) { // Paper - Add EntityDamageItemEvent
|
||||
@@ -750,6 +751,12 @@ public final class ItemStack implements DataComponentHolder {
|
||||
@@ -750,6 +750,12 @@ public final class ItemStack implements DataComponentHolder {
|
||||
}
|
||||
|
||||
this.hurtAndBreak(amount, worldserver, entity, (item) -> { // Paper - Add EntityDamageItemEvent
|
||||
@@ -90,22 +82,20 @@ index f1b2d388a1a40a1d909a2e726f32d6c15e1eb0eb..4934bae61114b49a9f8d0ed044fbb881
|
||||
entityhuman.startAutoSpinAttack(20, 8.0F, stack);
|
||||
if (entityhuman.onGround()) {
|
||||
diff --git a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
|
||||
index f980e39b09f38e1c8265a8fe65de91178579326f..4d7a85f1ece3a60404474ad492edb2d8f097a6a0 100644
|
||||
index f980e39b09f38e1c8265a8fe65de91178579326f..f5eb2e02099ca46b44512163fd378a49c9b4b0ba 100644
|
||||
--- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
|
||||
+++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
|
||||
@@ -112,6 +112,19 @@ public class PurpurWorldConfig {
|
||||
@@ -112,6 +112,17 @@ public class PurpurWorldConfig {
|
||||
voidDamageDealt = getDouble("gameplay-mechanics.void-damage-dealt", voidDamageDealt);
|
||||
}
|
||||
|
||||
+ public int elytraDamagePerSecond = 1;
|
||||
+ public double elytraDamageMultiplyBySpeed = 0;
|
||||
+ public boolean elytraIgnoreUnbreaking = false;
|
||||
+ public int elytraDamagePerFireworkBoost = 0;
|
||||
+ public int elytraDamagePerTridentBoost = 0;
|
||||
+ private void elytraSettings() {
|
||||
+ elytraDamagePerSecond = getInt("gameplay-mechanics.elytra.damage-per-second", elytraDamagePerSecond);
|
||||
+ elytraDamageMultiplyBySpeed = getDouble("gameplay-mechanics.elytra.damage-multiplied-by-speed", elytraDamageMultiplyBySpeed);
|
||||
+ elytraIgnoreUnbreaking = getBoolean("gameplay-mechanics.elytra.ignore-unbreaking", elytraIgnoreUnbreaking);
|
||||
+ elytraDamagePerFireworkBoost = getInt("gameplay-mechanics.elytra.damage-per-boost.firework", elytraDamagePerFireworkBoost);
|
||||
+ elytraDamagePerTridentBoost = getInt("gameplay-mechanics.elytra.damage-per-boost.trident", elytraDamagePerTridentBoost);
|
||||
+ }
|
||||
|
||||
Reference in New Issue
Block a user