Skip to content

Commit

Permalink
Fix player being removed before allow-group-requeue could work
Browse files Browse the repository at this point in the history
  • Loading branch information
ajgeiss0702 committed Jul 21, 2023
1 parent 3910804 commit 3a33b7b
Show file tree
Hide file tree
Showing 3 changed files with 20 additions and 1 deletion.
Original file line number Diff line number Diff line change
@@ -1,6 +1,7 @@
package us.ajg0702.queue.api.players;

import us.ajg0702.queue.api.queues.QueueServer;
import us.ajg0702.queue.api.server.AdaptedServer;

import javax.annotation.Nullable;
import java.util.UUID;
Expand Down Expand Up @@ -68,4 +69,10 @@ public interface QueuePlayer {
* @return the max number of seconds this player can be offline before being removed from the queue
*/
int getMaxOfflineTime();

/**
* Gets the server that the player was in when they joined the queue
* @return the server that the player was in when they joined the queue
*/
AdaptedServer getInitialServer();
}
Original file line number Diff line number Diff line change
Expand Up @@ -626,7 +626,9 @@ public void sendPlayers(QueueServer queueServer) {

// If the first person int the queue is offline or already in the server, find the next online player in the queue
int i = 0;
while((nextPlayer == null || server.getServerNames().contains(nextPlayer.getServerName())) && i < server.getQueue().size()) {
List<String> excludableServers = new ArrayList<>(server.getServerNames());
if(nextQueuePlayer.getInitialServer() != null) excludableServers.remove(nextQueuePlayer.getInitialServer().getName());
while((nextPlayer == null || excludableServers.contains(nextPlayer.getServerName())) && i < server.getQueue().size()) {
if(nextPlayer != null) { // Remove them if they are already in the server
server.removePlayer(nextQueuePlayer);
if(server.getQueue().size() > i) {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -5,6 +5,7 @@
import us.ajg0702.queue.api.players.AdaptedPlayer;
import us.ajg0702.queue.api.players.QueuePlayer;
import us.ajg0702.queue.api.queues.QueueServer;
import us.ajg0702.queue.api.server.AdaptedServer;

import java.util.UUID;

Expand All @@ -21,6 +22,8 @@ public class QueuePlayerImpl implements QueuePlayer {

private final int maxOfflineTime;

private final AdaptedServer initialServer;

public int lastPosition;

public QueuePlayerImpl(UUID uuid, String name, QueueServer server, int highestPriority, int maxOfflineTime) {
Expand All @@ -42,6 +45,8 @@ private QueuePlayerImpl(@Nullable AdaptedPlayer player, String name, @NotNull UU

this.maxOfflineTime = maxOfflineTime;

initialServer = player != null ? player.getCurrentServer() : null;

lastPosition = getPosition();
}

Expand Down Expand Up @@ -106,6 +111,11 @@ public int getMaxOfflineTime() {
return maxOfflineTime;
}

@Override
public AdaptedServer getInitialServer() {
return initialServer;
}


private long leaveTime = 0;
public void setLeaveTime(long leaveTime) {
Expand Down

0 comments on commit 3a33b7b

Please sign in to comment.