GS2-Guild SDK for Game Engine API リファレンス

モデル

EzGuildModel

ギルドモデルマスター

ギルドモデルとは、ギルドの加入可能最大人数の設定や、ギルド内での役職ごとの権限設定を持つエンティティです。

必須デフォルト値の制限説明
namestring~ 128文字ギルドモデル名
metadatastring~ 2048文字メタデータ
defaultMaximumMemberCountint1 ~ 2147483646ギルド作成時に適用されるギルドメンバーの最大数
maximumMemberCountint1 ~ 2147483646ギルドメンバーの引き上げを行える最大値
rolesList<EzRoleModel>1 ~ 10 itemsギルド内の各役職ごとの権限設定リスト
rejoinCoolTimeMinutesint0~ 2147483646ギルド離脱後に再度参加できるまでのクールタイム(分)

EzGuild

ギルド

初めて GetGuildGuild を呼び出した時に作成され、その時間から放置時間のカウントが始まります。
放置時間のカウントは報酬を受け取るとリセットされます。

GS2-Schedule のイベントが関連づけられている場合、イベントの開催前には Guild にアクセスできず、ギルドを作成することもできません。
イベントが関連づけられている場合、ギルド はイベントの繰り返し回数を保持します。
現在のイベントIDとギルド作成時のイベントIDが一致しない場合、現在のイベントの繰り返し回数とギルドが保持する繰り返し回数が一致しない場合、またはイベントの開始時刻より前にギルドが作成されている場合、待機時間 はリセットされます。

必須デフォルト値の制限説明
guildModelNamestring~ 128文字ギルドモデル名
namestringUUID~ 36文字ギルド名
displayNamestring~ 64文字表示名
attribute1int~ 2147483645属性1
attribute2int~ 2147483645属性2
attribute3int~ 2147483645属性3
attribute4int~ 2147483645属性4
attribute5int~ 2147483645属性5
joinPolicyenum {
    “anybody”,
    “approval”
}
~ 128文字参加方針
customRolesList<EzRoleModel>~ 10 itemsギルドが個別に定義した各役職ごとの権限設定リスト
membersList<EzMember>~ 10 itemsギルドメンバーリスト

joinPolicy に指定する列挙型の定義

定義説明
anybody自由参加
approval承認制

EzReceiveMemberRequest

受信したメンバーリクエスト

メンバーの登録申請を受け付けた状態であることを表すエンティティです。
該当ユーザーがほかのユーザーから受信したメンバーリクエストです。
該当ユーザーが承認を行うとメンバーリクエストは削除され、メンバーリストに登録されます。

必須デフォルト値の制限説明
userIdstring~ 128文字送信元
targetGuildNamestring~ 128文字送信先

EzSendMemberRequest

送信したメンバーリクエスト

メンバーの登録を申請中である状態を表すエンティティです。
該当ユーザーがほかのユーザーに対して送信したメンバーリクエストです。
送信先のユーザーが承認を行うとメンバーリクエストは削除され、メンバーリストに登録されます。

必須デフォルト値の制限説明
userIdstring~ 128文字送信元
targetGuildNamestring~ 128文字ギルド名

EzJoinedGuild

参加中のギルド

必須デフォルト値の制限説明
guildModelNamestring~ 128文字ギルドモデル名
guildNamestring~ 128文字ギルド名
userIdstring~ 128文字ユーザーID
createdAtlong現在時刻作成日時 (UNIX時間 単位:ミリ秒)

EzIgnoreUser

参加を拒否するユーザー

必須デフォルト値の制限説明
userIdstring~ 128文字ユーザーID

EzLastGuildMasterActivity

最後にギルドマスターがアクティビティを行った日時

必須デフォルト値の制限説明
userIdstring~ 128文字ユーザーID
updatedAtlong現在時刻最終更新日時 (UNIX時間 単位:ミリ秒)

EzMember

メンバー

ギルドメンバーの一覧を管理するエンティティ

必須デフォルト値の制限説明
userIdstring~ 128文字ユーザーID
roleNamestring~ 128文字ロールモデル名
joinedAtlong現在時刻参加日時 (UNIX時間 単位:ミリ秒)

EzRoleModel

ロールモデル

ロールモデルはギルド内での役割を定義し、その役割ごと実行できる処理に関する権限を設定します。

必須デフォルト値の制限説明
namestring~ 128文字ロールモデル名
metadatastring~ 2048文字メタデータ
policyDocumentstring~ 10240文字ロールに適用する権限のポリシードキュメント

メソッド

getGuildModel

ギルドモデル情報を取得

ギルドモデル名 を指定してランクキャップの情報やランクアップ閾値の情報を取得します。

Request

必須デフォルト値の制限説明
namespaceNamestring~ 128文字ネームスペース名
guildModelNamestring~ 128文字ギルドモデル名

Result

説明
itemEzGuildModelギルドモデル

実装例

    var domain = gs2.Guild.Namespace(
        namespaceName: "namespace-0001"
    ).GuildModel(
        guildModelName: "guild-0001"
    );
    var item = await domain.ModelAsync();
    var domain = gs2.Guild.Namespace(
        namespaceName: "namespace-0001"
    ).GuildModel(
        guildModelName: "guild-0001"
    );
    var future = domain.Model();
    yield return future;
    var item = future.Result;
    const auto Domain = Gs2->Guild->Namespace(
        "namespace-0001" // namespaceName
    )->GuildModel(
        "guild-0001" // guildModelName
    );
    const auto Future = Domain->Model();
    Future->StartSynchronousTask();
    if (Future->GetTask().IsError())
    {
        return false;
    }
値の変更イベントハンドリング
    var domain = gs2.Guild.Namespace(
        namespaceName: "namespace-0001"
    ).GuildModel(
        guildModelName: "guild-0001"
    );
    
    // イベントハンドリングを開始
    var callbackId = domain.Subscribe(
        value => {
            // 値が変化した時に呼び出される
            // value には変更後の値が渡ってくる
        }
    );

    // イベントハンドリングを停止
    domain.Unsubscribe(callbackId);
    var domain = gs2.Guild.Namespace(
        namespaceName: "namespace-0001"
    ).GuildModel(
        guildModelName: "guild-0001"
    );
    var future = domain.Model();
    yield return future;
    var item = future.Result;
    const auto Domain = Gs2->Guild->Namespace(
        "namespace-0001" // namespaceName
    )->GuildModel(
        "guild-0001" // guildModelName
    );
    
    // イベントハンドリングを開始
    const auto CallbackId = Domain->Subscribe(
        [](TSharedPtr<Gs2::Guild::Model::FGuildModel> value) {
            // 値が変化した時に呼び出される
            // value には変更後の値が渡ってくる
        }
    );

    // イベントハンドリングを停止
    Domain->Unsubscribe(CallbackId);

listGuildModels

ギルドモデル情報の一覧を取得

ランクキャップの情報やランクアップ閾値の情報を取得します。
次のランクアップまでに必要な獲得ギルド量などをゲーム内で表示したい場合はこのモデルデータを使ってください。

Request

必須デフォルト値の制限説明
namespaceNamestring~ 128文字ネームスペース名

Result

説明
itemsList<EzGuildModel>ギルドモデルリスト

実装例

    var domain = gs2.Guild.Namespace(
        namespaceName: "namespace-0001"
    );
    var items = await domain.GuildModelsAsync(
    ).ToListAsync();
    var domain = gs2.Guild.Namespace(
        namespaceName: "namespace-0001"
    );
    var it = domain.GuildModels(
    );
    List<EzGuildModel> items = new List<EzGuildModel>();
    while (it.HasNext())
    {
        yield return it.Next();
        if (it.Error != null)
        {
            onError.Invoke(it.Error, null);
            break;
        }
        if (it.Current != null)
        {
            items.Add(it.Current);
        }
        else
        {
            break;
        }
    }
    const auto Domain = Gs2->Guild->Namespace(
        "namespace-0001" // namespaceName
    );
    const auto It = Domain->GuildModels(
    );
    TArray<Gs2::UE5::Guild::Model::FEzGuildModelPtr> Result;
    for (auto Item : *It)
    {
        if (Item.IsError())
        {
            return false;
        }
        Result.Add(Item.Current());
    }
値の変更イベントハンドリング
    var domain = gs2.Guild.Namespace(
        namespaceName: "namespace-0001"
    );
    
    // イベントハンドリングを開始
    var callbackId = domain.SubscribeGuildModels(
        () => {
            // リストの要素が変化した時に呼び出される
        }
    );

    // イベントハンドリングを停止
    domain.UnsubscribeGuildModels(callbackId);
    var domain = gs2.Guild.Namespace(
        namespaceName: "namespace-0001"
    );
    var it = domain.GuildModels(
    );
    List<EzGuildModel> items = new List<EzGuildModel>();
    while (it.HasNext())
    {
        yield return it.Next();
        if (it.Error != null)
        {
            onError.Invoke(it.Error, null);
            break;
        }
        if (it.Current != null)
        {
            items.Add(it.Current);
        }
        else
        {
            break;
        }
    }
    const auto Domain = Gs2->Guild->Namespace(
        "namespace-0001" // namespaceName
    );
    
    // イベントハンドリングを開始
    const auto CallbackId = Domain->SubscribeGuildModels(
        []() {
            // リストの要素が変化した時に呼び出される
        }
    );

    // イベントハンドリングを停止
    Domain->UnsubscribeGuildModels(CallbackId);

