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 {
|
publishing {
|
||||||
publications {
|
publications {
|
||||||
create<MavenPublication>("mavenJava") {
|
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.players.QueuePlayer;
|
||||||
import us.ajg0702.queue.api.queues.QueueServer;
|
import us.ajg0702.queue.api.queues.QueueServer;
|
||||||
|
|
||||||
|
import java.util.HashMap;
|
||||||
|
|
||||||
public interface QueueManager {
|
public interface QueueManager {
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@@ -123,4 +125,6 @@ public interface QueueManager {
|
|||||||
ImmutableList<QueueServer> getPlayerQueues(AdaptedPlayer p);
|
ImmutableList<QueueServer> getPlayerQueues(AdaptedPlayer p);
|
||||||
|
|
||||||
void clear(AdaptedPlayer player);
|
void clear(AdaptedPlayer player);
|
||||||
|
|
||||||
|
HashMap<QueuePlayer, Integer> getSendingAttempts();
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -245,6 +245,11 @@ public interface QueueServer {
|
|||||||
*/
|
*/
|
||||||
boolean canJoinFull(AdaptedPlayer player);
|
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
|
* elliot is bad
|
||||||
|
|||||||
@@ -28,4 +28,9 @@ public interface AdaptedServerPing extends Handle {
|
|||||||
* @return The maximum number of players that can join
|
* @return The maximum number of players that can join
|
||||||
*/
|
*/
|
||||||
int getMaxPlayers();
|
int getMaxPlayers();
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Temporarly adds one player to the player count
|
||||||
|
*/
|
||||||
|
void addPlayer();
|
||||||
}
|
}
|
||||||
|
|||||||
+1
-1
@@ -12,7 +12,7 @@ repositories {
|
|||||||
}
|
}
|
||||||
|
|
||||||
allprojects {
|
allprojects {
|
||||||
version = "2.1.0"
|
version = "2.1.1"
|
||||||
group = "us.ajg0702"
|
group = "us.ajg0702"
|
||||||
|
|
||||||
plugins.apply("java")
|
plugins.apply("java")
|
||||||
|
|||||||
@@ -3,6 +3,7 @@ package us.ajg0702.queue.common;
|
|||||||
import com.google.common.collect.ImmutableList;
|
import com.google.common.collect.ImmutableList;
|
||||||
import net.kyori.adventure.text.Component;
|
import net.kyori.adventure.text.Component;
|
||||||
import net.kyori.adventure.text.serializer.plain.PlainTextComponentSerializer;
|
import net.kyori.adventure.text.serializer.plain.PlainTextComponentSerializer;
|
||||||
|
import org.jetbrains.annotations.NotNull;
|
||||||
import us.ajg0702.queue.api.EventHandler;
|
import us.ajg0702.queue.api.EventHandler;
|
||||||
import us.ajg0702.queue.api.commands.IBaseCommand;
|
import us.ajg0702.queue.api.commands.IBaseCommand;
|
||||||
import us.ajg0702.queue.api.players.AdaptedPlayer;
|
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.api.server.AdaptedServer;
|
||||||
import us.ajg0702.queue.commands.commands.PlayerSender;
|
import us.ajg0702.queue.commands.commands.PlayerSender;
|
||||||
import us.ajg0702.queue.common.players.QueuePlayerImpl;
|
import us.ajg0702.queue.common.players.QueuePlayerImpl;
|
||||||
|
import us.ajg0702.queue.common.utils.Debugger;
|
||||||
|
|
||||||
import java.io.ByteArrayInputStream;
|
import java.io.ByteArrayInputStream;
|
||||||
import java.io.DataInputStream;
|
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")) {
|
if((pos <= 1 && server.getServerNames().contains(player.getServerName())) || main.getConfig().getBoolean("remove-player-on-server-switch")) {
|
||||||
server.removePlayer(player);
|
server.removePlayer(player);
|
||||||
server.setLastSentTime(System.currentTimeMillis());
|
server.setLastSentTime(System.currentTimeMillis());
|
||||||
|
main.getQueueManager().getSendingAttempts().remove(queuePlayer);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -172,18 +175,20 @@ public class EventHandlerImpl implements EventHandler {
|
|||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@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;
|
if(!player.isConnected()) return;
|
||||||
|
|
||||||
String plainReason = PlainTextComponentSerializer.plainText().serialize(reason);
|
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")) {
|
if(!moving && main.getConfig().getBoolean("send-fail-debug")) {
|
||||||
main.getLogger().warning("Failed to send "+player.getName()+" to "+from.getName()+". Kicked with reason: "+plainReason);
|
main.getLogger().warning("Failed to send "+player.getName()+" to "+from.getName()+". Kicked with reason: "+plainReason);
|
||||||
}
|
}
|
||||||
|
|
||||||
ImmutableList<QueueServer> queuedServers = main.getQueueManager().getPlayerQueues(player);
|
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");
|
List<String> reasons = main.getConfig().getStringList("auto-add-kick-reasons");
|
||||||
boolean shouldqueue = false;
|
boolean shouldqueue = false;
|
||||||
@@ -207,7 +212,6 @@ public class EventHandlerImpl implements EventHandler {
|
|||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
assert from != null;
|
|
||||||
for(QueueServer server : queuedServers) {
|
for(QueueServer server : queuedServers) {
|
||||||
if(!(server.getServerNames().contains(from.getName()))) continue;
|
if(!(server.getServerNames().contains(from.getName()))) continue;
|
||||||
QueuePlayer queuePlayer = server.findPlayer(player);
|
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.api.server.AdaptedServer;
|
||||||
import us.ajg0702.queue.common.players.QueuePlayerImpl;
|
import us.ajg0702.queue.common.players.QueuePlayerImpl;
|
||||||
import us.ajg0702.queue.common.queues.QueueServerImpl;
|
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.Messages;
|
||||||
import us.ajg0702.utils.common.TimeUtils;
|
import us.ajg0702.utils.common.TimeUtils;
|
||||||
|
|
||||||
@@ -86,9 +87,15 @@ public class QueueManagerImpl implements QueueManager {
|
|||||||
@Override
|
@Override
|
||||||
public boolean addToQueue(AdaptedPlayer player, QueueServer server) {
|
public boolean addToQueue(AdaptedPlayer player, QueueServer server) {
|
||||||
if(player == null || server == null) {
|
if(player == null || server == null) {
|
||||||
|
Debugger.debug("addToQueue method called, but something is null");
|
||||||
return false;
|
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())) {
|
if(main.getConfig().getBoolean("joinfrom-server-permission") && !player.hasPermission("ajqueue.joinfrom."+player.getServerName())) {
|
||||||
player.sendMessage(msgs.getComponent("errors.deny-joining-from-server"));
|
player.sendMessage(msgs.getComponent("errors.deny-joining-from-server"));
|
||||||
@@ -516,6 +523,7 @@ public class QueueManagerImpl implements QueueManager {
|
|||||||
}
|
}
|
||||||
|
|
||||||
for(QueueServer server : sendingServers) {
|
for(QueueServer server : sendingServers) {
|
||||||
|
Debugger.debug("Sending players for "+server.getName());
|
||||||
for(QueuePlayer queuePlayer : server.getQueue()) {
|
for(QueuePlayer queuePlayer : server.getQueue()) {
|
||||||
if(queuePlayer.getPlayer() != null) continue;
|
if(queuePlayer.getPlayer() != null) continue;
|
||||||
if(main.getLogic().playerDisconnectedTooLong(queuePlayer)) {
|
if(main.getLogic().playerDisconnectedTooLong(queuePlayer)) {
|
||||||
@@ -608,6 +616,10 @@ public class QueueManagerImpl implements QueueManager {
|
|||||||
}
|
}
|
||||||
server.setLastSentTime(System.currentTimeMillis());
|
server.setLastSentTime(System.currentTimeMillis());
|
||||||
nextPlayer.connect(selected);
|
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);
|
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.joinfullandbypassserver."+name) ||
|
||||||
player.hasPermission("ajqueue.joinfullandbypass");
|
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());
|
QueueLogger logger = new BungeeLogger(getLogger());
|
||||||
File dataFolder = getDataFolder();
|
File dataFolder = getDataFolder();
|
||||||
|
|
||||||
|
commandMap = new HashMap<>();
|
||||||
|
|
||||||
adventure = BungeeAudiences.create(this);
|
adventure = BungeeAudiences.create(this);
|
||||||
|
|
||||||
main = new QueueMain(
|
main = new QueueMain(
|
||||||
@@ -62,8 +64,6 @@ public class BungeeQueue extends Plugin implements Listener, Implementation {
|
|||||||
new ManageCommand(main)
|
new ManageCommand(main)
|
||||||
);
|
);
|
||||||
|
|
||||||
commandMap = new HashMap<>();
|
|
||||||
|
|
||||||
for(IBaseCommand command : commands) {
|
for(IBaseCommand command : commands) {
|
||||||
registerCommand(command);
|
registerCommand(command);
|
||||||
}
|
}
|
||||||
|
|||||||
+2
@@ -12,6 +12,7 @@ import net.md_5.bungee.api.connection.ProxiedPlayer;
|
|||||||
import org.jetbrains.annotations.NotNull;
|
import org.jetbrains.annotations.NotNull;
|
||||||
import us.ajg0702.queue.api.players.AdaptedPlayer;
|
import us.ajg0702.queue.api.players.AdaptedPlayer;
|
||||||
import us.ajg0702.queue.api.server.AdaptedServer;
|
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.BungeeQueue;
|
||||||
import us.ajg0702.queue.platforms.bungeecord.server.BungeeServer;
|
import us.ajg0702.queue.platforms.bungeecord.server.BungeeServer;
|
||||||
|
|
||||||
@@ -121,6 +122,7 @@ public class BungeePlayer implements AdaptedPlayer, Audience {
|
|||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void connect(AdaptedServer server) {
|
public void connect(AdaptedServer server) {
|
||||||
|
Debugger.debug("Attempting to send "+getName()+" to "+server.getName());
|
||||||
handle.connect(((BungeeServer) server).getHandle());
|
handle.connect(((BungeeServer) server).getHandle());
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
+8
-1
@@ -28,9 +28,11 @@ public class BungeeServerPing implements AdaptedServerPing {
|
|||||||
return desc.toPlainText();
|
return desc.toPlainText();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
int add = 0;
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public int getPlayerCount() {
|
public int getPlayerCount() {
|
||||||
return handle.getPlayers().getOnline();
|
return handle.getPlayers().getOnline()+add;
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
@@ -38,6 +40,11 @@ public class BungeeServerPing implements AdaptedServerPing {
|
|||||||
return handle.getPlayers().getMax();
|
return handle.getPlayers().getMax();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void addPlayer() {
|
||||||
|
add++;
|
||||||
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public ServerPing getHandle() {
|
public ServerPing getHandle() {
|
||||||
return handle;
|
return handle;
|
||||||
|
|||||||
+2
@@ -14,6 +14,7 @@ import org.jetbrains.annotations.NotNull;
|
|||||||
import us.ajg0702.queue.api.players.AdaptedPlayer;
|
import us.ajg0702.queue.api.players.AdaptedPlayer;
|
||||||
import us.ajg0702.queue.api.server.AdaptedServer;
|
import us.ajg0702.queue.api.server.AdaptedServer;
|
||||||
import us.ajg0702.queue.common.QueueMain;
|
import us.ajg0702.queue.common.QueueMain;
|
||||||
|
import us.ajg0702.queue.common.utils.Debugger;
|
||||||
|
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
import java.util.Optional;
|
import java.util.Optional;
|
||||||
@@ -117,6 +118,7 @@ public class VelocityPlayer implements AdaptedPlayer, Audience {
|
|||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void connect(AdaptedServer server) {
|
public void connect(AdaptedServer server) {
|
||||||
|
Debugger.debug("Attempting to send "+getName()+" to "+server.getName());
|
||||||
handle.createConnectionRequest((RegisteredServer) server.getHandle()).connect().thenAcceptAsync(
|
handle.createConnectionRequest((RegisteredServer) server.getHandle()).connect().thenAcceptAsync(
|
||||||
result -> {
|
result -> {
|
||||||
if(!result.isSuccessful()) {
|
if(!result.isSuccessful()) {
|
||||||
|
|||||||
+8
-1
@@ -22,9 +22,11 @@ public class VelocityServerPing implements AdaptedServerPing {
|
|||||||
return PlainTextComponentSerializer.plainText().serialize(handle.getDescriptionComponent());
|
return PlainTextComponentSerializer.plainText().serialize(handle.getDescriptionComponent());
|
||||||
}
|
}
|
||||||
|
|
||||||
|
int add = 0;
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public int getPlayerCount() {
|
public int getPlayerCount() {
|
||||||
return handle.getPlayers().map(ServerPing.Players::getOnline).orElse(0);
|
return handle.getPlayers().map(ServerPing.Players::getOnline).orElse(0)+add;
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
@@ -32,6 +34,11 @@ public class VelocityServerPing implements AdaptedServerPing {
|
|||||||
return handle.getPlayers().map(ServerPing.Players::getMax).orElse(0);
|
return handle.getPlayers().map(ServerPing.Players::getMax).orElse(0);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void addPlayer() {
|
||||||
|
add++;
|
||||||
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public ServerPing getHandle() {
|
public ServerPing getHandle() {
|
||||||
return handle;
|
return handle;
|
||||||
|
|||||||
@@ -17,7 +17,7 @@ public class Commands implements CommandExecutor {
|
|||||||
|
|
||||||
@Override
|
@Override
|
||||||
public boolean onCommand(@NotNull CommandSender sender, @NotNull Command command, @NotNull String label, String[] args) {
|
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."));
|
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;
|
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!
|
# If you disable this, ajQueue will not be able to tell if the server is whitelisted!
|
||||||
take-over-motd-for-whitelist: true
|
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
|
# Dont touch this
|
||||||
config-version: 2
|
config-version: 3
|
||||||
Reference in New Issue
Block a user