Merge branch 'dev' into 'master'

2.1.1

See merge request ajg0702/ajqueue!32
This commit is contained in:
ajgeiss0702
2021-10-23 19:16:02 +00:00
15 changed files with 75 additions and 12 deletions
+1 -1
View File
@@ -24,7 +24,7 @@ dependencies {
publishing {
publications {
create<MavenPublication>("mavenJava") {
artifact(tasks["jar"])
from(components["java"])
}
}
@@ -5,6 +5,8 @@ import us.ajg0702.queue.api.players.AdaptedPlayer;
import us.ajg0702.queue.api.players.QueuePlayer;
import us.ajg0702.queue.api.queues.QueueServer;
import java.util.HashMap;
public interface QueueManager {
/**
@@ -123,4 +125,6 @@ public interface QueueManager {
ImmutableList<QueueServer> getPlayerQueues(AdaptedPlayer p);
void clear(AdaptedPlayer player);
HashMap<QueuePlayer, Integer> getSendingAttempts();
}
@@ -245,6 +245,11 @@ public interface QueueServer {
*/
boolean canJoinFull(AdaptedPlayer player);
/**
* Adds one to the player count for a server (temporarily until the next server ping)
*/
void addPlayer(AdaptedServer server);
/**
* elliot is bad
@@ -28,4 +28,9 @@ public interface AdaptedServerPing extends Handle {
* @return The maximum number of players that can join
*/
int getMaxPlayers();
/**
* Temporarly adds one player to the player count
*/
void addPlayer();
}
+1 -1
View File
@@ -12,7 +12,7 @@ repositories {
}
allprojects {
version = "2.1.0"
version = "2.1.1"
group = "us.ajg0702"
plugins.apply("java")
@@ -3,6 +3,7 @@ package us.ajg0702.queue.common;
import com.google.common.collect.ImmutableList;
import net.kyori.adventure.text.Component;
import net.kyori.adventure.text.serializer.plain.PlainTextComponentSerializer;
import org.jetbrains.annotations.NotNull;
import us.ajg0702.queue.api.EventHandler;
import us.ajg0702.queue.api.commands.IBaseCommand;
import us.ajg0702.queue.api.players.AdaptedPlayer;
@@ -11,6 +12,7 @@ import us.ajg0702.queue.api.queues.QueueServer;
import us.ajg0702.queue.api.server.AdaptedServer;
import us.ajg0702.queue.commands.commands.PlayerSender;
import us.ajg0702.queue.common.players.QueuePlayerImpl;
import us.ajg0702.queue.common.utils.Debugger;
import java.io.ByteArrayInputStream;
import java.io.DataInputStream;
@@ -153,6 +155,7 @@ public class EventHandlerImpl implements EventHandler {
if((pos <= 1 && server.getServerNames().contains(player.getServerName())) || main.getConfig().getBoolean("remove-player-on-server-switch")) {
server.removePlayer(player);
server.setLastSentTime(System.currentTimeMillis());
main.getQueueManager().getSendingAttempts().remove(queuePlayer);
}
}
@@ -172,18 +175,20 @@ public class EventHandlerImpl implements EventHandler {
}
@Override
public void onServerKick(AdaptedPlayer player, AdaptedServer from, Component reason, boolean moving) {
public void onServerKick(AdaptedPlayer player, @NotNull AdaptedServer from, Component reason, boolean moving) {
if(!player.isConnected()) return;
String plainReason = PlainTextComponentSerializer.plainText().serialize(reason);
Debugger.debug(player.getName()+" kicked! Moving: "+moving+" from: "+from.getName()+" plainReason: "+plainReason );
if(!moving && main.getConfig().getBoolean("send-fail-debug")) {
main.getLogger().warning("Failed to send "+player.getName()+" to "+from.getName()+". Kicked with reason: "+plainReason);
}
ImmutableList<QueueServer> queuedServers = main.getQueueManager().getPlayerQueues(player);
if(from != null && !queuedServers.contains(main.getQueueManager().findServer(from.getName())) && main.getConfig().getBoolean("auto-add-to-queue-on-kick")) {
if(!queuedServers.contains(main.getQueueManager().findServer(from.getName())) && main.getConfig().getBoolean("auto-add-to-queue-on-kick")) {
List<String> reasons = main.getConfig().getStringList("auto-add-kick-reasons");
boolean shouldqueue = false;
@@ -207,7 +212,6 @@ public class EventHandlerImpl implements EventHandler {
}
assert from != null;
for(QueueServer server : queuedServers) {
if(!(server.getServerNames().contains(from.getName()))) continue;
QueuePlayer queuePlayer = server.findPlayer(player);
@@ -10,6 +10,7 @@ import us.ajg0702.queue.api.queues.QueueServer;
import us.ajg0702.queue.api.server.AdaptedServer;
import us.ajg0702.queue.common.players.QueuePlayerImpl;
import us.ajg0702.queue.common.queues.QueueServerImpl;
import us.ajg0702.queue.common.utils.Debugger;
import us.ajg0702.utils.common.Messages;
import us.ajg0702.utils.common.TimeUtils;
@@ -86,9 +87,15 @@ public class QueueManagerImpl implements QueueManager {
@Override
public boolean addToQueue(AdaptedPlayer player, QueueServer server) {
if(player == null || server == null) {
Debugger.debug("addToQueue method called, but something is null");
return false;
}
if(!player.isConnected()) return false;
if(!player.isConnected()) {
Debugger.debug("addToQueue method called, but player is not connected");
return false;
}
Debugger.debug("addToQueue method called for "+player.getName()+" to "+server.getName());
if(main.getConfig().getBoolean("joinfrom-server-permission") && !player.hasPermission("ajqueue.joinfrom."+player.getServerName())) {
player.sendMessage(msgs.getComponent("errors.deny-joining-from-server"));
@@ -516,6 +523,7 @@ public class QueueManagerImpl implements QueueManager {
}
for(QueueServer server : sendingServers) {
Debugger.debug("Sending players for "+server.getName());
for(QueuePlayer queuePlayer : server.getQueue()) {
if(queuePlayer.getPlayer() != null) continue;
if(main.getLogic().playerDisconnectedTooLong(queuePlayer)) {
@@ -608,6 +616,10 @@ public class QueueManagerImpl implements QueueManager {
}
server.setLastSentTime(System.currentTimeMillis());
nextPlayer.connect(selected);
server.addPlayer(selected);
if(main.getConfig().getBoolean("debug")) {
Debugger.debug(selected.getName()+" player count is now set to "+ server.getLastPings().get(selected).getPlayerCount());
}
}
}
@@ -642,4 +654,9 @@ public class QueueManagerImpl implements QueueManager {
sendingNowAntiSpam.remove(next);
}
}
@Override
public HashMap<QueuePlayer, Integer> getSendingAttempts() {
return sendingAttempts;
}
}
@@ -453,4 +453,10 @@ public class QueueServerImpl implements QueueServer {
player.hasPermission("ajqueue.joinfullandbypassserver."+name) ||
player.hasPermission("ajqueue.joinfullandbypass");
}
@Override
public void addPlayer(AdaptedServer server) {
if(!pings.containsKey(server)) throw new IllegalArgumentException("Server is not in this group!");
pings.get(server).addPlayer();
}
}
@@ -43,6 +43,8 @@ public class BungeeQueue extends Plugin implements Listener, Implementation {
QueueLogger logger = new BungeeLogger(getLogger());
File dataFolder = getDataFolder();
commandMap = new HashMap<>();
adventure = BungeeAudiences.create(this);
main = new QueueMain(
@@ -62,8 +64,6 @@ public class BungeeQueue extends Plugin implements Listener, Implementation {
new ManageCommand(main)
);
commandMap = new HashMap<>();
for(IBaseCommand command : commands) {
registerCommand(command);
}
@@ -12,6 +12,7 @@ import net.md_5.bungee.api.connection.ProxiedPlayer;
import org.jetbrains.annotations.NotNull;
import us.ajg0702.queue.api.players.AdaptedPlayer;
import us.ajg0702.queue.api.server.AdaptedServer;
import us.ajg0702.queue.common.utils.Debugger;
import us.ajg0702.queue.platforms.bungeecord.BungeeQueue;
import us.ajg0702.queue.platforms.bungeecord.server.BungeeServer;
@@ -121,6 +122,7 @@ public class BungeePlayer implements AdaptedPlayer, Audience {
@Override
public void connect(AdaptedServer server) {
Debugger.debug("Attempting to send "+getName()+" to "+server.getName());
handle.connect(((BungeeServer) server).getHandle());
}
@@ -28,9 +28,11 @@ public class BungeeServerPing implements AdaptedServerPing {
return desc.toPlainText();
}
int add = 0;
@Override
public int getPlayerCount() {
return handle.getPlayers().getOnline();
return handle.getPlayers().getOnline()+add;
}
@Override
@@ -38,6 +40,11 @@ public class BungeeServerPing implements AdaptedServerPing {
return handle.getPlayers().getMax();
}
@Override
public void addPlayer() {
add++;
}
@Override
public ServerPing getHandle() {
return handle;
@@ -14,6 +14,7 @@ import org.jetbrains.annotations.NotNull;
import us.ajg0702.queue.api.players.AdaptedPlayer;
import us.ajg0702.queue.api.server.AdaptedServer;
import us.ajg0702.queue.common.QueueMain;
import us.ajg0702.queue.common.utils.Debugger;
import java.util.List;
import java.util.Optional;
@@ -117,6 +118,7 @@ public class VelocityPlayer implements AdaptedPlayer, Audience {
@Override
public void connect(AdaptedServer server) {
Debugger.debug("Attempting to send "+getName()+" to "+server.getName());
handle.createConnectionRequest((RegisteredServer) server.getHandle()).connect().thenAcceptAsync(
result -> {
if(!result.isSuccessful()) {
@@ -22,9 +22,11 @@ public class VelocityServerPing implements AdaptedServerPing {
return PlainTextComponentSerializer.plainText().serialize(handle.getDescriptionComponent());
}
int add = 0;
@Override
public int getPlayerCount() {
return handle.getPlayers().map(ServerPing.Players::getOnline).orElse(0);
return handle.getPlayers().map(ServerPing.Players::getOnline).orElse(0)+add;
}
@Override
@@ -32,6 +34,11 @@ public class VelocityServerPing implements AdaptedServerPing {
return handle.getPlayers().map(ServerPing.Players::getMax).orElse(0);
}
@Override
public void addPlayer() {
add++;
}
@Override
public ServerPing getHandle() {
return handle;
@@ -17,7 +17,7 @@ public class Commands implements CommandExecutor {
@Override
public boolean onCommand(@NotNull CommandSender sender, @NotNull Command command, @NotNull String label, String[] args) {
if(!pl.hasProxy()) {
if(!pl.hasProxy() && pl.config.getBoolean("check-proxy-response")) {
sender.sendMessage(color("&cajQueue must also be installed on the proxy!&7 If it has been installed on the proxy, make sure it loaded correctly and try relogging."));
return true;
}
+5 -1
View File
@@ -11,8 +11,12 @@ send-queue-commands-in-batches: false
# If you disable this, ajQueue will not be able to tell if the server is whitelisted!
take-over-motd-for-whitelist: true
# Should we check if the proxy responds to plugin messages?
# For some reason this seems to fail for some people,
# so disable this if ajqueue says its not installed on the proxy when it actually is
check-proxy-response: true
# Dont touch this
config-version: 2
config-version: 3