assume

ギルドユーザーとして振る舞うためのアクセストークンを取得

Request

必須デフォルト値の制限説明
namespaceNamestring~ 128文字ネームスペース名
guildModelNamestring~ 128文字ギルドモデル名
accessTokenstring~ 128文字ユーザーID
guildNamestringUUID~ 36文字ギルド名

Result

説明
tokenstringアクセストークン
userIdstringユーザーID
expirelong有効期限 (UNIX時間 単位:ミリ秒)

実装例

    var domain = gs2.Guild.Namespace(
        namespaceName: "namespace-0001"
    ).Me(
        gameSession: GameSession
    );
    var result = await domain.AssumeAsync(
        guildModelName: "guild-model-0001",
        guildName: "guild-0001"
    );
    var domain = gs2.Guild.Namespace(
        namespaceName: "namespace-0001"
    ).Me(
        gameSession: GameSession
    );
    var future = domain.AssumeFuture(
        guildModelName: "guild-model-0001",
        guildName: "guild-0001"
    );
    yield return future;
    if (future.Error != null)
    {
        onError.Invoke(future.Error, null);
        yield break;
    }
    const auto Domain = Gs2->Guild->Namespace(
        "namespace-0001" // namespaceName
    )->Me(
        GameSession
    );
    const auto Future = Domain->Assume(
        "guild-model-0001", // guildModelName
        "guild-0001" // guildName
    );
    Future->StartSynchronousTask();
    if (Future->GetTask().IsError())
    {
        return false;
    }
    const auto Result = Future->GetTask().Result();

batchUpdateGuildMemberRole

ギルドメンバーのロールを一括更新

Request

必須デフォルト値の制限説明
namespaceNamestring~ 128文字ネームスペース名
guildModelNamestring~ 128文字ギルドモデル名
accessTokenstring~ 128文字ギルド名
membersList<EzMember>1 ~ 100 items更新するメンバーリスト

Result

説明
itemEzGuild更新したギルド

実装例

    var domain = gs2.Guild.Namespace(
        namespaceName: "namespace-0001"
    );
    var result = await domain.BatchUpdateGuildMemberRoleAsync(
        guildModelName: "guild-model-0001",
        accessToken: ,
        members: new List<Gs2.Unity.Gs2Guild.Model.EzMember> {
            new Gs2.Unity.Gs2Guild.Model.EzMember() {
                UserId = "user-0002",
                RoleName = "role-0001",
            },
            new Gs2.Unity.Gs2Guild.Model.EzMember() {
                UserId = "user-0003",
                RoleName = "role-0002",
            },
        }
    );
    var item = await result.ModelAsync();
    var domain = gs2.Guild.Namespace(
        namespaceName: "namespace-0001"
    );
    var future = domain.BatchUpdateGuildMemberRoleFuture(
        guildModelName: "guild-model-0001",
        accessToken: ,
        members: new List<Gs2.Unity.Gs2Guild.Model.EzMember> {
            new Gs2.Unity.Gs2Guild.Model.EzMember() {
                UserId = "user-0002",
                RoleName = "role-0001",
            },
            new Gs2.Unity.Gs2Guild.Model.EzMember() {
                UserId = "user-0003",
                RoleName = "role-0002",
            },
        }
    );
    yield return future;
    if (future.Error != null)
    {
        onError.Invoke(future.Error, null);
        yield break;
    }
    var future2 = future.Result.Model();
    yield return future2;
    if (future2.Error != null)
    {
        onError.Invoke(future2.Error, null);
        yield break;
    }
    var result = future2.Result;
    const auto Domain = Gs2->Guild->Namespace(
        "namespace-0001" // namespaceName
    );
    const auto Future = Domain->BatchUpdateGuildMemberRole(
        "guild-model-0001", // guildModelName
        , // accessToken
        []
        {
            auto v = MakeShared<TArray<TSharedPtr<Gs2::UE5::Guild::Model::FEzMember>>>();
            v->Add(
                MakeShared<Gs2::UE5::Guild::Model::FEzMember>()
                ->WithUserId(TOptional<FString>("user-0002"))
                ->WithRoleName(TOptional<FString>("role-0001"))
            );
            v->Add(
                MakeShared<Gs2::UE5::Guild::Model::FEzMember>()
                ->WithUserId(TOptional<FString>("user-0003"))
                ->WithRoleName(TOptional<FString>("role-0002"))
            );
            return v;
        }() // members
    );
    Future->StartSynchronousTask();
    if (Future->GetTask().IsError())
    {
        return false;
    }

    // obtain changed values / result values
    const auto Future2 = Future->GetTask().Result()->Model();
    Future2->StartSynchronousTask();
    if (Future2->GetTask().IsError())
    {
        return Future2->GetTask().Error();
    }
    const auto Result = Future2->GetTask().Result();

createGuild

ギルドを作成

Request

必須デフォルト値の制限説明
namespaceNamestring~ 128文字ネームスペース名
guildModelNamestring~ 128文字ギルドモデル名
accessTokenstring~ 128文字ユーザーID
displayNamestring~ 64文字表示名
attribute1int~ 2147483645属性1
attribute2int~ 2147483645属性2
attribute3int~ 2147483645属性3
attribute4int~ 2147483645属性4
attribute5int~ 2147483645属性5
joinPolicyenum {
    “anybody”,
    “approval”
}
~ 128文字参加方針
customRolesList<EzRoleModel>~ 10 itemsギルドが個別に定義した各役職ごとの権限設定リスト
guildMemberDefaultRolestring~ 128文字ギルドメンバーが初期状態に持つカスタムロール

joinPolicy に指定する列挙型の定義

定義説明
anybody自由参加
approval承認制

Result

説明
itemEzGuild作成したギルド

実装例

    var domain = gs2.Guild.Namespace(
        namespaceName: "namespace-0001"
    ).Me(
        gameSession: GameSession
    );
    var result = await domain.CreateGuildAsync(
        guildModelName: "guild-model-0001",
        displayName: "My Guild",
        joinPolicy: "anybody",
        attribute1: 1,
        attribute2: null,
        attribute3: null,
        attribute4: null,
        attribute5: null,
        customRoles: null,
        guildMemberDefaultRole: null
    );
    var item = await result.ModelAsync();
    var domain = gs2.Guild.Namespace(
        namespaceName: "namespace-0001"
    ).Me(
        gameSession: GameSession
    );
    var future = domain.CreateGuildFuture(
        guildModelName: "guild-model-0001",
        displayName: "My Guild",
        joinPolicy: "anybody",
        attribute1: 1,
        attribute2: null,
        attribute3: null,
        attribute4: null,
        attribute5: null,
        customRoles: null,
        guildMemberDefaultRole: null
    );
    yield return future;
    if (future.Error != null)
    {
        onError.Invoke(future.Error, null);
        yield break;
    }
    var future2 = future.Result.Model();
    yield return future2;
    if (future2.Error != null)
    {
        onError.Invoke(future2.Error, null);
        yield break;
    }
    var result = future2.Result;
    const auto Domain = Gs2->Guild->Namespace(
        "namespace-0001" // namespaceName
    )->Me(
        GameSession
    );
    const auto Future = Domain->CreateGuild(
        "guild-model-0001", // guildModelName
        "My Guild", // displayName
        "anybody", // joinPolicy
        1 // attribute1
        // attribute2
        // attribute3
        // attribute4
        // attribute5
        // customRoles
        // guildMemberDefaultRole
    );
    Future->StartSynchronousTask();
    if (Future->GetTask().IsError())
    {
        return false;
    }

    // obtain changed values / result values
    const auto Future2 = Future->GetTask().Result()->Model();
    Future2->StartSynchronousTask();
    if (Future2->GetTask().IsError())
    {
        return Future2->GetTask().Error();
    }
    const auto Result = Future2->GetTask().Result();

deleteGuild

ギルドを解散

Request

必須デフォルト値の制限説明
namespaceNamestring~ 128文字ネームスペース名
guildModelNamestring~ 128文字ギルドモデル名
accessTokenstring~ 128文字ギルド名

Result

説明
itemEzGuild削除したギルド

実装例

    var domain = gs2.Guild.Namespace(
        namespaceName: "namespace-0001"
    ).Guild(
        guildModelName: "guild-model-0001",
        guildName: "guild-0001",
        userId: "user-0001"
    );
    var result = await domain.DeleteGuildAsync(
        accessToken: 
    );
    var domain = gs2.Guild.Namespace(
        namespaceName: "namespace-0001"
    ).Guild(
        guildModelName: "guild-model-0001",
        guildName: "guild-0001",
        userId: "user-0001"
    );
    var future = domain.DeleteGuildFuture(
        accessToken: 
    );
    yield return future;
    if (future.Error != null)
    {
        onError.Invoke(future.Error, null);
        yield break;
    }
    const auto Domain = Gs2->Guild->Namespace(
        "namespace-0001" // namespaceName
    )->Guild(
        "guild-model-0001", // guildModelName
        "guild-0001", // guildName
        "user-0001" // userId
    );
    const auto Future = Domain->DeleteGuild(
         // accessToken
    );
    Future->StartSynchronousTask();
    if (Future->GetTask().IsError())
    {
        return false;
    }
    const auto Result = Future->GetTask().Result();

