// Copyright Epic Games, Inc. All Rights Reserved.
// This file is automatically generated. Changes to this file may be overwritten.
namespace Epic.OnlineServices.Lobby
{
public sealed partial class LobbyModification : Handle
{
public LobbyModification()
{
}
public LobbyModification(System.IntPtr innerHandle) : base(innerHandle)
{
}
///
/// The most recent version of the API.
///
public const int LobbymodificationAddattributeApiLatest = 1;
///
/// The most recent version of the API.
///
public const int LobbymodificationAddmemberattributeApiLatest = 1;
///
/// Maximum length of the name of the attribute associated with the lobby
///
public const int LobbymodificationMaxAttributeLength = 64;
///
/// Maximum number of attributes allowed on the lobby
///
public const int LobbymodificationMaxAttributes = 64;
///
/// The most recent version of the API.
///
public const int LobbymodificationRemoveattributeApiLatest = 1;
///
/// The most recent version of the API.
///
public const int LobbymodificationRemovememberattributeApiLatest = 1;
///
/// The most recent version of the API.
///
public const int LobbymodificationSetbucketidApiLatest = 1;
///
/// The most recent version of the API.
///
public const int LobbymodificationSetinvitesallowedApiLatest = 1;
///
/// The most recent version of the API.
///
public const int LobbymodificationSetmaxmembersApiLatest = 1;
///
/// The most recent version of the API.
///
public const int LobbymodificationSetpermissionlevelApiLatest = 1;
///
/// Associate an attribute with this lobby
/// An attribute is something may be public or private with the lobby.
/// If public, it can be queried for in a search, otherwise the data remains known only to lobby members
///
/// Options to set the attribute and its visibility state
///
/// if setting this parameter was successful
/// if the attribute is missing information or otherwise invalid
/// if the API version passed in is incorrect
///
public Result AddAttribute(ref LobbyModificationAddAttributeOptions options)
{
LobbyModificationAddAttributeOptionsInternal optionsInternal = new LobbyModificationAddAttributeOptionsInternal();
optionsInternal.Set(ref options);
var funcResult = Bindings.EOS_LobbyModification_AddAttribute(InnerHandle, ref optionsInternal);
Helper.Dispose(ref optionsInternal);
return funcResult;
}
///
/// Associate an attribute with a member of the lobby
/// Lobby member data is always private to the lobby
///
/// Options to set the attribute and its visibility state
///
/// if setting this parameter was successful
/// if the attribute is missing information or otherwise invalid
/// if the API version passed in is incorrect
///
public Result AddMemberAttribute(ref LobbyModificationAddMemberAttributeOptions options)
{
LobbyModificationAddMemberAttributeOptionsInternal optionsInternal = new LobbyModificationAddMemberAttributeOptionsInternal();
optionsInternal.Set(ref options);
var funcResult = Bindings.EOS_LobbyModification_AddMemberAttribute(InnerHandle, ref optionsInternal);
Helper.Dispose(ref optionsInternal);
return funcResult;
}
public void Release()
{
Bindings.EOS_LobbyModification_Release(InnerHandle);
}
///
/// Remove an attribute associated with the lobby
///
/// Specify the key of the attribute to remove
///
/// if removing this parameter was successful
/// if the key is null or empty
/// if the API version passed in is incorrect
///
public Result RemoveAttribute(ref LobbyModificationRemoveAttributeOptions options)
{
LobbyModificationRemoveAttributeOptionsInternal optionsInternal = new LobbyModificationRemoveAttributeOptionsInternal();
optionsInternal.Set(ref options);
var funcResult = Bindings.EOS_LobbyModification_RemoveAttribute(InnerHandle, ref optionsInternal);
Helper.Dispose(ref optionsInternal);
return funcResult;
}
///
/// Remove an attribute associated with of member of the lobby
///
/// Specify the key of the member attribute to remove
///
/// if removing this parameter was successful
/// if the key is null or empty
/// if the API version passed in is incorrect
///
public Result RemoveMemberAttribute(ref LobbyModificationRemoveMemberAttributeOptions options)
{
LobbyModificationRemoveMemberAttributeOptionsInternal optionsInternal = new LobbyModificationRemoveMemberAttributeOptionsInternal();
optionsInternal.Set(ref options);
var funcResult = Bindings.EOS_LobbyModification_RemoveMemberAttribute(InnerHandle, ref optionsInternal);
Helper.Dispose(ref optionsInternal);
return funcResult;
}
///
/// Set the bucket ID associated with this lobby.
/// Values such as region, game mode, etc can be combined here depending on game need.
/// Setting this is strongly recommended to improve search performance.
///
/// Options associated with the bucket ID of the lobby
///
/// if setting this parameter was successful
/// if the bucket ID is invalid or null
/// if the API version passed in is incorrect
///
public Result SetBucketId(ref LobbyModificationSetBucketIdOptions options)
{
LobbyModificationSetBucketIdOptionsInternal optionsInternal = new LobbyModificationSetBucketIdOptionsInternal();
optionsInternal.Set(ref options);
var funcResult = Bindings.EOS_LobbyModification_SetBucketId(InnerHandle, ref optionsInternal);
Helper.Dispose(ref optionsInternal);
return funcResult;
}
///
/// Allows enabling or disabling invites for this lobby.
/// The lobby will also need to have `bPresenceEnabled` true.
///
/// Options associated with invites allowed flag for this lobby.
///
/// if setting this parameter was successful
/// if the API version passed in is incorrect
///
public Result SetInvitesAllowed(ref LobbyModificationSetInvitesAllowedOptions options)
{
LobbyModificationSetInvitesAllowedOptionsInternal optionsInternal = new LobbyModificationSetInvitesAllowedOptionsInternal();
optionsInternal.Set(ref options);
var funcResult = Bindings.EOS_LobbyModification_SetInvitesAllowed(InnerHandle, ref optionsInternal);
Helper.Dispose(ref optionsInternal);
return funcResult;
}
///
/// Set the maximum number of members allowed in this lobby.
/// When updating the lobby, it is not possible to reduce this number below the current number of existing members
///
/// Options associated with max number of members in this lobby
///
/// if setting this parameter was successful
/// if the API version passed in is incorrect
///
public Result SetMaxMembers(ref LobbyModificationSetMaxMembersOptions options)
{
LobbyModificationSetMaxMembersOptionsInternal optionsInternal = new LobbyModificationSetMaxMembersOptionsInternal();
optionsInternal.Set(ref options);
var funcResult = Bindings.EOS_LobbyModification_SetMaxMembers(InnerHandle, ref optionsInternal);
Helper.Dispose(ref optionsInternal);
return funcResult;
}
///
/// Set the permissions associated with this lobby.
/// The permissions range from "public" to "invite only" and are described by
///
/// Options associated with the permission level of the lobby
///
/// if setting this parameter was successful
/// if the API version passed in is incorrect
///
public Result SetPermissionLevel(ref LobbyModificationSetPermissionLevelOptions options)
{
LobbyModificationSetPermissionLevelOptionsInternal optionsInternal = new LobbyModificationSetPermissionLevelOptionsInternal();
optionsInternal.Set(ref options);
var funcResult = Bindings.EOS_LobbyModification_SetPermissionLevel(InnerHandle, ref optionsInternal);
Helper.Dispose(ref optionsInternal);
return funcResult;
}
}
}