Skip to content

Commit

Permalink
Remove special auth first code
Browse files Browse the repository at this point in the history
Finally!!!
  • Loading branch information
AlexProgrammerDE committed Nov 1, 2022
1 parent 3290690 commit d280a7a
Show file tree
Hide file tree
Showing 3 changed files with 15 additions and 108 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -20,7 +20,6 @@
package net.pistonmaster.pistonqueue.bungee.listeners;

import net.md_5.bungee.api.chat.TextComponent;
import net.md_5.bungee.api.config.ServerInfo;
import net.md_5.bungee.api.event.*;
import net.md_5.bungee.api.plugin.Listener;
import net.md_5.bungee.event.EventHandler;
Expand All @@ -30,7 +29,6 @@
import net.pistonmaster.pistonqueue.shared.QueueListenerShared;
import net.pistonmaster.pistonqueue.shared.events.PQKickedFromServerEvent;
import net.pistonmaster.pistonqueue.shared.events.PQPreLoginEvent;
import net.pistonmaster.pistonqueue.shared.events.PQServerConnectedEvent;
import net.pistonmaster.pistonqueue.shared.events.PQServerPreConnectEvent;

import java.util.Optional;
Expand Down Expand Up @@ -58,35 +56,11 @@ public void onSend(ServerConnectEvent event) {
onPreConnect(wrap(event));
}

@EventHandler
public void onQueueSend(ServerSwitchEvent event) {
onConnected(wrap(event));
}

@EventHandler
public void onKick(ServerKickEvent event) {
onKick(wrap(event));
}

private PQServerConnectedEvent wrap(ServerSwitchEvent event) {
return new PQServerConnectedEvent() {
@Override
public PlayerWrapper getPlayer() {
return plugin.wrapPlayer(event.getPlayer());
}

@Override
public Optional<String> getPreviousServer() {
return Optional.ofNullable(event.getFrom()).map(ServerInfo::getName);
}

@Override
public String getServer() {
return event.getPlayer().getServer().getInfo().getName();
}
};
}

