11# DataProvider
22[ ![ Build Status] ( https://scrutinizer-ci.com/g/VectorNetworkProject/DataProvider/badges/build.png?b=master )] ( https://scrutinizer-ci.com/g/VectorNetworkProject/DataProvider/build-status/master )
3+ [ ![ ] ( https://poggit.pmmp.io/ci.shield/Pluginproject/VectorNetworkProject/UserdataProvider )] ( https://poggit.pmmp.io/ci/VectorNetworkProject/UserdataProvider )
4+ データを格納するためのプラグイン。テーブルの粒度は小さめに!
5+ ## テーブル
36
4- データを格納するためのプラグイン
7+ ### accounts
58
6- ##使い方
9+ | Column | Type | Description |
10+ | :----: | :---: | :---------: |
11+ | id | int | 登録したときに自動的に付与されます |
12+ | name | string | プレイヤーの名前です。 |
713
14+ UserdataProviderで基本となる情報を扱うテーブルです。ここに記載されたIDをもとに各テーブルの管理を行います。
15+ sqlite.sql上ではidをメインにやり取りしていますが、デベロッパーが扱う際はラップしたクラス群の関数を使ってください。
16+
17+ ### ffapvp
18+
19+ | Column | Type | Description |
20+ | :----: | :---: | :---------: |
21+ | id | int | プレイヤーと対応するaccountsテーブルのid |
22+ | kill | int | キル数 |
23+ | death | int | デス数 |
24+ | exp | int | EXP |
25+
26+ ### dual
27+
28+ | Column | Type | Description |
29+ | :----: | :---: | :---------: |
30+ | id | int | プレイヤーと対応するaccountsテーブルのid |
31+ | kill | int | キル数 |
32+ | death | int | デス数 |
33+ | win | int | 勝利数 |
34+ | lose | int| 敗北数 |
35+
36+ ### corepvp
37+
38+ | Column | Type | Description |
39+ | :----: | :---: | :---------: |
40+ | id | int | プレイヤーと対応するaccountsテーブルのid |
41+ | kill | int | キル数 |
42+ | death | int | デス数 |
43+ | win | int | 勝利数 |
44+ | lose | int| 敗北数 |
45+ | exp | int | exp |
46+
47+ ## 使い方
848``` PHP
949public function onEnable()
1050{
@@ -15,10 +55,21 @@ public funciton onPlayerJoin(PlayerJoinEvent $event)
1555{
1656 $this->accounts->get(
1757 $event->player,
18- function (array $rows) use($player)
58+ function(array $rows) use($player): void
1959 {
20- $player->sendMessage("あなたのIDは$raws[0][id]です");
60+ if($rows[0] !== null)
61+ {
62+ $player->sendMessage("あなたのIDは$raws[0][id]です");
63+ }
64+ },
65+ function(SqlError $error, ?Exception $trace): void //https://github.com/poggit/libasynql/blob/master/libasynql/src/poggit/libasynql/base/DataConnectorImpl.php#L196
66+ {
67+ var_dump($error, $trace);
2168 }
2269 );
2370}
24- ``````
71+ ```
72+
73+ クエリの終了時、またはエラー時の際の処理をクロージャで渡してください。
74+ 終了時の引数は` array $rows ` で結果が` $rows[<順番>][<カラム名>] ` で格納されます。エラー時の引数は上記の通り` SqlError $error, ?Ecxeption $trace ` となります。` SqlError ` については[ SqlError] ( https://github.com/poggit/libasynql/blob/master/libasynql/src/poggit/libasynql/SqlError.php ) を参照してください。
75+ ` $raws[<int>] ` に格納されているデータは基本的に` accounts ` の` name ` カラムとそれぞれのテーブルのカラムを複合したものになります。`
0 commit comments