Skip to content

Commit 8a945e9

Browse files
committed
Merge branch 'version/1.21.10' into refactor/150-remove-packet-events
# Conflicts: # gradle.properties # surf-api-bukkit/surf-api-bukkit-api/api/surf-api-bukkit-api.api # surf-api-core/surf-api-core-api/api/surf-api-core-api.api # surf-api-velocity/surf-api-velocity-api/api/surf-api-velocity-api.api
2 parents ea56856 + f6f5072 commit 8a945e9

File tree

135 files changed

+21558
-5078
lines changed

Some content is hidden

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

135 files changed

+21558
-5078
lines changed

gradle.properties

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,6 @@ org.jetbrains.dokka.experimental.gradle.pluginMode=V2Enabled
77
javaVersion=21
88
mcVersion=1.21.10
99
group=dev.slne.surf
10-
version=1.21.10-2.41.0
10+
version=1.21.10-2.40.4
1111
relocationPrefix=dev.slne.surf.surfapi.libs
1212
snapshot=false

gradle/libs.versions.toml

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -49,6 +49,7 @@ okhttp = "5.1.0"
4949
dazzleconf = "1.4.0-M1"
5050
reflection-remapper = "0.1.3"
5151
brigadier = "1.0.500"
52+
datafixerupper = "8.0.16"
5253
configurate = "4.2.0"
5354
more-persistent-data-types = "2.4.0"
5455
stefvanschie-if = "0.11.3"
@@ -147,6 +148,7 @@ flogger = { module = "com.google.flogger:flogger", version.ref = "flogger" }
147148
flogger-slf4j-backend = { module = "com.google.flogger:flogger-slf4j-backend", version.ref = "flogger" }
148149
aide-reflection = { module = "tech.hiddenproject:aide-reflection", version.ref = "aide-reflection" }
149150
glm = { module = "io.github.kotlin-graphics:glm", version.ref = "glm" }
151+
datafixerupper = { module = "com.mojang:datafixerupper", version.ref = "datafixerupper" }
150152

151153
auto-service-annotations = { module = "com.google.auto.service:auto-service-annotations", version.ref = "auto-service" }
152154
auto-service = { module = "dev.zacsweers.autoservice:auto-service-ksp", version.ref = "auto-service-ksp" }

surf-api-bukkit/surf-api-bukkit-api/api/surf-api-bukkit-api.api

