Skip to content

Commit 37c2d7d

Browse files
committed
fix: Anvils and falling blocks duplicating
feat: /dw section switch command
1 parent c0b1414 commit 37c2d7d

2 files changed

Lines changed: 17 additions & 2 deletions

File tree

src/main/kotlin/com/mineinabyss/deeperworld/sections/SectionFeature.kt

Lines changed: 10 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,10 @@ import com.mineinabyss.deeperworld.deeperWorld
55
import com.mineinabyss.deeperworld.player.PlayerRepository
66
import com.mineinabyss.deeperworld.player.PlayerRepositoryImpl
77
import com.mineinabyss.deeperworld.player.canMoveSections
8-
import com.mineinabyss.dependencies.*
8+
import com.mineinabyss.dependencies.get
9+
import com.mineinabyss.dependencies.module
10+
import com.mineinabyss.dependencies.new
11+
import com.mineinabyss.dependencies.single
912
import com.mineinabyss.idofront.commands.brigadier.Args
1013
import com.mineinabyss.idofront.commands.brigadier.oneOf
1114
import com.mineinabyss.idofront.features.get
@@ -54,6 +57,12 @@ val SectionFeature = module("sections") {
5457
}
5558

5659
"section" {
60+
"switch" {
61+
description = "Switches to corresponding section if player is in bondary"
62+
executes.asPlayer {
63+
player.teleport(player.location.correspondingLocation ?: fail("No corresponding section"))
64+
}
65+
}
5766
"tp" {
5867
executes.asPlayer().args(
5968
"section" to Args.string().oneOf { get<SectionRepository>().sections.map { it.key } }

src/main/kotlin/com/mineinabyss/deeperworld/synchronization/SectionSyncListener.kt

Lines changed: 7 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -9,6 +9,7 @@ import com.mineinabyss.deeperworld.sections.correspondingLocation
99
import com.mineinabyss.deeperworld.sections.inSectionOverlap
1010
import com.mineinabyss.idofront.events.call
1111
import com.mineinabyss.idofront.time.ticks
12+
import io.papermc.paper.event.block.BlockBreakBlockEvent
1213
import it.unimi.dsi.fastutil.objects.ObjectOpenHashSet
1314
import kotlinx.coroutines.delay
1415
import net.kyori.adventure.text.Component
@@ -50,6 +51,11 @@ class SectionSyncListener(
5051
private val attachedBlocks = ObjectOpenHashSet(Tag.REPLACEABLE.values.plus(setOf(Material.TORCH, Material.WALL_TORCH, Material.SPORE_BLOSSOM)))
5152
private val attachedFaces = ObjectOpenHashSet(BlockFace.entries.take(6))
5253

54+
@EventHandler(ignoreCancelled = true, priority = EventPriority.MONITOR)
55+
fun BlockBreakBlockEvent.onDropItem() {
56+
println(block.y)
57+
}
58+
5359
@EventHandler(ignoreCancelled = true, priority = EventPriority.MONITOR)
5460
fun BlockBreakEvent.syncBlockBreak() {
5561
sections.whenLinked(block) { linked ->
@@ -225,7 +231,7 @@ class SectionSyncListener(
225231
@EventHandler
226232
fun EntityChangeBlockEvent.syncBlockChange() {
227233
sections.whenLinked(block) { linked ->
228-
linked.blockData = block.blockData
234+
linked.blockData = this.blockData
229235
}
230236
}
231237

0 commit comments

Comments
 (0)