Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion gradle.properties
Original file line number Diff line number Diff line change
Expand Up @@ -7,6 +7,6 @@ org.jetbrains.dokka.experimental.gradle.pluginMode=V2Enabled
javaVersion=25
mcVersion=26.1.2
group=dev.slne.surf.api
version=3.23.1
version=3.24.0
relocationPrefix=dev.slne.surf.api.libs
snapshot=false
Original file line number Diff line number Diff line change
Expand Up @@ -15,6 +15,7 @@ import net.kyori.adventure.nbt.CompoundBinaryTag
import net.minecraft.server.MinecraftServer
import net.minecraft.server.commands.SummonCommand
import org.bukkit.World
import org.bukkit.entity.Entity
import org.bukkit.entity.EntityType

@NmsUseWithCaution
Expand Down Expand Up @@ -50,4 +51,12 @@ class V1_21_11SurfPaperNmsEntityBridgeImpl : SurfPaperNmsEntityBridge {
throw WrapperCommandSyntaxException(e)
}
}

override fun setId(entity: Entity, id: Int) {
entity.toNms().id = id
}

override fun getById(world: World, id: Int): Entity? {
return world.toNms().getEntity(id)?.bukkitEntity
}
Comment on lines +55 to +61
}
Original file line number Diff line number Diff line change
Expand Up @@ -53,6 +53,38 @@ import kotlin.jvm.optionals.getOrNull

