forked from BLOCKFANTASY/LOOHP-Limbo
66 lines
1.4 KiB
Java
66 lines
1.4 KiB
Java
package com.loohp.limbo.Server.Packets;
|
|
|
|
import java.io.ByteArrayOutputStream;
|
|
import java.io.DataOutputStream;
|
|
import java.io.IOException;
|
|
|
|
public class PacketPlayOutPlayerAbilities extends Packet {
|
|
|
|
public enum PlayerAbilityFlags {
|
|
INVULNERABLE(0x01),
|
|
FLY(0x02),
|
|
ALLOW_FLYING(0x04),
|
|
INSTANT_BREAK(0x08);
|
|
|
|
int bitvalue;
|
|
|
|
PlayerAbilityFlags(int bitvalue) {
|
|
this.bitvalue = bitvalue;
|
|
}
|
|
|
|
public int getValue() {
|
|
return bitvalue;
|
|
}
|
|
}
|
|
|
|
private PlayerAbilityFlags[] flags;
|
|
private float flySpeed;
|
|
private float fieldOfField;
|
|
|
|
public PacketPlayOutPlayerAbilities(float flySpeed, float fieldOfField, PlayerAbilityFlags... flags) {
|
|
this.flags = flags;
|
|
this.flySpeed = flySpeed;
|
|
this.fieldOfField = fieldOfField;
|
|
}
|
|
|
|
public PlayerAbilityFlags[] getFlags() {
|
|
return flags;
|
|
}
|
|
|
|
public float getFlySpeed() {
|
|
return flySpeed;
|
|
}
|
|
|
|
public float getFieldOfField() {
|
|
return fieldOfField;
|
|
}
|
|
|
|
public byte[] getBytes() throws IOException {
|
|
ByteArrayOutputStream buffer = new ByteArrayOutputStream();
|
|
|
|
DataOutputStream output = new DataOutputStream(buffer);
|
|
output.writeByte(Packet.getPlayOut().get(getClass()));
|
|
int value = 0;
|
|
for (PlayerAbilityFlags flag : flags) {
|
|
value = value | flag.getValue();
|
|
}
|
|
|
|
output.writeByte(value);
|
|
output.writeFloat(flySpeed);
|
|
output.writeFloat(fieldOfField);
|
|
|
|
return buffer.toByteArray();
|
|
}
|
|
|
|
}
|