diff --git a/build.gradle.kts b/build.gradle.kts index 0e5212dc6..7502a4b09 100644 --- a/build.gradle.kts +++ b/build.gradle.kts @@ -23,7 +23,7 @@ logger.lifecycle(""" ******************************************* """) -var rootVersion by extra("2.4.2") +var rootVersion by extra("2.4.3") var snapshot by extra("SNAPSHOT") var revision: String by extra("") var buildNumber by extra("") diff --git a/worldedit-bukkit/adapters/adapter-1_18_2/src/main/java/com/sk89q/worldedit/bukkit/adapter/impl/fawe/v1_18_R2/PaperweightPlatformAdapter.java b/worldedit-bukkit/adapters/adapter-1_18_2/src/main/java/com/sk89q/worldedit/bukkit/adapter/impl/fawe/v1_18_R2/PaperweightPlatformAdapter.java index ad3205feb..8546de630 100644 --- a/worldedit-bukkit/adapters/adapter-1_18_2/src/main/java/com/sk89q/worldedit/bukkit/adapter/impl/fawe/v1_18_R2/PaperweightPlatformAdapter.java +++ b/worldedit-bukkit/adapters/adapter-1_18_2/src/main/java/com/sk89q/worldedit/bukkit/adapter/impl/fawe/v1_18_R2/PaperweightPlatformAdapter.java @@ -99,7 +99,7 @@ public final class PaperweightPlatformAdapter extends NMSAdapter { private static final Field fieldLock; private static final long fieldLockOffset; - private static final Field fieldGameEventDispatcherSections; + private static final MethodHandle methodRemoveGameEventListener; private static final MethodHandle methodremoveTickingBlockEntity; private static final Field fieldRemove; @@ -148,9 +148,12 @@ public final class PaperweightPlatformAdapter extends NMSAdapter { fieldLockOffset = -1; } - fieldGameEventDispatcherSections = LevelChunk.class.getDeclaredField(Refraction.pickName( - "gameEventDispatcherSections", "t")); - fieldGameEventDispatcherSections.setAccessible(true); + Method removeGameEventListener = LevelChunk.class.getDeclaredMethod( + Refraction.pickName("removeGameEventListener", "d"), + BlockEntity.class + ); + removeGameEventListener.setAccessible(true); + methodRemoveGameEventListener = MethodHandles.lookup().unreflect(removeGameEventListener); Method removeBlockEntityTicker = LevelChunk.class.getDeclaredMethod( Refraction.pickName( "removeBlockEntityTicker", @@ -573,23 +576,7 @@ public final class PaperweightPlatformAdapter extends NMSAdapter { BlockEntity blockEntity = levelChunk.blockEntities.remove(beacon.getBlockPos()); if (blockEntity != null) { if (!levelChunk.level.isClientSide) { - Block block = beacon.getBlockState().getBlock(); - if (block instanceof EntityBlock) { - GameEventListener gameEventListener = ((EntityBlock) block).getListener(levelChunk.level, beacon); - if (gameEventListener != null) { - int i = SectionPos.blockToSectionCoord(beacon.getBlockPos().getY()); - GameEventDispatcher gameEventDispatcher = levelChunk.getEventDispatcher(i); - gameEventDispatcher.unregister(gameEventListener); - if (gameEventDispatcher.isEmpty()) { - try { - ((Int2ObjectMap) fieldGameEventDispatcherSections.get(levelChunk)) - .remove(i); - } catch (IllegalAccessException e) { - e.printStackTrace(); - } - } - } - } + methodRemoveGameEventListener.invoke(levelChunk, beacon); } fieldRemove.set(beacon, true); } diff --git a/worldedit-bukkit/adapters/adapter-1_19/src/main/java/com/sk89q/worldedit/bukkit/adapter/ext/fawe/v1_19_R1/PaperweightAdapter.java b/worldedit-bukkit/adapters/adapter-1_19/src/main/java/com/sk89q/worldedit/bukkit/adapter/ext/fawe/v1_19_R1/PaperweightAdapter.java index 2379a7d12..571a50e9e 100644 --- a/worldedit-bukkit/adapters/adapter-1_19/src/main/java/com/sk89q/worldedit/bukkit/adapter/ext/fawe/v1_19_R1/PaperweightAdapter.java +++ b/worldedit-bukkit/adapters/adapter-1_19/src/main/java/com/sk89q/worldedit/bukkit/adapter/ext/fawe/v1_19_R1/PaperweightAdapter.java @@ -183,8 +183,8 @@ public final class PaperweightAdapter implements BukkitImplAdapter) fieldGameEventDispatcherSections.get(levelChunk)) - .remove(i); - } catch (IllegalAccessException e) { - e.printStackTrace(); - } - } - } - } + methodRemoveGameEventListener.invoke(levelChunk, beacon, levelChunk.level); } fieldRemove.set(beacon, true); } diff --git a/worldedit-core/src/main/java/com/sk89q/worldedit/command/RegionCommands.java b/worldedit-core/src/main/java/com/sk89q/worldedit/command/RegionCommands.java index d8e28084a..5d3fb30e8 100644 --- a/worldedit-core/src/main/java/com/sk89q/worldedit/command/RegionCommands.java +++ b/worldedit-core/src/main/java/com/sk89q/worldedit/command/RegionCommands.java @@ -159,18 +159,6 @@ public class RegionCommands { actor.print(Caption.of("fawe.info.lighting.propagate.selection", count)); } - // @Command( - // name = "/getlighting", - // desc = "Get the light at a position" - // ) - // @CommandPermissions("worldedit.light.fix") - // public void getLighting(Player player, EditSession editSession) throws WorldEditException { - // final Location loc = player.getLocation(); - // int block = editSession.getBlockLight(loc.getBlockX(), loc.getBlockY(), loc.getBlockZ()); - // int sky = editSession.getSkyLight(loc.getBlockX(), loc.getBlockY(), loc.getBlockZ()); - // player.print(TextComponent.of("Light: " + block + " | " + sky)); - // } - @Command( name = "/removelighting", aliases = "/removelight", @@ -202,6 +190,7 @@ public class RegionCommands { } } + @Deprecated(since = "2.4.2", forRemoval = true) @Command( name = "/setblocklight", aliases = "/setlight", @@ -209,16 +198,17 @@ public class RegionCommands { ) @CommandPermissions("worldedit.light.set") public void setlighting(Actor actor, EditSession editSession, @Selection Region region) { - actor.print(Caption.of("fawe.info.temporarily-not-working")); + actor.print(Caption.of("fawe.info.light-blocks")); } + @Deprecated(since = "2.4.2", forRemoval = true) @Command( name = "/setskylight", desc = "Set sky lighting in a selection" ) @CommandPermissions("worldedit.light.set") public void setskylighting(Actor actor, @Selection Region region) { - actor.print(Caption.of("fawe.info.temporarily-not-working")); + actor.print(Caption.of("fawe.info.light-blocks")); } @Command( diff --git a/worldedit-core/src/main/resources/lang/strings.json b/worldedit-core/src/main/resources/lang/strings.json index 083ea2406..5c6a411d2 100644 --- a/worldedit-core/src/main/resources/lang/strings.json +++ b/worldedit-core/src/main/resources/lang/strings.json @@ -4,7 +4,7 @@ "fawe.worldedit.history.find.element.more": " - Changes: {0}\n - Bounds: {1} -> {2}\n - Extra: {3}\n - Size on Disk: {4}", "fawe.worldedit.history.find.hover": "{0} blocks changed, click for more info", "fawe.worldedit.history.distr.summary_null": "Could not find edit summary for inputs.", - "fawe.info.lighting.propagate.selection": "Lighting has been propagated in {0} chunks. (Note: To remove light use //removelight)", + "fawe.info.lighting.propagate.selection": "Lighting has been propagated in {0} chunks.", "fawe.info.updated.lighting.selection": "Lighting has been updated in {0} chunks. (It may take a second for the packets to send)", "fawe.info.set.region": "Selection set to your current allowed region", "fawe.info.worldedit.toggle.tips.on": "Disabled FAWE tips.", @@ -13,6 +13,7 @@ "fawe.info.worldedit.restricted": "Your FAWE edits are now restricted.", "fawe.info.worldedit.oom.admin": "Possible options:\n - //fast\n - Do smaller edits\n - Allocate more memory\n - Disable `max-memory-percent`", "fawe.info.temporarily-not-working": "Temporarily not working", + "fawe.info.light-blocks": "Light blocks are more reliable than light sources, please use the blocks. This command is deprecated and will be removed in a future version.", "fawe.info.update-available": "An update for FastAsyncWorldEdit is available. You are {0} build(s) out of date.\nYou are running build {1}, the latest version is build {2}.\nUpdate at {3}", "fawe.web.generating.link": "Uploading {0}, please wait...", "fawe.web.generating.link.failed": "Failed to generate download link!",