Merge branch 'dev' into 'master'
2.1.1 See merge request ajg0702/ajqueue!32
This commit is contained in:
@@ -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
@@ -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();
|
||||
}
|
||||
}
|
||||
|
||||
+2
-2
@@ -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);
|
||||
}
|
||||
|
||||
+2
@@ -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());
|
||||
}
|
||||
|
||||
|
||||
+8
-1
@@ -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;
|
||||
|
||||
+2
@@ -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()) {
|
||||
|
||||
+8
-1
@@ -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;
|
||||
}
|
||||
|
||||
@@ -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
|
||||
Reference in New Issue
Block a user