minecraft-source/src/net/minecraft/server/level/TicketType.java

60 lines
2.3 KiB
Java

package net.minecraft.server.level;
import net.minecraft.core.Vec3i;
import net.minecraft.core.BlockPos;
import net.minecraft.world.level.ChunkPos;
import net.minecraft.util.Unit;
import java.util.Comparator;
public class TicketType<T> {
private final String name;
private final Comparator<T> comparator;
private final long timeout;
public static final TicketType<Unit> START;
public static final TicketType<Unit> DRAGON;
public static final TicketType<ChunkPos> PLAYER;
public static final TicketType<ChunkPos> FORCED;
public static final TicketType<ChunkPos> LIGHT;
public static final TicketType<BlockPos> PORTAL;
public static final TicketType<Integer> POST_TELEPORT;
public static final TicketType<ChunkPos> UNKNOWN;
public static <T> TicketType<T> create(final String string, final Comparator<T> comparator) {
return new TicketType<T>(string, comparator, 0L);
}
public static <T> TicketType<T> create(final String string, final Comparator<T> comparator, final int integer) {
return new TicketType<T>(string, comparator, integer);
}
protected TicketType(final String string, final Comparator<T> comparator, final long long3) {
this.name = string;
this.comparator = comparator;
this.timeout = long3;
}
@Override
public String toString() {
return this.name;
}
public Comparator<T> getComparator() {
return this.comparator;
}
public long timeout() {
return this.timeout;
}
static {
START = TicketType.<Unit>create("start", (aca1, aca2) -> 0);
DRAGON = TicketType.<Unit>create("dragon", (aca1, aca2) -> 0);
PLAYER = TicketType.<ChunkPos>create("player", Comparator.<ChunkPos>comparingLong(ChunkPos::toLong));
FORCED = TicketType.<ChunkPos>create("forced", Comparator.<ChunkPos>comparingLong(ChunkPos::toLong));
LIGHT = TicketType.<ChunkPos>create("light", Comparator.<ChunkPos>comparingLong(ChunkPos::toLong));
PORTAL = TicketType.<BlockPos>create("portal", Vec3i::compareTo, 300);
POST_TELEPORT = TicketType.<Integer>create("post_teleport", Integer::compareTo, 5);
UNKNOWN = TicketType.<ChunkPos>create("unknown", Comparator.<ChunkPos>comparingLong(ChunkPos::toLong), 1);
}
}