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

package com.hypixel.hytale.builtin.instances.event;

import com.hypixel.hytale.component.system.ICancellableEcsEvent;
import com.hypixel.hytale.builtin.instances.config.InstanceDiscoveryConfig;
import javax.annotation.Nonnull;
import java.util.UUID;
import com.hypixel.hytale.component.system.EcsEvent;

public abstract class DiscoverInstanceEvent extends EcsEvent
{
    @Nonnull
    private final UUID instanceWorldUuid;
    @Nonnull
    private final InstanceDiscoveryConfig discoveryConfig;
    
    public DiscoverInstanceEvent(@Nonnull final UUID instanceWorldUuid, @Nonnull final InstanceDiscoveryConfig discoveryConfig) {
        this.instanceWorldUuid = instanceWorldUuid;
        this.discoveryConfig = discoveryConfig;
    }
    
    @Nonnull
    public UUID getInstanceWorldUuid() {
        return this.instanceWorldUuid;
    }
    
    @Nonnull
    public InstanceDiscoveryConfig getDiscoveryConfig() {
        return this.discoveryConfig;
    }
    
    public static class Display extends DiscoverInstanceEvent implements ICancellableEcsEvent
    {
        private boolean cancelled;
        private boolean display;
        
        public Display(@Nonnull final UUID instanceWorldUuid, @Nonnull final InstanceDiscoveryConfig discoveryConfig) {
            super(instanceWorldUuid, discoveryConfig);
            this.cancelled = false;
            this.display = discoveryConfig.isDisplay();
        }
        
        @Override
        public boolean isCancelled() {
            return this.cancelled;
        }
        
        @Override
        public void setCancelled(final boolean cancelled) {
            this.cancelled = cancelled;
        }
        
        public boolean shouldDisplay() {
            return this.display;
        }
        
        public void setDisplay(final boolean display) {
            this.display = display;
        }
    }
}
