/* * This file is part of LanternServer, licensed under the MIT License (MIT). * * Copyright (c) LanternPowered <https://www.lanternpowered.org> * Copyright (c) SpongePowered <https://www.spongepowered.org> * Copyright (c) contributors * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the Software), to deal * in the Software without restriction, including without limitation the rights * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell * copies of the Software, and to permit persons to whom the Software is * furnished to do so, subject to the following conditions * * The above copyright notice and this permission notice shall be included in * all copies or substantial portions of the Software. * * THE SOFTWARE IS PROVIDED AS IS, WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN * THE SOFTWARE. */ package org.lanternpowered.server.network.vanilla.message.type.play; import org.lanternpowered.server.network.message.Message; import org.lanternpowered.server.network.objects.LocalizedText; import org.spongepowered.api.boss.BossBarColor; import org.spongepowered.api.boss.BossBarOverlay; import java.util.UUID; public abstract class MessagePlayOutBossBar implements Message { public static final class Add extends MessagePlayOutBossBar { private final LocalizedText title; private final BossBarColor color; private final BossBarOverlay overlay; private final float health; private final boolean darkenSky; private final boolean endMusic; public Add(UUID uniqueId, LocalizedText title, BossBarColor color, BossBarOverlay overlay, float health, boolean darkenSky, boolean endMusic) { super(uniqueId); this.title = title; this.color = color; this.overlay = overlay; this.health = health; this.darkenSky = darkenSky; this.endMusic = endMusic; } public LocalizedText getTitle() { return this.title; } public BossBarColor getColor() { return this.color; } public BossBarOverlay getOverlay() { return this.overlay; } public boolean isDarkenSky() { return this.darkenSky; } public boolean isEndMusic() { return this.endMusic; } public float getHealth() { return this.health; } } public static final class Remove extends MessagePlayOutBossBar { public Remove(UUID uniqueId) { super(uniqueId); } } public static final class UpdatePercent extends MessagePlayOutBossBar { private final float percent; public UpdatePercent(UUID uniqueId, float percent) { super(uniqueId); this.percent = percent; } public float getPercent() { return this.percent; } } public static final class UpdateTitle extends MessagePlayOutBossBar { private final LocalizedText title; public UpdateTitle(UUID uniqueId, LocalizedText title) { super(uniqueId); this.title = title; } public LocalizedText getTitle() { return this.title; } } public static final class UpdateStyle extends MessagePlayOutBossBar { private final BossBarColor color; private final BossBarOverlay overlay; public UpdateStyle(UUID uniqueId, BossBarColor color, BossBarOverlay overlay) { super(uniqueId); this.color = color; this.overlay = overlay; } public BossBarColor getColor() { return this.color; } public BossBarOverlay getOverlay() { return this.overlay; } } public static final class UpdateMisc extends MessagePlayOutBossBar { private final boolean darkenSky; private final boolean endMusic; public UpdateMisc(UUID uniqueId, boolean darkenSky, boolean endMusic) { super(uniqueId); this.darkenSky = darkenSky; this.endMusic = endMusic; } public boolean isDarkenSky() { return this.darkenSky; } public boolean isEndMusic() { return this.endMusic; } } private final UUID uniqueId; MessagePlayOutBossBar(UUID uniqueId) { this.uniqueId = uniqueId; } public UUID getUniqueId() { return uniqueId; } }