// 
// Decompiled by Procyon v0.6.0
// 

package com.hypixel.hytale.server.core.modules.entity.damage.event;

import com.hypixel.hytale.server.core.universe.PlayerRef;
import java.util.List;
import javax.annotation.Nullable;
import com.hypixel.hytale.server.core.Message;
import com.hypixel.hytale.server.core.universe.world.storage.EntityStore;
import com.hypixel.hytale.component.Ref;
import javax.annotation.Nonnull;
import com.hypixel.hytale.server.core.modules.entity.damage.Damage;
import com.hypixel.hytale.component.system.CancellableEcsEvent;

public class KillFeedEvent
{
    public static final class KillerMessage extends CancellableEcsEvent
    {
        @Nonnull
        private final Damage damage;
        @Nonnull
        private final Ref<EntityStore> targetRef;
        @Nullable
        private Message message;
        
        public KillerMessage(@Nonnull final Damage damage, @Nonnull final Ref<EntityStore> targetRef) {
            this.message = null;
            this.damage = damage;
            this.targetRef = targetRef;
        }
        
        @Nonnull
        public Damage getDamage() {
            return this.damage;
        }
        
        @Nonnull
        public Ref<EntityStore> getTargetRef() {
            return this.targetRef;
        }
        
        public void setMessage(@Nullable final Message message) {
            this.message = message;
        }
        
        @Nullable
        public Message getMessage() {
            return this.message;
        }
    }
    
    public static final class DecedentMessage extends CancellableEcsEvent
    {
        @Nonnull
        private final Damage damage;
        @Nullable
        private Message message;
        
        public DecedentMessage(@Nonnull final Damage damage) {
            this.message = null;
            this.damage = damage;
        }
        
        public Damage getDamage() {
            return this.damage;
        }
        
        public void setMessage(@Nullable final Message message) {
            this.message = message;
        }
        
        @Nullable
        public Message getMessage() {
            return this.message;
        }
    }
    
    public static final class Display extends CancellableEcsEvent
    {
        @Nonnull
        private final Damage damage;
        @Nullable
        private String icon;
        @Nonnull
        private final List<PlayerRef> broadcastTargets;
        
        public Display(@Nonnull final Damage damage, @Nullable final String icon, @Nonnull final List<PlayerRef> broadcastTargets) {
            this.damage = damage;
            this.icon = icon;
            this.broadcastTargets = broadcastTargets;
        }
        
        @Nonnull
        public List<PlayerRef> getBroadcastTargets() {
            return this.broadcastTargets;
        }
        
        @Nonnull
        public Damage getDamage() {
            return this.damage;
        }
        
        @Nullable
        public String getIcon() {
            return this.icon;
        }
        
        public void setIcon(@Nullable final String icon) {
            this.icon = icon;
        }
    }
}
