Commits
md_5 authored af4d848ffd5
49 49 | + boolean removeTicket(long i, Ticket<?> ticket) { // CraftBukkit - void -> boolean |
50 50 | ArraySetSorted<Ticket<?>> arraysetsorted = this.getTickets(i); |
51 51 | |
52 52 | + boolean removed = false; // CraftBukkit |
53 53 | if (arraysetsorted.remove(ticket)) { |
54 54 | - ; |
55 55 | + removed = true; // CraftBukkit |
56 56 | } |
57 57 | |
58 58 | if (arraysetsorted.isEmpty()) { |
59 - | |
59 + | |
60 60 | } |
61 61 | |
62 62 | this.ticketTracker.update(i, getTicketLevelAt(arraysetsorted), false); |
63 63 | + return removed; // CraftBukkit |
64 64 | } |
65 65 | |
66 66 | public <T> void addTicket(TicketType<T> tickettype, ChunkCoordIntPair chunkcoordintpair, int i, T t0) { |
67 - | - this.addTicket(chunkcoordintpair.toLong(), new Ticket<>(tickettype, i, t0)); |
67 + | |
68 + | } |
69 + | |
70 + | public <T> void addRegionTicket(TicketType<T> tickettype, ChunkCoordIntPair chunkcoordintpair, int i, T t0) { |
68 71 | + // CraftBukkit start |
69 - | + this.addTicketAtLevel(tickettype, chunkcoordintpair, i, t0); |
72 + | + addRegionTicketAtDistance(tickettype, chunkcoordintpair, i, t0); |
70 73 | + } |
71 74 | + |
72 - | + public <T> boolean addTicketAtLevel(TicketType<T> ticketType, ChunkCoordIntPair chunkcoordintpair, int level, T identifier) { |
73 - | + return this.addTicket(chunkcoordintpair.toLong(), new Ticket<>(ticketType, level, identifier)); |
75 + | + public <T> boolean addRegionTicketAtDistance(TicketType<T> tickettype, ChunkCoordIntPair chunkcoordintpair, int i, T t0) { |
74 76 | + // CraftBukkit end |
77 + | Ticket<T> ticket = new Ticket<>(tickettype, 33 - i, t0); |
78 + | long j = chunkcoordintpair.toLong(); |
79 + | |
80 + | - this.addTicket(j, ticket); |
81 + | + boolean added = this.addTicket(j, ticket); // CraftBukkit |
82 + | this.tickingTicketsTracker.addTicket(j, ticket); |
83 + | + return added; // CraftBukkit |
75 84 | } |
76 85 | |
77 - | public <T> void removeTicket(TicketType<T> tickettype, ChunkCoordIntPair chunkcoordintpair, int i, T t0) { |
78 - | - Ticket<T> ticket = new Ticket<>(tickettype, i, t0); |
86 + | public <T> void removeRegionTicket(TicketType<T> tickettype, ChunkCoordIntPair chunkcoordintpair, int i, T t0) { |
79 87 | + // CraftBukkit start |
80 - | + this.removeTicketAtLevel(tickettype, chunkcoordintpair, i, t0); |
88 + | + removeRegionTicketAtDistance(tickettype, chunkcoordintpair, i, t0); |
81 89 | + } |
82 - | |
83 - | - this.removeTicket(chunkcoordintpair.toLong(), ticket); |
84 - | + public <T> boolean removeTicketAtLevel(TicketType<T> ticketType, ChunkCoordIntPair chunkcoordintpair, int level, T identifier) { |
85 - | + Ticket<T> ticket = new Ticket<>(ticketType, level, identifier); |
86 90 | + |
87 - | + return this.removeTicket(chunkcoordintpair.toLong(), ticket); |
91 + | + public <T> boolean removeRegionTicketAtDistance(TicketType<T> tickettype, ChunkCoordIntPair chunkcoordintpair, int i, T t0) { |
88 92 | + // CraftBukkit end |
93 + | Ticket<T> ticket = new Ticket<>(tickettype, 33 - i, t0); |
94 + | long j = chunkcoordintpair.toLong(); |
95 + | |
96 + | - this.removeTicket(j, ticket); |
97 + | + boolean removed = this.removeTicket(j, ticket); // CraftBukkit |
98 + | this.tickingTicketsTracker.removeTicket(j, ticket); |
99 + | + return removed; // CraftBukkit |
89 100 | } |
90 101 | |
91 - | public <T> void addRegionTicket(TicketType<T> tickettype, ChunkCoordIntPair chunkcoordintpair, int i, T t0) { |
92 - | |
102 + | private ArraySetSorted<Ticket<?>> getTickets(long i) { |
103 + | |
93 104 | ChunkCoordIntPair chunkcoordintpair = sectionposition.chunk(); |
94 105 | long i = chunkcoordintpair.toLong(); |
95 106 | ObjectSet<EntityPlayer> objectset = (ObjectSet) this.playersPerChunk.get(i); |
96 107 | + if (objectset == null) return; // CraftBukkit - SPIGOT-6208 |
97 108 | |
98 109 | objectset.remove(entityplayer); |
99 110 | if (objectset.isEmpty()) { |
100 - | |
111 + | |
101 112 | return this.tickingTicketsTracker; |
102 113 | } |
103 114 | |
104 115 | + // CraftBukkit start |
105 116 | + public <T> void removeAllTicketsFor(TicketType<T> ticketType, int ticketLevel, T ticketIdentifier) { |
106 117 | + Ticket<T> target = new Ticket<>(ticketType, ticketLevel, ticketIdentifier); |
107 118 | + |
108 119 | + for (java.util.Iterator<Entry<ArraySetSorted<Ticket<?>>>> iterator = this.tickets.long2ObjectEntrySet().fastIterator(); iterator.hasNext();) { |
109 120 | + Entry<ArraySetSorted<Ticket<?>>> entry = iterator.next(); |
110 121 | + ArraySetSorted<Ticket<?>> tickets = entry.getValue(); |