getGuild

ギルドを取得

Request

必須デフォルト値の制限説明
namespaceNamestring~ 128文字ネームスペース名
guildModelNamestring~ 128文字ギルドモデル名
accessTokenstring~ 128文字ユーザーID
guildNamestringUUID~ 36文字ギルド名

Result

説明
itemEzGuildギルド

実装例

    var domain = gs2.Guild.Namespace(
        namespaceName: "namespace-0001"
    ).Guild(
        guildModelName: "guild-model-0001",
        guildName: "guild-0001",
        userId: "user-0001"
    );
    var item = await domain.ModelAsync();
    var domain = gs2.Guild.Namespace(
        namespaceName: "namespace-0001"
    ).Guild(
        guildModelName: "guild-model-0001",
        guildName: "guild-0001",
        userId: "user-0001"
    );
    var future = domain.Model();
    yield return future;
    var item = future.Result;
    const auto Domain = Gs2->Guild->Namespace(
        "namespace-0001" // namespaceName
    )->Guild(
        "guild-model-0001", // guildModelName
        "guild-0001", // guildName
        "user-0001" // userId
    );
    const auto Future = Domain->Model();
    Future->StartSynchronousTask();
    if (Future->GetTask().IsError())
    {
        return false;
    }
値の変更イベントハンドリング
    var domain = gs2.Guild.Namespace(
        namespaceName: "namespace-0001"
    ).Guild(
        guildModelName: "guild-model-0001",
        guildName: "guild-0001",
        userId: "user-0001"
    );
    
    // イベントハンドリングを開始
    var callbackId = domain.Subscribe(
        value => {
            // 値が変化した時に呼び出される
            // value には変更後の値が渡ってくる
        }
    );

    // イベントハンドリングを停止
    domain.Unsubscribe(callbackId);
    var domain = gs2.Guild.Namespace(
        namespaceName: "namespace-0001"
    ).Guild(
        guildModelName: "guild-model-0001",
        guildName: "guild-0001",
        userId: "user-0001"
    );
    var future = domain.Model();
    yield return future;
    var item = future.Result;
    const auto Domain = Gs2->Guild->Namespace(
        "namespace-0001" // namespaceName
    )->Guild(
        "guild-model-0001", // guildModelName
        "guild-0001", // guildName
        "user-0001" // userId
    );
    
    // イベントハンドリングを開始
    const auto CallbackId = Domain->Subscribe(
        [](TSharedPtr<Gs2::Guild::Model::FGuild> value) {
            // 値が変化した時に呼び出される
            // value には変更後の値が渡ってくる
        }
    );

    // イベントハンドリングを停止
    Domain->Unsubscribe(CallbackId);

listGuilds

ギルドを検索

検索結果には過去24時間以内に更新されたギルドのみが含まれます。
もし、検索対象に含めたい場合は変更点がなかったとしても、Update 関数を使用してギルドを更新してください。

Request

必須デフォルト値の制限説明
namespaceNamestring~ 128文字ネームスペース名
accessTokenstring~ 128文字ユーザーID
displayNamestring~ 64文字検索するギルド表示名
attributes1List<int>~ 10 items検索する属性1
attributes2List<int>~ 10 items検索する属性2
attributes3List<int>~ 10 items検索する属性3
attributes4List<int>~ 10 items検索する属性4
attributes5List<int>~ 10 items検索する属性5
joinPoliciesList<string>~ 10 items検索するギルド参加方法リスト
includeFullMembersGuildboolfalseギルドメンバンが満員のギルドを検索結果に含めるか
orderByenum {
    “number_of_players”,
    “attribute1_asc”,
    “attribute1_desc”,
    “attribute2_asc”,
    “attribute2_desc”,
    “attribute3_asc”,
    “attribute3_desc”,
    “attribute4_asc”,
    “attribute4_desc”,
    “attribute5_asc”,
    “attribute5_desc”,
    “last_updated”
}
“number_of_players”~ 128文字並び順
pageTokenstring~ 1024文字データの取得を開始する位置を指定するトークン
limitint301 ~ 1000データの取得件数

orderBy に指定する列挙型の定義

定義説明
number_of_players参加プレイヤー数
attribute1_asc属性1昇順
attribute1_desc属性1降順
attribute2_asc属性2昇順
attribute2_desc属性2降順
attribute3_asc属性3昇順
attribute3_desc属性3降順
attribute4_asc属性4昇順
attribute4_desc属性4降順
attribute5_asc属性5昇順
attribute5_desc属性5降順
last_updated最終更新日時

Result

説明
itemsList<EzGuild>ギルドのリスト
nextPageTokenstringリストの続きを取得するためのページトークン

実装例

    var domain = gs2.Guild.Namespace(
        namespaceName: "namespace-0001"
    ).Me(
        gameSession: GameSession
    );
    var items = await domain.SearchGuildsAsync(
        guildModelName: "guild-model-0001"
    ).ToListAsync();
    var domain = gs2.Guild.Namespace(
        namespaceName: "namespace-0001"
    ).Me(
        gameSession: GameSession
    );
    var it = domain.SearchGuilds(
        guildModelName: "guild-model-0001"
    );
    List<EzGuild> items = new List<EzGuild>();
    while (it.HasNext())
    {
        yield return it.Next();
        if (it.Error != null)
        {
            onError.Invoke(it.Error, null);
            break;
        }
        if (it.Current != null)
        {
            items.Add(it.Current);
        }
        else
        {
            break;
        }
    }
    const auto Domain = Gs2->Guild->Namespace(
        "namespace-0001" // namespaceName
    )->Me(
        GameSession
    );
    const auto It = Domain->SearchGuilds(
        "guild-model-0001" // guildModelName
    );
    TArray<Gs2::UE5::Guild::Model::FEzGuildPtr> Result;
    for (auto Item : *It)
    {
        if (Item.IsError())
        {
            return false;
        }
        Result.Add(Item.Current());
    }

updateGuild

ギルドを更新

Request

必須デフォルト値の制限説明
namespaceNamestring~ 128文字ネームスペース名
guildModelNamestring~ 128文字ギルドモデル名
accessTokenstring~ 128文字ギルド名
displayNamestring~ 64文字表示名
attribute1int~ 2147483645属性1
attribute2int~ 2147483645属性2
attribute3int~ 2147483645属性3
attribute4int~ 2147483645属性4
attribute5int~ 2147483645属性5
joinPolicyenum {
    “anybody”,
    “approval”
}
~ 128文字参加方針
customRolesList<EzRoleModel>~ 10 itemsギルドが個別に定義した各役職ごとの権限設定リスト
guildMemberDefaultRolestring~ 128文字ギルドメンバーが初期状態に持つカスタムロール

joinPolicy に指定する列挙型の定義

定義説明
anybody自由参加
approval承認制

Result

説明
itemEzGuild更新したギルド

実装例

    var domain = gs2.Guild.Namespace(
        namespaceName: "namespace-0001"
    ).Guild(
        guildModelName: "guild-model-0001",
        guildName: "guild-0001",
        userId: "user-0001"
    );
    var result = await domain.UpdateGuildAsync(
        accessToken: ,
        displayName: "My Guild",
        joinPolicy: "anybody",
        attribute1: 1,
        attribute2: null,
        attribute3: null,
        attribute4: null,
        attribute5: null,
        customRoles: null,
        guildMemberDefaultRole: null
    );
    var item = await result.ModelAsync();
    var domain = gs2.Guild.Namespace(
        namespaceName: "namespace-0001"
    ).Guild(
        guildModelName: "guild-model-0001",
        guildName: "guild-0001",
        userId: "user-0001"
    );
    var future = domain.UpdateGuildFuture(
        accessToken: ,
        displayName: "My Guild",
        joinPolicy: "anybody",
        attribute1: 1,
        attribute2: null,
        attribute3: null,
        attribute4: null,
        attribute5: null,
        customRoles: null,
        guildMemberDefaultRole: null
    );
    yield return future;
    if (future.Error != null)
    {
        onError.Invoke(future.Error, null);
        yield break;
    }
    var future2 = future.Result.Model();
    yield return future2;
    if (future2.Error != null)
    {
        onError.Invoke(future2.Error, null);
        yield break;
    }
    var result = future2.Result;
    const auto Domain = Gs2->Guild->Namespace(
        "namespace-0001" // namespaceName
    )->Guild(
        "guild-model-0001", // guildModelName
        "guild-0001", // guildName
        "user-0001" // userId
    );
    const auto Future = Domain->UpdateGuild(
        , // accessToken
        "My Guild", // displayName
        "anybody", // joinPolicy
        1 // attribute1
        // attribute2
        // attribute3
        // attribute4
        // attribute5
        // customRoles
        // guildMemberDefaultRole
    );
    Future->StartSynchronousTask();
    if (Future->GetTask().IsError())
    {
        return false;
    }

    // obtain changed values / result values
    const auto Future2 = Future->GetTask().Result()->Model();
    Future2->StartSynchronousTask();
    if (Future2->GetTask().IsError())
    {
        return Future2->GetTask().Error();
    }
    const auto Result = Future2->GetTask().Result();

updateGuildMemberRole

ギルドメンバーのロールを更新

Request