private PQServerPreConnectEvent wrap(ServerConnectEvent event) {
return new PQServerPreConnectEvent() {
@Override
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -26,7 +26,6 @@
import lombok.Setter;
import net.pistonmaster.pistonqueue.shared.events.PQKickedFromServerEvent;
import net.pistonmaster.pistonqueue.shared.events.PQPreLoginEvent;
import net.pistonmaster.pistonqueue.shared.events.PQServerConnectedEvent;
import net.pistonmaster.pistonqueue.shared.events.PQServerPreConnectEvent;
import net.pistonmaster.pistonqueue.shared.utils.BanType;

Expand Down Expand Up @@ -91,32 +90,20 @@ protected void onPreConnect(PQServerPreConnectEvent event) {
PlayerWrapper player = event.getPlayer();
QueueType type = QueueType.getQueueType(player::hasPermission);

if (Config.AUTH_FIRST) {
if (Config.ALWAYS_QUEUE)
return;
if (player.getCurrentServer().isPresent() && (!Config.AUTH_FIRST || !isAuthToMain(event))) {
return;
}

if (isAnyoneQueuedOfType(type))
return;
if ((Config.KICK_WHEN_DOWN && !mainOnline) || !queueOnline || !authOnline) { // authOnline is always true if auth is not enabled
player.disconnect(Config.SERVER_DOWN_KICK_MESSAGE);
return;
}

Optional<String> optionalTarget = event.getTarget();
if (!isMainFull(type) && optionalTarget.isPresent() && optionalTarget.get().equals(Config.QUEUE_SERVER)) {
if (Config.ALWAYS_QUEUE || isServerFull(type)) {
if (player.hasPermission(Config.QUEUE_BYPASS_PERMISSION)) {
event.setTarget(Config.MAIN_SERVER);
}
} else {
if (player.getCurrentServer().isPresent())
return;

if ((Config.KICK_WHEN_DOWN && !mainOnline) || !queueOnline || !authOnline) { // authOnline is always true if auth is not enabled
player.disconnect(Config.SERVER_DOWN_KICK_MESSAGE);
return;
}

if (Config.ALWAYS_QUEUE || isServerFull(type)) {
if (player.hasPermission(Config.QUEUE_BYPASS_PERMISSION)) {
event.setTarget(Config.MAIN_SERVER);
} else {
putQueue(player, event);
}
} else {
putQueue(player, event);
}
}
}
Expand All @@ -141,35 +128,6 @@ private void putQueue(PlayerWrapper player, PQServerPreConnectEvent event) {
}
}

protected void onConnected(PQServerConnectedEvent event) {
PlayerWrapper player = event.getPlayer();

if (Config.AUTH_FIRST) {
if (isAuthToQueue(event) && player.hasPermission(Config.QUEUE_BYPASS_PERMISSION)) {
player.connect(Config.MAIN_SERVER);
return;
}

// It's not present when joining!
Optional<String> currentServer = player.getCurrentServer();
if (!event.getPreviousServer().isPresent() && currentServer.isPresent() && currentServer.get().equals(Config.QUEUE_SERVER)) {
if (Config.ALLOW_AUTH_SKIP)
putQueueAuthFirst(player);
} else if (isAuthToQueue(event)) {
putQueueAuthFirst(player);
}
}
}

public void putQueueAuthFirst(PlayerWrapper player) {
QueueType type = QueueType.getQueueType(player::hasPermission);

preQueueAdding(player, type);

// Store the data concerning the player's original destination
type.getQueueMap().put(player.getUniqueId(), Config.MAIN_SERVER);
}

private void preQueueAdding(PlayerWrapper player, QueueType type) {
player.sendPlayerListHeaderAndFooter(type.getHeader(), type.getFooter());

Expand All @@ -194,9 +152,10 @@ private boolean isAnyoneQueuedOfType(QueueType type) {
return !type.getQueueMap().isEmpty();
}

private boolean isAuthToQueue(PQServerConnectedEvent event) {
Optional<String> previousServer = event.getPreviousServer();
return previousServer.isPresent() && previousServer.get().equals(Config.AUTH_SERVER) && event.getServer().equals(Config.QUEUE_SERVER);
private boolean isAuthToMain(PQServerPreConnectEvent event) {
Optional<String> previousServer = event.getPlayer().getCurrentServer();
return previousServer.isPresent() && previousServer.get().equals(Config.AUTH_SERVER)
&& event.getTarget().isPresent() && event.getTarget().get().equals(Config.MAIN_SERVER);
}

public void moveQueue() {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -23,7 +23,6 @@
import com.velocitypowered.api.event.connection.PostLoginEvent;
import com.velocitypowered.api.event.connection.PreLoginEvent;
import com.velocitypowered.api.event.player.KickedFromServerEvent;
import com.velocitypowered.api.event.player.ServerConnectedEvent;
import com.velocitypowered.api.event.player.ServerPreConnectEvent;
import com.velocitypowered.api.proxy.server.RegisteredServer;
import com.velocitypowered.api.proxy.server.ServerInfo;
Expand All @@ -32,7 +31,6 @@
import net.pistonmaster.pistonqueue.shared.QueueListenerShared;
import net.pistonmaster.pistonqueue.shared.events.PQKickedFromServerEvent;
import net.pistonmaster.pistonqueue.shared.events.PQPreLoginEvent;
import net.pistonmaster.pistonqueue.shared.events.PQServerConnectedEvent;
import net.pistonmaster.pistonqueue.shared.events.PQServerPreConnectEvent;
import net.pistonmaster.pistonqueue.velocity.PistonQueueVelocity;
import net.pistonmaster.pistonqueue.velocity.utils.ChatUtils;
Expand Down Expand Up @@ -67,30 +65,6 @@ public void onSend(ServerPreConnectEvent event) {
onPreConnect(wrap(event));
}

@Subscribe
public void onQueueSend(ServerConnectedEvent event) {
onConnected(wrap(event));
}

private PQServerConnectedEvent wrap(ServerConnectedEvent event) {
return new PQServerConnectedEvent() {
@Override
public PlayerWrapper getPlayer() {
return plugin.wrapPlayer(event.getPlayer());
}

@Override
public Optional<String> getPreviousServer() {
return event.getPreviousServer().map(RegisteredServer::getServerInfo).map(ServerInfo::getName);
}

@Override
public String getServer() {
return event.getServer().getServerInfo().getName();
}
};
}

private PQServerPreConnectEvent wrap(ServerPreConnectEvent event) {
return new PQServerPreConnectEvent() {
@Override
Expand Down

0 comments on commit d280a7a

Please sign in to comment.