This repository was archived by the owner on Feb 16, 2022. It is now read-only.
File tree Expand file tree Collapse file tree 3 files changed +96
-0
lines changed Expand file tree Collapse file tree 3 files changed +96
-0
lines changed Original file line number Diff line number Diff line change @@ -25,6 +25,9 @@ event<PlayerJoinEvent> {
25
25
}
26
26
```
27
27
28
+ ### その他
29
+ - [ Util / UUID] ( sample/README.md#util--uuid )
30
+
28
31
## 導入
29
32
30
33
### EasySpigotAPI をプラグインとして導入する
Original file line number Diff line number Diff line change @@ -28,4 +28,55 @@ object EventListener : EventRegister {
28
28
}
29
29
```
30
30
31
+ ## [ Util / UUID] ( util-uuid )
32
+ UUID 関連の便利な関数・クラスを追加します。
33
+
34
+ ``` kotlin
35
+ /* *
36
+ * [UUID.fromString] を実行する
37
+ */
38
+ fun uuid (name : String ): UUID
39
+
40
+ /* *
41
+ * [uuid] を実行するが、例外が発生した場合は null を返す
42
+ */
43
+ fun uuidOrNull (name : String ): UUID ?
44
+
45
+ /* *
46
+ * [Entity] が持つ [UUID] を操作しやすくしたクラス
47
+ *
48
+ * 変数に保存する際には [Entity] ではなく [UUID] で保存することを推奨する
49
+ */
50
+ data class UUIDEntity (val uniqueId : UUID )
51
+
52
+ /* *
53
+ * [Player] が持つ [UUID] を操作しやすくしたクラス
54
+ *
55
+ * 変数に保存する際には [Player] や [OfflinePlayer] ではなく [UUID] で保存することを推奨する
56
+ */
57
+ data class UUIDPlayer (val uniqueId : UUID )
58
+ ```
59
+
60
+ 例として UUIDPlayer を使用した処理を紹介しています。
61
+
62
+ ``` kotlin
63
+ object PlayerJoinChecker : EventRegister {
64
+ /* *
65
+ * [UUIDPlayer] を使うと再ログインしても同一プレイヤーとして認識される
66
+ *
67
+ * 2回目のログイン以降は true と出力される
68
+ */
69
+ private val useUuidPlayer = mutableSetOf<UUIDPlayer >()
70
+
71
+ /* *
72
+ * [Player] を使うと再ログインすると別のインスタンスになる
73
+ *
74
+ * 2回目のログイン以降も false と出力される
75
+ */
76
+ private val usePlayer = mutableSetOf<Player >()
77
+
78
+ // ... 省略
79
+ }
80
+ ```
81
+
31
82
[ << 戻る] ( ../README.md )
Original file line number Diff line number Diff line change
1
+ # Util / UUID
2
+
3
+ ## [ PlayerJoinChecker.kt] ( src/main/kotlin/com/github/syari/spigot/api/sample/util/uuid/PlayerJoinChecker.kt )
4
+
5
+ ` UUID ` , ` UUIDPlayer ` を使わないと同じプレイヤーがログインしても、別のプレイヤーとして扱われてしまう。
6
+ そのため、変数として格納する時は必ずそれらを使用する。
7
+ 以下の例では、` Player ` を用いた時に正常に動作しないことを確認している。
8
+
9
+ ``` kotlin
10
+ object PlayerJoinChecker : EventRegister {
11
+ /* *
12
+ * [UUIDPlayer] を使うと再ログインしても同一プレイヤーとして認識される
13
+ *
14
+ * 2回目のログイン以降は true と出力される
15
+ */
16
+ private val useUuidPlayer = mutableSetOf<UUIDPlayer >()
17
+
18
+ /* *
19
+ * [Player] を使うと再ログインすると別のインスタンスになる
20
+ *
21
+ * 2回目のログイン以降も false と出力される
22
+ */
23
+ private val usePlayer = mutableSetOf<Player >()
24
+
25
+ override fun Events.register () {
26
+ event<PlayerJoinEvent > {
27
+ val player = it.player
28
+ val uuidPlayer = UUIDPlayer .from(player)
29
+ player.sendMessage(
30
+ """
31
+ UUIDPlayer を使用: ${useUuidPlayer.contains(uuidPlayer)} (${useUuidPlayer.size} )
32
+ Player を使用: ${usePlayer.contains(player)} (${usePlayer.size} )
33
+ """ .trimIndent()
34
+ )
35
+ useUuidPlayer.add(uuidPlayer)
36
+ usePlayer.add(player)
37
+ }
38
+ }
39
+ }
40
+ ```
41
+
42
+ [ << 戻る] ( ../README.md )
You can’t perform that action at this time.
0 commit comments