Skip to content

Commit d89903e

Browse files
committed
save and publish component api - visualizer is not production ready
1 parent df3e43b commit d89903e

File tree

48 files changed

+2143
-646
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

48 files changed

+2143
-646
lines changed

.idea/compiler.xml

Lines changed: 1 addition & 1 deletion
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

.idea/inspectionProfiles/Project_Default.xml

Lines changed: 1 addition & 0 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

.idea/vcs.xml

Lines changed: 0 additions & 6 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

gradle.properties

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -7,5 +7,5 @@ javaVersion=21
77
mcVersion=1.21.4
88

99
group=dev.slne.surf
10-
version=1.21.4-2.0.10-SNAPSHOT
10+
version=1.21.4-2.1.0-SNAPSHOT
1111
relocationPrefix=dev.slne.surf.surfapi.libs

surf-api-bukkit/surf-api-bukkit-api/src/main/kotlin/dev/slne/surf/surfapi/bukkit/api/nms/bridges/packets/PacketOperation.kt

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -9,6 +9,7 @@ import kotlin.contracts.contract
99
interface PacketOperation {
1010
fun execute(player: Player)
1111
fun add(operation: PacketOperation): PacketOperation
12+
fun isEmpty(): Boolean
1213

1314
operator fun plus(other: PacketOperation) = add(other)
1415

surf-api-bukkit/surf-api-bukkit-api/src/main/kotlin/dev/slne/surf/surfapi/bukkit/api/nms/bridges/packets/entity/SurfBukkitNmsSpawnPackets.kt

Lines changed: 17 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -16,60 +16,69 @@ interface SurfBukkitNmsSpawnPackets {
1616
fun spawnItemDisplay(
1717
entityId: Int,
1818
position: FinePosition,
19-
settings: ItemDisplaySettings
19+
settings: ItemDisplaySettings,
2020
): PacketOperation
2121

2222
fun spawnItemDisplay(
2323
entityId: Int,
2424
position: FinePosition,
25-
settings: ItemDisplaySettings.() -> Unit
25+
settings: ItemDisplaySettings.() -> Unit,
2626
): PacketOperation =
2727
spawnItemDisplay(entityId, position, ItemDisplaySettings.create(settings).build())
2828

2929

3030
fun spawnTextDisplay(
3131
entityId: Int,
3232
position: FinePosition,
33-
settings: TextDisplaySettings
33+
settings: TextDisplaySettings,
3434
): PacketOperation
3535

3636
fun spawnTextDisplay(
3737
entityId: Int,
3838
position: FinePosition,
39-
settings: TextDisplaySettings.() -> Unit
39+
settings: TextDisplaySettings.() -> Unit,
4040
): PacketOperation =
4141
spawnTextDisplay(entityId, position, TextDisplaySettings.create(settings).build())
4242

4343
fun updateSign(
4444
entityId: Int,
4545
position: BlockPosition,
46-
settings: SignBlockUpdateSettings
46+
settings: SignBlockUpdateSettings,
4747
): PacketOperation
4848

4949
fun updateSign(
5050
entityId: Int,
5151
position: BlockPosition,
52-
settings: SignBlockUpdateSettings.() -> Unit
52+
settings: SignBlockUpdateSettings.() -> Unit,
5353
): PacketOperation =
5454
updateSign(entityId, position, SignBlockUpdateSettings.create(settings))
5555

5656
fun spawnBlockDisplay(
5757
entityId: Int,
5858
position: FinePosition,
59-
settings: BlockDisplaySettings
59+
settings: BlockDisplaySettings,
6060
): PacketOperation
6161

6262
fun spawnBlockDisplay(
6363
entityId: Int,
6464
position: FinePosition,
65-
settings: BlockDisplaySettings.() -> Unit
65+
settings: BlockDisplaySettings.() -> Unit,
6666
): PacketOperation =
6767
spawnBlockDisplay(
6868
entityId,
6969
position,
7070
BlockDisplaySettings.create(settings).build()
7171
)
7272

73+
fun teleport(
74+
entityId: Int,
75+
position: FinePosition,
76+
yaw: Float = 0f,
77+
pitch: Float = 0f,
78+
deltaMovement: FinePosition? = null,
79+
onGround: Boolean = false
80+
): PacketOperation
81+
7382
companion object {
7483
val instance = requiredService<SurfBukkitNmsSpawnPackets>()
7584
}

surf-api-bukkit/surf-api-bukkit-api/src/main/kotlin/dev/slne/surf/surfapi/bukkit/api/util/bukkit-util.kt

Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,12 +1,15 @@
11
@file:JvmName("UtilBukkit")
2+
23
package dev.slne.surf.surfapi.bukkit.api.util
34

45
import dev.slne.surf.surfapi.core.api.util.getCallerClass
56
import org.bukkit.Bukkit
7+
import org.bukkit.Chunk
68
import org.bukkit.Location
79
import org.bukkit.NamespacedKey
810
import org.bukkit.entity.Player
911
import org.bukkit.plugin.java.JavaPlugin
12+
import java.util.*
1013

1114
fun key(name: String): NamespacedKey { // TODO: Verify if this works
1215
return NamespacedKey(getCallingPlugin(), name)
@@ -22,3 +25,13 @@ fun forEachPlayer(action: (player: Player) -> Unit) {
2225
}
2326

2427
infix fun Location.distanceSqt(other: Location): Double = distanceSquared(other)
28+
29+
fun Iterable<UUID>.toPlayers() = mapNotNull { Bukkit.getPlayer(it) }
30+
fun Player.seesLocation(location: Location): Boolean {
31+
val sameWorld = world == location.world
32+
val chunkSent = isChunkSent(Chunk.getChunkKey(location))
33+
34+
println("sameWorld: $sameWorld, chunkSent: $chunkSent")
35+
36+
return this.world == location.world && this.isChunkSent(Chunk.getChunkKey(location))
37+
}
Lines changed: 17 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,17 +1,30 @@
11
package dev.slne.surf.surfapi.bukkit.api.visualizer
22

3-
import dev.slne.surf.surfapi.bukkit.api.visualizer.visualizer.SurfPatternedVisualizer
3+
import dev.slne.surf.surfapi.bukkit.api.visualizer.visualizer.ExperimentalVisualizerApi
44
import dev.slne.surf.surfapi.bukkit.api.visualizer.visualizer.SurfVisualizer
5+
import dev.slne.surf.surfapi.bukkit.api.visualizer.visualizer.SurfVisualizerMultipleLocations
6+
import dev.slne.surf.surfapi.bukkit.api.visualizer.visualizer.SurfVisualizerSingleLocation
57
import dev.slne.surf.surfapi.core.api.util.requiredService
8+
import org.bukkit.Location
9+
import java.util.*
610

11+
@ExperimentalVisualizerApi
712
interface SurfBukkitVisualizerApi {
8-
fun createVisualizer(): SurfVisualizer
9-
fun createPatternedVisualizer(): SurfPatternedVisualizer
13+
14+
fun createSingleLocationVisualizer(location: Location): SurfVisualizerSingleLocation
15+
fun createMultiLocationVisualizer(): SurfVisualizerMultipleLocations
16+
17+
fun getByUid(uid: UUID): SurfVisualizer?
1018

1119
companion object {
1220
@JvmStatic
1321
val instance = requiredService<SurfBukkitVisualizerApi>()
1422
}
1523
}
1624

17-
val surfBukkitVisualizerApi get() = SurfBukkitVisualizerApi.instance
25+
@ExperimentalVisualizerApi
26+
inline fun <reified T: SurfVisualizer> SurfBukkitVisualizerApi.getByUid(uid: UUID) = getByUid(uid) as? T
27+
28+
29+
@ExperimentalVisualizerApi
30+
val surfVisualizerApi get() = SurfBukkitVisualizerApi.instance

surf-api-bukkit/surf-api-bukkit-api/src/main/kotlin/dev/slne/surf/surfapi/bukkit/api/visualizer/visualizer/SurfPatternedVisualizer.kt

Lines changed: 0 additions & 29 deletions
This file was deleted.

surf-api-bukkit/surf-api-bukkit-api/src/main/kotlin/dev/slne/surf/surfapi/bukkit/api/visualizer/visualizer/SurfVisualizer.kt

Lines changed: 12 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -1,31 +1,27 @@
11
package dev.slne.surf.surfapi.bukkit.api.visualizer.visualizer
22

3-
import dev.slne.surf.surfapi.bukkit.api.nms.bridges.packets.entity.BlockDisplaySettings
4-
import org.bukkit.Location
3+
import it.unimi.dsi.fastutil.objects.ObjectSet
54
import org.bukkit.Material
65
import org.bukkit.entity.Player
6+
import org.jetbrains.annotations.Unmodifiable
7+
import java.util.*
78

9+
@ExperimentalVisualizerApi
810
interface SurfVisualizer {
9-
fun addVisualLocation(
10-
visualLocation: Location,
11-
material: Material = DEFAULT_MATERIAL,
12-
consumer: BlockDisplaySettings.() -> Unit = {}
13-
) = addVisualLocation(visualLocation, material, BlockDisplaySettings.create(consumer))
14-
15-
fun addVisualLocation(
16-
visualLocation: Location,
17-
material: Material = DEFAULT_MATERIAL,
18-
consumer: BlockDisplaySettings
19-
)
20-
21-
fun removeVisualLocation(visualLocation: Location)
11+
val uid: UUID
2212

2313
fun startVisualizing(): Boolean
14+
fun stopVisualizing(): Boolean
15+
fun isVisualizing(): Boolean
2416

17+
val viewers: @Unmodifiable ObjectSet<Player>
2518
fun addViewer(player: Player)
2619
fun removeViewer(player: Player)
20+
fun clearViewers()
21+
fun hasViewers(): Boolean
22+
fun visibleTo(player: Player): Boolean
2723

28-
fun stopVisualizing(): Boolean
24+
fun update(strategy: UpdateStrategy = UpdateStrategy.ALL)
2925

3026
companion object {
3127
@JvmField

0 commit comments

Comments
 (0)