pvp leave queue implemented
This commit is contained in:
@@ -60,6 +60,7 @@ pub enum Event {
|
||||
Invite(Id),
|
||||
Join(Id, String),
|
||||
Joined(Id),
|
||||
Leave(Id),
|
||||
|
||||
Chat(Id, Uuid, String),
|
||||
ChatClear(Id, Uuid),
|
||||
@@ -249,6 +250,7 @@ impl Events {
|
||||
// or flag the requester as pvp ready
|
||||
let requester = self.clients.get_mut(&id).unwrap();
|
||||
requester.pvp = true;
|
||||
requester.tx.send(RpcMessage::QueueJoined(()))?;
|
||||
info!("joined game queue id={:?} account={:?}", requester.id, requester.account);
|
||||
return Ok(());
|
||||
},
|
||||
@@ -305,6 +307,18 @@ impl Events {
|
||||
return Ok(());
|
||||
},
|
||||
|
||||
Event::Leave(id) => {
|
||||
// check whether request is valid
|
||||
let c = self.clients.get_mut(&id)
|
||||
.ok_or(format_err!("connection not found id={:?}", id))?;
|
||||
|
||||
c.pvp = false;
|
||||
c.tx.send(RpcMessage::QueueLeft(()))?;
|
||||
info!("left game queue id={:?} account={:?}", c.id, c.account);
|
||||
return Ok(());
|
||||
},
|
||||
|
||||
|
||||
Event::Chat(id, instance, msg) => {
|
||||
// set the chat state of this connection
|
||||
{
|
||||
|
||||
+6
-1
@@ -63,7 +63,7 @@ pub enum RpcMessage {
|
||||
|
||||
QueueRequested(()),
|
||||
QueueJoined(()),
|
||||
QueueCancelled(()),
|
||||
QueueLeft(()),
|
||||
QueueFound(()),
|
||||
|
||||
InviteRequested(()),
|
||||
@@ -105,6 +105,7 @@ pub enum RpcRequest {
|
||||
InstanceInvite {},
|
||||
InstanceJoin { code: String },
|
||||
InstanceQueue {},
|
||||
InstanceLeave {},
|
||||
InstancePractice {},
|
||||
InstanceAbandon { instance_id: Uuid },
|
||||
InstanceReady { instance_id: Uuid },
|
||||
@@ -168,6 +169,10 @@ impl Connection {
|
||||
self.events.send(Event::Join(self.id, code))?;
|
||||
Ok(RpcMessage::Joining(()))
|
||||
},
|
||||
RpcRequest::InstanceLeave {} => {
|
||||
self.events.send(Event::Leave(self.id))?;
|
||||
Ok(RpcMessage::Processing(()))
|
||||
},
|
||||
|
||||
RpcRequest::InstanceChat { instance_id, index } => {
|
||||
if !account.subscribed {
|
||||
|
||||
Reference in New Issue
Block a user