ClientboundUpdateMobEffectPacket.java
net.minecraft.network.protocol.game.ClientboundUpdateMobEffectPacket
信息
- 全限定名:net.minecraft.network.protocol.game.ClientboundUpdateMobEffectPacket
- 类型:public class
- 包:net.minecraft.network.protocol.game
- 源码路径:src/main/java/net/minecraft/network/protocol/game/ClientboundUpdateMobEffectPacket.java
- 起始行号:L11
- 实现:Packet
- 职责:
TODO
字段/常量
-
STREAM_CODEC- 类型:
StreamCodec<RegistryFriendlyByteBuf,ClientboundUpdateMobEffectPacket> - 修饰符:
public static final - 源码定位:
L12 - 说明:
TODO
- 类型:
-
FLAG_AMBIENT- 类型:
int - 修饰符:
private static final - 源码定位:
L15 - 说明:
TODO
- 类型:
-
FLAG_VISIBLE- 类型:
int - 修饰符:
private static final - 源码定位:
L16 - 说明:
TODO
- 类型:
-
FLAG_SHOW_ICON- 类型:
int - 修饰符:
private static final - 源码定位:
L17 - 说明:
TODO
- 类型:
-
FLAG_BLEND- 类型:
int - 修饰符:
private static final - 源码定位:
L18 - 说明:
TODO
- 类型:
-
entityId- 类型:
int - 修饰符:
private final - 源码定位:
L19 - 说明:
TODO
- 类型:
-
effect- 类型:
Holder<MobEffect> - 修饰符:
private final - 源码定位:
L20 - 说明:
TODO
- 类型:
-
effectAmplifier- 类型:
int - 修饰符:
private final - 源码定位:
L21 - 说明:
TODO
- 类型:
-
effectDurationTicks- 类型:
int - 修饰符:
private final - 源码定位:
L22 - 说明:
TODO
- 类型:
-
flags- 类型:
byte - 修饰符:
private final - 源码定位:
L23 - 说明:
TODO
- 类型:
内部类/嵌套类型
- 无
构造器
public ClientboundUpdateMobEffectPacket(int entityId, MobEffectInstance effect, boolean blend) @ L25
- 构造器名:ClientboundUpdateMobEffectPacket
- 源码定位:L25
- 修饰符:public
参数:
- entityId: int
- effect: MobEffectInstance
- blend: boolean
说明:
TODO
private ClientboundUpdateMobEffectPacket(RegistryFriendlyByteBuf input) @ L50
- 构造器名:ClientboundUpdateMobEffectPacket
- 源码定位:L50
- 修饰符:private
参数:
- input: RegistryFriendlyByteBuf
说明:
TODO
方法
下面的方法块按源码顺序生成。
private void write(RegistryFriendlyByteBuf output) @ L58
- 方法名:write
- 源码定位:L58
- 返回类型:void
- 修饰符:private
参数:
- output: RegistryFriendlyByteBuf
说明:
TODO
public PacketType<ClientboundUpdateMobEffectPacket> type() @ L66
- 方法名:type
- 源码定位:L66
- 返回类型:PacketType
- 修饰符:public
参数:
- 无
说明:
TODO
public void handle(ClientGamePacketListener listener) @ L71
- 方法名:handle
- 源码定位:L71
- 返回类型:void
- 修饰符:public
参数:
- listener: ClientGamePacketListener
说明:
TODO
public int getEntityId() @ L75
- 方法名:getEntityId
- 源码定位:L75
- 返回类型:int
- 修饰符:public
参数:
- 无
说明:
TODO
public Holder<MobEffect> getEffect() @ L79
- 方法名:getEffect
- 源码定位:L79
- 返回类型:Holder
- 修饰符:public
参数:
- 无
说明:
TODO
public int getEffectAmplifier() @ L83
- 方法名:getEffectAmplifier
- 源码定位:L83
- 返回类型:int
- 修饰符:public
参数:
- 无
说明:
TODO
public int getEffectDurationTicks() @ L87
- 方法名:getEffectDurationTicks
- 源码定位:L87
- 返回类型:int
- 修饰符:public
参数:
- 无
说明:
TODO
public boolean isEffectVisible() @ L91
- 方法名:isEffectVisible
- 源码定位:L91
- 返回类型:boolean
- 修饰符:public
参数:
- 无
说明:
TODO
public boolean isEffectAmbient() @ L95
- 方法名:isEffectAmbient
- 源码定位:L95
- 返回类型:boolean
- 修饰符:public
参数:
- 无
说明:
TODO
public boolean effectShowsIcon() @ L99
- 方法名:effectShowsIcon
- 源码定位:L99
- 返回类型:boolean
- 修饰符:public
参数:
- 无
说明:
TODO
public boolean shouldBlend() @ L103
- 方法名:shouldBlend
- 源码定位:L103
- 返回类型:boolean
- 修饰符:public
参数:
- 无
说明:
TODO
代码
public class ClientboundUpdateMobEffectPacket implements Packet<ClientGamePacketListener> {
public static final StreamCodec<RegistryFriendlyByteBuf, ClientboundUpdateMobEffectPacket> STREAM_CODEC = Packet.codec(
ClientboundUpdateMobEffectPacket::write, ClientboundUpdateMobEffectPacket::new
);
private static final int FLAG_AMBIENT = 1;
private static final int FLAG_VISIBLE = 2;
private static final int FLAG_SHOW_ICON = 4;
private static final int FLAG_BLEND = 8;
private final int entityId;
private final Holder<MobEffect> effect;
private final int effectAmplifier;
private final int effectDurationTicks;
private final byte flags;
public ClientboundUpdateMobEffectPacket(int entityId, MobEffectInstance effect, boolean blend) {
this.entityId = entityId;
this.effect = effect.getEffect();
this.effectAmplifier = effect.getAmplifier();
this.effectDurationTicks = effect.getDuration();
byte flags = 0;
if (effect.isAmbient()) {
flags = (byte)(flags | 1);
}
if (effect.isVisible()) {
flags = (byte)(flags | 2);
}
if (effect.showIcon()) {
flags = (byte)(flags | 4);
}
if (blend) {
flags = (byte)(flags | 8);
}
this.flags = flags;
}
private ClientboundUpdateMobEffectPacket(RegistryFriendlyByteBuf input) {
this.entityId = input.readVarInt();
this.effect = MobEffect.STREAM_CODEC.decode(input);
this.effectAmplifier = input.readVarInt();
this.effectDurationTicks = input.readVarInt();
this.flags = input.readByte();
}
private void write(RegistryFriendlyByteBuf output) {
output.writeVarInt(this.entityId);
MobEffect.STREAM_CODEC.encode(output, this.effect);
output.writeVarInt(this.effectAmplifier);
output.writeVarInt(this.effectDurationTicks);
output.writeByte(this.flags);
}
@Override
public PacketType<ClientboundUpdateMobEffectPacket> type() {
return GamePacketTypes.CLIENTBOUND_UPDATE_MOB_EFFECT;
}
public void handle(ClientGamePacketListener listener) {
listener.handleUpdateMobEffect(this);
}
public int getEntityId() {
return this.entityId;
}
public Holder<MobEffect> getEffect() {
return this.effect;
}
public int getEffectAmplifier() {
return this.effectAmplifier;
}
public int getEffectDurationTicks() {
return this.effectDurationTicks;
}
public boolean isEffectVisible() {
return (this.flags & 2) != 0;
}
public boolean isEffectAmbient() {
return (this.flags & 1) != 0;
}
public boolean effectShowsIcon() {
return (this.flags & 4) != 0;
}
public boolean shouldBlend() {
return (this.flags & 8) != 0;
}
}引用的其他类
-
- 引用位置:
字段/返回值
- 引用位置:
-
- 引用位置:
参数/字段
- 引用位置:
-
- 引用位置:
字段
- 引用位置:
-
- 引用位置:
实现/方法调用 - 关联成员:
Packet.codec()
- 引用位置:
-
- 引用位置:
返回值
- 引用位置:
-
- 引用位置:
参数
- 引用位置:
-
- 引用位置:
字段/返回值
- 引用位置:
-
- 引用位置:
参数
- 引用位置: