package net.minecraft.network.play.server;
import java.io.IOException;
import net.minecraft.entity.player.PlayerCapabilities;
import net.minecraft.network.INetHandler;
import net.minecraft.network.Packet;
import net.minecraft.network.PacketBuffer;
import net.minecraft.network.play.INetHandlerPlayClient;
public class S39PacketPlayerAbilities extends Packet
{
private boolean invulnerable;
private boolean flying;
private boolean allowFlying;
private boolean creativeMode;
private float flySpeed;
private float walkSpeed;
private static final String __OBFID = "CL_00001317";
public S39PacketPlayerAbilities() {}
public S39PacketPlayerAbilities(PlayerCapabilities capabilities)
{
this.setInvulnerable(capabilities.disableDamage);
this.setFlying(capabilities.isFlying);
this.setAllowFlying(capabilities.allowFlying);
this.setCreativeMode(capabilities.isCreativeMode);
this.setFlySpeed(capabilities.getFlySpeed());
this.setWalkSpeed(capabilities.getWalkSpeed());
}
/**
* Reads the raw packet data from the data stream.
*/
public void readPacketData(PacketBuffer data) throws IOException
{
byte b0 = data.readByte();
this.setInvulnerable((b0 & 1) > 0);
this.setFlying((b0 & 2) > 0);
this.setAllowFlying((b0 & 4) > 0);
this.setCreativeMode((b0 & 8) > 0);
this.setFlySpeed(data.readFloat());
this.setWalkSpeed(data.readFloat());
}
/**
* Writes the raw packet data to the data stream.
*/
public void writePacketData(PacketBuffer data) throws IOException
{
byte b0 = 0;
if (this.isInvulnerable())
{
b0 = (byte)(b0 | 1);
}
if (this.isFlying())
{
b0 = (byte)(b0 | 2);
}
if (this.isAllowFlying())
{
b0 = (byte)(b0 | 4);
}
if (this.isCreativeMode())
{
b0 = (byte)(b0 | 8);
}
data.writeByte(b0);
data.writeFloat(this.flySpeed);
data.writeFloat(this.walkSpeed);
}
/**
* Passes this Packet on to the NetHandler for processing.
*/
public void processPacket(INetHandlerPlayClient handler)
{
handler.handlePlayerAbilities(this);
}
/**
* Returns a string formatted as comma separated [field]=[value] values. Used by Minecraft for logging purposes.
*/
public String serialize()
{
return String.format("invuln=%b, flying=%b, canfly=%b, instabuild=%b, flyspeed=%.4f, walkspped=%.4f", new Object[] {Boolean.valueOf(this.isInvulnerable()), Boolean.valueOf(this.isFlying()), Boolean.valueOf(this.isAllowFlying()), Boolean.valueOf(this.isCreativeMode()), Float.valueOf(this.getFlySpeed()), Float.valueOf(this.getWalkSpeed())});
}
public boolean isInvulnerable()
{
return this.invulnerable;
}
public void setInvulnerable(boolean isInvulnerable)
{
this.invulnerable = isInvulnerable;
}
public boolean isFlying()
{
return this.flying;
}
public void setFlying(boolean isFlying)
{
this.flying = isFlying;
}
public boolean isAllowFlying()
{
return this.allowFlying;
}
public void setAllowFlying(boolean isAllowFlying)
{
this.allowFlying = isAllowFlying;
}
public boolean isCreativeMode()
{
return this.creativeMode;
}
public void setCreativeMode(boolean isCreativeMode)
{
this.creativeMode = isCreativeMode;
}
public float getFlySpeed()
{
return this.flySpeed;
}
public void setFlySpeed(float flySpeedIn)
{
this.flySpeed = flySpeedIn;
}
public float getWalkSpeed()
{
return this.walkSpeed;
}
public void setWalkSpeed(float walkSpeedIn)
{
this.walkSpeed = walkSpeedIn;
}
/**
* Passes this Packet on to the NetHandler for processing.
*/
public void processPacket(INetHandler handler)
{
this.processPacket((INetHandlerPlayClient)handler);
}
}