PluginMessagePacket
This commit is contained in:
@@ -6,10 +6,7 @@ import mc.protocol.packets.ClientSidePacket;
|
||||
import mc.protocol.packets.Packet;
|
||||
import mc.protocol.packets.PingPacket;
|
||||
import mc.protocol.packets.ServerSidePacket;
|
||||
import mc.protocol.packets.client.ClientSettingsPacket;
|
||||
import mc.protocol.packets.client.HandshakePacket;
|
||||
import mc.protocol.packets.client.LoginStartPacket;
|
||||
import mc.protocol.packets.client.StatusServerRequestPacket;
|
||||
import mc.protocol.packets.client.*;
|
||||
import mc.protocol.packets.server.DisconnectPacket;
|
||||
import mc.protocol.packets.server.JoinGamePacket;
|
||||
import mc.protocol.packets.server.LoginSuccessPacket;
|
||||
@@ -49,7 +46,10 @@ public enum State {
|
||||
),
|
||||
PLAY(3,
|
||||
// server bound
|
||||
Map.of(0x04, ClientSettingsPacket.class),
|
||||
Map.of(
|
||||
0x04, ClientSettingsPacket.class,
|
||||
0x09, PluginMessagePacket.class
|
||||
),
|
||||
// client bound
|
||||
Map.of(JoinGamePacket.class, 0x23)
|
||||
);
|
||||
|
||||
@@ -0,0 +1,42 @@
|
||||
package mc.protocol.packets.client;
|
||||
|
||||
import lombok.EqualsAndHashCode;
|
||||
import lombok.Getter;
|
||||
import lombok.NoArgsConstructor;
|
||||
import lombok.ToString;
|
||||
import mc.protocol.io.NetByteBuf;
|
||||
import mc.protocol.packets.ClientSidePacket;
|
||||
|
||||
/**
|
||||
* Plugin Message packet.
|
||||
*
|
||||
* <p>Канал связи для модов и плагинов.</p>
|
||||
*
|
||||
* <p>Структура пакета</p>
|
||||
* <pre>
|
||||
* | FIELD | TYPE | NOTES |
|
||||
* |--------------|-------------|------------------|
|
||||
* | Channel name | String (20) | Название канала |
|
||||
* | Data | Byte array | Любые данные |
|
||||
* </pre>
|
||||
*
|
||||
* @see <a href="https://wiki.vg/index.php?title=Protocol&oldid=14204#Plugin_Message_.28serverbound.29">Plugin Message (serverbound)</a>
|
||||
* @see <a href="https://wiki.vg/index.php?title=Plugin_channels&oldid=14089">Plugin channels</a>
|
||||
* @see <a href="https://dinnerbone.com/blog/2012/01/13/minecraft-plugin-channels-messaging/">Minecraft Plugin Channels + Messaging</a>
|
||||
*/
|
||||
@NoArgsConstructor
|
||||
@Getter
|
||||
@EqualsAndHashCode
|
||||
@ToString
|
||||
public class PluginMessagePacket implements ClientSidePacket {
|
||||
|
||||
private String channelName;
|
||||
private byte[] rawData;
|
||||
|
||||
@Override
|
||||
public void readSelf(NetByteBuf netByteBuf) {
|
||||
this.channelName = netByteBuf.readString(20);
|
||||
this.rawData = new byte[netByteBuf.readableBytes()];
|
||||
netByteBuf.readBytes(this.rawData);
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user