--- a/net/minecraft/world/level/block/BasePressurePlateBlock.java
+++ b/net/minecraft/world/level/block/BasePressurePlateBlock.java
@@ -82,6 +_,7 @@
 
     @Override
     protected void entityInside(BlockState state, Level level, BlockPos pos, Entity entity, InsideBlockEffectApplier effectApplier) {
+        if (!new io.papermc.paper.event.entity.EntityInsideBlockEvent(entity.getBukkitEntity(), org.bukkit.craftbukkit.block.CraftBlock.at(level, pos)).callEvent()) { return; } // Paper - Add EntityInsideBlockEvent
         if (!level.isClientSide) {
             int signalForState = this.getSignalForState(state);
             if (signalForState == 0) {
@@ -94,6 +_,16 @@
         int signalStrength = this.getSignalStrength(level, pos);
         boolean flag = currentSignal > 0;
         boolean flag1 = signalStrength > 0;
+
+        // CraftBukkit start - Interact Pressure Plate
+        if (flag != flag1) {
+            org.bukkit.event.block.BlockRedstoneEvent eventRedstone = new org.bukkit.event.block.BlockRedstoneEvent(org.bukkit.craftbukkit.block.CraftBlock.at(level, pos), currentSignal, signalStrength);
+            eventRedstone.callEvent();
+
+            flag1 = eventRedstone.getNewCurrent() > 0;
+            signalStrength = eventRedstone.getNewCurrent();
+        }
+        // CraftBukkit end
         if (currentSignal != signalStrength) {
             BlockState blockState = this.setSignalForState(state, signalStrength);
             level.setBlock(pos, blockState, 2);
@@ -142,7 +_,13 @@
     }
 
     protected static int getEntityCount(Level level, AABB box, Class<? extends Entity> entityClass) {
-        return level.getEntitiesOfClass(entityClass, box, EntitySelector.NO_SPECTATORS.and(entity -> !entity.isIgnoringBlockTriggers())).size();
+        // CraftBukkit start
+        return BasePressurePlateBlock.getEntities(level, box, entityClass).size();
+    }
+
+    protected static <T extends Entity> java.util.List<T> getEntities(Level level, AABB box, Class<T> entityClass) {
+        return level.getEntitiesOfClass(entityClass, box, EntitySelector.NO_SPECTATORS.and(entity -> !entity.isIgnoringBlockTriggers()));
+        // CraftBukkit end
     }
 
     protected abstract int getSignalStrength(Level level, BlockPos pos);
