--- a/net/minecraft/server/level/Ticket.java +++ b/net/minecraft/server/level/Ticket.java @@ -14,17 +_,36 @@ ExtraCodecs.NON_NEGATIVE_INT.fieldOf("level").forGetter(Ticket::getTicketLevel), Codec.LONG.optionalFieldOf("ticks_left", 0L).forGetter(ticket -> ticket.ticksLeft) ) - .apply(instance, Ticket::new) + .apply(instance, (type, level, ticks) -> new Ticket(type, level.intValue(), ticks.longValue())) // Paper - add identifier ); private final TicketType type; private final int ticketLevel; private long ticksLeft; + // Paper start - add identifier + private Object identifier; + + public Object getIdentifier() { + return this.identifier; + } + // Paper end - add identifier + public Ticket(TicketType type, int ticketLevel) { - this(type, ticketLevel, type.timeout()); + // Paper start - add identifier + this(type, ticketLevel, null); + } + public Ticket(TicketType type, int ticketLevel, Object identifier) { + this(type, ticketLevel, type.timeout(), identifier); + // Paper end - add identifier } private Ticket(TicketType type, int ticketLevel, long ticksLeft) { + // Paper start - add identifier + this(type, ticketLevel, ticksLeft, null); + } + private Ticket(TicketType type, int ticketLevel, long ticksLeft, Object identifier) { + this.identifier = identifier; + // Paper end - add identifier this.type = type; this.ticketLevel = ticketLevel; this.ticksLeft = ticksLeft;