Newer
Older
void-pack-super-server / work / decompile-ee3ecae0 / net / minecraft / server / PacketPlayOutBoss.java
package net.minecraft.server;

import java.io.IOException;
import java.util.UUID;

public class PacketPlayOutBoss implements Packet<PacketListenerPlayOut> {

    private UUID a;
    private PacketPlayOutBoss.Action b;
    private IChatBaseComponent c;
    private float d;
    private BossBattle.BarColor e;
    private BossBattle.BarStyle f;
    private boolean g;
    private boolean h;
    private boolean i;

    public PacketPlayOutBoss() {}

    public PacketPlayOutBoss(PacketPlayOutBoss.Action packetplayoutboss_action, BossBattle bossbattle) {
        this.b = packetplayoutboss_action;
        this.a = bossbattle.i();
        this.c = bossbattle.j();
        this.d = bossbattle.getProgress();
        this.e = bossbattle.l();
        this.f = bossbattle.m();
        this.g = bossbattle.isDarkenSky();
        this.h = bossbattle.isPlayMusic();
        this.i = bossbattle.isCreateFog();
    }

    @Override
    public void a(PacketDataSerializer packetdataserializer) throws IOException {
        this.a = packetdataserializer.k();
        this.b = (PacketPlayOutBoss.Action) packetdataserializer.a(PacketPlayOutBoss.Action.class);
        switch (this.b) {
            case ADD:
                this.c = packetdataserializer.h();
                this.d = packetdataserializer.readFloat();
                this.e = (BossBattle.BarColor) packetdataserializer.a(BossBattle.BarColor.class);
                this.f = (BossBattle.BarStyle) packetdataserializer.a(BossBattle.BarStyle.class);
                this.a(packetdataserializer.readUnsignedByte());
            case REMOVE:
            default:
                break;
            case UPDATE_PCT:
                this.d = packetdataserializer.readFloat();
                break;
            case UPDATE_NAME:
                this.c = packetdataserializer.h();
                break;
            case UPDATE_STYLE:
                this.e = (BossBattle.BarColor) packetdataserializer.a(BossBattle.BarColor.class);
                this.f = (BossBattle.BarStyle) packetdataserializer.a(BossBattle.BarStyle.class);
                break;
            case UPDATE_PROPERTIES:
                this.a(packetdataserializer.readUnsignedByte());
        }

    }

    private void a(int i) {
        this.g = (i & 1) > 0;
        this.h = (i & 2) > 0;
        this.i = (i & 4) > 0;
    }

    @Override
    public void b(PacketDataSerializer packetdataserializer) throws IOException {
        packetdataserializer.a(this.a);
        packetdataserializer.a((Enum) this.b);
        switch (this.b) {
            case ADD:
                packetdataserializer.a(this.c);
                packetdataserializer.writeFloat(this.d);
                packetdataserializer.a((Enum) this.e);
                packetdataserializer.a((Enum) this.f);
                packetdataserializer.writeByte(this.k());
            case REMOVE:
            default:
                break;
            case UPDATE_PCT:
                packetdataserializer.writeFloat(this.d);
                break;
            case UPDATE_NAME:
                packetdataserializer.a(this.c);
                break;
            case UPDATE_STYLE:
                packetdataserializer.a((Enum) this.e);
                packetdataserializer.a((Enum) this.f);
                break;
            case UPDATE_PROPERTIES:
                packetdataserializer.writeByte(this.k());
        }

    }

    private int k() {
        int i = 0;

        if (this.g) {
            i |= 1;
        }

        if (this.h) {
            i |= 2;
        }

        if (this.i) {
            i |= 4;
        }

        return i;
    }

    public void a(PacketListenerPlayOut packetlistenerplayout) {
        packetlistenerplayout.a(this);
    }

    public static enum Action {

        ADD, REMOVE, UPDATE_PCT, UPDATE_NAME, UPDATE_STYLE, UPDATE_PROPERTIES;

        private Action() {}
    }
}