Fix encoding wrong
This commit is contained in:
parent
867da4fd31
commit
18590ff075
|
@ -853,7 +853,7 @@ impl WebSocketEvent for GatewayHeartbeatAck {}
|
||||||
#[derive(Debug, Default, Deserialize, Serialize)]
|
#[derive(Debug, Default, Deserialize, Serialize)]
|
||||||
pub struct GatewayPayload {
|
pub struct GatewayPayload {
|
||||||
pub op: u8,
|
pub op: u8,
|
||||||
pub d: Option<String>,
|
pub d: Option<serde_json::Value>,
|
||||||
pub s: Option<u64>,
|
pub s: Option<u64>,
|
||||||
pub t: Option<String>,
|
pub t: Option<String>,
|
||||||
}
|
}
|
||||||
|
|
|
@ -68,7 +68,7 @@ impl<'a> Gateway<'a> {
|
||||||
// See https://discord.com/developers/docs/topics/gateway-events#receive-events
|
// See https://discord.com/developers/docs/topics/gateway-events#receive-events
|
||||||
match gateway_payload_t.as_str() {
|
match gateway_payload_t.as_str() {
|
||||||
"READY" => {
|
"READY" => {
|
||||||
let data: GatewayReady = serde_json::from_str(gateway_payload.d.unwrap().as_str()).unwrap();
|
let data: GatewayReady = serde_json::from_value(gateway_payload.d.unwrap()).unwrap();
|
||||||
}
|
}
|
||||||
"APPLICATION_COMMAND_PERMISSIONS_UPDATE" => {}
|
"APPLICATION_COMMAND_PERMISSIONS_UPDATE" => {}
|
||||||
"AUTO_MODERATION_RULE_CREATE" => {}
|
"AUTO_MODERATION_RULE_CREATE" => {}
|
||||||
|
@ -113,46 +113,46 @@ impl<'a> Gateway<'a> {
|
||||||
"INVITE_CREATE" => {}
|
"INVITE_CREATE" => {}
|
||||||
"INVITE_DELETE" => {}
|
"INVITE_DELETE" => {}
|
||||||
"MESSAGE_CREATE" => {
|
"MESSAGE_CREATE" => {
|
||||||
let new_data: MessageCreate = serde_json::from_str(gateway_payload.d.unwrap().as_str()).unwrap();
|
let new_data: MessageCreate = serde_json::from_value(gateway_payload.d.unwrap()).unwrap();
|
||||||
self.events.message.create.update_data(new_data);
|
self.events.message.create.update_data(new_data);
|
||||||
}
|
}
|
||||||
"MESSAGE_UPDATE" => {
|
"MESSAGE_UPDATE" => {
|
||||||
let new_data: MessageUpdate = serde_json::from_str(gateway_payload.d.unwrap().as_str()).unwrap();
|
let new_data: MessageUpdate = serde_json::from_value(gateway_payload.d.unwrap()).unwrap();
|
||||||
self.events.message.update.update_data(new_data);
|
self.events.message.update.update_data(new_data);
|
||||||
}
|
}
|
||||||
"MESSAGE_DELETE" => {
|
"MESSAGE_DELETE" => {
|
||||||
let new_data: MessageDelete = serde_json::from_str(gateway_payload.d.unwrap().as_str()).unwrap();
|
let new_data: MessageDelete = serde_json::from_value(gateway_payload.d.unwrap()).unwrap();
|
||||||
self.events.message.delete.update_data(new_data);
|
self.events.message.delete.update_data(new_data);
|
||||||
}
|
}
|
||||||
"MESSAGE_DELETE_BULK" => {
|
"MESSAGE_DELETE_BULK" => {
|
||||||
let new_data: MessageDeleteBulk = serde_json::from_str(gateway_payload.d.unwrap().as_str()).unwrap();
|
let new_data: MessageDeleteBulk = serde_json::from_value(gateway_payload.d.unwrap()).unwrap();
|
||||||
self.events.message.delete_bulk.update_data(new_data);
|
self.events.message.delete_bulk.update_data(new_data);
|
||||||
}
|
}
|
||||||
"MESSAGE_REACTION_ADD" => {
|
"MESSAGE_REACTION_ADD" => {
|
||||||
let new_data: MessageReactionAdd = serde_json::from_str(gateway_payload.d.unwrap().as_str()).unwrap();
|
let new_data: MessageReactionAdd = serde_json::from_value(gateway_payload.d.unwrap()).unwrap();
|
||||||
self.events.message.reaction_add.update_data(new_data);
|
self.events.message.reaction_add.update_data(new_data);
|
||||||
}
|
}
|
||||||
"MESSAGE_REACTION_REMOVE" => {
|
"MESSAGE_REACTION_REMOVE" => {
|
||||||
let new_data: MessageReactionRemove = serde_json::from_str(gateway_payload.d.unwrap().as_str()).unwrap();
|
let new_data: MessageReactionRemove = serde_json::from_value(gateway_payload.d.unwrap()).unwrap();
|
||||||
self.events.message.reaction_remove.update_data(new_data);
|
self.events.message.reaction_remove.update_data(new_data);
|
||||||
}
|
}
|
||||||
"MESSAGE_REACTION_REMOVE_ALL" => {
|
"MESSAGE_REACTION_REMOVE_ALL" => {
|
||||||
let new_data: MessageReactionRemoveAll = serde_json::from_str(gateway_payload.d.unwrap().as_str()).unwrap();
|
let new_data: MessageReactionRemoveAll = serde_json::from_value(gateway_payload.d.unwrap()).unwrap();
|
||||||
self.events.message.reaction_remove_all.update_data(new_data);
|
self.events.message.reaction_remove_all.update_data(new_data);
|
||||||
}
|
}
|
||||||
"MESSAGE_REACTION_REMOVE_EMOJI" => {
|
"MESSAGE_REACTION_REMOVE_EMOJI" => {
|
||||||
let new_data: MessageReactionRemoveEmoji= serde_json::from_str(gateway_payload.d.unwrap().as_str()).unwrap();
|
let new_data: MessageReactionRemoveEmoji= serde_json::from_value(gateway_payload.d.unwrap()).unwrap();
|
||||||
self.events.message.reaction_remove_emoji.update_data(new_data);
|
self.events.message.reaction_remove_emoji.update_data(new_data);
|
||||||
}
|
}
|
||||||
"PRESENCE_UPDATE" => {
|
"PRESENCE_UPDATE" => {
|
||||||
let new_data: PresenceUpdate = serde_json::from_str(gateway_payload.d.unwrap().as_str()).unwrap();
|
let new_data: PresenceUpdate = serde_json::from_value(gateway_payload.d.unwrap()).unwrap();
|
||||||
self.events.user.presence_update.update_data(new_data);
|
self.events.user.presence_update.update_data(new_data);
|
||||||
}
|
}
|
||||||
"STAGE_INSTANCE_CREATE" => {}
|
"STAGE_INSTANCE_CREATE" => {}
|
||||||
"STAGE_INSTANCE_UPDATE" => {}
|
"STAGE_INSTANCE_UPDATE" => {}
|
||||||
"STAGE_INSTANCE_DELETE" => {}
|
"STAGE_INSTANCE_DELETE" => {}
|
||||||
"TYPING_START" => {
|
"TYPING_START" => {
|
||||||
let new_data: TypingStartEvent = serde_json::from_str(gateway_payload.d.unwrap().as_str()).unwrap();
|
let new_data: TypingStartEvent = serde_json::from_value(gateway_payload.d.unwrap()).unwrap();
|
||||||
self.events.user.typing_start_event.update_data(new_data);
|
self.events.user.typing_start_event.update_data(new_data);
|
||||||
}
|
}
|
||||||
"USER_UPDATE" => {}
|
"USER_UPDATE" => {}
|
||||||
|
@ -172,7 +172,7 @@ impl<'a> Gateway<'a> {
|
||||||
// Hello
|
// Hello
|
||||||
// Starts our heartbeat
|
// Starts our heartbeat
|
||||||
10 => {
|
10 => {
|
||||||
let gateway_hello: HelloData = serde_json::from_str(gateway_payload.d.unwrap().as_ref()).unwrap();
|
let gateway_hello: HelloData = serde_json::from_value(gateway_payload.d.unwrap()).unwrap();
|
||||||
self.heartbeat_handler = Some(HeartbeatHandler::new(gateway_hello.heartbeat_interval, self.websocket.tx.clone()));
|
self.heartbeat_handler = Some(HeartbeatHandler::new(gateway_hello.heartbeat_interval, self.websocket.tx.clone()));
|
||||||
}
|
}
|
||||||
// Heartbeat ACK
|
// Heartbeat ACK
|
||||||
|
@ -194,9 +194,9 @@ impl<'a> Gateway<'a> {
|
||||||
}
|
}
|
||||||
|
|
||||||
/// Sends json to the gateway with an opcode
|
/// Sends json to the gateway with an opcode
|
||||||
async fn send_json_event(&self, op: u8, to_send: String) {
|
async fn send_json_event(&self, op: u8, to_send: serde_json::Value) {
|
||||||
|
|
||||||
let gateway_payload: GatewayPayload = GatewayPayload { op, d: Some(to_send), s: None, t: None };
|
let gateway_payload = GatewayPayload { op, d: Some(to_send), s: None, t: None };
|
||||||
|
|
||||||
let payload_json = serde_json::to_string(&gateway_payload).unwrap();
|
let payload_json = serde_json::to_string(&gateway_payload).unwrap();
|
||||||
|
|
||||||
|
@ -210,25 +210,25 @@ impl<'a> Gateway<'a> {
|
||||||
/// Sends an identify event to the gateway
|
/// Sends an identify event to the gateway
|
||||||
pub async fn send_identify(&self, to_send: GatewayIdentifyPayload) {
|
pub async fn send_identify(&self, to_send: GatewayIdentifyPayload) {
|
||||||
|
|
||||||
let to_send_json = serde_json::to_string(&to_send).unwrap();
|
let to_send_value = serde_json::to_value(&to_send).unwrap();
|
||||||
|
|
||||||
self.send_json_event(2, to_send_json).await;
|
self.send_json_event(2, to_send_value).await;
|
||||||
}
|
}
|
||||||
|
|
||||||
/// Sends a resume event to the gateway
|
/// Sends a resume event to the gateway
|
||||||
pub async fn send_resume(&self, to_send: GatewayResume) {
|
pub async fn send_resume(&self, to_send: GatewayResume) {
|
||||||
|
|
||||||
let to_send_json = serde_json::to_string(&to_send).unwrap();
|
let to_send_value = serde_json::to_value(&to_send).unwrap();
|
||||||
|
|
||||||
self.send_json_event(6, to_send_json).await;
|
self.send_json_event(6, to_send_value).await;
|
||||||
}
|
}
|
||||||
|
|
||||||
/// Sends an update presence event to the gateway
|
/// Sends an update presence event to the gateway
|
||||||
pub async fn send_update_presence(&self, to_send: PresenceUpdate) {
|
pub async fn send_update_presence(&self, to_send: PresenceUpdate) {
|
||||||
|
|
||||||
let to_send_json = serde_json::to_string(&to_send).unwrap();
|
let to_send_value = serde_json::to_value(&to_send).unwrap();
|
||||||
|
|
||||||
self.send_json_event(3, to_send_json).await;
|
self.send_json_event(3, to_send_value).await;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue