Added eject from group

This commit is contained in:
hintswen
2018-10-28 20:32:32 +11:00
committed by Casper Warden
parent 4740b07e11
commit e52fb07720

View File

@@ -15,6 +15,7 @@ import {GroupMember} from '../GroupMember';
import {FilterResponse} from '../../enums/FilterResponse';
import * as LLSD from '@caspertech/llsd';
import {GroupInviteEvent} from '../..';
import {EjectGroupMemberRequestMessage} from '../messages/EjectGroupMemberRequest';
export class GroupCommands extends CommandsBase
{
@@ -291,4 +292,49 @@ export class GroupCommands extends CommandsBase
});
});
}
async ejectFromGroupBulk(groupID: UUID | string, sendTo: {
ejecteeID: UUID | string
}[]): Promise<void>
{
if (typeof groupID === 'string')
{
groupID = new UUID(groupID);
}
const msg: EjectGroupMemberRequestMessage = new EjectGroupMemberRequestMessage();
msg.AgentData = {
AgentID: this.agent.agentID,
SessionID: this.circuit.sessionID
};
msg.GroupData = {
GroupID: groupID
};
msg.EjectData = [];
sendTo.forEach((to) =>
{
if (typeof to.ejecteeID === 'string')
{
to.ejecteeID = new UUID(to.ejecteeID);
}
msg.EjectData.push({
EjecteeID: to.ejecteeID
});
});
this.circuit.sendMessage(msg, PacketFlags.Reliable);
const sequenceNo = this.circuit.sendMessage(msg, PacketFlags.Reliable);
return await this.circuit.waitForAck(sequenceNo, 10000);
}
async ejectFromGroup(groupID: UUID | string, ejecteeID: UUID | string): Promise<void>
{
const sendTo = [{
ejecteeID: ejecteeID
}];
return await this.ejectFromGroupBulk(groupID, sendTo);
}
}