Lines changed: 7480 additions & 3343 deletions
Large diffs are not rendered by default.
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,16 @@
1+
package dev.slne.surf.surfapi.bukkit.api.serializer.bukkit.blockdata
2+
3+
import com.mojang.serialization.Codec
4+
import com.mojang.serialization.DataResult
5+
import dev.slne.surf.surfapi.bukkit.api.extensions.server
6+
import org.bukkit.block.data.BlockData
7+
8+
object BlockDataCodec {
9+
val CODEC: Codec<BlockData> = Codec.STRING.comapFlatMap({ data ->
10+
try {
11+
DataResult.success(server.createBlockData(data))
12+
} catch (e: IllegalArgumentException) {
13+
DataResult.error { "Invalid block data: $data (${e.message})" }
14+
}
15+
}, BlockData::getAsString)
16+
}
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,24 @@
1+
package dev.slne.surf.surfapi.bukkit.api.serializer.bukkit.blockdata
2+
3+
import kotlinx.serialization.KSerializer
4+
import kotlinx.serialization.descriptors.PrimitiveKind
5+
import kotlinx.serialization.descriptors.PrimitiveSerialDescriptor
6+
import kotlinx.serialization.encoding.Decoder
7+
import kotlinx.serialization.encoding.Encoder
8+
import org.bukkit.Bukkit
9+
import org.bukkit.block.data.BlockData
10+
11+
object BlockDataSerializer : KSerializer<BlockData> {
12+
override val descriptor =
13+
PrimitiveSerialDescriptor("surfapi.bukkit.BlockData", PrimitiveKind.STRING)
14+
15+
override fun serialize(
16+
encoder: Encoder,
17+
value: BlockData,
18+
) {
19+
encoder.encodeString(value.asString)
20+
}
21+
22+
override fun deserialize(decoder: Decoder) =
23+
Bukkit.createBlockData(decoder.decodeString())
24+
}
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,12 @@
1+
package dev.slne.surf.surfapi.bukkit.api.serializer.bukkit.blockstate
2+
3+
import com.mojang.serialization.Codec
4+
import org.bukkit.Bukkit
5+
import org.bukkit.block.BlockState
6+
7+
object BlockStateCodec {
8+
val CODEC: Codec<BlockState> = Codec.STRING.xmap(
9+
{ str -> Bukkit.createBlockData(str).createBlockState() },
10+
{ blockState -> blockState.blockData.asString }
11+
)
12+
}
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,24 @@
1+
package dev.slne.surf.surfapi.bukkit.api.serializer.bukkit.blockstate
2+
3+
import kotlinx.serialization.KSerializer
4+
import kotlinx.serialization.descriptors.PrimitiveKind
5+
import kotlinx.serialization.descriptors.PrimitiveSerialDescriptor
6+
import kotlinx.serialization.encoding.Decoder
7+
import kotlinx.serialization.encoding.Encoder
8+
import org.bukkit.Bukkit
9+
import org.bukkit.block.BlockState
10+
11+
object BlockStateSerializer : KSerializer<BlockState> {
12+
override val descriptor =
13+
PrimitiveSerialDescriptor("surfapi.bukkit.BlockState", PrimitiveKind.STRING)
14+
15+
override fun serialize(
16+
encoder: Encoder,
17+
value: BlockState,
18+
) {
19+
encoder.encodeString(value.blockData.asString)
20+
}
21+
22+
override fun deserialize(decoder: Decoder) =
23+
Bukkit.createBlockData(decoder.decodeString()).createBlockState()
24+
}
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,17 @@
1+
package dev.slne.surf.surfapi.bukkit.api.serializer.bukkit.itemstack
2+
3+
import com.mojang.serialization.Codec
4+
import org.bukkit.inventory.ItemStack
5+
import java.nio.ByteBuffer
6+
7+
object ItemStackCodec {
8+
val CODEC: Codec<ItemStack> = Codec.BYTE_BUFFER
9+
.xmap(
10+
{ buffer ->
11+
val bytes = ByteArray(buffer.remaining())
12+
buffer.get(bytes)
13+
ItemStack.deserializeBytes(bytes)
14+
},
15+
{ itemStack -> ByteBuffer.wrap(itemStack.serializeAsBytes()) }
16+
)
17+
}
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,24 @@
1+
package dev.slne.surf.surfapi.bukkit.api.serializer.bukkit.itemstack
2+
3+
import kotlinx.serialization.KSerializer
4+
import kotlinx.serialization.builtins.ByteArraySerializer
5+
import kotlinx.serialization.descriptors.SerialDescriptor
6+
import kotlinx.serialization.encoding.Decoder
7+
import kotlinx.serialization.encoding.Encoder
8+
import org.bukkit.inventory.ItemStack
9+
10+
object ItemStackSerializer : KSerializer<ItemStack> {
11+
private val arraySerializer = ByteArraySerializer()
12+
override val descriptor =
13+
SerialDescriptor("surfapi.bukkit.ItemStack", arraySerializer.descriptor)
14+
15+
override fun serialize(
16+
encoder: Encoder,
17+
value: ItemStack,
18+
) {
19+
encoder.encodeSerializableValue(arraySerializer, value.serializeAsBytes())
20+
}
21+
22+
override fun deserialize(decoder: Decoder) =
23+
ItemStack.deserializeBytes(decoder.decodeSerializableValue(arraySerializer))
24+
}
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,24 @@
1+
package dev.slne.surf.surfapi.bukkit.api.serializer.bukkit.location
2+
3+
import com.mojang.serialization.Codec
4+
import com.mojang.serialization.codecs.RecordCodecBuilder
5+
import dev.slne.surf.surfapi.core.api.serializer.java.uuid.JavaUUIDCodec
6+
import org.bukkit.Bukkit
7+
import org.bukkit.Location
8+
9+
object LocationCodec {
10+
val CODEC: Codec<Location> = RecordCodecBuilder.create { instance ->
11+
instance.group(
12+
JavaUUIDCodec.CODEC.optionalFieldOf("worldUuid", null).forGetter { it.world?.uid },
13+
Codec.DOUBLE.fieldOf("x").forGetter(Location::x),
14+
Codec.DOUBLE.fieldOf("y").forGetter(Location::y),
15+
Codec.DOUBLE.fieldOf("z").forGetter(Location::z),
16+
Codec.FLOAT.fieldOf("yaw").forGetter(Location::getYaw),
17+
Codec.FLOAT.fieldOf("pitch").forGetter(Location::getPitch),
18+
).apply(instance) { worldUuid, x, y, z, yaw, pitch ->
19+
val world = worldUuid?.let { Bukkit.getWorld(it) }
20+
21+
Location(world, x, y, z, yaw, pitch)
22+
}
23+
}
24+
}

0 commit comments

Comments
 (0)