必須デフォルト値の制限説明
namespaceNamestring~ 128文字ネームスペース名
guildModelNamestring~ 128文字ギルドモデル名
accessTokenstring~ 128文字ギルド名
targetUserIdstring~ 128文字更新するユーザーID
roleNamestring~ 128文字ロールモデル名

Result

説明
itemEzGuild更新したギルド

実装例

    var domain = gs2.Guild.Namespace(
        namespaceName: "namespace-0001"
    ).Guild(
        guildModelName: "guild-model-0001",
        guildName: "guild-0001",
        userId: "user-0001"
    );
    var result = await domain.UpdateGuildMemberRoleAsync(
        accessToken: ,
        targetUserId: "user-0002",
        roleName: "role-0001"
    );
    var item = await result.ModelAsync();
    var domain = gs2.Guild.Namespace(
        namespaceName: "namespace-0001"
    ).Guild(
        guildModelName: "guild-model-0001",
        guildName: "guild-0001",
        userId: "user-0001"
    );
    var future = domain.UpdateGuildMemberRoleFuture(
        accessToken: ,
        targetUserId: "user-0002",
        roleName: "role-0001"
    );
    yield return future;
    if (future.Error != null)
    {
        onError.Invoke(future.Error, null);
        yield break;
    }
    var future2 = future.Result.Model();
    yield return future2;
    if (future2.Error != null)
    {
        onError.Invoke(future2.Error, null);
        yield break;
    }
    var result = future2.Result;
    const auto Domain = Gs2->Guild->Namespace(
        "namespace-0001" // namespaceName
    )->Guild(
        "guild-model-0001", // guildModelName
        "guild-0001", // guildName
        "user-0001" // userId
    );
    const auto Future = Domain->UpdateGuildMemberRole(
        , // accessToken
        "user-0002", // targetUserId
        "role-0001" // roleName
    );
    Future->StartSynchronousTask();
    if (Future->GetTask().IsError())
    {
        return false;
    }

    // obtain changed values / result values
    const auto Future2 = Future->GetTask().Result()->Model();
    Future2->StartSynchronousTask();
    if (Future2->GetTask().IsError())
    {
        return Future2->GetTask().Error();
    }
    const auto Result = Future2->GetTask().Result();

acceptRequest

受信したリクエストを承認

Request

必須デフォルト値の制限説明
namespaceNamestring~ 128文字ネームスペース名
accessTokenstring~ 128文字ギルド名
guildModelNamestring~ 128文字ギルドモデル名
fromUserIdstring~ 128文字ユーザーID

Result

説明
itemEzReceiveMemberRequest承諾したメンバーリクエスト
guildEzGuildギルド

実装例

    var domain = gs2.Guild.Namespace(
        namespaceName: "namespace-0001"
    ).Guild(
        guildModelName: "guild-0001",
        guildName: "$guild1.name",
        userId: "user-0001"
    ).ReceiveMemberRequest(
        fromUserId: null
    );
    var result = await domain.AcceptRequestAsync(
        accessToken: 
    );
    var domain = gs2.Guild.Namespace(
        namespaceName: "namespace-0001"
    ).Guild(
        guildModelName: "guild-0001",
        guildName: "$guild1.name",
        userId: "user-0001"
    ).ReceiveMemberRequest(
        fromUserId: null
    );
    var future = domain.AcceptRequestFuture(
        accessToken: 
    );
    yield return future;
    if (future.Error != null)
    {
        onError.Invoke(future.Error, null);
        yield break;
    }
    const auto Domain = Gs2->Guild->Namespace(
        "namespace-0001" // namespaceName
    )->Guild(
        "guild-0001", // guildModelName
        "$guild1.name", // guildName
        "user-0001" // userId
    )->ReceiveMemberRequest(
        nullptr // fromUserId
    );
    const auto Future = Domain->AcceptRequest(
         // accessToken
    );
    Future->StartSynchronousTask();
    if (Future->GetTask().IsError())
    {
        return false;
    }
    const auto Result = Future->GetTask().Result();

getReceiveRequest

受信したリクエストを取得

Request

必須デフォルト値の制限説明
namespaceNamestring~ 128文字ネームスペース名
accessTokenstring~ 128文字ギルド名
guildModelNamestring~ 128文字ギルドモデル名
fromUserIdstring~ 128文字ユーザーID

Result

説明
itemEzReceiveMemberRequestメンバーリクエスト

実装例

    var domain = gs2.Guild.Namespace(
        namespaceName: "namespace-0001"
    ).Guild(
        guildModelName: "guild-0001",
        guildName: "$guild1.name",
        userId: "user-0001"
    ).ReceiveMemberRequest(
        fromUserId: null
    );
    var item = await domain.ModelAsync();
    var domain = gs2.Guild.Namespace(
        namespaceName: "namespace-0001"
    ).Guild(
        guildModelName: "guild-0001",
        guildName: "$guild1.name",
        userId: "user-0001"
    ).ReceiveMemberRequest(
        fromUserId: null
    );
    var future = domain.Model();
    yield return future;
    var item = future.Result;
    const auto Domain = Gs2->Guild->Namespace(
        "namespace-0001" // namespaceName
    )->Guild(
        "guild-0001", // guildModelName
        "$guild1.name", // guildName
        "user-0001" // userId
    )->ReceiveMemberRequest(
        nullptr // fromUserId
    );
    const auto Future = Domain->Model();
    Future->StartSynchronousTask();
    if (Future->GetTask().IsError())
    {
        return false;
    }
値の変更イベントハンドリング
    var domain = gs2.Guild.Namespace(
        namespaceName: "namespace-0001"
    ).Guild(
        guildModelName: "guild-0001",
        guildName: "$guild1.name",
        userId: "user-0001"
    ).ReceiveMemberRequest(
        fromUserId: null
    );
    
    // イベントハンドリングを開始
    var callbackId = domain.Subscribe(
        value => {
            // 値が変化した時に呼び出される
            // value には変更後の値が渡ってくる
        }
    );

    // イベントハンドリングを停止
    domain.Unsubscribe(callbackId);
    var domain = gs2.Guild.Namespace(
        namespaceName: "namespace-0001"
    ).Guild(
        guildModelName: "guild-0001",
        guildName: "$guild1.name",
        userId: "user-0001"
    ).ReceiveMemberRequest(
        fromUserId: null
    );
    var future = domain.Model();
    yield return future;
    var item = future.Result;
    const auto Domain = Gs2->Guild->Namespace(
        "namespace-0001" // namespaceName
    )->Guild(
        "guild-0001", // guildModelName
        "$guild1.name", // guildName
        "user-0001" // userId
    )->ReceiveMemberRequest(
        nullptr // fromUserId
    );
    
    // イベントハンドリングを開始
    const auto CallbackId = Domain->Subscribe(
        [](TSharedPtr<Gs2::Guild::Model::FReceiveMemberRequest> value) {
            // 値が変化した時に呼び出される
            // value には変更後の値が渡ってくる
        }
    );

    // イベントハンドリングを停止
    Domain->Unsubscribe(CallbackId);

listReceiveRequests

受信したリクエストの一覧を取得

Request

必須デフォルト値の制限説明
namespaceNamestring~ 128文字ネームスペース名
accessTokenstring~ 128文字ギルド名
guildModelNamestring~ 128文字ギルドモデル名
pageTokenstring~ 1024文字データの取得を開始する位置を指定するトークン
limitint301 ~ 1000データの取得件数

Result

説明
itemsList<EzReceiveMemberRequest>メンバーリクエストのリスト
nextPageTokenstringリストの続きを取得するためのページトークン

実装例

    var domain = gs2.Guild.Namespace(
        namespaceName: "namespace-0001"
    ).Guild(
        guildModelName: "guild-0001",
        guildName: "$guild1.name",
        userId: "user-0001"
    );
    var items = await domain.ReceiveRequestsAsync(
    ).ToListAsync();
    var domain = gs2.Guild.Namespace(
        namespaceName: "namespace-0001"
    ).Guild(
        guildModelName: "guild-0001",
        guildName: "$guild1.name",
        userId: "user-0001"
    );
    var it = domain.ReceiveRequests(
    );
    List<EzReceiveMemberRequest> items = new List<EzReceiveMemberRequest>();
    while (it.HasNext())
    {
        yield return it.Next();
        if (it.Error != null)
        {
            onError.Invoke(it.Error, null);
            break;
        }
        if (it.Current != null)
        {
            items.Add(it.Current);
        }
        else
        {
            break;
        }
    }
    const auto Domain = Gs2->Guild->Namespace(
        "namespace-0001" // namespaceName
    )->Guild(
        "guild-0001", // guildModelName
        "$guild1.name", // guildName
        "user-0001" // userId
    );
    const auto It = Domain->ReceiveRequests(
    );
    TArray<Gs2::UE5::Guild::Model::FEzReceiveMemberRequestPtr> Result;
    for (auto Item : *It)
    {
        if (Item.IsError())
        {
            return false;
        }
        Result.Add(Item.Current());
    }

rejectRequest

受信したリクエストを否認

Request

必須デフォルト値の制限説明
namespaceNamestring~ 128文字ネームスペース名
accessTokenstring~ 128文字ギルド名
guildModelNamestring~ 128文字ギルドモデル名
fromUserIdstring~ 128文字ユーザーID

Result

