NoSuchMethodError when ChangeBlockEvent.getTargetWorld() is called

Version: spongevanilla 1.11.2-6.0.0-BETA-239

Code:

	@Listener
	@Include({ChangeBlockEvent.Break.class, ChangeBlockEvent.Place.class, ChangeBlockEvent.Modify.class})
	public void onPlayerBreakBlock(ChangeBlockEvent event, @First Player player) {
		event.getTargetWorld(); //this line error

Error:

[22:50:29] [Server thread/ERROR] [Sponge]: Could not pass ChangeBlockEvent$Place$Impl to Plugin{id=settlement, name=Settlement, version=1.0, source=mods\Settlement-0.0.1-SNAPSHOT.jar}
java.lang.NoSuchMethodError: org.spongepowered.api.event.block.ChangeBlockEvent.getTargetWorld()Lorg/spongepowered/api/world/World;
	at settlement.SettlementListener.onPlayerBreakBlock(SettlementListener.java:117) ~[SettlementListener.class:?]
	at org.spongepowered.common.event.listener.ChangeBlockEventListener_SettlementListener_onPlayerBreakBlock22.handle(Unknown Source) ~[?:?]
	at org.spongepowered.common.event.RegisteredListener.handle(RegisteredListener.java:95) ~[RegisteredListener.class:1.11.2-6.0.0-BETA-239]
	at org.spongepowered.common.event.SpongeEventManager.post(SpongeEventManager.java:305) ~[SpongeEventManager.class:1.11.2-6.0.0-BETA-239]
	at org.spongepowered.common.event.SpongeEventManager.post(SpongeEventManager.java:320) ~[SpongeEventManager.class:1.11.2-6.0.0-BETA-239]
	at org.spongepowered.common.SpongeImpl.postEvent(SpongeImpl.java:146) ~[SpongeImpl.class:1.11.2-6.0.0-BETA-239]
	at org.spongepowered.common.event.tracking.TrackingUtil.iterateChangeBlockEvents(TrackingUtil.java:624) ~[TrackingUtil.class:1.11.2-6.0.0-BETA-239]
	at org.spongepowered.common.event.tracking.TrackingUtil.processBlockCaptures(TrackingUtil.java:531) ~[TrackingUtil.class:1.11.2-6.0.0-BETA-239]
	at org.spongepowered.common.event.tracking.phase.packet.PacketFunction.lambda$null$36(PacketFunction.java:755) ~[PacketFunction.class:1.11.2-6.0.0-BETA-239]
	at org.spongepowered.common.event.tracking.CapturedSupplier.ifPresentAndNotEmpty(CapturedSupplier.java:57) ~[CapturedSupplier.class:1.11.2-6.0.0-BETA-239]
	at org.spongepowered.common.event.tracking.phase.packet.PacketFunction.lambda$static$39(PacketFunction.java:753) ~[PacketFunction.class:1.11.2-6.0.0-BETA-239]
	at org.spongepowered.common.event.tracking.phase.packet.PacketPhase.unwind(PacketPhase.java:323) [PacketPhase.class:1.11.2-6.0.0-BETA-239]
	at org.spongepowered.common.event.tracking.CauseTracker.completePhase(CauseTracker.java:222) [CauseTracker.class:1.11.2-6.0.0-BETA-239]
	at org.spongepowered.common.event.tracking.CauseTracker.switchToPhase(CauseTracker.java:164) [CauseTracker.class:1.11.2-6.0.0-BETA-239]
	at org.spongepowered.common.network.PacketUtil.onProcessPacket(PacketUtil.java:152) [PacketUtil.class:1.11.2-6.0.0-BETA-239]
	at net.minecraft.network.PacketThreadUtil$1.redirect$onProcessPacket$zjf000(SourceFile:539) [fo$1.class:?]
	at net.minecraft.network.PacketThreadUtil$1.run(SourceFile:13) [fo$1.class:?]
	at java.util.concurrent.Executors$RunnableAdapter.call(Unknown Source) [?:1.8.0_73]
	at java.util.concurrent.FutureTask.run(Unknown Source) [?:1.8.0_73]
	at net.minecraft.util.Util.func_181617_a(SourceFile:46) [h.class:?]
	at org.spongepowered.common.SpongeImplHooks.onUtilRunTask(SpongeImplHooks.java:259) [SpongeImplHooks.class:1.11.2-6.0.0-BETA-239]
	at net.minecraft.server.MinecraftServer.redirect$onRun$zhf000(SourceFile:4168) [MinecraftServer.class:?]
	at net.minecraft.server.MinecraftServer.func_71190_q(SourceFile:1526) [MinecraftServer.class:?]
	at net.minecraft.server.dedicated.DedicatedServer.func_71190_q(SourceFile:335) [lh.class:?]
	at net.minecraft.server.MinecraftServer.func_71217_p(SourceFile:562) [MinecraftServer.class:?]
	at net.minecraft.server.MinecraftServer.run(SourceFile:466) [MinecraftServer.class:?]
	at java.lang.Thread.run(Unknown Source) [?:1.8.0_73]

that would be because there is no such method getTargetWorld from ChangeBlockEvent. It’s a very descriptive error. Instead, you must get the world from the locations that blocks are being changed at. You’re compiling against API 5 and running on API 6. This, by definition, is extremely unlikely to work.

The API changed in API 6, I removed the TargetWorldEvent from a few events. This is because block changes that do take place are not guaranteed to take place in the same world. It was a necessary change to allow for the CauseTracker that powers all of the change event to switch over to a global manager to allow mod changes to take place without synchronization errors.

Where can I find API 6 javadoc?
I tried https://jd.spongepowered.org/6.0.0/ and https://jd.spongepowered.org/6.1.0/ but nothing found.

API 6 is not yet released, but there are snapshots available.
The javadoc can be found here: https://jd.spongepowered.org/6.0.0-SNAPSHOT/

Thanks!!!:smiley: