Skip to content
This repository was archived by the owner on Apr 23, 2025. It is now read-only.

Commit affceb1

Browse files
committed
Fixed 1.21.3
1 parent 1aac354 commit affceb1

37 files changed

+2359
-13
lines changed

build.gradle.kts

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,7 @@ plugins {
1212
}
1313

1414
apply(plugin = "maven-publish")
15-
val versionVar = "0.5.92"
15+
val versionVar = "0.5.93"
1616
val groupIdVar = "com.undefined"
1717
val artifactIdVar = "api"
1818

@@ -89,6 +89,7 @@ dependencies {
8989
implementation(project(":v1_20_4:", "reobf"))
9090
implementation(project(":v1_20_6:", "reobf"))
9191
implementation(project(":v1_21:", "reobf"))
92+
implementation(project(":v1_21_3:", "reobf"))
9293
implementation(project(":api"))
9394
}
9495

common/build.gradle.kts

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -13,6 +13,7 @@ dependencies {
1313
compileOnly(project(":v1_20_4"))
1414
compileOnly(project(":v1_20_6"))
1515
compileOnly(project(":v1_21"))
16+
compileOnly(project(":v1_21_3"))
1617
}
1718

1819
tasks {

common/src/main/java/com/undefined/api/extension/BlockExtension.kt

Lines changed: 6 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -21,23 +21,26 @@ fun Block.sendBreakProgress(player: Player, stage: Int) {
2121
when(getNMSVersion()) {
2222
"1.20.4" -> com.undefined.api.nms.v1_20_4.extensions.BlockExtension.setBlockProgress(player, this, stage)
2323
"1.20.6" -> com.undefined.api.nms.v1_20_6.extensions.BlockExtension.setBlockProgress(player, this, stage)
24-
"1.21", "1.21.1", "1.21.2", "1.21.3" -> com.undefined.api.nms.v1_21.extensions.BlockExtension.setBlockProgress(player, this, stage)
24+
"1.21", "1.21.1" -> com.undefined.api.nms.v1_21.extensions.BlockExtension.setBlockProgress(player, this, stage)
25+
"1.21.2", "1.21.3" -> com.undefined.api.nms.v1_21_3.extensions.BlockExtension.setBlockProgress(player, this, stage)
2526
}
2627
}
2728

2829
fun BlockData.getID(): Int =
2930
when(getNMSVersion()) {
3031
"1.20.4" -> com.undefined.api.nms.v1_20_4.extensions.BlockExtension.getID(this)
3132
"1.20.6" -> com.undefined.api.nms.v1_20_6.extensions.BlockExtension.getID(this)
32-
"1.21", "1.21.1", "1.21.2", "1.21.3" -> com.undefined.api.nms.v1_21.extensions.BlockExtension.getID(this)
33+
"1.21", "1.21.1" -> com.undefined.api.nms.v1_21.extensions.BlockExtension.getID(this)
34+
"1.21.2", "1.21.3" -> com.undefined.api.nms.v1_21_3.extensions.BlockExtension.getID(this)
3335
else -> 0
3436
}
3537

3638
fun Int.asBlockData(): BlockData =
3739
when(getNMSVersion()) {
3840
"1.20.4" -> com.undefined.api.nms.v1_20_4.extensions.BlockExtension.getBlockDataFromID(this)
3941
"1.20.6" -> com.undefined.api.nms.v1_20_6.extensions.BlockExtension.getBlockDataFromID(this)
40-
"1.21", "1.21.1", "1.21.2", "1.21.3" -> com.undefined.api.nms.v1_21.extensions.BlockExtension.getBlockDataFromID(this)
42+
"1.21", "1.21.1" -> com.undefined.api.nms.v1_21.extensions.BlockExtension.getBlockDataFromID(this)
43+
"1.21.2", "1.21.3" -> com.undefined.api.nms.v1_21_3.extensions.BlockExtension.getBlockDataFromID(this)
4144
else -> Material.STONE.createBlockData()
4245
}
4346

common/src/main/java/com/undefined/api/nms/BukkitExtension.kt

Lines changed: 8 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,8 @@ fun UndefinedAPI.createFakePlayer(name: String, skinName: String = name): NMSPla
1111
return when(version) {
1212
"1.20.4" -> com.undefined.api.nms.v1_20_4.npc.NMSPlayer(name, skinName)
1313
"1.20.6" -> com.undefined.api.nms.v1_20_6.npc.NMSPlayer(name, skinName)
14-
"1.21", "1.21.1", "1.21.2", "1.21.3" -> com.undefined.api.nms.v1_21.npc.NMSPlayer(name, skinName)
14+
"1.21", "1.21.1" -> com.undefined.api.nms.v1_21.npc.NMSPlayer(name, skinName)
15+
"1.21.2", "1.21.3" -> com.undefined.api.nms.v1_21_3.npc.NMSPlayer(name, skinName)
1516
else -> null
1617
}
1718
}
@@ -22,7 +23,8 @@ fun UndefinedAPI.createFakePlayer(name: String, texture: String, sign: String):
2223
return when(version) {
2324
"1.20.4" -> com.undefined.api.nms.v1_20_4.npc.NMSPlayer(name, texture, sign)
2425
"1.20.6" -> com.undefined.api.nms.v1_20_6.npc.NMSPlayer(name, texture, sign)
25-
"1.21", "1.21.1", "1.21.2", "1.21.3" -> com.undefined.api.nms.v1_21.npc.NMSPlayer(name, texture, sign)
26+
"1.21", "1.21.1" -> com.undefined.api.nms.v1_21.npc.NMSPlayer(name, texture, sign)
27+
"1.21.2", "1.21.3" -> com.undefined.api.nms.v1_21_3.npc.NMSPlayer(name, texture, sign)
2628
else -> null
2729
}
2830
}
@@ -32,7 +34,8 @@ fun Player.getTexture(): Array<String> {
3234
return when(version) {
3335
"1.20.4" -> com.undefined.api.nms.v1_20_4.extensions.PlayerExtension.getTextures(this)
3436
"1.20.6" -> com.undefined.api.nms.v1_20_6.extensions.PlayerExtension.getTextures(this)
35-
"1.21", "1.21.1", "1.21.2", "1.21.3" -> com.undefined.api.nms.v1_21.extensions.PlayerExtension.getTextures(this)
37+
"1.21", "1.21.1" -> com.undefined.api.nms.v1_21.extensions.PlayerExtension.getTextures(this)
38+
"1.21.2", "1.21.3" -> com.undefined.api.nms.v1_21_3.extensions.PlayerExtension.getTextures(this)
3639
else -> arrayOf("","")
3740
}
3841
}
@@ -42,7 +45,8 @@ fun Player.triggerTotem(): Boolean {
4245
return when(version) {
4346
"1.20.4" -> com.undefined.api.nms.v1_20_4.extensions.PlayerExtension.triggerTotem(this)
4447
"1.20.6" -> com.undefined.api.nms.v1_20_6.extensions.PlayerExtension.triggerTotem(this)
45-
"1.21", "1.21.1", "1.21.2", "1.21.3" -> com.undefined.api.nms.v1_21.extensions.PlayerExtension.triggerTotem(this)
48+
"1.21", "1.21.1" -> com.undefined.api.nms.v1_21.extensions.PlayerExtension.triggerTotem(this)
49+
"1.21.2", "1.21.3" -> com.undefined.api.nms.v1_21_3.extensions.PlayerExtension.triggerTotem(this)
4650
else -> false
4751
}
4852
}

