From d014c80c56d645fb8acb4217c5bd14659a7091a1 Mon Sep 17 00:00:00 2001 From: czp3009 Date: Fri, 31 Aug 2018 15:59:19 +0800 Subject: [PATCH] =?UTF-8?q?=E6=96=B0=E5=A2=9E=20PK=5FINVITE=5FSWITCH=5FOPE?= =?UTF-8?q?N=20=E6=95=B0=E6=8D=AE=E5=8C=85?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- README.md | 17 +++++----- build.gradle | 2 +- .../PK_INVITE_SWITCH_OPEN.json | 4 +++ .../entity/PkInviteSwitchOpenEntity.java | 32 +++++++++++++++++++ .../event/PkInviteSwitchOpenPackageEvent.java | 10 ++++++ .../socket/handler/LiveClientHandler.java | 17 ++++++++-- 6 files changed, 70 insertions(+), 12 deletions(-) create mode 100644 record/bullet_screen_stream_json/PK_INVITE_SWITCH_OPEN.json create mode 100644 src/main/java/com/hiczp/bilibili/api/live/socket/entity/PkInviteSwitchOpenEntity.java create mode 100644 src/main/java/com/hiczp/bilibili/api/live/socket/event/PkInviteSwitchOpenPackageEvent.java diff --git a/README.md b/README.md index 50f5332..57a850f 100644 --- a/README.md +++ b/README.md @@ -338,17 +338,18 @@ API 文档 | LivePackageEvent | 收到 LIVE 数据包 | 开始直播 | | NoticeMsgPackageEvent | 收到 NOTICE_MSG 数据包 | 获得大奖的通知消息 | | PkAgainPackageEvent | 收到 PK_AGAIN 数据包 | 下面几个都是 PK 有关的事件 | -| PkClickAgainPackageEvent | 收到 PK_CLICK_AGAIN 数据包 | | -| PkEndPackageEvent | 收到 PK_END 数据包 | | +| PkClickAgainPackageEvent | 收到 PK_CLICK_AGAIN 数据包 | +| PkEndPackageEvent | 收到 PK_END 数据包 | | PkInviteFailPackageEvent | 收到 PK_INVITE_FAIL 数据包 | | PkInviteInitPackageEvent | 收到 PK_INVITE_INIT 数据包 | | PkInviteSwitchClosePackageEvent | 收到 PK_INVITE_SWITCH_CLOSE 数据包 | -| PkMatchPackageEvent | 收到 PK_MATCH 数据包 | | -| PkMicEndPackageEvent | 收到 PK_MIC_END 数据包 | | -| PkPrePackageEvent | 收到 PK_PRE 数据包 | | -| PkProcessPackageEvent | 收到 PK_PROCESS 数据包 | | -| PkSettlePackageEvent | 收到 PK_SETTLE 数据包 | | -| PkStartPackageEvent | 收到 PK_START 数据包 | | +| PkInviteSwitchOpenPackageEvent | 收到 PK_INVITE_SWITCH_OPEN 数据包 | +| PkMatchPackageEvent | 收到 PK_MATCH 数据包 | +| PkMicEndPackageEvent | 收到 PK_MIC_END 数据包 | +| PkPrePackageEvent | 收到 PK_PRE 数据包 | +| PkProcessPackageEvent | 收到 PK_PROCESS 数据包 | +| PkSettlePackageEvent | 收到 PK_SETTLE 数据包 | +| PkStartPackageEvent | 收到 PK_START 数据包 | | PreparingPackageEvent | 收到 PREPARING 数据包 | 停止直播 | | RaffleEndPackageEvent | 收到 RAFFLE_END 数据包 | 抽奖结束(小奖, 通常是不定期活动) | | RaffleStartPackageEvent | 收到 RAFFLE_START 数据包 | 抽奖开始(小奖) | diff --git a/build.gradle b/build.gradle index ca52210..8dc3c69 100644 --- a/build.gradle +++ b/build.gradle @@ -1,5 +1,5 @@ group = 'com.hiczp' -version = '0.0.21' +version = '0.0.22' description = 'Bilibili android client API library written in Java' apply plugin: 'idea' diff --git a/record/bullet_screen_stream_json/PK_INVITE_SWITCH_OPEN.json b/record/bullet_screen_stream_json/PK_INVITE_SWITCH_OPEN.json new file mode 100644 index 0000000..b9227c9 --- /dev/null +++ b/record/bullet_screen_stream_json/PK_INVITE_SWITCH_OPEN.json @@ -0,0 +1,4 @@ +{ + "cmd": "PK_INVITE_SWITCH_OPEN", + "roomid": 9615419 +} diff --git a/src/main/java/com/hiczp/bilibili/api/live/socket/entity/PkInviteSwitchOpenEntity.java b/src/main/java/com/hiczp/bilibili/api/live/socket/entity/PkInviteSwitchOpenEntity.java new file mode 100644 index 0000000..49b1806 --- /dev/null +++ b/src/main/java/com/hiczp/bilibili/api/live/socket/entity/PkInviteSwitchOpenEntity.java @@ -0,0 +1,32 @@ +package com.hiczp.bilibili.api.live.socket.entity; + +import com.google.gson.annotations.SerializedName; + +public class PkInviteSwitchOpenEntity implements DataEntity { + /** + * cmd : PK_INVITE_SWITCH_OPEN + * roomid : 9615419 + */ + + @SerializedName("cmd") + private String cmd; + @SerializedName("roomid") + private long roomId; + + @Override + public String getCmd() { + return cmd; + } + + public void setCmd(String cmd) { + this.cmd = cmd; + } + + public long getRoomId() { + return roomId; + } + + public void setRoomId(long roomId) { + this.roomId = roomId; + } +} diff --git a/src/main/java/com/hiczp/bilibili/api/live/socket/event/PkInviteSwitchOpenPackageEvent.java b/src/main/java/com/hiczp/bilibili/api/live/socket/event/PkInviteSwitchOpenPackageEvent.java new file mode 100644 index 0000000..b2db1aa --- /dev/null +++ b/src/main/java/com/hiczp/bilibili/api/live/socket/event/PkInviteSwitchOpenPackageEvent.java @@ -0,0 +1,10 @@ +package com.hiczp.bilibili.api.live.socket.event; + +import com.hiczp.bilibili.api.live.socket.LiveClient; +import com.hiczp.bilibili.api.live.socket.entity.PkInviteSwitchOpenEntity; + +public class PkInviteSwitchOpenPackageEvent extends ReceiveDataPackageEvent { + public PkInviteSwitchOpenPackageEvent(LiveClient source, PkInviteSwitchOpenEntity entity) { + super(source, entity); + } +} diff --git a/src/main/java/com/hiczp/bilibili/api/live/socket/handler/LiveClientHandler.java b/src/main/java/com/hiczp/bilibili/api/live/socket/handler/LiveClientHandler.java index 3e0f8e7..e7d25db 100644 --- a/src/main/java/com/hiczp/bilibili/api/live/socket/handler/LiveClientHandler.java +++ b/src/main/java/com/hiczp/bilibili/api/live/socket/handler/LiveClientHandler.java @@ -48,6 +48,7 @@ public class LiveClientHandler extends SimpleChannelInboundHandler { "PK_INVITE_FAIL", PkInviteFailPackageEvent.class, "PK_INVITE_INIT", PkInviteInitPackageEvent.class, "PK_INVITE_SWITCH_CLOSE", PkInviteSwitchClosePackageEvent.class, + "PK_INVITE_SWITCH_OPEN", PkInviteSwitchOpenPackageEvent.class, "PK_MATCH", PkMatchPackageEvent.class, "PK_MIC_END", PkMicEndPackageEvent.class, "PK_PRE", PkPrePackageEvent.class, @@ -133,7 +134,10 @@ public class LiveClientHandler extends SimpleChannelInboundHandler { .getAsJsonObject(); cmd = jsonObject.get("cmd").getAsString(); } catch (JsonSyntaxException | IllegalStateException | NullPointerException e) { //json 无法解析或者 cmd 字段不存在 - LOGGER.error("Receive invalid json: \n{}", new String(msg.getContent(), StandardCharsets.UTF_8)); + LOGGER.error("Receive invalid json in room {}: \n{}", + liveClient.getRoomIdOrShowRoomId(), + new String(msg.getContent(), StandardCharsets.UTF_8) + ); e.printStackTrace(); break; } @@ -143,7 +147,10 @@ public class LiveClientHandler extends SimpleChannelInboundHandler { //UnknownPackage if (eventType == null) { - LOGGER.error("Received unknown json below: \n{}", PRETTY_PRINTING_GSON.toJson(jsonObject)); + LOGGER.error("Received unknown json below in room {}: \n{}", + liveClient.getRoomIdOrShowRoomId(), + PRETTY_PRINTING_GSON.toJson(jsonObject) + ); eventBus.post(new UnknownPackageEvent(liveClient, jsonObject, cmd)); break; } @@ -154,7 +161,11 @@ public class LiveClientHandler extends SimpleChannelInboundHandler { try { entityInstance = GSON.fromJson(jsonObject, entityType); } catch (JsonParseException e) { //json 无法解析 - LOGGER.error("Json parse error: {}, json below: \n{}", e.getMessage(), PRETTY_PRINTING_GSON.toJson(jsonObject)); + LOGGER.error("Json parse error in room {}: {}, json below: \n{}", + liveClient.getRoomIdOrShowRoomId(), + e.getMessage(), + PRETTY_PRINTING_GSON.toJson(jsonObject) + ); break; }