説明
itemEzReceiveMemberRequest拒否したメンバーリクエスト

実装例

    var domain = gs2.Guild.Namespace(
        namespaceName: "namespace-0001"
    ).Guild(
        guildModelName: null,
        guildName: "guild-0001",
        userId: null
    ).ReceiveMemberRequest(
        fromUserId: "user-0002"
    );
    var result = await domain.RejectRequestAsync(
        accessToken: 
    );
    var domain = gs2.Guild.Namespace(
        namespaceName: "namespace-0001"
    ).Guild(
        guildModelName: null,
        guildName: "guild-0001",
        userId: null
    ).ReceiveMemberRequest(
        fromUserId: "user-0002"
    );
    var future = domain.RejectRequestFuture(
        accessToken: 
    );
    yield return future;
    if (future.Error != null)
    {
        onError.Invoke(future.Error, null);
        yield break;
    }
    const auto Domain = Gs2->Guild->Namespace(
        "namespace-0001" // namespaceName
    )->Guild(
        nullptr, // guildModelName
        "guild-0001", // guildName
        nullptr // userId
    )->ReceiveMemberRequest(
        "user-0002" // fromUserId
    );
    const auto Future = Domain->RejectRequest(
         // accessToken
    );
    Future->StartSynchronousTask();
    if (Future->GetTask().IsError())
    {
        return false;
    }
    const auto Result = Future->GetTask().Result();

cancelRequest

送信したリクエストを取り下げ

Request

必須デフォルト値の制限説明
namespaceNamestring~ 128文字ネームスペース名
accessTokenstring~ 128文字ユーザーID
guildModelNamestring~ 128文字ギルドモデル名
targetGuildNamestring~ 128文字ギルド名

Result

説明
itemEzSendMemberRequest削除したメンバーリクエスト

実装例

    var domain = gs2.Guild.Namespace(
        namespaceName: "namespace-0001"
    ).Me(
        gameSession: GameSession
    );
    var result = await domain.CancelRequestAsync(
        guildModelName: "guild-0002",
        targetGuildName: "guild-0002"
    );
    var domain = gs2.Guild.Namespace(
        namespaceName: "namespace-0001"
    ).Me(
        gameSession: GameSession
    );
    var future = domain.CancelRequestFuture(
        guildModelName: "guild-0002",
        targetGuildName: "guild-0002"
    );
    yield return future;
    if (future.Error != null)
    {
        onError.Invoke(future.Error, null);
        yield break;
    }
    const auto Domain = Gs2->Guild->Namespace(
        "namespace-0001" // namespaceName
    )->Me(
        GameSession
    );
    const auto Future = Domain->CancelRequest(
        "guild-0002", // guildModelName
        "guild-0002" // targetGuildName
    );
    Future->StartSynchronousTask();
    if (Future->GetTask().IsError())
    {
        return false;
    }
    const auto Result = Future->GetTask().Result();

getSendRequest

送信したリクエストを取得

Request

必須デフォルト値の制限説明
namespaceNamestring~ 128文字ネームスペース名
accessTokenstring~ 128文字ユーザーID
guildModelNamestring~ 128文字ギルドモデル名
targetGuildNamestring~ 128文字ギルド名

Result

説明
itemEzSendMemberRequestメンバーリクエスト

実装例

    var domain = gs2.Guild.Namespace(
        namespaceName: "namespace-0001"
    ).Me(
        gameSession: GameSession
    ).SendMemberRequest(
        guildModelName: "guild-0002",
        guildName: null
    );
    var item = await domain.ModelAsync();
    var domain = gs2.Guild.Namespace(
        namespaceName: "namespace-0001"
    ).Me(
        gameSession: GameSession
    ).SendMemberRequest(
        guildModelName: "guild-0002",
        guildName: null
    );
    var future = domain.Model();
    yield return future;
    var item = future.Result;
    const auto Domain = Gs2->Guild->Namespace(
        "namespace-0001" // namespaceName
    )->Me(
        GameSession
    )->SendMemberRequest(
        "guild-0002", // guildModelName
        nullptr // guildName
    );
    const auto Future = Domain->Model();
    Future->StartSynchronousTask();
    if (Future->GetTask().IsError())
    {
        return false;
    }
値の変更イベントハンドリング
    var domain = gs2.Guild.Namespace(
        namespaceName: "namespace-0001"
    ).Me(
        gameSession: GameSession
    ).SendMemberRequest(
        guildModelName: "guild-0002",
        guildName: null
    );
    
    // イベントハンドリングを開始
    var callbackId = domain.Subscribe(
        value => {
            // 値が変化した時に呼び出される
            // value には変更後の値が渡ってくる
        }
    );

    // イベントハンドリングを停止
    domain.Unsubscribe(callbackId);
    var domain = gs2.Guild.Namespace(
        namespaceName: "namespace-0001"
    ).Me(
        gameSession: GameSession
    ).SendMemberRequest(
        guildModelName: "guild-0002",
        guildName: null
    );
    var future = domain.Model();
    yield return future;
    var item = future.Result;
    const auto Domain = Gs2->Guild->Namespace(
        "namespace-0001" // namespaceName
    )->Me(
        GameSession
    )->SendMemberRequest(
        "guild-0002", // guildModelName
        nullptr // guildName
    );
    
    // イベントハンドリングを開始
    const auto CallbackId = Domain->Subscribe(
        [](TSharedPtr<Gs2::Guild::Model::FSendMemberRequest> value) {
            // 値が変化した時に呼び出される
            // value には変更後の値が渡ってくる
        }
    );

    // イベントハンドリングを停止
    Domain->Unsubscribe(CallbackId);

listSendRequests

送信したリクエストの一覧を取得

Request

必須デフォルト値の制限説明
namespaceNamestring~ 128文字ネームスペース名
accessTokenstring~ 128文字ユーザーID
guildModelNamestring~ 128文字ギルドモデル名
pageTokenstring~ 1024文字データの取得を開始する位置を指定するトークン
limitint301 ~ 1000データの取得件数

Result

説明
itemsList<EzSendMemberRequest>メンバーリクエストのリスト
nextPageTokenstringリストの続きを取得するためのページトークン

実装例

    var domain = gs2.Guild.Namespace(
        namespaceName: "namespace-0001"
    ).Me(
        gameSession: GameSession
    );
    var items = await domain.SendRequestsAsync(
        guildModelName: "guild-0002"
    ).ToListAsync();
    var domain = gs2.Guild.Namespace(
        namespaceName: "namespace-0001"
    ).Me(
        gameSession: GameSession
    );
    var it = domain.SendRequests(
        guildModelName: "guild-0002"
    );
    List<EzSendMemberRequest> items = new List<EzSendMemberRequest>();
    while (it.HasNext())
    {
        yield return it.Next();
        if (it.Error != null)
        {
            onError.Invoke(it.Error, null);
            break;
        }
        if (it.Current != null)
        {
            items.Add(it.Current);
        }
        else
        {
            break;
        }
    }
    const auto Domain = Gs2->Guild->Namespace(
        "namespace-0001" // namespaceName
    )->Me(
        GameSession
    );
    const auto It = Domain->SendRequests(
        "guild-0002" // guildModelName
    );
    TArray<Gs2::UE5::Guild::Model::FEzSendMemberRequestPtr> Result;
    for (auto Item : *It)
    {
        if (Item.IsError())
        {
            return false;
        }
        Result.Add(Item.Current());
    }

sendRequest

リクエストを送信

Request

必須デフォルト値の制限説明
namespaceNamestring~ 128文字ネームスペース名
accessTokenstring~ 128文字ユーザーID
guildModelNamestring~ 128文字ギルドモデル名
targetGuildNamestring~ 128文字ギルド名

Result

説明
itemEzGuild参加したギルド
sendMemberRequestEzSendMemberRequest送信したメンバーリクエスト

実装例

    var domain = gs2.Guild.Namespace(
        namespaceName: "namespace-0001"
    ).Me(
        gameSession: GameSession
    );
    var result = await domain.SendRequestAsync(
        guildModelName: "guild-0002",
        targetGuildName: "guild-0002"
    );
    var item = await result.ModelAsync();
    var domain = gs2.Guild.Namespace(
        namespaceName: "namespace-0001"
    ).Me(
        gameSession: GameSession
    );
    var future = domain.SendRequestFuture(
        guildModelName: "guild-0002",
        targetGuildName: "guild-0002"
    );
    yield return future;
    if (future.Error != null)
    {
        onError.Invoke(future.Error, null);
        yield break;
    }
    var future2 = future.Result.Model();
    yield return future2;
    if (future2.Error != null)
    {
        onError.Invoke(future2.Error, null);
        yield break;
    }
    var result = future2.Result;
    const auto Domain = Gs2->Guild->Namespace(
        "namespace-0001" // namespaceName
    )->Me(
        GameSession
    );
    const auto Future = Domain->SendRequest(
        "guild-0002", // guildModelName
        "guild-0002" // targetGuildName
    );
    Future->StartSynchronousTask();
    if (Future->GetTask().IsError())
    {
        return false;
    }

    // obtain changed values / result values
    const auto Future2 = Future->GetTask().Result()->Model();
    Future2->StartSynchronousTask();
    if (Future2->GetTask().IsError())
    {
        return Future2->GetTask().Error();
    }
    const auto Result = Future2->GetTask().Result();