common/src/main/java/com/undefined/api/nms/NMSEntityFactory.kt

Lines changed: 29 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -99,16 +99,42 @@ class NMSEntityV1_21Factory : NMSEntityFactory {
9999
override fun createEntity(entityType: EntityType): NMSEntity = com.undefined.api.nms.v1_21.entity.NMSEntity(entityType)
100100
override fun createTextDisplay(data: Array<out Any>): NMSTextDisplay = com.undefined.api.nms.v1_21.entity.entityClass.display.NMSTextDisplayEntity(data[0] as String)
101101
override fun createItemDisplay(data: Array<out Any>): NMSItemDisplayEntity? = com.undefined.api.nms.v1_21.entity.entityClass.display.NMSItemDisplayEntity(data[0] as ItemStack)
102-
override fun createInteraction(): NMSInteractionEntity = com.undefined.api.nms.v1_20_6.entity.entityClass.display.NMSInteractionEntity()
102+
override fun createInteraction(): NMSInteractionEntity = com.undefined.api.nms.v1_21.entity.entityClass.display.NMSInteractionEntity()
103+
}
104+
105+
class NMSEntityV1_21_3Factory : NMSEntityFactory {
106+
override fun createPlayer(data: Array<out Any>): NMSPlayer? {
107+
return when(data.size) {
108+
2 -> com.undefined.api.nms.v1_21_3.npc.NMSPlayer(
109+
data[0] as? String ?: return null,
110+
data[1] as? String ?: return null
111+
)
112+
3 -> com.undefined.api.nms.v1_21_3.npc.NMSPlayer(
113+
data[0] as? String ?: return null,
114+
data[1] as? String ?: return null,
115+
data[2] as? String ?: return null
116+
)
117+
else -> null
118+
}
119+
}
120+
121+
override fun createSlime(): NMSSlimeEntity = com.undefined.api.nms.v1_21_3.entity.livingEntities.NMSSlimeEntity()
122+
override fun createBlockDisplay(data: Array<out Any>): NMSBlockDisplayEntity = com.undefined.api.nms.v1_21_3.entity.entityClass.display.NMSBlockDisplayEntity(data[0] as BlockData)
123+
override fun createLivingEntity(entityType: EntityType): NMSLivingEntity = com.undefined.api.nms.v1_21_3.entity.NMSLivingEntity(entityType)
124+
override fun createItemEntity(data: Array<out Any>): NMSItemEntity = com.undefined.api.nms.v1_21_3.entity.entityClass.NMSItemEntity(data[0] as ItemStack)
125+
override fun createEntity(entityType: EntityType): NMSEntity = com.undefined.api.nms.v1_21_3.entity.NMSEntity(entityType)
126+
override fun createTextDisplay(data: Array<out Any>): NMSTextDisplay = com.undefined.api.nms.v1_21_3.entity.entityClass.display.NMSTextDisplayEntity(data[0] as String)
127+
override fun createItemDisplay(data: Array<out Any>): NMSItemDisplayEntity? = com.undefined.api.nms.v1_21_3.entity.entityClass.display.NMSItemDisplayEntity(data[0] as ItemStack)
128+
override fun createInteraction(): NMSInteractionEntity = com.undefined.api.nms.v1_21_3.entity.entityClass.display.NMSInteractionEntity()
103129
}
104130

