新增 PK_INVITE_SWITCH_OPEN 数据包

This commit is contained in:
czp3009 2018-08-31 15:59:19 +08:00
parent 81d0137b60
commit d014c80c56
6 changed files with 70 additions and 12 deletions

View File

@ -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 数据包 | 抽奖开始(小奖) |

View File

@ -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'

View File

@ -0,0 +1,4 @@
{
"cmd": "PK_INVITE_SWITCH_OPEN",
"roomid": 9615419
}

View File

@ -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;
}
}

View File

@ -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<PkInviteSwitchOpenEntity> {
public PkInviteSwitchOpenPackageEvent(LiveClient source, PkInviteSwitchOpenEntity entity) {
super(source, entity);
}
}

View File

@ -48,6 +48,7 @@ public class LiveClientHandler extends SimpleChannelInboundHandler<Package> {
"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<Package> {
.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<Package> {
//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<Package> {
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;
}