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

package com.hypixel.hytale.server.core;

import javax.annotation.Nonnull;

public class ShutdownReason
{
    public static final ShutdownReason SIGINT;
    public static final ShutdownReason SHUTDOWN;
    public static final ShutdownReason CRASH;
    public static final ShutdownReason AUTH_FAILED;
    public static final ShutdownReason WORLD_GEN;
    public static final ShutdownReason CLIENT_GONE;
    public static final ShutdownReason MISSING_REQUIRED_PLUGIN;
    public static final ShutdownReason VALIDATE_ERROR;
    public static final ShutdownReason MISSING_ASSETS;
    public static final ShutdownReason UPDATE;
    private final int exitCode;
    private final String message;
    
    public ShutdownReason(final int exitCode) {
        this(exitCode, null);
    }
    
    public ShutdownReason(final int exitCode, final String message) {
        this.exitCode = exitCode;
        this.message = message;
    }
    
    public int getExitCode() {
        return this.exitCode;
    }
    
    public String getMessage() {
        return this.message;
    }
    
    @Nonnull
    public ShutdownReason withMessage(final String message) {
        return new ShutdownReason(this.exitCode, message);
    }
    
    @Nonnull
    @Override
    public String toString() {
        return "ShutdownReason{exitCode=" + this.exitCode + ", message='" + this.message + "'}";
    }
    
    static {
        SIGINT = new ShutdownReason(130);
        SHUTDOWN = new ShutdownReason(0);
        CRASH = new ShutdownReason(1);
        AUTH_FAILED = new ShutdownReason(2);
        WORLD_GEN = new ShutdownReason(3);
        CLIENT_GONE = new ShutdownReason(4);
        MISSING_REQUIRED_PLUGIN = new ShutdownReason(5);
        VALIDATE_ERROR = new ShutdownReason(6);
        MISSING_ASSETS = new ShutdownReason(7);
        UPDATE = new ShutdownReason(8);
    }
}