105131
private val factories = mapOf(
106132
"1.20.4" to NMSEntityV1_20_4Factory(),
107133
"1.20.6" to NMSEntityV1_20_6Factory(),
108134
"1.21" to NMSEntityV1_21Factory(),
109135
"1.21.1" to NMSEntityV1_21Factory(),
110-
"1.21.2" to NMSEntityV1_21Factory(),
111-
"1.21.3" to NMSEntityV1_21Factory()
136+
"1.21.2" to NMSEntityV1_21_3Factory(),
137+
"1.21.3" to NMSEntityV1_21_3Factory()
112138
)
113139

114140
fun UndefinedAPI.createFakeEntity(entityType: EntityType, vararg data: Any): NMSEntity? {

common/src/main/java/com/undefined/api/nms/NMSManager.kt

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,8 @@ class NMSManager {
88
when(getNMSVersion()) {
99
"1.20.4" -> com.undefined.api.nms.v1_20_4.event.PacketListenerManager()
1010
"1.20.6" -> com.undefined.api.nms.v1_20_6.event.PacketListenerManager()
11-
"1.21", "1.21.1", "1.21.2", "1.21.3" -> com.undefined.api.nms.v1_21.event.PacketListenerManager()
11+
"1.21", "1.21.1" -> com.undefined.api.nms.v1_21.event.PacketListenerManager()
12+
"1.21.2", "1.21.3" -> com.undefined.api.nms.v1_21_3.event.PacketListenerManager()
1213
}
1314
}
1415

settings.gradle.kts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
rootProject.name = "UndefinedAPI"
2-
include("common", "v1_20_4", "api", "v1_20_6", "server", "v1_21")
2+
include("common", "v1_20_4", "api", "v1_20_6", "server", "v1_21", "v1_21_3")
33
pluginManagement {
44
repositories {
55
gradlePluginPortal()

v1_21_3/build.gradle.kts

Lines changed: 30 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,30 @@
1+
plugins{
2+
kotlin("jvm") version "1.9.22"
3+
id("io.papermc.paperweight.userdev") version "1.7.1"
4+
}
5+
6+
paperweight.reobfArtifactConfiguration = io.papermc.paperweight.userdev.ReobfArtifactConfiguration.REOBF_PRODUCTION
7+
8+
dependencies {
9+
paperweight.paperDevBundle("1.21.3-R0.1-SNAPSHOT")
10+
compileOnly(project(":api"))
11+
}
12+
13+
tasks {
14+
compileKotlin {
15+
kotlinOptions.jvmTarget = "21"
16+
}
17+
}
18+
19+
java {
20+
disableAutoTargetJvm()
21+
}
22+
23+
kotlin {
24+
jvmToolchain(21)
25+
}
26+
27+
28+
29+
30+
Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,14 @@
1+
package com.undefined.api.nms.v1_21_3
2+
3+
import com.undefined.api.nms.EntityInteract
4+
import com.undefined.api.nms.interfaces.NMSEntity
5+
6+
/**
7+
* The NMSManager class provides a centralized management system for NMS players and their interactions.
8+
* It contains a hashmap that maps NMS players to their corresponding interaction actions.
9+
*
10+
* - [entityInteraction]: A hashmap that maps `NMSPlayer` instances to a lambda function representing the player's interaction action.
11+
*/
12+
object NMSManager {
13+
val entityInteraction: HashMap<NMSEntity, EntityInteract.() -> Unit> = hashMapOf()
14+
}
Lines changed: 33 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,33 @@
1+
package com.undefined.api.nms.v1_21_3
2+
3+
4+
object SpigotNMSMappings {
5+
6+
const val ClientboundSetEntityDataPacketEntityID = "c"
7+
const val ClientboundSetEntityDataPacketSyncedEntityList = "d"
8+
const val ServerboundInteractPacketEntityID = "b"
9+
const val ServerboundInteractPacketAction = "c"
10+
const val ServerboundInteractPacketActionHand = "a"
11+
const val ServerCommonPacketListenerImplConnection = "e"
12+
const val LivingEntitySetFlag = "c"
13+
const val ClientboundContainerSetSlotPacketContairID = "d"
14+
const val ClientboundContainerSetSlotPacketSlot = "f"
15+
const val ClientboundContainerSetSlotPacketItemStack = "g"
16+
const val ServerboundSetCarriedItemPacketSlot = "b"
17+
const val ItemEntityAccessor = "d"
18+
const val EntityNoGrafity = "aT"
19+
const val ClientboundSectionBlocksUpdatePacketSection = "c"
20+
const val ClientboundSectionBlocksUpdatePacketShortArray = "d"
21+
const val ClientboundSectionBlocksUpdatePacketBlockArray = "e"
22+
23+
const val EntitySetRotMethod = "a"
24+
25+
const val DisplayScale = "u"
26+
const val DisplayTransfrom = "t"
27+
const val DisplayLeftRot = "v"
28+
const val DisplayRightRot = "aD"
29+
30+
const val TextDisplayBackgroundID = "aN"
31+
32+
const val ItemDisplayID = "s"
33+
}

0 commit comments

Comments
 (0)