@NmsUseWithCaution
class V1_21_11SurfPaperNmsPlayerBridgeImpl : SurfPaperNmsPlayerBridge {

override fun removeAllTrackedEntities(player: Player, swallowExceptions: Boolean) {
val nmsPlayer = player.toNms()

val distance = player.viewDistance.toDouble()
player.getNearbyEntities(distance, distance, distance).forEach { entity ->
Comment on lines +60 to +61
try {
entity.toNms().`moonrise$getTrackedEntity`().serverEntity.removePairing(nmsPlayer)
} catch (e: Throwable) {
if (!swallowExceptions) {
throw e
}
}
}
}

override fun removeAllTrackedPlayers(player: Player, swallowExceptions: Boolean) {
val nmsPlayer = player.toNms()
val trackedEntity = nmsPlayer.`moonrise$getTrackedEntity`()

for (otherPlayer in MinecraftServer.getServer().playerList.players) {
if (otherPlayer.uuid == nmsPlayer.uuid) continue
try {
trackedEntity.serverEntity.removePairing(otherPlayer)
} catch (e: Throwable) {
if (!swallowExceptions) {
throw e
}
}
}
Comment on lines +62 to +85
}

override fun getRemoteChatSessionData(player: Player): RemoteChatSessionData? {
val session = player.toNms().chatSession?.asData() ?: return null
val profilePublicKey = session.profilePublicKey()
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -15,6 +15,7 @@ import net.kyori.adventure.nbt.CompoundBinaryTag
import net.minecraft.server.MinecraftServer
import net.minecraft.server.commands.SummonCommand
import org.bukkit.World
import org.bukkit.entity.Entity
import org.bukkit.entity.EntityType

@NmsUseWithCaution
Expand Down Expand Up @@ -51,4 +52,12 @@ class V26_1SurfPaperNmsEntityBridgeImpl : SurfPaperNmsEntityBridge {
throw WrapperCommandSyntaxException(e)
}
}

override fun setId(entity: Entity, id: Int) {
entity.toNms().id = id
}

override fun getById(world: World, id: Int): Entity? {
return world.toNms().getEntity(id)?.bukkitEntity
}
Comment on lines +56 to +62
}
Original file line number Diff line number Diff line change
Expand Up @@ -54,6 +54,37 @@ import kotlin.jvm.optionals.getOrNull
@Suppress("ClassName")
class V26_1SurfPaperNmsPlayerBridgeImpl : SurfPaperNmsPlayerBridge {

override fun removeAllTrackedEntities(player: Player, swallowExceptions: Boolean) {
val nmsPlayer = player.toNms()

val distance = player.viewDistance.toDouble()
player.getNearbyEntities(distance, distance, distance).forEach { entity ->
Comment on lines +60 to +61
try {
entity.toNms().`moonrise$getTrackedEntity`().serverEntity.removePairing(nmsPlayer)
} catch (e: Throwable) {
if (!swallowExceptions) {
throw e
}
}
}
}

override fun removeAllTrackedPlayers(player: Player, swallowExceptions: Boolean) {
val nmsPlayer = player.toNms()
val trackedEntity = nmsPlayer.`moonrise$getTrackedEntity`()

for (otherPlayer in MinecraftServer.getServer().playerList.players) {
if (otherPlayer.uuid == nmsPlayer.uuid) continue
try {
trackedEntity.serverEntity.removePairing(otherPlayer)
} catch (e: Throwable) {
if (!swallowExceptions) {
throw e
}
}
}
Comment on lines +62 to +85
}

@Suppress("USELESS_ELVIS")
override fun getRemoteChatSessionData(player: Player): RemoteChatSessionData? {
val connection = player.toNms().connection ?: return null
Expand Down
12 changes: 12 additions & 0 deletions surf-api-paper/surf-api-paper/api/surf-api-paper.api
Original file line number Diff line number Diff line change
Expand Up @@ -1671,11 +1671,15 @@ public final class dev/slne/surf/api/paper/nms/bridges/SurfPaperNmsCommonBridge$
public abstract interface class dev/slne/surf/api/paper/nms/bridges/SurfPaperNmsEntityBridge {
public static final field Companion Ldev/slne/surf/api/paper/nms/bridges/SurfPaperNmsEntityBridge$Companion;
public abstract fun createEntityByNbt (Lorg/bukkit/World;Lorg/bukkit/entity/EntityType;Lio/papermc/paper/math/FinePosition;Lnet/kyori/adventure/nbt/CompoundBinaryTag;)V
public abstract fun getById (Lorg/bukkit/World;I)Lorg/bukkit/entity/Entity;
public abstract fun setId (Lorg/bukkit/entity/Entity;I)V
}

public final class dev/slne/surf/api/paper/nms/bridges/SurfPaperNmsEntityBridge$Companion : dev/slne/surf/api/paper/nms/bridges/SurfPaperNmsEntityBridge {
public fun createEntityByNbt (Lorg/bukkit/World;Lorg/bukkit/entity/EntityType;Lio/papermc/paper/math/FinePosition;Lnet/kyori/adventure/nbt/CompoundBinaryTag;)V
public fun getById (Lorg/bukkit/World;I)Lorg/bukkit/entity/Entity;
public final fun getINSTANCE ()Ldev/slne/surf/api/paper/nms/bridges/SurfPaperNmsEntityBridge;
public fun setId (Lorg/bukkit/entity/Entity;I)V
}

public abstract interface class dev/slne/surf/api/paper/nms/bridges/SurfPaperNmsGlowingBridge {
Expand Down Expand Up @@ -1737,6 +1741,10 @@ public abstract interface class dev/slne/surf/api/paper/nms/bridges/SurfPaperNms
public abstract fun getRemoteChatSessionData (Lorg/bukkit/entity/Player;)Ldev/slne/surf/api/paper/nms/bridges/data/chat/RemoteChatSessionData;
public abstract fun getStatsDataPath ()Ljava/nio/file/Path;
public abstract fun increaseNextChatIndex (Lorg/bukkit/entity/Player;)Ljava/lang/Integer;
public abstract fun removeAllTrackedEntities (Lorg/bukkit/entity/Player;Z)V
public static synthetic fun removeAllTrackedEntities$default (Ldev/slne/surf/api/paper/nms/bridges/SurfPaperNmsPlayerBridge;Lorg/bukkit/entity/Player;ZILjava/lang/Object;)V
public abstract fun removeAllTrackedPlayers (Lorg/bukkit/entity/Player;Z)V
public static synthetic fun removeAllTrackedPlayers$default (Ldev/slne/surf/api/paper/nms/bridges/SurfPaperNmsPlayerBridge;Lorg/bukkit/entity/Player;ZILjava/lang/Object;)V
public abstract fun resetPlayerChatState (Lorg/bukkit/entity/Player;Ldev/slne/surf/api/paper/nms/bridges/data/chat/RemoteChatSessionData;)V
public abstract fun runOnChatMessageChain (Lorg/bukkit/entity/Player;Lkotlinx/coroutines/CoroutineScope;Lkotlin/jvm/functions/Function1;)V
public abstract fun sendPlayerChatMessage (Lorg/bukkit/entity/Player;Lnet/kyori/adventure/chat/SignedMessage;Lnet/kyori/adventure/chat/ChatType$Bound;)V
Expand All @@ -1756,6 +1764,8 @@ public final class dev/slne/surf/api/paper/nms/bridges/SurfPaperNmsPlayerBridge$
public fun getRemoteChatSessionData (Lorg/bukkit/entity/Player;)Ldev/slne/surf/api/paper/nms/bridges/data/chat/RemoteChatSessionData;
public fun getStatsDataPath ()Ljava/nio/file/Path;
public fun increaseNextChatIndex (Lorg/bukkit/entity/Player;)Ljava/lang/Integer;
public fun removeAllTrackedEntities (Lorg/bukkit/entity/Player;Z)V
public fun removeAllTrackedPlayers (Lorg/bukkit/entity/Player;Z)V
public fun resetPlayerChatState (Lorg/bukkit/entity/Player;Ldev/slne/surf/api/paper/nms/bridges/data/chat/RemoteChatSessionData;)V
public fun runOnChatMessageChain (Lorg/bukkit/entity/Player;Lkotlinx/coroutines/CoroutineScope;Lkotlin/jvm/functions/Function1;)V
public fun sendPlayerChatMessage (Lorg/bukkit/entity/Player;Lnet/kyori/adventure/chat/SignedMessage;Lnet/kyori/adventure/chat/ChatType$Bound;)V
Expand All @@ -1765,6 +1775,8 @@ public final class dev/slne/surf/api/paper/nms/bridges/SurfPaperNmsPlayerBridge$

public final class dev/slne/surf/api/paper/nms/bridges/SurfPaperNmsPlayerBridge$DefaultImpls {
public static synthetic fun createPlayerChatMessageMirrorFromAdventure$default (Ldev/slne/surf/api/paper/nms/bridges/SurfPaperNmsPlayerBridge;Lnet/kyori/adventure/chat/SignedMessage;Lnet/kyori/adventure/text/Component;ILjava/lang/Object;)Ldev/slne/surf/api/paper/nms/bridges/data/chat/PlayerChatMessageMirror;
public static synthetic fun removeAllTrackedEntities$default (Ldev/slne/surf/api/paper/nms/bridges/SurfPaperNmsPlayerBridge;Lorg/bukkit/entity/Player;ZILjava/lang/Object;)V
public static synthetic fun removeAllTrackedPlayers$default (Ldev/slne/surf/api/paper/nms/bridges/SurfPaperNmsPlayerBridge;Lorg/bukkit/entity/Player;ZILjava/lang/Object;)V
}

public final class dev/slne/surf/api/paper/nms/bridges/SurfPaperNmsPlayerBridge$PlayerInventoryEdit {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -8,6 +8,7 @@ import dev.slne.surf.api.paper.nms.NmsUseWithCaution
import io.papermc.paper.math.FinePosition
import net.kyori.adventure.nbt.CompoundBinaryTag
import org.bukkit.World
import org.bukkit.entity.Entity
import org.bukkit.entity.EntityType

@NmsUseWithCaution
Expand All @@ -16,6 +17,10 @@ interface SurfPaperNmsEntityBridge {
@Throws(WrapperCommandSyntaxException::class)
fun createEntityByNbt(world: World, type: EntityType, pos: FinePosition, tag: CompoundBinaryTag)

fun setId(entity: Entity, id: Int)

fun getById(world: World, id: Int): Entity?

companion object : SurfPaperNmsEntityBridge by bridge {
val INSTANCE get() = bridge
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -22,6 +22,9 @@ import java.nio.file.Path
@ApiStatus.NonExtendable
interface SurfPaperNmsPlayerBridge {

fun removeAllTrackedEntities(player: Player, swallowExceptions: Boolean = true)
fun removeAllTrackedPlayers(player: Player, swallowExceptions: Boolean = true)
Comment on lines +25 to +26

fun getRemoteChatSessionData(player: Player): RemoteChatSessionData?

fun createChatSessionSnapshot(player: Player): PlayerChatSessionSnapshot?
Expand Down
Loading