getJoinedGuild

参加しているギルドを取得

Request

必須デフォルト値の制限説明
namespaceNamestring~ 128文字ネームスペース名
accessTokenstring~ 128文字ユーザーID
guildModelNamestring~ 128文字ギルドモデル名
guildNamestringUUID~ 36文字ギルド名

Result

説明
itemEzJoinedGuildメンバーリクエスト

実装例

    var domain = gs2.Guild.Namespace(
        namespaceName: "namespace-0001"
    ).Me(
        gameSession: GameSession
    ).JoinedGuild(
        guildModelName: "guild-model-0001",
        guildName: "guild-0001"
    );
    var item = await domain.ModelAsync();
    var domain = gs2.Guild.Namespace(
        namespaceName: "namespace-0001"
    ).Me(
        gameSession: GameSession
    ).JoinedGuild(
        guildModelName: "guild-model-0001",
        guildName: "guild-0001"
    );
    var future = domain.Model();
    yield return future;
    var item = future.Result;
    const auto Domain = Gs2->Guild->Namespace(
        "namespace-0001" // namespaceName
    )->Me(
        GameSession
    )->JoinedGuild(
        "guild-model-0001", // guildModelName
        "guild-0001" // guildName
    );
    const auto Future = Domain->Model();
    Future->StartSynchronousTask();
    if (Future->GetTask().IsError())
    {
        return false;
    }
値の変更イベントハンドリング
    var domain = gs2.Guild.Namespace(
        namespaceName: "namespace-0001"
    ).Me(
        gameSession: GameSession
    ).JoinedGuild(
        guildModelName: "guild-model-0001",
        guildName: "guild-0001"
    );
    
    // イベントハンドリングを開始
    var callbackId = domain.Subscribe(
        value => {
            // 値が変化した時に呼び出される
            // value には変更後の値が渡ってくる
        }
    );

    // イベントハンドリングを停止
    domain.Unsubscribe(callbackId);
    var domain = gs2.Guild.Namespace(
        namespaceName: "namespace-0001"
    ).Me(
        gameSession: GameSession
    ).JoinedGuild(
        guildModelName: "guild-model-0001",
        guildName: "guild-0001"
    );
    var future = domain.Model();
    yield return future;
    var item = future.Result;
    const auto Domain = Gs2->Guild->Namespace(
        "namespace-0001" // namespaceName
    )->Me(
        GameSession
    )->JoinedGuild(
        "guild-model-0001", // guildModelName
        "guild-0001" // guildName
    );
    
    // イベントハンドリングを開始
    const auto CallbackId = Domain->Subscribe(
        [](TSharedPtr<Gs2::Guild::Model::FJoinedGuild> value) {
            // 値が変化した時に呼び出される
            // value には変更後の値が渡ってくる
        }
    );

    // イベントハンドリングを停止
    Domain->Unsubscribe(CallbackId);

listJoinedGuilds

参加しているギルドの一覧を取得

Request

必須デフォルト値の制限説明
namespaceNamestring~ 128文字ネームスペース名
accessTokenstring~ 128文字ユーザーID
guildModelNamestring~ 128文字ギルドモデル名
pageTokenstring~ 1024文字データの取得を開始する位置を指定するトークン
limitint301 ~ 1000データの取得件数

Result

説明
itemsList<EzJoinedGuild>メンバーリクエストのリスト
nextPageTokenstringリストの続きを取得するためのページトークン

実装例

    var domain = gs2.Guild.Namespace(
        namespaceName: "namespace-0001"
    ).Me(
        gameSession: GameSession
    );
    var items = await domain.JoinedGuildsAsync(
        guildModelName: "guild-model-0001"
    ).ToListAsync();
    var domain = gs2.Guild.Namespace(
        namespaceName: "namespace-0001"
    ).Me(
        gameSession: GameSession
    );
    var it = domain.JoinedGuilds(
        guildModelName: "guild-model-0001"
    );
    List<EzJoinedGuild> items = new List<EzJoinedGuild>();
    while (it.HasNext())
    {
        yield return it.Next();
        if (it.Error != null)
        {
            onError.Invoke(it.Error, null);
            break;
        }
        if (it.Current != null)
        {
            items.Add(it.Current);
        }
        else
        {
            break;
        }
    }
    const auto Domain = Gs2->Guild->Namespace(
        "namespace-0001" // namespaceName
    )->Me(
        GameSession
    );
    const auto It = Domain->JoinedGuilds(
        "guild-model-0001" // guildModelName
    );
    TArray<Gs2::UE5::Guild::Model::FEzJoinedGuildPtr> Result;
    for (auto Item : *It)
    {
        if (Item.IsError())
        {
            return false;
        }
        Result.Add(Item.Current());
    }
値の変更イベントハンドリング
    var domain = gs2.Guild.Namespace(
        namespaceName: "namespace-0001"
    ).Me(
        gameSession: GameSession
    );
    
    // イベントハンドリングを開始
    var callbackId = domain.SubscribeJoinedGuilds(
        () => {
            // リストの要素が変化した時に呼び出される
        }
    );

    // イベントハンドリングを停止
    domain.UnsubscribeJoinedGuilds(callbackId);
    var domain = gs2.Guild.Namespace(
        namespaceName: "namespace-0001"
    ).Me(
        gameSession: GameSession
    );
    var it = domain.JoinedGuilds(
        guildModelName: "guild-model-0001"
    );
    List<EzJoinedGuild> items = new List<EzJoinedGuild>();
    while (it.HasNext())
    {
        yield return it.Next();
        if (it.Error != null)
        {
            onError.Invoke(it.Error, null);
            break;
        }
        if (it.Current != null)
        {
            items.Add(it.Current);
        }
        else
        {
            break;
        }
    }
    const auto Domain = Gs2->Guild->Namespace(
        "namespace-0001" // namespaceName
    )->Me(
        GameSession
    );
    
    // イベントハンドリングを開始
    const auto CallbackId = Domain->SubscribeJoinedGuilds(
        []() {
            // リストの要素が変化した時に呼び出される
        }
    );

    // イベントハンドリングを停止
    Domain->UnsubscribeJoinedGuilds(CallbackId);

addIgnoreUser

参加拒否しているユーザーを追加

Request

必須デフォルト値の制限説明
namespaceNamestring~ 128文字ネームスペース名
guildModelNamestring~ 128文字ギルドモデル名
accessTokenstring~ 128文字ギルド名
userIdstring~ 128文字ユーザーID

Result

説明
itemEzIgnoreUser参加を拒否するユーザーID
guildEzGuildギルド

実装例

    var domain = gs2.Guild.Namespace(
        namespaceName: "namespace-0001"
    ).Guild(
        guildModelName: "guild-model-0001",
        guildName: "guild-0001",
        userId: "user-0001"
    );
    var result = await domain.AddIgnoreUserAsync(
        accessToken: ,
        userId: "user-0001"
    );
    var item = await result.ModelAsync();
    var domain = gs2.Guild.Namespace(
        namespaceName: "namespace-0001"
    ).Guild(
        guildModelName: "guild-model-0001",
        guildName: "guild-0001",
        userId: "user-0001"
    );
    var future = domain.AddIgnoreUserFuture(
        accessToken: ,
        userId: "user-0001"
    );
    yield return future;
    if (future.Error != null)
    {
        onError.Invoke(future.Error, null);
        yield break;
    }
    var future2 = future.Result.Model();
    yield return future2;
    if (future2.Error != null)
    {
        onError.Invoke(future2.Error, null);
        yield break;
    }
    var result = future2.Result;
    const auto Domain = Gs2->Guild->Namespace(
        "namespace-0001" // namespaceName
    )->Guild(
        "guild-model-0001", // guildModelName
        "guild-0001", // guildName
        "user-0001" // userId
    );
    const auto Future = Domain->AddIgnoreUser(
        , // accessToken
        "user-0001" // userId
    );
    Future->StartSynchronousTask();
    if (Future->GetTask().IsError())
    {
        return false;
    }

    // obtain changed values / result values
    const auto Future2 = Future->GetTask().Result()->Model();
    Future2->StartSynchronousTask();
    if (Future2->GetTask().IsError())
    {
        return Future2->GetTask().Error();
    }
    const auto Result = Future2->GetTask().Result();

deleteIgnoreUser

参加拒否しているユーザーを削除

Request

必須デフォルト値の制限説明
namespaceNamestring~ 128文字ネームスペース名
guildModelNamestring~ 128文字ギルドモデル名
accessTokenstring~ 128文字ギルド名
userIdstring~ 128文字ユーザーID

Result

説明
itemEzIgnoreUser参加を拒否するユーザーID

