增加弹幕推送的数据包类型

GUARD_BUY, ROOM_ADMINS, ROOM_SILENT_ON
This commit is contained in:
czp 2018-03-08 11:22:26 +08:00
parent f154d0b4f3
commit 6e12feb1f1
11 changed files with 298 additions and 1 deletions

View File

@ -296,11 +296,14 @@ API 文档
| ConnectionCloseEvent | 连接断开(主动或被动) |
| ConnectSucceedEvent | 进房成功 |
| DanMuMsgPackageEvent | 收到 DANMU_MSG 数据包 |
| GuardBuyPackageEvent | 收到 GUARD_BUY 数据包 |
| GuardMsgPackageEvent | 收到 GUARD_MSG 数据包 |
| LivePackageEvent | 收到 LIVE 数据包 |
| PreparingPackageEvent | 收到 PREPARING 数据包 |
| RoomAdminsPackageEvent | 收到 ROOM_ADMINS 数据包 |
| RoomBlockMsgPackageEvent | 收到 ROOM_BLOCK_MSG 数据包 |
| RoomSilentOffPackageEvent | 收到 ROOM_SILENT_OFF 数据包 |
| RoomSilentOnPackageEvent | 收到 ROOM_SILENT_ON 数据包 |
| SendGiftPackageEvent | 收到 SEND_GIFT 数据包 |
| SendHeartBeatPackageEvent | 每次发送心跳包后触发一次 |
| SysGiftPackageEvent | 收到 SYS_GIFT 数据包 |

View File

@ -0,0 +1,10 @@
{
"cmd": "GUARD_BUY",
"data": {
"uid": 4561799,
"username": "微笑The迪妮莎",
"guard_level": 1,
"num": 1
},
"roomid": "5279"
}

View File

@ -0,0 +1,14 @@
{
"cmd": "ROOM_ADMINS",
"uids": [
4561799,
432672,
2179804,
7928207,
94380,
1626161,
3168349,
13182672
],
"roomid": 5279
}

View File

@ -0,0 +1,9 @@
{
"cmd": "ROOM_SILENT_ON",
"data": {
"type": "level",
"level": 1,
"second": 1520424615
},
"roomid": 5279
}

View File

@ -0,0 +1,93 @@
package com.hiczp.bilibili.api.live.socket.entity;
import com.google.gson.annotations.SerializedName;
public class GuardBuyEntity implements DataEntity {
/**
* cmd : GUARD_BUY
* data : {"uid":4561799,"username":"微笑The迪妮莎","guard_level":1,"num":1}
* roomid : 5279
*/
@SerializedName("cmd")
private String cmd;
@SerializedName("data")
private Data data;
@SerializedName("roomid")
private String roomid;
@Override
public String getCmd() {
return cmd;
}
public void setCmd(String cmd) {
this.cmd = cmd;
}
public Data getData() {
return data;
}
public void setData(Data data) {
this.data = data;
}
public String getRoomid() {
return roomid;
}
public void setRoomid(String roomid) {
this.roomid = roomid;
}
public static class Data {
/**
* uid : 4561799
* username : 微笑The迪妮莎
* guard_level : 1
* num : 1
*/
@SerializedName("uid")
private int uid;
@SerializedName("username")
private String username;
@SerializedName("guard_level")
private int guardLevel;
@SerializedName("num")
private int num;
public int getUid() {
return uid;
}
public void setUid(int uid) {
this.uid = uid;
}
public String getUsername() {
return username;
}
public void setUsername(String username) {
this.username = username;
}
public int getGuardLevel() {
return guardLevel;
}
public void setGuardLevel(int guardLevel) {
this.guardLevel = guardLevel;
}
public int getNum() {
return num;
}
public void setNum(int num) {
this.num = num;
}
}
}

View File

@ -0,0 +1,45 @@
package com.hiczp.bilibili.api.live.socket.entity;
import com.google.gson.annotations.SerializedName;
import java.util.List;
public class RoomAdminsEntity implements DataEntity {
/**
* cmd : ROOM_ADMINS
* uids : [4561799,432672,2179804,7928207,94380,1626161,3168349,13182672]
* roomid : 5279
*/
@SerializedName("cmd")
private String cmd;
@SerializedName("roomid")
private long roomId;
@SerializedName("uids")
private List<Long> uids;
@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;
}
public List<Long> getUids() {
return uids;
}
public void setUids(List<Long> uids) {
this.uids = uids;
}
}

