mirror of
https://github.com/PurpurMC/Purpur.git
synced 2026-02-20 18:07:43 +01:00
don't broadcast SpongeAbsorbEvent if it's our method call
This commit is contained in:
@@ -1,11 +1,11 @@
|
|||||||
From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
|
From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
|
||||||
From: granny <granny@purpurmc.org>
|
From: granny <granny@purpurmc.org>
|
||||||
Date: Sun, 27 Aug 2023 02:08:38 -0700
|
Date: Sun, 27 Aug 2023 02:09:51 -0700
|
||||||
Subject: [PATCH] lightning affects blocks
|
Subject: [PATCH] lightning transforms blocks
|
||||||
|
|
||||||
|
|
||||||
diff --git a/src/main/java/net/minecraft/world/entity/LightningBolt.java b/src/main/java/net/minecraft/world/entity/LightningBolt.java
|
diff --git a/src/main/java/net/minecraft/world/entity/LightningBolt.java b/src/main/java/net/minecraft/world/entity/LightningBolt.java
|
||||||
index a01a8ba27534d2b0d544423bc2c48fd29d0a6d64..fe90d51a2ca4de65219e53ca9a52257e06b65192 100644
|
index a01a8ba27534d2b0d544423bc2c48fd29d0a6d64..0f708a1f0a141cc088ba860023d5ce9114ded9e5 100644
|
||||||
--- a/src/main/java/net/minecraft/world/entity/LightningBolt.java
|
--- a/src/main/java/net/minecraft/world/entity/LightningBolt.java
|
||||||
+++ b/src/main/java/net/minecraft/world/entity/LightningBolt.java
|
+++ b/src/main/java/net/minecraft/world/entity/LightningBolt.java
|
||||||
@@ -83,6 +83,49 @@ public class LightningBolt extends Entity {
|
@@ -83,6 +83,49 @@ public class LightningBolt extends Entity {
|
||||||
@@ -39,7 +39,7 @@ index a01a8ba27534d2b0d544423bc2c48fd29d0a6d64..fe90d51a2ca4de65219e53ca9a52257e
|
|||||||
+
|
+
|
||||||
+ org.bukkit.craftbukkit.util.BlockStateListPopulator blockList = new org.bukkit.craftbukkit.util.BlockStateListPopulator(level());
|
+ org.bukkit.craftbukkit.util.BlockStateListPopulator blockList = new org.bukkit.craftbukkit.util.BlockStateListPopulator(level());
|
||||||
+ net.minecraft.world.level.block.SpongeBlock.removeBlocksBreadthFirstSearch(level(), blockposition2, level().purpurConfig.lightningTurnsNearbySandIntoGlassMaxDepth, level().purpurConfig.lightningTurnsNearbySandIntoGlassMaxIterations, blockList, (blockposition1) -> {
|
+ net.minecraft.world.level.block.SpongeBlock.removeBlocksBreadthFirstSearch(level(), blockposition2, level().purpurConfig.lightningTurnsNearbySandIntoGlassMaxDepth, level().purpurConfig.lightningTurnsNearbySandIntoGlassMaxIterations, blockList, (blockposition1) -> {
|
||||||
+ if (blockposition1.equals(blockposition)) {
|
+ if (blockposition1.equals(blockposition2)) {
|
||||||
+ return true;
|
+ return true;
|
||||||
+ } else {
|
+ } else {
|
||||||
+ BlockState iblockdata3 = blockList.getBlockState(blockposition1);
|
+ BlockState iblockdata3 = blockList.getBlockState(blockposition1);
|
||||||
@@ -67,7 +67,7 @@ index a01a8ba27534d2b0d544423bc2c48fd29d0a6d64..fe90d51a2ca4de65219e53ca9a52257e
|
|||||||
this.gameEvent(GameEvent.LIGHTNING_STRIKE);
|
this.gameEvent(GameEvent.LIGHTNING_STRIKE);
|
||||||
}
|
}
|
||||||
diff --git a/src/main/java/net/minecraft/world/level/block/SpongeBlock.java b/src/main/java/net/minecraft/world/level/block/SpongeBlock.java
|
diff --git a/src/main/java/net/minecraft/world/level/block/SpongeBlock.java b/src/main/java/net/minecraft/world/level/block/SpongeBlock.java
|
||||||
index 2276fed1feb4fea59b5bd49b5e4586d49478b3cc..5dfbe20bc660dedac6cb0af799176f1735950df5 100644
|
index 2276fed1feb4fea59b5bd49b5e4586d49478b3cc..bd1edc58a863673491a2935af4dc92996d1edb4c 100644
|
||||||
--- a/src/main/java/net/minecraft/world/level/block/SpongeBlock.java
|
--- a/src/main/java/net/minecraft/world/level/block/SpongeBlock.java
|
||||||
+++ b/src/main/java/net/minecraft/world/level/block/SpongeBlock.java
|
+++ b/src/main/java/net/minecraft/world/level/block/SpongeBlock.java
|
||||||
@@ -47,8 +47,12 @@ public class SpongeBlock extends Block {
|
@@ -47,8 +47,12 @@ public class SpongeBlock extends Block {
|
||||||
@@ -94,7 +94,7 @@ index 2276fed1feb4fea59b5bd49b5e4586d49478b3cc..5dfbe20bc660dedac6cb0af799176f17
|
|||||||
if (blockposition1.equals(pos)) {
|
if (blockposition1.equals(pos)) {
|
||||||
return true;
|
return true;
|
||||||
} else {
|
} else {
|
||||||
@@ -102,7 +106,7 @@ public class SpongeBlock extends Block {
|
@@ -102,17 +106,19 @@ public class SpongeBlock extends Block {
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -103,6 +103,18 @@ index 2276fed1feb4fea59b5bd49b5e4586d49478b3cc..5dfbe20bc660dedac6cb0af799176f17
|
|||||||
// CraftBukkit start
|
// CraftBukkit start
|
||||||
List<CraftBlockState> blocks = blockList.getList(); // Is a clone
|
List<CraftBlockState> blocks = blockList.getList(); // Is a clone
|
||||||
if (!blocks.isEmpty()) {
|
if (!blocks.isEmpty()) {
|
||||||
|
final org.bukkit.block.Block bblock = world.getWorld().getBlockAt(pos.getX(), pos.getY(), pos.getZ());
|
||||||
|
|
||||||
|
+ if (customCallback != null) { // Purpur - TODO: custom event that extends spongeabsorbevent?? or use a pre-existing block event? or leave it as is..
|
||||||
|
SpongeAbsorbEvent event = new SpongeAbsorbEvent(bblock, (List<org.bukkit.block.BlockState>) (List) blocks);
|
||||||
|
world.getCraftServer().getPluginManager().callEvent(event);
|
||||||
|
|
||||||
|
if (event.isCancelled()) {
|
||||||
|
return false;
|
||||||
|
+ } // Purpur
|
||||||
|
}
|
||||||
|
|
||||||
|
for (CraftBlockState block : blocks) {
|
||||||
diff --git a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
|
diff --git a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
|
||||||
index 078102e636803f38facc049952813ff2f8b63594..eed225bc3e0568a2b0a5c3370f81d1f1235334b6 100644
|
index 078102e636803f38facc049952813ff2f8b63594..eed225bc3e0568a2b0a5c3370f81d1f1235334b6 100644
|
||||||
--- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
|
--- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
|
||||||
Reference in New Issue
Block a user