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

import java.util.Objects;

public final class Ticket<T> implements Comparable<Ticket<?>> {

    private final TicketType<T> a;
    private final int b;
    public final T identifier;
    private long d;

    protected Ticket(TicketType<T> tickettype, int i, T t0) {
        this.a = tickettype;
        this.b = i;
        this.identifier = t0;
    }

    public int compareTo(Ticket<?> ticket) {
        int i = Integer.compare(this.b, ticket.b);

        if (i != 0) {
            return i;
        } else {
            int j = Integer.compare(System.identityHashCode(this.a), System.identityHashCode(ticket.a));

            return j != 0 ? j : this.a.a().compare(this.identifier, ticket.identifier);
        }
    }

    public boolean equals(Object object) {
        if (this == object) {
            return true;
        } else if (!(object instanceof Ticket)) {
            return false;
        } else {
            Ticket<?> ticket = (Ticket) object;

            return this.b == ticket.b && Objects.equals(this.a, ticket.a) && Objects.equals(this.identifier, ticket.identifier);
        }
    }

    public int hashCode() {
        return Objects.hash(new Object[]{this.a, this.b, this.identifier});
    }

    public String toString() {
        return "Ticket[" + this.a + " " + this.b + " (" + this.identifier + ")] at " + this.d;
    }

    public TicketType<T> getTicketType() {
        return this.a;
    }

    public int b() {
        return this.b;
    }

    protected void a(long i) {
        this.d = i;
    }

    protected boolean b(long i) {
        long j = this.a.b();

        return j != 0L && i - this.d > j;
    }
}