View File

@ -0,0 +1,82 @@
package com.hiczp.bilibili.api.live.socket.entity;
import com.google.gson.annotations.SerializedName;
public class RoomSilentOnEntity implements DataEntity {
/**
* cmd : ROOM_SILENT_ON
* data : {"type":"level","level":1,"second":1520424615}
* roomid : 5279
*/
@SerializedName("cmd")
private String cmd;
@SerializedName("data")
private Data data;
@SerializedName("roomid")
private long roomId;
@Override
public String getCmd() {
return cmd;
}
public void setCmd(String cmd) {
this.cmd = cmd;
}
public Data getData() {
return data;
}
public void setData(Data data) {
this.data = data;
}
public long getRoomId() {
return roomId;
}
public void setRoomId(long roomId) {
this.roomId = roomId;
}
public static class Data {
/**
* type : level
* level : 1
* second : 1520424615
*/
@SerializedName("type")
private String type;
@SerializedName("level")
private int level;
@SerializedName("second")
private long second;
public String getType() {
return type;
}
public void setType(String type) {
this.type = type;
}
public int getLevel() {
return level;
}
public void setLevel(int level) {
this.level = level;
}
public long getSecond() {
return second;
}
public void setSecond(long second) {
this.second = second;
}
}
}

View File

@ -0,0 +1,9 @@
package com.hiczp.bilibili.api.live.socket.event;
import com.hiczp.bilibili.api.live.socket.entity.GuardBuyEntity;
public class GuardBuyPackageEvent extends ReceiveDataPackageEvent<GuardBuyEntity> {
public GuardBuyPackageEvent(Object source, GuardBuyEntity entity) {
super(source, entity);
}
}

View File

@ -0,0 +1,9 @@
package com.hiczp.bilibili.api.live.socket.event;
import com.hiczp.bilibili.api.live.socket.entity.RoomAdminsEntity;
public class RoomAdminsPackageEvent extends ReceiveDataPackageEvent<RoomAdminsEntity> {
public RoomAdminsPackageEvent(Object source, RoomAdminsEntity entity) {
super(source, entity);
}
}

View File

@ -0,0 +1,9 @@
package com.hiczp.bilibili.api.live.socket.event;
import com.hiczp.bilibili.api.live.socket.entity.RoomSilentOnEntity;
public class RoomSilentOnPackageEvent extends ReceiveDataPackageEvent<RoomSilentOnEntity> {
public RoomSilentOnPackageEvent(Object source, RoomSilentOnEntity entity) {
super(source, entity);
}
}

View File

@ -142,17 +142,31 @@ public class LiveClientHandler extends SimpleChannelInboundHandler<Package> {
eventCreationExpression = () -> new RoomBlockMsgPackageEvent(this, GSON.fromJson(content, RoomBlockMsgEntity.class));
}
break;
//TODO ROOM_SILENT_ON(禁止某一等级以下的用户发言)
//房间开启了禁言(禁止某一等级以下的用户发言)
case "ROOM_SILENT_ON": {
eventCreationExpression = () -> new RoomSilentOnPackageEvent(this, GSON.fromJson(content, RoomSilentOnEntity.class));
}
break;
//房间结束禁言
case "ROOM_SILENT_OFF": {
eventCreationExpression = () -> new RoomSilentOffPackageEvent(this, GSON.fromJson(content, RoomSilentOffEntity.class));
}
break;
//船票购买
case "GUARD_BUY": {
eventCreationExpression = () -> new GuardBuyPackageEvent(this, GSON.fromJson(content, GuardBuyEntity.class));
}
break;
//舰队消息(登船)
case "GUARD_MSG": {
eventCreationExpression = () -> new GuardMsgPackageEvent(this, GSON.fromJson(content, GuardMsgEntity.class));
}
break;
//房管变更
case "ROOM_ADMINS": {
eventCreationExpression = () -> new RoomAdminsPackageEvent(this, GSON.fromJson(content, RoomAdminsEntity.class));
}
break;
//小电视抽奖结束(大奖的获得者信息)
case "TV_END": {
eventCreationExpression = () -> new TVEndPackageEvent(this, GSON.fromJson(content, TVEndEntity.class));