Class UserRoster
A roster maintains a list of users in which both the owner of the list and the user being added need to approve. It tracks
a set of members (externally defined), a set of applicants, and a set of invitees.
This is used for membership requirements like residency, classrooms, and citizenship.
Inheritance
System.Object
UserRoster
Implements
System.ComponentModel.INotifyPropertyChanged
Assembly: Eco.Gameplay.dll
Syntax
public class UserRoster : Object, INotifyPropertyChanged, IThreadSafeSubscriptions, ISubscriptions<ThreadSafeSubscriptions>, ISubscriptions, IRoster, IHasClientControlledContainers, IController, IViewController, IHasUniversalID
Constructors
UserRoster()
Declaration
Properties
Applicants
Declaration
[ConfirmDelete]
public ControllerHashSet<User> Applicants { get; set; }
Property Value
ApplicantsAllowed
Declaration
public bool ApplicantsAllowed { get; set; }
Property Value
Type |
Description |
System.Boolean |
|
ControllerID
Declaration
public ref int ControllerID { get; }
Property Value
Type |
Description |
System.Int32 |
|
Declaration
public LocString ExtraInfo { get; set; }
Property Value
Invited
Declaration
[ConfirmDelete]
public ControllerHashSet<IAlias> Invited { get; set; }
Property Value
MemberAddedEvent
Declaration
public ThreadSafeAction<INetObject, object> MemberAddedEvent { get; }
Property Value
MemberCount
Declaration
public int MemberCount { get; }
Property Value
Type |
Description |
System.Int32 |
|
MemberRemovedEvent
Declaration
public ThreadSafeAction<INetObject, object> MemberRemovedEvent { get; }
Property Value
Members
Declaration
[ConfirmDelete]
public ControllerHashSet<User> Members { get; set; }
Property Value
MembersChangedEvent
Declaration
public ThreadSafeAction MembersChangedEvent { get; }
Property Value
Status
Declaration
public LocString Status { get; }
Property Value
Subscriptions
Declaration
public ref ThreadSafeSubscriptions Subscriptions { get; }
Property Value
Title
Declaration
public LocString Title { get; }
Property Value
Methods
AcceptInvitation(User)
Declaration
public void AcceptInvitation(User user)
Parameters
Type |
Name |
Description |
User |
user |
|
AddToRoster(User, User, Boolean, Boolean)
Declaration
public void AddToRoster(User userAdding, User userToAdd, bool sendNotice, bool forceAdd = false)
Parameters
Type |
Name |
Description |
User |
userAdding |
|
User |
userToAdd |
|
System.Boolean |
sendNotice |
|
System.Boolean |
forceAdd |
|
AdminAssign(Player)
Declaration
public Task AdminAssign(Player player)
Parameters
Type |
Name |
Description |
Player |
player |
|
Returns
Type |
Description |
System.Threading.Tasks.Task |
|
Apply(User)
Declaration
public void Apply(User user)
Parameters
Type |
Name |
Description |
User |
user |
|
Approve(User, User)
Declaration
public void Approve(User userApproving, User userApplicant)
Parameters
Type |
Name |
Description |
User |
userApproving |
|
User |
userApplicant |
|
CanAcceptInvitation(User)
Declaration
public bool CanAcceptInvitation(User user)
Parameters
Type |
Name |
Description |
User |
user |
|
Returns
Type |
Description |
System.Boolean |
|
CanAdminAssign(Player)
Declaration
public bool CanAdminAssign(Player player)
Parameters
Type |
Name |
Description |
Player |
player |
|
Returns
Type |
Description |
System.Boolean |
|
CanApply(User)
Declaration
public bool CanApply(User user)
Parameters
Type |
Name |
Description |
User |
user |
|
Returns
Type |
Description |
System.Boolean |
|
CanApprove(User)
Declaration
public bool CanApprove(User user)
Parameters
Type |
Name |
Description |
User |
user |
|
Returns
Type |
Description |
System.Boolean |
|
CanInvite(User)
Declaration
public bool CanInvite(User user)
Parameters
Type |
Name |
Description |
User |
user |
|
Returns
Type |
Description |
System.Boolean |
|
CanLeave(User)
Declaration
public bool CanLeave(User user)
Parameters
Type |
Name |
Description |
User |
user |
|
Returns
Type |
Description |
System.Boolean |
|
Finalize()
Declaration
protected override void Finalize()
ForceRemoveMember(User, UserRoster)
Declaration
public bool ForceRemoveMember(User user, UserRoster rosterToJoinUponLeaving = null)
Parameters
Type |
Name |
Description |
User |
user |
|
UserRoster |
rosterToJoinUponLeaving |
In case we want the user to join another roster before leaving this one.
|
Returns
Type |
Description |
System.Boolean |
|
Initialize(WorldObject)
Declaration
public void Initialize(WorldObject hostObject)
Parameters
Invite(User)
Declaration
public void Invite(User invitingUser)
Parameters
Type |
Name |
Description |
User |
invitingUser |
|
IsApplicant(User)
Declaration
public bool IsApplicant(User user)
Parameters
Type |
Name |
Description |
User |
user |
|
Returns
Type |
Description |
System.Boolean |
|
Leave(User, Boolean, UserRoster)
Declaration
public void Leave(User userLeaving, bool notify = true, UserRoster rosterToJoinUponLeaving = null)
Parameters
Type |
Name |
Description |
User |
userLeaving |
|
System.Boolean |
notify |
|
UserRoster |
rosterToJoinUponLeaving |
If we want the player to join another roster before actually leaving this one then we specifiy this param.
|
LeaveAndJoinAnotherRoster(User, Boolean)
This will make sure to check whether the player should join another roster upon leaving or not.
Declaration
public void LeaveAndJoinAnotherRoster(User userLeaving, bool notify = true)
Parameters
Type |
Name |
Description |
User |
userLeaving |
|
System.Boolean |
notify |
|
RejectApplication(User)
Declaration
public void RejectApplication(User userSelfCancelling)
Parameters
Type |
Name |
Description |
User |
userSelfCancelling |
|
RejectApplication(User, User)
Declaration
public void RejectApplication(User userApproving, User deniedUser)
Parameters
Type |
Name |
Description |
User |
userApproving |
|
User |
deniedUser |
|
RemoveApplicant(User)
Declaration
public bool RemoveApplicant(User user)
Parameters
Type |
Name |
Description |
User |
user |
|
Returns
Type |
Description |
System.Boolean |
|
RemoveInvited(User)
Declaration
public bool RemoveInvited(User user)
Parameters
Type |
Name |
Description |
User |
user |
|
Returns
Type |
Description |
System.Boolean |
|
SetApprover(IAlias)
Declaration
public void SetApprover(IAlias approver)
Parameters
Type |
Name |
Description |
IAlias |
approver |
|
SetDescriptions(LocString, LocString)
Updates the names of the memberships.
Declaration
public void SetDescriptions(LocString memberDesc, LocString memberDescPlural)
Parameters
SubscribeRosterChange(Action)
Declaration
public void SubscribeRosterChange(Action onChanged)
Parameters
Type |
Name |
Description |
System.Action |
onChanged |
|
TryInvite(User, IAlias, Boolean)
Declaration
public bool TryInvite(User userInviting, IAlias userInvited, bool notifyInviter = true)
Parameters
Type |
Name |
Description |
User |
userInviting |
|
IAlias |
userInvited |
|
System.Boolean |
notifyInviter |
|
Returns
Type |
Description |
System.Boolean |
|
Events
CanAcceptInviteCallback
Declaration
public event Func<User, Task<bool>> CanAcceptInviteCallback
Event Type
Type |
Description |
System.Func<User, System.Threading.Tasks.Task<System.Boolean>> |
|
CanApplyCallback
Declaration
public event Func<User, Task<bool>> CanApplyCallback
Event Type
Type |
Description |
System.Func<User, System.Threading.Tasks.Task<System.Boolean>> |
|
CanBeMember
Declaration
public event Func<User, Player, Result> CanBeMember
Event Type
CanLeaveCallback
Declaration
public event Func<User, Task<bool>> CanLeaveCallback
Event Type
Type |
Description |
System.Func<User, System.Threading.Tasks.Task<System.Boolean>> |
|
CheckAdminAssign
Declaration
public event Func<Player, IEnumerable<User>, Task<bool>> CheckAdminAssign
Event Type
Type |
Description |
System.Func<Player, System.Collections.Generic.IEnumerable<User>, System.Threading.Tasks.Task<System.Boolean>> |
|
PropertyChanged
Declaration
public event PropertyChangedEventHandler PropertyChanged
Event Type
Type |
Description |
System.ComponentModel.PropertyChangedEventHandler |
|
ShouldJoinUponLeaving
Declaration
public event Func<User, Task<UserRoster>> ShouldJoinUponLeaving
Event Type
Type |
Description |
System.Func<User, System.Threading.Tasks.Task<UserRoster>> |
|
Implements
System.ComponentModel.INotifyPropertyChanged
Extension Methods