実装例

    var domain = gs2.Guild.Namespace(
        namespaceName: "namespace-0001"
    ).Guild(
        guildModelName: "guild-model-0001",
        guildName: "guild-0001",
        userId: "user-0001"
    ).IgnoreUser(
    );
    var result = await domain.DeleteIgnoreUserAsync(
        accessToken: ,
        userId: "user-0001"
    );
    var domain = gs2.Guild.Namespace(
        namespaceName: "namespace-0001"
    ).Guild(
        guildModelName: "guild-model-0001",
        guildName: "guild-0001",
        userId: "user-0001"
    ).IgnoreUser(
    );
    var future = domain.DeleteIgnoreUserFuture(
        accessToken: ,
        userId: "user-0001"
    );
    yield return future;
    if (future.Error != null)
    {
        onError.Invoke(future.Error, null);
        yield break;
    }
    const auto Domain = Gs2->Guild->Namespace(
        "namespace-0001" // namespaceName
    )->Guild(
        "guild-model-0001", // guildModelName
        "guild-0001", // guildName
        "user-0001" // userId
    )->IgnoreUser(
    );
    const auto Future = Domain->DeleteIgnoreUser(
        , // accessToken
        "user-0001" // userId
    );
    Future->StartSynchronousTask();
    if (Future->GetTask().IsError())
    {
        return false;
    }
    const auto Result = Future->GetTask().Result();

getIgnoreUser

参加拒否しているユーザーを取得

Request

必須デフォルト値の制限説明
namespaceNamestring~ 128文字ネームスペース名
guildModelNamestring~ 128文字ギルドモデル名
accessTokenstring~ 128文字ギルド名
userIdstring~ 128文字ユーザーID

Result

説明
itemEzIgnoreUser参加を拒否するユーザーID

実装例

    var domain = gs2.Guild.Namespace(
        namespaceName: "namespace-0001"
    ).Guild(
        guildModelName: "guild-model-0001",
        guildName: "guild-0001",
        userId: "user-0001"
    ).IgnoreUser(
    );
    var item = await domain.ModelAsync();
    var domain = gs2.Guild.Namespace(
        namespaceName: "namespace-0001"
    ).Guild(
        guildModelName: "guild-model-0001",
        guildName: "guild-0001",
        userId: "user-0001"
    ).IgnoreUser(
    );
    var future = domain.Model();
    yield return future;
    var item = future.Result;
    const auto Domain = Gs2->Guild->Namespace(
        "namespace-0001" // namespaceName
    )->Guild(
        "guild-model-0001", // guildModelName
        "guild-0001", // guildName
        "user-0001" // userId
    )->IgnoreUser(
    );
    const auto Future = Domain->Model();
    Future->StartSynchronousTask();
    if (Future->GetTask().IsError())
    {
        return false;
    }
値の変更イベントハンドリング
    var domain = gs2.Guild.Namespace(
        namespaceName: "namespace-0001"
    ).Guild(
        guildModelName: "guild-model-0001",
        guildName: "guild-0001",
        userId: "user-0001"
    ).IgnoreUser(
    );
    
    // イベントハンドリングを開始
    var callbackId = domain.Subscribe(
        value => {
            // 値が変化した時に呼び出される
            // value には変更後の値が渡ってくる
        }
    );

    // イベントハンドリングを停止
    domain.Unsubscribe(callbackId);
    var domain = gs2.Guild.Namespace(
        namespaceName: "namespace-0001"
    ).Guild(
        guildModelName: "guild-model-0001",
        guildName: "guild-0001",
        userId: "user-0001"
    ).IgnoreUser(
    );
    var future = domain.Model();
    yield return future;
    var item = future.Result;
    const auto Domain = Gs2->Guild->Namespace(
        "namespace-0001" // namespaceName
    )->Guild(
        "guild-model-0001", // guildModelName
        "guild-0001", // guildName
        "user-0001" // userId
    )->IgnoreUser(
    );
    
    // イベントハンドリングを開始
    const auto CallbackId = Domain->Subscribe(
        [](TSharedPtr<Gs2::Guild::Model::FIgnoreUser> value) {
            // 値が変化した時に呼び出される
            // value には変更後の値が渡ってくる
        }
    );

    // イベントハンドリングを停止
    Domain->Unsubscribe(CallbackId);

listIgnoreUsers

参加拒否しているユーザーの一覧を取得

Request

必須デフォルト値の制限説明
namespaceNamestring~ 128文字ネームスペース名
guildModelNamestring~ 128文字ギルドモデル名
accessTokenstring~ 128文字ギルド名
pageTokenstring~ 1024文字データの取得を開始する位置を指定するトークン
limitint301 ~ 1000データの取得件数

Result

説明
itemsList<EzIgnoreUser>参加を拒否するユーザーIDリスト
nextPageTokenstringリストの続きを取得するためのページトークン

実装例

    var domain = gs2.Guild.Namespace(
        namespaceName: "namespace-0001"
    ).Guild(
        guildModelName: "guild-model-0001",
        guildName: "guild-0001",
        userId: null
    );
    var items = await domain.IgnoreUsersAsync(
    ).ToListAsync();
    var domain = gs2.Guild.Namespace(
        namespaceName: "namespace-0001"
    ).Guild(
        guildModelName: "guild-model-0001",
        guildName: "guild-0001",
        userId: null
    );
    var it = domain.IgnoreUsers(
    );
    List<EzIgnoreUser> items = new List<EzIgnoreUser>();
    while (it.HasNext())
    {
        yield return it.Next();
        if (it.Error != null)
        {
            onError.Invoke(it.Error, null);
            break;
        }
        if (it.Current != null)
        {
            items.Add(it.Current);
        }
        else
        {
            break;
        }
    }
    const auto Domain = Gs2->Guild->Namespace(
        "namespace-0001" // namespaceName
    )->Guild(
        "guild-model-0001", // guildModelName
        "guild-0001", // guildName
        nullptr // userId
    );
    const auto It = Domain->IgnoreUsers(
    );
    TArray<Gs2::UE5::Guild::Model::FEzIgnoreUserPtr> Result;
    for (auto Item : *It)
    {
        if (Item.IsError())
        {
            return false;
        }
        Result.Add(Item.Current());
    }
値の変更イベントハンドリング
    var domain = gs2.Guild.Namespace(
        namespaceName: "namespace-0001"
    ).Guild(
        guildModelName: "guild-model-0001",
        guildName: "guild-0001",
        userId: null
    );
    
    // イベントハンドリングを開始
    var callbackId = domain.SubscribeIgnoreUsers(
        () => {
            // リストの要素が変化した時に呼び出される
        }
    );

    // イベントハンドリングを停止
    domain.UnsubscribeIgnoreUsers(callbackId);
    var domain = gs2.Guild.Namespace(
        namespaceName: "namespace-0001"
    ).Guild(
        guildModelName: "guild-model-0001",
        guildName: "guild-0001",
        userId: null
    );
    var it = domain.IgnoreUsers(
    );
    List<EzIgnoreUser> items = new List<EzIgnoreUser>();
    while (it.HasNext())
    {
        yield return it.Next();
        if (it.Error != null)
        {
            onError.Invoke(it.Error, null);
            break;
        }
        if (it.Current != null)
        {
            items.Add(it.Current);
        }
        else
        {
            break;
        }
    }
    const auto Domain = Gs2->Guild->Namespace(
        "namespace-0001" // namespaceName
    )->Guild(
        "guild-model-0001", // guildModelName
        "guild-0001", // guildName
        nullptr // userId
    );
    
    // イベントハンドリングを開始
    const auto CallbackId = Domain->SubscribeIgnoreUsers(
        []() {
            // リストの要素が変化した時に呼び出される
        }
    );

    // イベントハンドリングを停止
    Domain->UnsubscribeIgnoreUsers(CallbackId);

getLastGuildMasterActivity

最後にギルドマスターがアクティビティを行った日時を取得

Request

必須デフォルト値の制限説明
namespaceNamestring~ 128文字ネームスペース名
guildModelNamestring~ 128文字ギルドモデル名
accessTokenstring~ 128文字ギルド名

Result

説明
itemEzLastGuildMasterActivity参加を拒否するユーザーID
guildEzGuildギルド

実装例

    var domain = gs2.Guild.Namespace(
        namespaceName: "namespace-0001"
    ).Guild(
        guildModelName: "guild-model-0001",
        guildName: "guild-0001",
        userId: null
    ).LastGuildMasterActivity(
    );
    var item = await domain.ModelAsync();
    var domain = gs2.Guild.Namespace(
        namespaceName: "namespace-0001"
    ).Guild(
        guildModelName: "guild-model-0001",
        guildName: "guild-0001",
        userId: null
    ).LastGuildMasterActivity(
    );
    var future = domain.Model();
    yield return future;
    var item = future.Result;
    const auto Domain = Gs2->Guild->Namespace(
        "namespace-0001" // namespaceName
    )->Guild(
        "guild-model-0001", // guildModelName
        "guild-0001", // guildName
        nullptr // userId
    )->LastGuildMasterActivity(
    );
    const auto Future = Domain->Model();
    Future->StartSynchronousTask();
    if (Future->GetTask().IsError())
    {
        return false;
    }
