Skip to content

Commit a15397e

Browse files
committed
Refactor: Improve KotlinDocs across PacketHub, PacketAPI, Packets, and associated classes; unify formatting and enhance clarity for public APIs and internal structures.
1 parent dac90dc commit a15397e

17 files changed

Lines changed: 930 additions & 271 deletions

File tree

packet/src/main/kotlin/com/peco2282/devcore/packet/AutoVersioner.kt

Lines changed: 16 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -3,21 +3,33 @@ package com.peco2282.devcore.packet
33
import org.bukkit.Bukkit
44

55
/**
6-
* Factory for creating appropriate packets or NMS objects according to the server version.
6+
* Utility object for dynamically loading NMS classes and creating instances at runtime.
7+
*
8+
* Used to abstract version-specific class loading without direct compile-time dependencies.
79
*/
810
object AutoVersioner {
911
private val version = Bukkit.getServer().javaClass.`package`.name.split(".")[3]
1012

1113
/**
12-
* Gets the class according to the version from the class name.
13-
* Example: "net.minecraft.network.protocol.game.ClientboundChatPacket"
14+
* Loads and returns the [Class] for the given fully-qualified [className].
15+
*
16+
* Example: `"net.minecraft.network.protocol.game.ClientboundChatPacket"`
17+
*
18+
* @param className The fully-qualified class name to load.
19+
* @throws ClassNotFoundException if the class cannot be found on the classpath.
1420
*/
1521
fun getNMSClass(className: String): Class<*> {
1622
return Class.forName(className)
1723
}
1824

1925
/**
20-
* Creates an instance of the specified class.
26+
* Creates and returns an instance of the class identified by [className],
27+
* using the constructor that matches the number of provided [args].
28+
*
29+
* @param T The expected return type.
30+
* @param className The fully-qualified class name to instantiate.
31+
* @param args Constructor arguments.
32+
* @throws NoSuchMethodException if no constructor with the given parameter count is found.
2133
*/
2234
fun <T> create(className: String, vararg args: Any?): T {
2335
val clazz = getNMSClass(className)

packet/src/main/kotlin/com/peco2282/devcore/packet/PacketAPI.kt

Lines changed: 40 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -1,30 +1,50 @@
11
package com.peco2282.devcore.packet
22

3+
import com.peco2282.devcore.packet.environment.FakeWorldBorderBuilder
34
import io.netty.buffer.ByteBuf
45
import kotlinx.coroutines.CoroutineDispatcher
56
import org.bukkit.Bukkit
67
import org.bukkit.Location
8+
import org.bukkit.Material
79
import org.bukkit.Particle
810
import org.bukkit.Sound
911
import org.bukkit.entity.EntityType
1012
import org.bukkit.entity.Player
13+
import org.bukkit.inventory.EquipmentSlot
14+
import org.bukkit.inventory.ItemStack
1115
import org.bukkit.plugin.Plugin
1216
import org.bukkit.util.Vector
1317

18+
/**
19+
* Singleton facade that delegates all [PacketHub] operations to the version-specific
20+
* [PacketHub] implementation loaded at runtime.
21+
*
22+
* Call [init] once during plugin startup to resolve and load the correct NMS implementation
23+
* for the running server version. All methods throw [UnsupportedOperationException] if
24+
* called before a compatible implementation is found.
25+
*/
1426
object PacketAPI: PacketHub {
1527
private var delegate: PacketHub? = null
1628

29+
/** Builds the fully-qualified class name for the version-specific [PacketHub] implementation. */
1730
private fun className(version: String) =
1831
"com.peco2282.devcore.packet.v${version.replace(".", "_")}.PacketHubImpl"
1932

33+
/**
34+
* Resolves and loads the version-specific [PacketHub] implementation for the running server.
35+
*
36+
* Supported ranges: 1.20.4–1.20.6, 1.20.6–1.21.4, 1.21.4–1.21.11, 1.21.11–1.22.
37+
* Logs a warning if the version is unsupported or the class cannot be instantiated.
38+
*
39+
* @param plugin The owning plugin used for logging.
40+
*/
2041
fun init(plugin: Plugin) {
2142
val version = Version(Bukkit.getMinecraftVersion())
2243
val className = when (version) {
2344
in Version("1.20.4")..<Version("1.20.6") -> className("1.20.4")
2445
in Version("1.20.6")..<Version("1.21.4") -> className("1.20.6")
2546
in Version("1.21.4")..<Version("1.21.11") -> className("1.21.4")
2647
in Version("1.21.11")..<Version("1.22") -> className("1.21.11")
27-
// 他のバージョンも同様に追加
2848
else -> {
2949
plugin.logger.warning("Unsupported version for Packet NMS: $version")
3050
null
@@ -50,6 +70,9 @@ object PacketAPI: PacketHub {
5070
override fun removePlayer(player: Player) = delegate?.removePlayer(player) ?: throw UnsupportedOperationException("Player removal is not supported on this version")
5171
override fun sendPacket(player: Player, packet: Any) = delegate?.sendPacket(player, packet) ?: throw UnsupportedOperationException("Packet sending is not supported on this version")
5272

73+
/**
74+
* Creates a new [PacketListener] instance backed by the global Netty pipeline hooks.
75+
*/
5376
fun createPacketListener(): PacketListener = Packets.createPacketListener()
5477

5578
override fun createFakeEntityBuilder(player: Player, type: EntityType, location: Location): FakeEntityBuilder {
@@ -127,8 +150,8 @@ object PacketAPI: PacketHub {
127150
override fun fakeEquipment(
128151
player: Player,
129152
entityId: Int,
130-
slot: org.bukkit.inventory.EquipmentSlot,
131-
item: org.bukkit.inventory.ItemStack
153+
slot: EquipmentSlot,
154+
item: ItemStack
132155
) {
133156
delegate?.fakeEquipment(player, entityId, slot, item)
134157
}
@@ -141,7 +164,7 @@ object PacketAPI: PacketHub {
141164
delegate?.updateInventoryTitle(player, title)
142165
}
143166

144-
override fun fakeItemSlot(player: Player, windowId: Int, slot: Int, item: org.bukkit.inventory.ItemStack) {
167+
override fun fakeItemSlot(player: Player, windowId: Int, slot: Int, item: ItemStack) {
145168
delegate?.fakeItemSlot(player, windowId, slot, item)
146169
}
147170

@@ -164,7 +187,7 @@ object PacketAPI: PacketHub {
164187
override fun resetWorldBorder(player: Player) {
165188
delegate?.resetWorldBorder(player)
166189
}
167-
override fun setFakeWorldBorder(player: Player, builder: com.peco2282.devcore.packet.environment.FakeWorldBorderBuilder.() -> Unit) {
190+
override fun setFakeWorldBorder(player: Player, builder: FakeWorldBorderBuilder.() -> Unit) {
168191
delegate?.setFakeWorldBorder(player, builder)
169192
}
170193

@@ -180,7 +203,7 @@ object PacketAPI: PacketHub {
180203
player: Player,
181204
entityId: Int,
182205
eating: Boolean,
183-
item: org.bukkit.inventory.ItemStack?
206+
item: ItemStack?
184207
) {
185208
delegate?.setEatingAnimation(player, entityId, eating, item)
186209
}
@@ -193,11 +216,11 @@ object PacketAPI: PacketHub {
193216
delegate?.setGuardPose(player, entityId, guarding)
194217
}
195218

196-
override fun setSleepAnimation(player: Player, entityId: Int, sleeping: Boolean, bedLocation: org.bukkit.Location?) {
219+
override fun setSleepAnimation(player: Player, entityId: Int, sleeping: Boolean, bedLocation: Location?) {
197220
delegate?.setSleepAnimation(player, entityId, sleeping, bedLocation)
198221
}
199222

200-
override fun setEntityMotion(player: Player, entityId: Int, velocity: org.bukkit.util.Vector) {
223+
override fun setEntityMotion(player: Player, entityId: Int, velocity: Vector) {
201224
delegate?.setEntityMotion(player, entityId, velocity)
202225
}
203226

@@ -209,7 +232,7 @@ object PacketAPI: PacketHub {
209232
delegate?.fakeExperienceBar(player, level, progress)
210233
}
211234

212-
override fun setItemCooldown(player: Player, material: org.bukkit.Material, ticks: Int) {
235+
override fun setItemCooldown(player: Player, material: Material, ticks: Int) {
213236
delegate?.setItemCooldown(player, material, ticks)
214237
}
215238

@@ -227,7 +250,7 @@ object PacketAPI: PacketHub {
227250
override fun setEntityGlowing(player: Player, entityId: Int, glowing: Boolean) {
228251
delegate?.setEntityGlowing(player, entityId, glowing)
229252
}
230-
override fun transformEntityType(player: Player, entityId: Int, type: org.bukkit.entity.EntityType) {
253+
override fun transformEntityType(player: Player, entityId: Int, type: EntityType) {
231254
delegate?.transformEntityType(player, entityId, type)
232255
}
233256
override fun setEntityScale(player: Player, entityId: Int, scale: Float) {
@@ -238,13 +261,13 @@ object PacketAPI: PacketHub {
238261
}
239262

240263
// --- interact ---
241-
override fun placeFakeBlock(player: Player, location: org.bukkit.Location, material: org.bukkit.Material) {
264+
override fun placeFakeBlock(player: Player, location: Location, material: Material) {
242265
delegate?.placeFakeBlock(player, location, material)
243266
}
244-
override fun removeFakeBlock(player: Player, location: org.bukkit.Location) {
267+
override fun removeFakeBlock(player: Player, location: Location) {
245268
delegate?.removeFakeBlock(player, location)
246269
}
247-
override fun lockInventorySlot(player: Player, slot: Int, item: org.bukkit.inventory.ItemStack?) {
270+
override fun lockInventorySlot(player: Player, slot: Int, item: ItemStack?) {
248271
delegate?.lockInventorySlot(player, slot, item)
249272
}
250273
override fun forceHeldSlot(player: Player, slot: Int) {
@@ -258,19 +281,19 @@ object PacketAPI: PacketHub {
258281
}
259282

260283
// --- vfx ---
261-
override fun setBlockCrack(player: Player, location: org.bukkit.Location, stage: Int) {
284+
override fun setBlockCrack(player: Player, location: Location, stage: Int) {
262285
delegate?.setBlockCrack(player, location, stage)
263286
}
264287
override fun setEntityOnFire(player: Player, entityId: Int, onFire: Boolean) {
265288
delegate?.setEntityOnFire(player, entityId, onFire)
266289
}
267-
override fun fakeExplosion(player: Player, location: org.bukkit.Location, power: Float) {
290+
override fun fakeExplosion(player: Player, location: Location, power: Float) {
268291
delegate?.fakeExplosion(player, location, power)
269292
}
270-
override fun fakeLightning(player: Player, location: org.bukkit.Location) {
293+
override fun fakeLightning(player: Player, location: Location) {
271294
delegate?.fakeLightning(player, location)
272295
}
273-
override fun localSound(player: Player, sound: org.bukkit.Sound, location: org.bukkit.Location, volume: Float, pitch: Float) {
296+
override fun localSound(player: Player, sound: Sound, location: Location, volume: Float, pitch: Float) {
274297
delegate?.localSound(player, sound, location, volume, pitch)
275298
}
276299
}

0 commit comments

Comments
 (0)