Fix patches, add cooldown to PlayerShieldDisableEvent
This commit is contained in:
@@ -6,10 +6,10 @@ Subject: [PATCH] Add PlayerShieldDisableEvent
|
|||||||
|
|
||||||
diff --git a/src/main/java/io/papermc/paper/event/player/PlayerShieldDisableEvent.java b/src/main/java/io/papermc/paper/event/player/PlayerShieldDisableEvent.java
|
diff --git a/src/main/java/io/papermc/paper/event/player/PlayerShieldDisableEvent.java b/src/main/java/io/papermc/paper/event/player/PlayerShieldDisableEvent.java
|
||||||
new file mode 100644
|
new file mode 100644
|
||||||
index 0000000000000000000000000000000000000000..f0f3a57a0ce76b4736219c6ece52b8bc47a7a4ec
|
index 0000000000000000000000000000000000000000..d4bda54582228377c902e4743168e084e1bf8b2d
|
||||||
--- /dev/null
|
--- /dev/null
|
||||||
+++ b/src/main/java/io/papermc/paper/event/player/PlayerShieldDisableEvent.java
|
+++ b/src/main/java/io/papermc/paper/event/player/PlayerShieldDisableEvent.java
|
||||||
@@ -0,0 +1,50 @@
|
@@ -0,0 +1,60 @@
|
||||||
+package io.papermc.paper.event.player;
|
+package io.papermc.paper.event.player;
|
||||||
+
|
+
|
||||||
+import org.bukkit.entity.Entity;
|
+import org.bukkit.entity.Entity;
|
||||||
@@ -27,11 +27,13 @@ index 0000000000000000000000000000000000000000..f0f3a57a0ce76b4736219c6ece52b8bc
|
|||||||
+public class PlayerShieldDisableEvent extends PlayerEvent implements Cancellable {
|
+public class PlayerShieldDisableEvent extends PlayerEvent implements Cancellable {
|
||||||
+ private static final HandlerList handlers = new HandlerList();
|
+ private static final HandlerList handlers = new HandlerList();
|
||||||
+ private final Entity damager;
|
+ private final Entity damager;
|
||||||
|
+ private int cooldown;
|
||||||
+ private boolean cancelled = false;
|
+ private boolean cancelled = false;
|
||||||
+
|
+
|
||||||
+ public PlayerShieldDisableEvent(@NotNull final Player player, @Nullable final Entity damager) {
|
+ public PlayerShieldDisableEvent(@NotNull final Player player, @Nullable final Entity damager, int cooldown) {
|
||||||
+ super(player);
|
+ super(player);
|
||||||
+ this.damager = damager;
|
+ this.damager = damager;
|
||||||
|
+ this.cooldown = cooldown;
|
||||||
+ }
|
+ }
|
||||||
+
|
+
|
||||||
+ @Nullable
|
+ @Nullable
|
||||||
@@ -39,6 +41,14 @@ index 0000000000000000000000000000000000000000..f0f3a57a0ce76b4736219c6ece52b8bc
|
|||||||
+ return damager;
|
+ return damager;
|
||||||
+ }
|
+ }
|
||||||
+
|
+
|
||||||
|
+ public int getCooldown() {
|
||||||
|
+ return cooldown;
|
||||||
|
+ }
|
||||||
|
+
|
||||||
|
+ public void setCooldown(int cooldown) {
|
||||||
|
+ this.cooldown = cooldown;
|
||||||
|
+ }
|
||||||
|
+
|
||||||
+ @NotNull
|
+ @NotNull
|
||||||
+ @Override
|
+ @Override
|
||||||
+ public HandlerList getHandlers() {
|
+ public HandlerList getHandlers() {
|
||||||
|
|||||||
@@ -5,10 +5,10 @@ Subject: [PATCH] World Instance flag
|
|||||||
|
|
||||||
|
|
||||||
diff --git a/src/main/java/org/bukkit/World.java b/src/main/java/org/bukkit/World.java
|
diff --git a/src/main/java/org/bukkit/World.java b/src/main/java/org/bukkit/World.java
|
||||||
index ba57e09e66b044fb3a99acde8e0a851e3d125d01..b5e21537f803816ee6112ea9368750237835538c 100644
|
index 340f3e569a411e7603fba8d38b79446da0ab4a93..dbb8718e7e62135dc05315be3db01d1a037c1f78 100644
|
||||||
--- a/src/main/java/org/bukkit/World.java
|
--- a/src/main/java/org/bukkit/World.java
|
||||||
+++ b/src/main/java/org/bukkit/World.java
|
+++ b/src/main/java/org/bukkit/World.java
|
||||||
@@ -2609,6 +2609,11 @@ public interface World extends RegionAccessor, WorldInfo, PluginMessageRecipient
|
@@ -2600,6 +2600,11 @@ public interface World extends RegionAccessor, WorldInfo, PluginMessageRecipient
|
||||||
*/
|
*/
|
||||||
public void setAutoSave(boolean value);
|
public void setAutoSave(boolean value);
|
||||||
|
|
||||||
|
|||||||
@@ -5,19 +5,23 @@ Subject: [PATCH] Add PlayerShieldDisableEvent
|
|||||||
|
|
||||||
|
|
||||||
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 b1ae9b0d8b229e2a6797a173cb11ecc0f43e2592..48e933f5d3f35e845bf7b0eed86ce5d9c2114bcf 100644
|
index e3227a806d9e19923783122ea94ae19e7dbe71da..61ad475364346efe7cf3f3d8db07753075d6edb9 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
|
||||||
@@ -1609,6 +1609,7 @@ public abstract class Mob extends LivingEntity {
|
@@ -1608,7 +1608,10 @@ public abstract class Mob extends LivingEntity {
|
||||||
float f = 0.25F + (float) EnchantmentHelper.getBlockEfficiency(this) * 0.05F;
|
float f = 0.25F + (float) EnchantmentHelper.getBlockEfficiency(this) * 0.05F;
|
||||||
|
|
||||||
if (this.random.nextFloat() < f) {
|
if (this.random.nextFloat() < f) {
|
||||||
+ if (!new io.papermc.paper.event.player.PlayerShieldDisableEvent((org.bukkit.entity.Player) player.getBukkitEntity(), getBukkitEntity()).callEvent()) return; // Slice
|
- player.getCooldowns().addCooldown(Items.SHIELD, 100);
|
||||||
player.getCooldowns().addCooldown(Items.SHIELD, 100);
|
+ //Slice start
|
||||||
|
+ io.papermc.paper.event.player.PlayerShieldDisableEvent shieldDisableEvent = new io.papermc.paper.event.player.PlayerShieldDisableEvent((org.bukkit.entity.Player) player.getBukkitEntity(), getBukkitEntity(), 100);
|
||||||
|
+ if (!shieldDisableEvent.callEvent()) return; // Slice
|
||||||
|
+ player.getCooldowns().addCooldown(Items.SHIELD, shieldDisableEvent.getCooldown());
|
||||||
this.level.broadcastEntityEvent(player, (byte) 30);
|
this.level.broadcastEntityEvent(player, (byte) 30);
|
||||||
}
|
}
|
||||||
|
}
|
||||||
diff --git a/src/main/java/net/minecraft/world/entity/player/Player.java b/src/main/java/net/minecraft/world/entity/player/Player.java
|
diff --git a/src/main/java/net/minecraft/world/entity/player/Player.java b/src/main/java/net/minecraft/world/entity/player/Player.java
|
||||||
index 2483d7df7f1bf94344afd38b37602c645a4a2dff..e909d2cc08a5cea3a8b98ad6faf8eb65c33a35ef 100644
|
index 2483d7df7f1bf94344afd38b37602c645a4a2dff..0156525637f8aa2e4e639bc493d8617b5af4cc32 100644
|
||||||
--- a/src/main/java/net/minecraft/world/entity/player/Player.java
|
--- a/src/main/java/net/minecraft/world/entity/player/Player.java
|
||||||
+++ b/src/main/java/net/minecraft/world/entity/player/Player.java
|
+++ b/src/main/java/net/minecraft/world/entity/player/Player.java
|
||||||
@@ -949,7 +949,7 @@ public abstract class Player extends LivingEntity {
|
@@ -949,7 +949,7 @@ public abstract class Player extends LivingEntity {
|
||||||
@@ -42,12 +46,17 @@ index 2483d7df7f1bf94344afd38b37602c645a4a2dff..e909d2cc08a5cea3a8b98ad6faf8eb65
|
|||||||
float f = 0.25F + (float) EnchantmentHelper.getBlockEfficiency(this) * 0.05F;
|
float f = 0.25F + (float) EnchantmentHelper.getBlockEfficiency(this) * 0.05F;
|
||||||
|
|
||||||
if (sprinting) {
|
if (sprinting) {
|
||||||
@@ -1427,6 +1433,8 @@ public abstract class Player extends LivingEntity {
|
@@ -1427,7 +1433,12 @@ public abstract class Player extends LivingEntity {
|
||||||
}
|
}
|
||||||
|
|
||||||
if (this.random.nextFloat() < f) {
|
if (this.random.nextFloat() < f) {
|
||||||
+ org.bukkit.entity.Entity finalAttacker = attacker != null ? attacker.getBukkitEntity() : null; // Slice
|
- this.getCooldowns().addCooldown(Items.SHIELD, 100);
|
||||||
+ if (!new io.papermc.paper.event.player.PlayerShieldDisableEvent((org.bukkit.entity.Player) getBukkitEntity(), finalAttacker).callEvent()) return; // Slice
|
+ // Slice start
|
||||||
this.getCooldowns().addCooldown(Items.SHIELD, 100);
|
+ org.bukkit.entity.Entity finalAttacker = attacker != null ? attacker.getBukkitEntity() : null;
|
||||||
|
+ io.papermc.paper.event.player.PlayerShieldDisableEvent shieldDisableEvent = new io.papermc.paper.event.player.PlayerShieldDisableEvent((org.bukkit.entity.Player) getBukkitEntity(), finalAttacker, 100);
|
||||||
|
+ if (!shieldDisableEvent.callEvent()) return;
|
||||||
|
+ this.getCooldowns().addCooldown(Items.SHIELD, shieldDisableEvent.getCooldown());
|
||||||
|
+ // Slice end
|
||||||
this.stopUsingItem();
|
this.stopUsingItem();
|
||||||
this.level.broadcastEntityEvent(this, (byte) 30);
|
this.level.broadcastEntityEvent(this, (byte) 30);
|
||||||
|
}
|
||||||
|
|||||||
@@ -37,7 +37,7 @@ index 6837c965592d4584cfc958a1008b98791a0fc780..070dab06db870f3c67dffe7637fe1a92
|
|||||||
CompoundTag newData = this.getTagClone();
|
CompoundTag newData = this.getTagClone();
|
||||||
int newCount = this.getCount();
|
int newCount = this.getCount();
|
||||||
diff --git a/src/main/java/net/minecraft/world/level/Level.java b/src/main/java/net/minecraft/world/level/Level.java
|
diff --git a/src/main/java/net/minecraft/world/level/Level.java b/src/main/java/net/minecraft/world/level/Level.java
|
||||||
index 8b6ea24dc8d0286c0814c86dcf4c51cacc572854..6764f174d0685c02d5e81aa38228d02a77bf9632 100644
|
index b2fd675cfe9301b0cfc42a8e9bba3fb8356b4789..be12155798e5ad6ae8bf47acfbfdb5b20ad45fe5 100644
|
||||||
--- a/src/main/java/net/minecraft/world/level/Level.java
|
--- a/src/main/java/net/minecraft/world/level/Level.java
|
||||||
+++ b/src/main/java/net/minecraft/world/level/Level.java
|
+++ b/src/main/java/net/minecraft/world/level/Level.java
|
||||||
@@ -172,6 +172,27 @@ public abstract class Level implements LevelAccessor, AutoCloseable {
|
@@ -172,6 +172,27 @@ public abstract class Level implements LevelAccessor, AutoCloseable {
|
||||||
@@ -115,10 +115,10 @@ index e12b76238cb52a1007f2102473b7f892f8521b62..301dfb74fec49b7f6f0452e4c49c8f1d
|
|||||||
BlockState iblockdata2 = iblockdata1.hasProperty(BlockStateProperties.WATERLOGGED) && (Boolean) iblockdata1.getValue(BlockStateProperties.WATERLOGGED) ? Blocks.WATER.defaultBlockState() : Blocks.AIR.defaultBlockState();
|
BlockState iblockdata2 = iblockdata1.hasProperty(BlockStateProperties.WATERLOGGED) && (Boolean) iblockdata1.getValue(BlockStateProperties.WATERLOGGED) ? Blocks.WATER.defaultBlockState() : Blocks.AIR.defaultBlockState();
|
||||||
|
|
||||||
diff --git a/src/main/java/net/minecraft/world/level/block/state/BlockBehaviour.java b/src/main/java/net/minecraft/world/level/block/state/BlockBehaviour.java
|
diff --git a/src/main/java/net/minecraft/world/level/block/state/BlockBehaviour.java b/src/main/java/net/minecraft/world/level/block/state/BlockBehaviour.java
|
||||||
index 61590f2f04a797235299f1bd6b78a08f5bfe4a33..9f757e1f0287f9146298ce6c09bb7aa207edbbc2 100644
|
index 7f83c9390823b42fc30d04e1d3222e2825eaad50..a099fcaabe26378157c429ad899714fd3227f9ef 100644
|
||||||
--- a/src/main/java/net/minecraft/world/level/block/state/BlockBehaviour.java
|
--- a/src/main/java/net/minecraft/world/level/block/state/BlockBehaviour.java
|
||||||
+++ b/src/main/java/net/minecraft/world/level/block/state/BlockBehaviour.java
|
+++ b/src/main/java/net/minecraft/world/level/block/state/BlockBehaviour.java
|
||||||
@@ -968,6 +968,18 @@ public abstract class BlockBehaviour {
|
@@ -988,6 +988,18 @@ public abstract class BlockBehaviour {
|
||||||
|
|
||||||
blockposition_mutableblockposition.setWithOffset(pos, enumdirection);
|
blockposition_mutableblockposition.setWithOffset(pos, enumdirection);
|
||||||
BlockState iblockdata = world.getBlockState(blockposition_mutableblockposition);
|
BlockState iblockdata = world.getBlockState(blockposition_mutableblockposition);
|
||||||
|
|||||||
@@ -155,10 +155,10 @@ index f91e1a876ad4c46a7c92cead18947a941b4d9e68..13973b8803afefd491dc05e1df6e9b10
|
|||||||
|
|
||||||
if (this.entity instanceof LivingEntity) {
|
if (this.entity instanceof LivingEntity) {
|
||||||
diff --git a/src/main/java/net/minecraft/world/entity/Entity.java b/src/main/java/net/minecraft/world/entity/Entity.java
|
diff --git a/src/main/java/net/minecraft/world/entity/Entity.java b/src/main/java/net/minecraft/world/entity/Entity.java
|
||||||
index 382d32045417174f5ef3fe556762146d07e30e17..d76e8d2030adba305368590158d8767cfe5190e1 100644
|
index 5b222edfda19c1446f1fe6ad67b2248f003ff0b0..be293253c6e90c1f109b5e270c527a4e2b0cff2f 100644
|
||||||
--- a/src/main/java/net/minecraft/world/entity/Entity.java
|
--- a/src/main/java/net/minecraft/world/entity/Entity.java
|
||||||
+++ b/src/main/java/net/minecraft/world/entity/Entity.java
|
+++ b/src/main/java/net/minecraft/world/entity/Entity.java
|
||||||
@@ -2991,7 +2991,7 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource {
|
@@ -2986,7 +2986,7 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource {
|
||||||
this.entityData.markDirty(Entity.DATA_AIR_SUPPLY_ID);
|
this.entityData.markDirty(Entity.DATA_AIR_SUPPLY_ID);
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
@@ -168,7 +168,7 @@ index 382d32045417174f5ef3fe556762146d07e30e17..d76e8d2030adba305368590158d8767c
|
|||||||
}
|
}
|
||||||
|
|
||||||
diff --git a/src/main/java/net/minecraft/world/entity/player/Player.java b/src/main/java/net/minecraft/world/entity/player/Player.java
|
diff --git a/src/main/java/net/minecraft/world/entity/player/Player.java b/src/main/java/net/minecraft/world/entity/player/Player.java
|
||||||
index e909d2cc08a5cea3a8b98ad6faf8eb65c33a35ef..e3725c380839257fa5b08c34b339ce30c8f3143f 100644
|
index 0156525637f8aa2e4e639bc493d8617b5af4cc32..1c598a97ed78a744907ae310f3568c447aad0949 100644
|
||||||
--- a/src/main/java/net/minecraft/world/entity/player/Player.java
|
--- a/src/main/java/net/minecraft/world/entity/player/Player.java
|
||||||
+++ b/src/main/java/net/minecraft/world/entity/player/Player.java
|
+++ b/src/main/java/net/minecraft/world/entity/player/Player.java
|
||||||
@@ -632,7 +632,7 @@ public abstract class Player extends LivingEntity {
|
@@ -632,7 +632,7 @@ public abstract class Player extends LivingEntity {
|
||||||
|
|||||||
@@ -5,10 +5,10 @@ Subject: [PATCH] World Instance flag
|
|||||||
|
|
||||||
|
|
||||||
diff --git a/src/main/java/net/minecraft/server/level/ServerLevel.java b/src/main/java/net/minecraft/server/level/ServerLevel.java
|
diff --git a/src/main/java/net/minecraft/server/level/ServerLevel.java b/src/main/java/net/minecraft/server/level/ServerLevel.java
|
||||||
index b5b56d4549e97abbbe9e91d881b9bca8428f1eec..b884688d0fb3e46e04a4546c202476df6f94f59b 100644
|
index 98209532ad3e692d7e459640123f78bbd9a65889..9b3af8f2a433368d722cd442c07b2a2cfb16dc54 100644
|
||||||
--- a/src/main/java/net/minecraft/server/level/ServerLevel.java
|
--- a/src/main/java/net/minecraft/server/level/ServerLevel.java
|
||||||
+++ b/src/main/java/net/minecraft/server/level/ServerLevel.java
|
+++ b/src/main/java/net/minecraft/server/level/ServerLevel.java
|
||||||
@@ -212,6 +212,7 @@
|
@@ -212,6 +212,7 @@ public class ServerLevel extends Level implements WorldGenLevel {
|
||||||
public final UUID uuid;
|
public final UUID uuid;
|
||||||
public boolean hasPhysicsEvent = true; // Paper
|
public boolean hasPhysicsEvent = true; // Paper
|
||||||
public boolean hasEntityMoveEvent = false; // Paper
|
public boolean hasEntityMoveEvent = false; // Paper
|
||||||
@@ -16,12 +16,11 @@ index b5b56d4549e97abbbe9e91d881b9bca8428f1eec..b884688d0fb3e46e04a4546c202476df
|
|||||||
private final alternate.current.wire.WireHandler wireHandler = new alternate.current.wire.WireHandler(this); // Paper - optimize redstone (Alternate Current)
|
private final alternate.current.wire.WireHandler wireHandler = new alternate.current.wire.WireHandler(this); // Paper - optimize redstone (Alternate Current)
|
||||||
public static Throwable getAddToWorldStackTrace(Entity entity) {
|
public static Throwable getAddToWorldStackTrace(Entity entity) {
|
||||||
return new Throwable(entity + " Added to world at " + new java.util.Date());
|
return new Throwable(entity + " Added to world at " + new java.util.Date());
|
||||||
|
|
||||||
diff --git a/src/main/java/org/bukkit/craftbukkit/CraftWorld.java b/src/main/java/org/bukkit/craftbukkit/CraftWorld.java
|
diff --git a/src/main/java/org/bukkit/craftbukkit/CraftWorld.java b/src/main/java/org/bukkit/craftbukkit/CraftWorld.java
|
||||||
index b2c5fbfcb64f3056d7975db43b2db45bfd5e9890..0bed6e05db5c6170161158fdd520042179491c6b 100644
|
index 48825eaba9677a8b1e4fff80738e17d08e3307f8..64e2b9554d7a9911e1eff121d4f56d71e97aca68 100644
|
||||||
--- a/src/main/java/org/bukkit/craftbukkit/CraftWorld.java
|
--- a/src/main/java/org/bukkit/craftbukkit/CraftWorld.java
|
||||||
+++ b/src/main/java/org/bukkit/craftbukkit/CraftWorld.java
|
+++ b/src/main/java/org/bukkit/craftbukkit/CraftWorld.java
|
||||||
@@ -1268,6 +1268,18 @@ public class CraftWorld extends CraftRegionAccessor implements World {
|
@@ -1274,6 +1274,18 @@ public class CraftWorld extends CraftRegionAccessor implements World {
|
||||||
world.noSave = !value;
|
world.noSave = !value;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user