値の変更イベントハンドリング
    var domain = gs2.Guild.Namespace(
        namespaceName: "namespace-0001"
    ).Guild(
        guildModelName: "guild-model-0001",
        guildName: "guild-0001",
        userId: null
    ).LastGuildMasterActivity(
    );
    
    // イベントハンドリングを開始
    var callbackId = domain.Subscribe(
        value => {
            // 値が変化した時に呼び出される
            // value には変更後の値が渡ってくる
        }
    );

    // イベントハンドリングを停止
    domain.Unsubscribe(callbackId);
    var domain = gs2.Guild.Namespace(
        namespaceName: "namespace-0001"
    ).Guild(
        guildModelName: "guild-model-0001",
        guildName: "guild-0001",
        userId: null
    ).LastGuildMasterActivity(
    );
    var future = domain.Model();
    yield return future;
    var item = future.Result;
    const auto Domain = Gs2->Guild->Namespace(
        "namespace-0001" // namespaceName
    )->Guild(
        "guild-model-0001", // guildModelName
        "guild-0001", // guildName
        nullptr // userId
    )->LastGuildMasterActivity(
    );
    
    // イベントハンドリングを開始
    const auto CallbackId = Domain->Subscribe(
        [](TSharedPtr<Gs2::Guild::Model::FLastGuildMasterActivity> value) {
            // 値が変化した時に呼び出される
            // value には変更後の値が渡ってくる
        }
    );

    // イベントハンドリングを停止
    Domain->Unsubscribe(CallbackId);

promoteSeniorMember

ギルドマスターが一定期間ログインしていない場合、最も古参のギルドメンバーをギルドマスターに昇格

Request

必須デフォルト値の制限説明
namespaceNamestring~ 128文字ネームスペース名
guildModelNamestring~ 128文字ギルドモデル名
accessTokenstring~ 128文字ギルド名

Result

説明
itemEzLastGuildMasterActivity参加を拒否するユーザーID
guildEzGuildギルド

実装例

    var domain = gs2.Guild.Namespace(
        namespaceName: "namespace-0001"
    ).Guild(
        guildModelName: "guild-model-0001",
        guildName: "guild-0001",
        userId: null
    );
    var result = await domain.PromoteSeniorMemberAsync(
        accessToken: 
    );
    var item = await result.ModelAsync();
    var domain = gs2.Guild.Namespace(
        namespaceName: "namespace-0001"
    ).Guild(
        guildModelName: "guild-model-0001",
        guildName: "guild-0001",
        userId: null
    );
    var future = domain.PromoteSeniorMemberFuture(
        accessToken: 
    );
    yield return future;
    if (future.Error != null)
    {
        onError.Invoke(future.Error, null);
        yield break;
    }
    var future2 = future.Result.Model();
    yield return future2;
    if (future2.Error != null)
    {
        onError.Invoke(future2.Error, null);
        yield break;
    }
    var result = future2.Result;
    const auto Domain = Gs2->Guild->Namespace(
        "namespace-0001" // namespaceName
    )->Guild(
        "guild-model-0001", // guildModelName
        "guild-0001", // guildName
        nullptr // userId
    );
    const auto Future = Domain->PromoteSeniorMember(
         // accessToken
    );
    Future->StartSynchronousTask();
    if (Future->GetTask().IsError())
    {
        return false;
    }

    // obtain changed values / result values
    const auto Future2 = Future->GetTask().Result()->Model();
    Future2->StartSynchronousTask();
    if (Future2->GetTask().IsError())
    {
        return Future2->GetTask().Error();
    }
    const auto Result = Future2->GetTask().Result();

イベントハンドラ

OnReceiveRequestNotification

メンバーリクエストを受信したときに使用する通知

名前説明
namespaceNamestringネームスペース名
guildModelNamestringギルドモデル名
guildNamestringギルド名
fromUserIdstringユーザーID

実装例

    gs2.Guild.OnReceiveRequestNotification += notification =>
    {
        var namespaceName = notification.NamespaceName;
        var guildModelName = notification.GuildModelName;
        var guildName = notification.GuildName;
        var fromUserId = notification.FromUserId;
    };
    gs2.Guild.OnReceiveRequestNotification += notification =>
    {
        var namespaceName = notification.NamespaceName;
        var guildModelName = notification.GuildModelName;
        var guildName = notification.GuildName;
        var fromUserId = notification.FromUserId;
    };
    Gs2->Guild->OnReceiveRequestNotification().AddLambda([](const auto Notification)
    {
        const auto NamespaceName = Notification->NamespaceNameValue;
        const auto GuildModelName = Notification->GuildModelNameValue;
        const auto GuildName = Notification->GuildNameValue;
        const auto FromUserId = Notification->FromUserIdValue;
    });

OnRemoveRequestNotification

メンバーリクエストが削除されたときに使用する通知

名前説明
namespaceNamestringネームスペース名
guildModelNamestringギルドモデル名
guildNamestringギルド名
fromUserIdstringユーザーID

実装例

    gs2.Guild.OnRemoveRequestNotification += notification =>
    {
        var namespaceName = notification.NamespaceName;
        var guildModelName = notification.GuildModelName;
        var guildName = notification.GuildName;
        var fromUserId = notification.FromUserId;
    };
    gs2.Guild.OnRemoveRequestNotification += notification =>
    {
        var namespaceName = notification.NamespaceName;
        var guildModelName = notification.GuildModelName;
        var guildName = notification.GuildName;
        var fromUserId = notification.FromUserId;
    };
    Gs2->Guild->OnRemoveRequestNotification().AddLambda([](const auto Notification)
    {
        const auto NamespaceName = Notification->NamespaceNameValue;
        const auto GuildModelName = Notification->GuildModelNameValue;
        const auto GuildName = Notification->GuildNameValue;
        const auto FromUserId = Notification->FromUserIdValue;
    });

OnChangeNotification

ギルド情報が更新されたときに発行される通知

名前説明
namespaceNamestringネームスペース名
guildModelNamestringギルドモデル名
guildNamestringギルド名

実装例

    gs2.Guild.OnChangeNotification += notification =>
    {
        var namespaceName = notification.NamespaceName;
        var guildModelName = notification.GuildModelName;
        var guildName = notification.GuildName;
    };
    gs2.Guild.OnChangeNotification += notification =>
    {
        var namespaceName = notification.NamespaceName;
        var guildModelName = notification.GuildModelName;
        var guildName = notification.GuildName;
    };
    Gs2->Guild->OnChangeNotification().AddLambda([](const auto Notification)
    {
        const auto NamespaceName = Notification->NamespaceNameValue;
        const auto GuildModelName = Notification->GuildModelNameValue;
        const auto GuildName = Notification->GuildNameValue;
    });

OnJoinNotification

ギルドメンバーが追加されたときに発行される通知

名前説明
namespaceNamestringネームスペース名
guildModelNamestringギルドモデル名
guildNamestringギルド名
joinedUserIdstringユーザーID

実装例

    gs2.Guild.OnJoinNotification += notification =>
    {
        var namespaceName = notification.NamespaceName;
        var guildModelName = notification.GuildModelName;
        var guildName = notification.GuildName;
        var joinedUserId = notification.JoinedUserId;
    };
    gs2.Guild.OnJoinNotification += notification =>
    {
        var namespaceName = notification.NamespaceName;
        var guildModelName = notification.GuildModelName;
        var guildName = notification.GuildName;
        var joinedUserId = notification.JoinedUserId;
    };
    Gs2->Guild->OnJoinNotification().AddLambda([](const auto Notification)
    {
        const auto NamespaceName = Notification->NamespaceNameValue;
        const auto GuildModelName = Notification->GuildModelNameValue;
        const auto GuildName = Notification->GuildNameValue;
        const auto JoinedUserId = Notification->JoinedUserIdValue;
    });

OnLeaveNotification

ギルドメンバーが除籍されたときに発行される通知

名前説明
namespaceNamestringネームスペース名
guildModelNamestringギルドモデル名
guildNamestringギルド名
leavedUserIdstringユーザーID

実装例

    gs2.Guild.OnLeaveNotification += notification =>
    {
        var namespaceName = notification.NamespaceName;
        var guildModelName = notification.GuildModelName;
        var guildName = notification.GuildName;
        var leavedUserId = notification.LeavedUserId;
    };
    gs2.Guild.OnLeaveNotification += notification =>
    {
        var namespaceName = notification.NamespaceName;
        var guildModelName = notification.GuildModelName;
        var guildName = notification.GuildName;
        var leavedUserId = notification.LeavedUserId;
    };
    Gs2->Guild->OnLeaveNotification().AddLambda([](const auto Notification)
    {
        const auto NamespaceName = Notification->NamespaceNameValue;
        const auto GuildModelName = Notification->GuildModelNameValue;
        const auto GuildName = Notification->GuildNameValue;
        const auto LeavedUserId = Notification->LeavedUserIdValue;
    });

OnChangeMemberNotification

メンバーの情報が更新されたときに発行される通知

名前説明
namespaceNamestringネームスペース名
guildModelNamestringギルドモデル名
guildNamestringギルド名
changedUserIdstringユーザーID

実装例

    gs2.Guild.OnChangeMemberNotification += notification =>
    {
        var namespaceName = notification.NamespaceName;
        var guildModelName = notification.GuildModelName;
        var guildName = notification.GuildName;
        var changedUserId = notification.ChangedUserId;
    };
    gs2.Guild.OnChangeMemberNotification += notification =>
    {
        var namespaceName = notification.NamespaceName;
        var guildModelName = notification.GuildModelName;
        var guildName = notification.GuildName;
        var changedUserId = notification.ChangedUserId;
    };
    Gs2->Guild->OnChangeMemberNotification().AddLambda([](const auto Notification)
    {
        const auto NamespaceName = Notification->NamespaceNameValue;
        const auto GuildModelName = Notification->GuildModelNameValue;
        const auto GuildName = Notification->GuildNameValue;
        const auto ChangedUserId = Notification->ChangedUserIdValue;
    });