Skip to content
This repository was archived by the owner on Mar 16, 2019. It is now read-only.
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
50 changes: 45 additions & 5 deletions README.md
Original file line number Diff line number Diff line change
@@ -1,10 +1,39 @@
# DataProvider
[![Build Status](https://scrutinizer-ci.com/g/VectorNetworkProject/DataProvider/badges/build.png?b=master)](https://scrutinizer-ci.com/g/VectorNetworkProject/DataProvider/build-status/master)

データを格納するためのプラグイン
データを格納するためのプラグイン
## テーブル

##使い方
### **accounts**

| Column | Type | Description |
| :----: | :---: | :---------: |
| id | int | 登録したときに自動的に付与されます |
|name |string |プレイヤーの名前です。 |

 UserdataProviderで基本となる情報を扱うテーブルです。ここに記載されたIDをもとに各テーブルの管理を行います。
 sqlite.sql上ではidをメインにやり取りしていますが、デベロッパーが扱う際はラップしたクラス群の関数を使ってください。

### **ffapvp**

| Column | Type | Description |
| :----: | :---: | :---------: |
| id | int | プレイヤーと対応するaccountsテーブルのid |
| kill | int | キル数 |
| death | int | デス数 |
| exp | int | EXP |

### **dual**

| Column | Type | Description |
| :----: | :---: | :---------: |
| id | int | プレイヤーと対応するaccountsテーブルのid |
| kill | int | キル数 |
| death | int | デス数 |
| win | int | 勝利数 |
| lose | int| 敗北数 |

## 使い方
```PHP
public function onEnable()
{
Expand All @@ -15,10 +44,21 @@ public funciton onPlayerJoin(PlayerJoinEvent $event)
{
$this->accounts->get(
$event->player,
function (array $rows) use($player)
function(array $rows) use($player): void
{
$player->sendMessage("あなたのIDは$raws[0][id]です");
if($rows[0] !== null)
{
$player->sendMessage("あなたのIDは$raws[0][id]です");
}
},
function(SqlError $error, ?Exception $trace): void //https://github.com/poggit/libasynql/blob/master/libasynql/src/poggit/libasynql/base/DataConnectorImpl.php#L196
{
var_dump($error, $trace);
}
);
}
``````
```

 クエリの終了時、またはエラー時の際の処理をクロージャで渡してください。
 終了時の引数は`array $rows`で結果が`$rows[<順番>][<カラム名>]`で格納されます。エラー時の引数は上記の通り`SqlError $error, ?Ecxeption $trace`となります。`SqlError`については[SqlError](https://github.com/poggit/libasynql/blob/master/libasynql/src/poggit/libasynql/SqlError.php)を参照してください。
 `$raws[<int>]`に格納されているデータは基本的に`accounts`の`name`カラムとそれぞれのテーブルのカラムを複合したものになります。`
2 changes: 1 addition & 1 deletion plugin.yml
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
name: DataProvider
version: 0.0.1
version: 0.1.0
api: 3.2.3
main: VectorNetworkProject\DataProvider\Main
prefix: DataProvider
2 changes: 1 addition & 1 deletion resources/sqlite.sql
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@
-- # { init
CREATE TABLE IF NOT EXISTS accounts(
id INTEGER PRIMARY KEY AUTOINCREMENT,
name TEXT PRIMARY KEY
name TEXT UNIQUE
);
-- # }
-- # { register
Expand Down
12 changes: 6 additions & 6 deletions src/VectorNetworkProject/DataProvider/Tables/Dual/Dual.php
Original file line number Diff line number Diff line change
Expand Up @@ -13,12 +13,12 @@

class Dual extends TableBase
{
public const INIT = 'userdataprovider.dual.init';
public const REGISTER = 'userdataprovider.dual.register';
public const UNREGISTER = 'userdataprovider.dual.unregister';
public const GET = 'userdataprovider.dual.get';
public const ADD_COUNT = 'userdataprovider.dual.addcount';
public const GET_RANKING = 'userdataprovider.dual.getrankingbywin';
public const INIT = 'userdataprovider.duel.init';
public const REGISTER = 'userdataprovider.duel.register';
public const UNREGISTER = 'userdataprovider.duel.unregister';
public const GET = 'userdataprovider.duel.get';
public const ADD_COUNT = 'userdataprovider.duel.addcount';
public const GET_RANKING = 'userdataprovider.duel.getrankingbywin';

public function init(): void
{
Expand Down