Merge branch 'dev' of gitlab.com:ajg0702/ajqueue into dev
# Conflicts: # api/src/main/java/us/ajg0702/queue/api/queues/QueueServer.java
This commit is contained in:
@@ -3,6 +3,7 @@ package us.ajg0702.queue.api.commands;
|
||||
import net.kyori.adventure.audience.Audience;
|
||||
import us.ajg0702.queue.api.util.Handle;
|
||||
|
||||
@SuppressWarnings("BooleanMethodIsAlwaysInverted")
|
||||
public interface ICommandSender extends Handle, Audience {
|
||||
boolean hasPermission(String permission);
|
||||
boolean isPlayer();
|
||||
|
||||
@@ -13,7 +13,7 @@ import java.util.UUID;
|
||||
/**
|
||||
* Represents a server or a group that can be queued for
|
||||
*/
|
||||
@SuppressWarnings("unused")
|
||||
@SuppressWarnings({"unused", "BooleanMethodIsAlwaysInverted"})
|
||||
public interface QueueServer {
|
||||
|
||||
/**
|
||||
@@ -238,6 +238,13 @@ public interface QueueServer {
|
||||
*/
|
||||
Balancer getBalancer();
|
||||
|
||||
/**
|
||||
* Checks if the player can join this server even if its full
|
||||
* @param player The player
|
||||
* @return If the player can join this server if its full
|
||||
*/
|
||||
boolean canJoinFull(AdaptedPlayer player);
|
||||
|
||||
|
||||
/**
|
||||
* elliot is bad
|
||||
|
||||
@@ -54,6 +54,7 @@ public class BaseCommand implements IBaseCommand {
|
||||
sender.sendMessage(Component.text("Unimplemented command"));
|
||||
}
|
||||
|
||||
@SuppressWarnings("BooleanMethodIsAlwaysInverted")
|
||||
public boolean checkPermission(ICommandSender sender) {
|
||||
if(getPermission() != null && !sender.hasPermission(getPermission())) {
|
||||
sender.sendMessage(getMessages().getComponent("noperm"));
|
||||
|
||||
@@ -33,6 +33,10 @@ public class EventHandlerImpl implements EventHandler {
|
||||
try {
|
||||
String subchannel = in.readUTF();
|
||||
|
||||
if(subchannel.equals("ack")) {
|
||||
main.getPlatformMethods().sendPluginMessage(recievingPlayer, "ack", "yes, im here");
|
||||
}
|
||||
|
||||
if(subchannel.equals("queue")) {
|
||||
String rawData = in.readUTF();
|
||||
String[] args = new String[1];
|
||||
|
||||
@@ -530,11 +530,7 @@ public class QueueManagerImpl implements QueueManager {
|
||||
AdaptedPlayer player = p.getPlayer();
|
||||
if(player == null) continue;
|
||||
|
||||
boolean bypassFull =
|
||||
p.getPlayer().hasPermission("ajqueue.joinfull") ||
|
||||
p.getPlayer().hasPermission("ajqueue.joinfullserver."+server.getName());
|
||||
|
||||
if(server.isFull() && !bypassFull) continue;
|
||||
if(server.isFull() && !server.canJoinFull(p.getPlayer())) continue;
|
||||
|
||||
AdaptedServer selected = server.getIdealServer(player);
|
||||
if(selected == null) {
|
||||
@@ -580,7 +576,7 @@ public class QueueManagerImpl implements QueueManager {
|
||||
|
||||
if(!server.canAccess(nextPlayer)) continue;
|
||||
|
||||
if(server.isFull() && !nextPlayer.hasPermission("ajqueue.joinfull")) continue;
|
||||
if(server.isFull() && !server.canJoinFull(nextPlayer)) continue;
|
||||
|
||||
if(main.getConfig().getBoolean("enable-bypasspaused-permission")) {
|
||||
if(server.isPaused() && !nextPlayer.hasPermission("ajqueue.bypasspaused")) continue;
|
||||
|
||||
@@ -253,12 +253,16 @@ public class QueueServerImpl implements QueueServer {
|
||||
|
||||
@Override
|
||||
public boolean isJoinable(AdaptedPlayer p) {
|
||||
if(p != null && isWhitelisted() && !whitelistedUUIDs.contains(p.getUniqueId())) {
|
||||
if(p != null) {
|
||||
if (isWhitelisted() && !whitelistedUUIDs.contains(p.getUniqueId())) {
|
||||
return false;
|
||||
}
|
||||
if (isFull() && !canJoinFull(p)) {
|
||||
return false;
|
||||
}
|
||||
}
|
||||
return isOnline() &&
|
||||
canAccess(p) &&
|
||||
!isFull() &&
|
||||
!isPaused();
|
||||
}
|
||||
|
||||
@@ -428,4 +432,13 @@ public class QueueServerImpl implements QueueServer {
|
||||
public void setSupportedProtocols(List<Integer> list) {
|
||||
supportedProtocols = new ArrayList<>(list);
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean canJoinFull(AdaptedPlayer player) {
|
||||
return
|
||||
player.hasPermission("ajqueue.joinfull") ||
|
||||
player.hasPermission("ajqueue.joinfullserver."+name) ||
|
||||
player.hasPermission("ajqueue.joinfullandbypassserver."+name) ||
|
||||
player.hasPermission("ajqueue.joinfullandbypass");
|
||||
}
|
||||
}
|
||||
|
||||
@@ -39,6 +39,8 @@ public class PremiumLogic implements Logic {
|
||||
if(
|
||||
player.hasPermission("ajqueue.bypass") ||
|
||||
player.hasPermission("ajqueue.serverbypass."+server.getName()) ||
|
||||
player.hasPermission("ajqueue.joinfullandbypassserver."+server.getName()) ||
|
||||
player.hasPermission("ajqueue.joinfullandbypass") ||
|
||||
permissionGetter.hasContextBypass(player, server.getName())
|
||||
) {
|
||||
if(debug) {
|
||||
|
||||
@@ -17,6 +17,10 @@ public class Commands implements CommandExecutor {
|
||||
|
||||
@Override
|
||||
public boolean onCommand(@NotNull CommandSender sender, @NotNull Command command, @NotNull String label, String[] args) {
|
||||
if(!pl.hasProxy()) {
|
||||
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;
|
||||
}
|
||||
Player player = null;
|
||||
if(sender instanceof Player) {
|
||||
player = (Player) sender;
|
||||
|
||||
@@ -9,6 +9,7 @@ import org.bukkit.entity.Player;
|
||||
import org.bukkit.event.EventHandler;
|
||||
import org.bukkit.event.EventPriority;
|
||||
import org.bukkit.event.Listener;
|
||||
import org.bukkit.event.player.PlayerJoinEvent;
|
||||
import org.bukkit.event.player.PlayerQuitEvent;
|
||||
import org.bukkit.event.server.ServerListPingEvent;
|
||||
import org.bukkit.plugin.java.JavaPlugin;
|
||||
@@ -27,6 +28,8 @@ public class SpigotMain extends JavaPlugin implements PluginMessageListener,List
|
||||
|
||||
ConfigFile config;
|
||||
|
||||
boolean hasProxy = false;
|
||||
|
||||
@SuppressWarnings("ConstantConditions")
|
||||
public void onEnable() {
|
||||
getServer().getMessenger().registerIncomingPluginChannel(this, "ajqueue:tospigot", this);
|
||||
@@ -75,6 +78,10 @@ public class SpigotMain extends JavaPlugin implements PluginMessageListener,List
|
||||
getLogger().info("Spigot side enabled! v"+getDescription().getVersion());
|
||||
}
|
||||
|
||||
public boolean hasProxy() {
|
||||
return hasProxy;
|
||||
}
|
||||
|
||||
final HashMap<Player, String> queuebatch = new HashMap<>();
|
||||
|
||||
@Override
|
||||
@@ -85,6 +92,10 @@ public class SpigotMain extends JavaPlugin implements PluginMessageListener,List
|
||||
|
||||
String subchannel = in.readUTF();
|
||||
|
||||
if(subchannel.equals("ack")) {
|
||||
hasProxy = true;
|
||||
}
|
||||
|
||||
if(subchannel.equals("inqueueevent")) {
|
||||
String playername = in.readUTF();
|
||||
Player p = Bukkit.getPlayer(playername);
|
||||
@@ -180,6 +191,14 @@ public class SpigotMain extends JavaPlugin implements PluginMessageListener,List
|
||||
placeholders.cleanCache();
|
||||
}
|
||||
|
||||
@EventHandler
|
||||
public void onJoin(PlayerJoinEvent e) {
|
||||
if(hasProxy) return;
|
||||
Bukkit.getScheduler().runTask(this, () -> {
|
||||
sendMessage(e.getPlayer(), "ack", "");
|
||||
});
|
||||
}
|
||||
|
||||
@EventHandler(priority = EventPriority.HIGH)
|
||||
public void onServerPing(ServerListPingEvent e) {
|
||||
if(!config.getBoolean("take-over-motd-for-whitelist")) return;
|
||||
|
||||
Reference in New Issue
Block a user