Skip to content
This repository has been archived by the owner on Feb 16, 2022. It is now read-only.

Latest commit

 

History

History

uuid

Folders and files

NameName
Last commit message
Last commit date

parent directory

..
 
 
 
 

UUID

UUID, UUIDPlayer を使わないと同じプレイヤーがログインしても、別のプレイヤーとして扱われてしまう。 そのため、変数として格納する時は必ずそれらを使用する。 以下の例では、Player を用いた時に正常に動作しないことを確認している。

object PlayerJoinChecker {
    /**
     * [UUIDPlayer] を使うと再ログインしても同一プレイヤーとして認識される
     *
     * 2回目のログイン以降は true と出力される
     */
    private val useUuidPlayer = mutableSetOf<UUIDPlayer>()

    /**
     * [Player] を使うと再ログインすると別のインスタンスになる
     *
     * 2回目のログイン以降も false と出力される
     */
    private val usePlayer = mutableSetOf<Player>()

    fun register() {
        events {
            event<PlayerJoinEvent> {
                val player = it.player
                val uuidPlayer = UUIDPlayer.from(player)
                player.sendMessage(
                    """
                UUIDPlayer を使用: ${useUuidPlayer.contains(uuidPlayer)} (${useUuidPlayer.size})
                Player を使用: ${usePlayer.contains(player)} (${usePlayer.size})
                """.trimIndent()
                )
                useUuidPlayer.add(uuidPlayer)
                usePlayer.add(player)
            }
        }
    }
}

<< 戻る