Merge branch 'dev' into 'master'
2.0.2 See merge request ajg0702/ajqueue!20
This commit is contained in:
@@ -17,7 +17,7 @@ dependencies {
|
|||||||
implementation("net.kyori:adventure-text-serializer-plain:4.0.0-SNAPSHOT")
|
implementation("net.kyori:adventure-text-serializer-plain:4.0.0-SNAPSHOT")
|
||||||
compileOnly("com.google.guava:guava:30.1.1-jre")
|
compileOnly("com.google.guava:guava:30.1.1-jre")
|
||||||
|
|
||||||
compileOnly("us.ajg0702:ajUtils:1.1.7")
|
compileOnly("us.ajg0702:ajUtils:1.1.8")
|
||||||
}
|
}
|
||||||
|
|
||||||
publishing {
|
publishing {
|
||||||
|
|||||||
+1
-1
@@ -11,7 +11,7 @@ repositories {
|
|||||||
}
|
}
|
||||||
|
|
||||||
allprojects {
|
allprojects {
|
||||||
version = "2.0.1"
|
version = "2.0.2"
|
||||||
group = "us.ajg0702"
|
group = "us.ajg0702"
|
||||||
|
|
||||||
tasks.withType<Test>().configureEach {
|
tasks.withType<Test>().configureEach {
|
||||||
|
|||||||
@@ -16,7 +16,7 @@ dependencies {
|
|||||||
compileOnly("net.kyori:adventure-text-serializer-plain:4.0.0-SNAPSHOT")
|
compileOnly("net.kyori:adventure-text-serializer-plain:4.0.0-SNAPSHOT")
|
||||||
|
|
||||||
compileOnly("com.google.guava:guava:30.1.1-jre")
|
compileOnly("com.google.guava:guava:30.1.1-jre")
|
||||||
compileOnly("us.ajg0702:ajUtils:1.1.7")
|
compileOnly("us.ajg0702:ajUtils:1.1.8")
|
||||||
|
|
||||||
compileOnly("org.slf4j:slf4j-log4j12:1.7.29")
|
compileOnly("org.slf4j:slf4j-log4j12:1.7.29")
|
||||||
|
|
||||||
|
|||||||
@@ -5,6 +5,7 @@ import net.kyori.adventure.text.Component;
|
|||||||
import us.ajg0702.queue.api.commands.ICommandSender;
|
import us.ajg0702.queue.api.commands.ICommandSender;
|
||||||
import us.ajg0702.queue.api.commands.ISubCommand;
|
import us.ajg0702.queue.api.commands.ISubCommand;
|
||||||
import us.ajg0702.queue.commands.BaseCommand;
|
import us.ajg0702.queue.commands.BaseCommand;
|
||||||
|
import us.ajg0702.queue.commands.commands.manage.debug.*;
|
||||||
import us.ajg0702.queue.common.QueueMain;
|
import us.ajg0702.queue.common.QueueMain;
|
||||||
import us.ajg0702.utils.common.Messages;
|
import us.ajg0702.utils.common.Messages;
|
||||||
|
|
||||||
@@ -28,6 +29,7 @@ public class ManageCommand extends BaseCommand {
|
|||||||
addSubCommand(new QueueList(main));
|
addSubCommand(new QueueList(main));
|
||||||
addSubCommand(new Send(main));
|
addSubCommand(new Send(main));
|
||||||
addSubCommand(new PermissionList(main));
|
addSubCommand(new PermissionList(main));
|
||||||
|
addSubCommand(new Whitelist(main));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
@@ -50,7 +52,7 @@ public class ManageCommand extends BaseCommand {
|
|||||||
|
|
||||||
@Override
|
@Override
|
||||||
public String getPermission() {
|
public String getPermission() {
|
||||||
return "ajqueue.manage";
|
return null;
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
|
|||||||
+1
-1
@@ -1,4 +1,4 @@
|
|||||||
package us.ajg0702.queue.commands.commands.manage;
|
package us.ajg0702.queue.commands.commands.manage.debug;
|
||||||
|
|
||||||
import com.google.common.collect.ImmutableList;
|
import com.google.common.collect.ImmutableList;
|
||||||
import net.kyori.adventure.text.Component;
|
import net.kyori.adventure.text.Component;
|
||||||
+11
-2
@@ -1,7 +1,8 @@
|
|||||||
package us.ajg0702.queue.commands.commands.manage;
|
package us.ajg0702.queue.commands.commands.manage.debug;
|
||||||
|
|
||||||
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.format.NamedTextColor;
|
||||||
import us.ajg0702.queue.api.commands.ICommandSender;
|
import us.ajg0702.queue.api.commands.ICommandSender;
|
||||||
import us.ajg0702.queue.commands.SubCommand;
|
import us.ajg0702.queue.commands.SubCommand;
|
||||||
import us.ajg0702.queue.common.QueueMain;
|
import us.ajg0702.queue.common.QueueMain;
|
||||||
@@ -46,7 +47,15 @@ public class PermissionList extends SubCommand {
|
|||||||
@Override
|
@Override
|
||||||
public void execute(ICommandSender sender, String[] args) {
|
public void execute(ICommandSender sender, String[] args) {
|
||||||
if(!checkPermission(sender)) return;
|
if(!checkPermission(sender)) return;
|
||||||
List<String> permissions = main.getLogicGetter().getPermissions(main.getPlatformMethods().senderToPlayer(sender));
|
if(!sender.isPlayer()) {
|
||||||
|
sender.sendMessage(
|
||||||
|
Component.text("You need to run this as a player with priority!")
|
||||||
|
.color(NamedTextColor.RED)
|
||||||
|
);
|
||||||
|
}
|
||||||
|
|
||||||
|
List<String> permissions = main.getLogicGetter()
|
||||||
|
.getPermissions(main.getPlatformMethods().senderToPlayer(sender));
|
||||||
if(permissions == null) {
|
if(permissions == null) {
|
||||||
sender.sendMessage(Component.text("no permission handler"));
|
sender.sendMessage(Component.text("no permission handler"));
|
||||||
return;
|
return;
|
||||||
+1
-1
@@ -1,4 +1,4 @@
|
|||||||
package us.ajg0702.queue.commands.commands.manage;
|
package us.ajg0702.queue.commands.commands.manage.debug;
|
||||||
|
|
||||||
import com.google.common.collect.ImmutableList;
|
import com.google.common.collect.ImmutableList;
|
||||||
import net.kyori.adventure.text.Component;
|
import net.kyori.adventure.text.Component;
|
||||||
+1
-1
@@ -1,4 +1,4 @@
|
|||||||
package us.ajg0702.queue.commands.commands.manage;
|
package us.ajg0702.queue.commands.commands.manage.debug;
|
||||||
|
|
||||||
import com.google.common.collect.ImmutableList;
|
import com.google.common.collect.ImmutableList;
|
||||||
import net.kyori.adventure.text.Component;
|
import net.kyori.adventure.text.Component;
|
||||||
@@ -0,0 +1,65 @@
|
|||||||
|
package us.ajg0702.queue.commands.commands.manage.debug;
|
||||||
|
|
||||||
|
import com.google.common.collect.ImmutableList;
|
||||||
|
import net.kyori.adventure.text.Component;
|
||||||
|
import us.ajg0702.queue.api.commands.ICommandSender;
|
||||||
|
import us.ajg0702.queue.api.queues.QueueServer;
|
||||||
|
import us.ajg0702.queue.commands.SubCommand;
|
||||||
|
import us.ajg0702.queue.common.QueueMain;
|
||||||
|
import us.ajg0702.utils.common.Messages;
|
||||||
|
|
||||||
|
import java.util.ArrayList;
|
||||||
|
import java.util.List;
|
||||||
|
|
||||||
|
public class Whitelist extends SubCommand {
|
||||||
|
final QueueMain main;
|
||||||
|
public Whitelist(QueueMain main) {
|
||||||
|
this.main = main;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public String getName() {
|
||||||
|
return "whitelist";
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public ImmutableList<String> getAliases() {
|
||||||
|
return ImmutableList.of();
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public String getPermission() {
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public boolean showInTabComplete() {
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public Messages getMessages() {
|
||||||
|
return main.getMessages();
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void execute(ICommandSender sender, String[] args) {
|
||||||
|
if(!checkPermission(sender)) return;
|
||||||
|
if(args.length < 1) {
|
||||||
|
sender.sendMessage(main.getMessages().toComponent("<red>Not enough args!"));
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
QueueServer server = main.getQueueManager().findServer(args[0]);
|
||||||
|
if(server == null) {
|
||||||
|
sender.sendMessage(main.getMessages().toComponent("<red>Server not found"));
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
sender.sendMessage(main.getMessages().toComponent("<green>Yours: "+ main.getPlatformMethods().senderToPlayer(sender).getUniqueId().toString()));
|
||||||
|
server.getWhitelistedPlayers().forEach(uuid -> sender.sendMessage(main.getMessages().toComponent("<yellow>"+uuid)));
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public List<String> autoComplete(ICommandSender sender, String[] args) {
|
||||||
|
return new ArrayList<>();
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -169,7 +169,7 @@ public class EventHandlerImpl implements EventHandler {
|
|||||||
}
|
}
|
||||||
|
|
||||||
ImmutableList<QueueServer> queuedServers = main.getQueueManager().getPlayerQueues(player);
|
ImmutableList<QueueServer> queuedServers = main.getQueueManager().getPlayerQueues(player);
|
||||||
if(!queuedServers.contains(main.getQueueManager().findServer(from.getName())) && main.getConfig().getBoolean("auto-add-to-queue-on-kick")) {
|
if(from != null && !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;
|
||||||
@@ -193,7 +193,7 @@ 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);
|
||||||
|
|||||||
@@ -137,6 +137,7 @@ public class QueueMain {
|
|||||||
d.put("status.offline.full", "full");
|
d.put("status.offline.full", "full");
|
||||||
d.put("status.offline.restricted", "restricted");
|
d.put("status.offline.restricted", "restricted");
|
||||||
d.put("status.offline.paused", "paused");
|
d.put("status.offline.paused", "paused");
|
||||||
|
d.put("status.offline.whitelisted", "whitelisted");
|
||||||
|
|
||||||
d.put("status.online.base", "&7You are in position &f{POS}&7 of &f{LEN}&7. Estimated time: {TIME}");
|
d.put("status.online.base", "&7You are in position &f{POS}&7 of &f{LEN}&7. Estimated time: {TIME}");
|
||||||
d.put("status.left-last-queue", "&aYou left the last queue you were in.");
|
d.put("status.left-last-queue", "&aYou left the last queue you were in.");
|
||||||
|
|||||||
@@ -125,7 +125,7 @@ public class QueueManagerImpl implements QueueManager {
|
|||||||
int len = list.size();
|
int len = list.size();
|
||||||
|
|
||||||
boolean sendInstant = main.getConfig().getStringList("send-instantly").contains(server.getName()) || server.isJoinable(player);
|
boolean sendInstant = main.getConfig().getStringList("send-instantly").contains(server.getName()) || server.isJoinable(player);
|
||||||
boolean sendInstantp = list.size() <= 1 && server.canAccess(player);
|
boolean sendInstantp = list.size() <= 1 && server.isJoinable(player);
|
||||||
boolean timeGood = !main.getConfig().getBoolean("check-last-player-sent-time") || System.currentTimeMillis() - server.getLastSentTime() > Math.floor(main.getConfig().getDouble("wait-time") * 1000);
|
boolean timeGood = !main.getConfig().getBoolean("check-last-player-sent-time") || System.currentTimeMillis() - server.getLastSentTime() > Math.floor(main.getConfig().getDouble("wait-time") * 1000);
|
||||||
|
|
||||||
if((sendInstant && (sendInstantp && timeGood))) {
|
if((sendInstant && (sendInstantp && timeGood))) {
|
||||||
@@ -145,6 +145,17 @@ public class QueueManagerImpl implements QueueManager {
|
|||||||
"SERVERNAME:"+server.getName()
|
"SERVERNAME:"+server.getName()
|
||||||
)
|
)
|
||||||
);
|
);
|
||||||
|
if(main.getConfig().getBoolean("enable-priority-messages")) {
|
||||||
|
for(String rawPriorityMessage : main.getConfig().getStringList("priority-messages")) {
|
||||||
|
String[] parts = rawPriorityMessage.split(":");
|
||||||
|
if(parts.length != 2) continue;
|
||||||
|
String level = parts[0];
|
||||||
|
String messageRaw = parts[1];
|
||||||
|
if((level.equals("*") && queuePlayer.getPriority() > 0) || level.equals(queuePlayer.getPriority()+"")) {
|
||||||
|
player.sendMessage(main.getMessages().toComponent(messageRaw.replaceAll("\\{PRIORITY}", queuePlayer.getPriority()+"")));
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
if(!server.isJoinable(player)) {
|
if(!server.isJoinable(player)) {
|
||||||
@@ -462,6 +473,8 @@ public class QueueManagerImpl implements QueueManager {
|
|||||||
|
|
||||||
if(nextPlayer == null) continue; // None of the players in the queue are online
|
if(nextPlayer == null) continue; // None of the players in the queue are online
|
||||||
|
|
||||||
|
if(server.isWhitelisted() && !server.getWhitelistedPlayers().contains(nextPlayer.getUniqueId())) continue;
|
||||||
|
|
||||||
if(!server.canAccess(nextPlayer)) continue;
|
if(!server.canAccess(nextPlayer)) continue;
|
||||||
|
|
||||||
if(server.isFull() && !nextPlayer.hasPermission("ajqueue.joinfull")) continue;
|
if(server.isFull() && !nextPlayer.hasPermission("ajqueue.joinfull")) continue;
|
||||||
|
|||||||
@@ -105,6 +105,10 @@ public class QueueServerImpl implements QueueServer {
|
|||||||
return msgs.getString("status.offline.paused");
|
return msgs.getString("status.offline.paused");
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if(p != null && isWhitelisted() && !getWhitelistedPlayers().contains(p.getUniqueId())) {
|
||||||
|
return msgs.getString("status.offline.whitelisted");
|
||||||
|
}
|
||||||
|
|
||||||
if(isFull()) {
|
if(isFull()) {
|
||||||
return msgs.getString("status.offline.full");
|
return msgs.getString("status.offline.full");
|
||||||
}
|
}
|
||||||
@@ -159,6 +163,19 @@ public class QueueServerImpl implements QueueServer {
|
|||||||
if(serverPing == null) {
|
if(serverPing == null) {
|
||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
|
if(serverPing.getPlainDescription().contains("ajQueue;whitelisted=")) {
|
||||||
|
if(servers.size() > 1) continue;
|
||||||
|
|
||||||
|
setWhitelisted(true);
|
||||||
|
List<UUID> uuids = new ArrayList<>();
|
||||||
|
for(String uuid : serverPing.getPlainDescription().substring(20).split(",")) {
|
||||||
|
if(uuid.isEmpty()) continue;
|
||||||
|
uuids.add(UUID.fromString(uuid));
|
||||||
|
}
|
||||||
|
setWhitelistedPlayers(uuids);
|
||||||
|
} else {
|
||||||
|
setWhitelisted(false);
|
||||||
|
}
|
||||||
onlineCount++;
|
onlineCount++;
|
||||||
playerCount += serverPing.getPlayerCount();
|
playerCount += serverPing.getPlayerCount();
|
||||||
maxPlayers += serverPing.getMaxPlayers();
|
maxPlayers += serverPing.getMaxPlayers();
|
||||||
@@ -217,8 +234,10 @@ public class QueueServerImpl implements QueueServer {
|
|||||||
|
|
||||||
@Override
|
@Override
|
||||||
public boolean isJoinable(AdaptedPlayer p) {
|
public boolean isJoinable(AdaptedPlayer p) {
|
||||||
return (!whitelisted || whitelistedUUIDs.contains(p.getUniqueId())) &&
|
if(p != null && isWhitelisted() && !whitelistedUUIDs.contains(p.getUniqueId())) {
|
||||||
this.isOnline() &&
|
return false;
|
||||||
|
}
|
||||||
|
return this.isOnline() &&
|
||||||
this.canAccess(p) &&
|
this.canAccess(p) &&
|
||||||
!this.isFull() &&
|
!this.isFull() &&
|
||||||
!this.isPaused();
|
!this.isPaused();
|
||||||
|
|||||||
@@ -1,5 +1,5 @@
|
|||||||
# Dont touch this number please
|
# Dont touch this number please
|
||||||
config-version: 22
|
config-version: 23
|
||||||
|
|
||||||
# The time the server will wait between sending people in the queue
|
# The time the server will wait between sending people in the queue
|
||||||
# Default: 5
|
# Default: 5
|
||||||
@@ -176,4 +176,17 @@ auto-add-kick-reasons:
|
|||||||
# Should we enable the server command being a queue command?
|
# Should we enable the server command being a queue command?
|
||||||
# This may require extra setup on bungeecord. See the wiki:
|
# This may require extra setup on bungeecord. See the wiki:
|
||||||
# https://wiki.ajg0702.us/ajqueue/setup/replacing-server-command
|
# https://wiki.ajg0702.us/ajqueue/setup/replacing-server-command
|
||||||
enable-server-command: false
|
enable-server-command: false
|
||||||
|
|
||||||
|
# Should we enable priority messages?
|
||||||
|
# Configure the priority messages in the option below.
|
||||||
|
enable-priority-messages: false
|
||||||
|
|
||||||
|
# Messages we send to players with priority queue when they join the queue
|
||||||
|
# In the free version, "priority" is 1.
|
||||||
|
# The * will send when a player joins with any priority.
|
||||||
|
# The format is <priority>:<message>
|
||||||
|
# Example: 1:You have a priority of 1!
|
||||||
|
priority-messages:
|
||||||
|
- "*:<green>Joining the queue with a priority of {PRIORITY}!"
|
||||||
|
- "100:<yellow>Wow! You have a priority of 100!"
|
||||||
@@ -18,7 +18,7 @@ dependencies {
|
|||||||
compileOnly("com.google.guava:guava:30.1.1-jre")
|
compileOnly("com.google.guava:guava:30.1.1-jre")
|
||||||
compileOnly("org.spongepowered:configurate-yaml:4.0.0")
|
compileOnly("org.spongepowered:configurate-yaml:4.0.0")
|
||||||
|
|
||||||
implementation("us.ajg0702:ajUtils:1.1.7")
|
implementation("us.ajg0702:ajUtils:1.1.8")
|
||||||
|
|
||||||
implementation(project(":platforms:velocity"))
|
implementation(project(":platforms:velocity"))
|
||||||
implementation(project(":platforms:bungeecord"))
|
implementation(project(":platforms:bungeecord"))
|
||||||
|
|||||||
@@ -15,7 +15,7 @@ repositories {
|
|||||||
dependencies {
|
dependencies {
|
||||||
compileOnly("net.kyori:adventure-api:4.8.1")
|
compileOnly("net.kyori:adventure-api:4.8.1")
|
||||||
compileOnly("com.google.guava:guava:30.1.1-jre")
|
compileOnly("com.google.guava:guava:30.1.1-jre")
|
||||||
compileOnly("us.ajg0702:ajUtils:1.1.7")
|
compileOnly("us.ajg0702:ajUtils:1.1.8")
|
||||||
|
|
||||||
compileOnly("net.md-5:bungeecord-api:1.16-R0.4")
|
compileOnly("net.md-5:bungeecord-api:1.16-R0.4")
|
||||||
|
|
||||||
|
|||||||
+1
-1
@@ -124,7 +124,7 @@ public class BungeeQueue extends Plugin implements Listener {
|
|||||||
Component reason = BungeeComponentSerializer.get().deserialize(e.getKickReasonComponent());
|
Component reason = BungeeComponentSerializer.get().deserialize(e.getKickReasonComponent());
|
||||||
main.getEventHandler().onServerKick(
|
main.getEventHandler().onServerKick(
|
||||||
new BungeePlayer(e.getPlayer()),
|
new BungeePlayer(e.getPlayer()),
|
||||||
new BungeeServer(e.getCancelServer()),
|
new BungeeServer(e.getKickedFrom()),
|
||||||
reason,
|
reason,
|
||||||
false
|
false
|
||||||
);
|
);
|
||||||
|
|||||||
@@ -15,7 +15,7 @@ repositories {
|
|||||||
dependencies {
|
dependencies {
|
||||||
compileOnly("net.kyori:adventure-api:4.8.1")
|
compileOnly("net.kyori:adventure-api:4.8.1")
|
||||||
compileOnly("com.google.guava:guava:30.1.1-jre")
|
compileOnly("com.google.guava:guava:30.1.1-jre")
|
||||||
compileOnly("us.ajg0702:ajUtils:1.1.7")
|
compileOnly("us.ajg0702:ajUtils:1.1.8")
|
||||||
|
|
||||||
compileOnly("com.velocitypowered:velocity-api:3.0.0")
|
compileOnly("com.velocitypowered:velocity-api:3.0.0")
|
||||||
annotationProcessor("com.velocitypowered:velocity-api:3.0.0")
|
annotationProcessor("com.velocitypowered:velocity-api:3.0.0")
|
||||||
|
|||||||
@@ -22,7 +22,7 @@ dependencies {
|
|||||||
|
|
||||||
compileOnly("com.google.guava:guava:30.1.1-jre")
|
compileOnly("com.google.guava:guava:30.1.1-jre")
|
||||||
|
|
||||||
compileOnly("us.ajg0702:ajUtils:1.1.7")
|
compileOnly("us.ajg0702:ajUtils:1.1.8")
|
||||||
|
|
||||||
compileOnly("net.kyori:adventure-api:4.8.1")
|
compileOnly("net.kyori:adventure-api:4.8.1")
|
||||||
|
|
||||||
|
|||||||
@@ -20,7 +20,9 @@ dependencies {
|
|||||||
implementation("net.kyori:adventure-api:4.8.1")
|
implementation("net.kyori:adventure-api:4.8.1")
|
||||||
compileOnly("com.google.guava:guava:30.1.1-jre")
|
compileOnly("com.google.guava:guava:30.1.1-jre")
|
||||||
|
|
||||||
compileOnly("us.ajg0702:ajUtils:1.1.7")
|
compileOnly("org.spongepowered:configurate-yaml:4.0.0")
|
||||||
|
|
||||||
|
compileOnly("us.ajg0702:ajUtils:1.1.8")
|
||||||
|
|
||||||
compileOnly(group = "org.spigotmc", name = "spigot", version = "1.16.5-R0.1-SNAPSHOT")
|
compileOnly(group = "org.spigotmc", name = "spigot", version = "1.16.5-R0.1-SNAPSHOT")
|
||||||
compileOnly("me.clip:placeholderapi:2.10.4")
|
compileOnly("me.clip:placeholderapi:2.10.4")
|
||||||
|
|||||||
@@ -1,59 +0,0 @@
|
|||||||
package us.ajg0702.queue.spigot;
|
|
||||||
|
|
||||||
import org.bukkit.configuration.file.YamlConfiguration;
|
|
||||||
import org.bukkit.plugin.java.JavaPlugin;
|
|
||||||
|
|
||||||
import java.io.File;
|
|
||||||
import java.io.IOException;
|
|
||||||
import java.io.PrintWriter;
|
|
||||||
import java.nio.file.Files;
|
|
||||||
|
|
||||||
public class Config {
|
|
||||||
final File f;
|
|
||||||
final YamlConfiguration yml;
|
|
||||||
|
|
||||||
final JavaPlugin pl;
|
|
||||||
|
|
||||||
|
|
||||||
public boolean getBoolean(String key) {
|
|
||||||
return yml.getBoolean(key);
|
|
||||||
}
|
|
||||||
|
|
||||||
public Config(JavaPlugin pl) {
|
|
||||||
this.pl = pl;
|
|
||||||
f = new File(pl.getDataFolder(), "config.yml");
|
|
||||||
if(!f.exists()) {
|
|
||||||
if(!Files.exists(pl.getDataFolder().toPath())) {
|
|
||||||
try {
|
|
||||||
Files.createDirectory(pl.getDataFolder().toPath());
|
|
||||||
} catch (IOException e) {
|
|
||||||
e.printStackTrace();
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
try {
|
|
||||||
PrintWriter writer = new PrintWriter(pl.getDataFolder()+File.separator+"config.yml", "UTF-8");
|
|
||||||
String[] lines = getDefaultConfig().split("\n");
|
|
||||||
for(String line : lines) {
|
|
||||||
writer.println(line);
|
|
||||||
|
|
||||||
}
|
|
||||||
writer.close();
|
|
||||||
} catch (IOException e) {
|
|
||||||
e.printStackTrace();
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
yml = YamlConfiguration.loadConfiguration(f);
|
|
||||||
}
|
|
||||||
|
|
||||||
public String getDefaultConfig() {
|
|
||||||
return "# This is the config for the spigot side.\n"
|
|
||||||
+ "# You can find more settings in the config of bungee.\n"
|
|
||||||
+ "\n\n"
|
|
||||||
+ "# Should we send queue requests from commands in batches?\n"
|
|
||||||
+ "# Enable this if you have issues with players sometimes not executing commands correctly\n"
|
|
||||||
+ "# Note though that it could delay queue commands by up to 1 second!\n"
|
|
||||||
+ "send-queue-commands-in-batches: false";
|
|
||||||
}
|
|
||||||
}
|
|
||||||
@@ -4,14 +4,19 @@ import com.google.common.io.ByteArrayDataInput;
|
|||||||
import com.google.common.io.ByteArrayDataOutput;
|
import com.google.common.io.ByteArrayDataOutput;
|
||||||
import com.google.common.io.ByteStreams;
|
import com.google.common.io.ByteStreams;
|
||||||
import org.bukkit.Bukkit;
|
import org.bukkit.Bukkit;
|
||||||
|
import org.bukkit.OfflinePlayer;
|
||||||
import org.bukkit.entity.Player;
|
import org.bukkit.entity.Player;
|
||||||
import org.bukkit.event.EventHandler;
|
import org.bukkit.event.EventHandler;
|
||||||
|
import org.bukkit.event.EventPriority;
|
||||||
import org.bukkit.event.Listener;
|
import org.bukkit.event.Listener;
|
||||||
import org.bukkit.event.player.PlayerQuitEvent;
|
import org.bukkit.event.player.PlayerQuitEvent;
|
||||||
|
import org.bukkit.event.server.ServerListPingEvent;
|
||||||
import org.bukkit.plugin.java.JavaPlugin;
|
import org.bukkit.plugin.java.JavaPlugin;
|
||||||
import org.bukkit.plugin.messaging.PluginMessageListener;
|
import org.bukkit.plugin.messaging.PluginMessageListener;
|
||||||
import org.jetbrains.annotations.NotNull;
|
import org.jetbrains.annotations.NotNull;
|
||||||
|
import us.ajg0702.utils.common.ConfigFile;
|
||||||
|
|
||||||
|
import java.io.File;
|
||||||
import java.util.HashMap;
|
import java.util.HashMap;
|
||||||
|
|
||||||
@SuppressWarnings("UnstableApiUsage")
|
@SuppressWarnings("UnstableApiUsage")
|
||||||
@@ -20,7 +25,7 @@ public class SpigotMain extends JavaPlugin implements PluginMessageListener,List
|
|||||||
boolean papi = false;
|
boolean papi = false;
|
||||||
Placeholders placeholders;
|
Placeholders placeholders;
|
||||||
|
|
||||||
Config config;
|
ConfigFile config;
|
||||||
|
|
||||||
@SuppressWarnings("ConstantConditions")
|
@SuppressWarnings("ConstantConditions")
|
||||||
public void onEnable() {
|
public void onEnable() {
|
||||||
@@ -53,9 +58,20 @@ public class SpigotMain extends JavaPlugin implements PluginMessageListener,List
|
|||||||
queuebatch.clear();
|
queuebatch.clear();
|
||||||
sendMessage("massqueue", msg.toString());
|
sendMessage("massqueue", msg.toString());
|
||||||
}, 2*20, 20);
|
}, 2*20, 20);
|
||||||
|
|
||||||
config = new Config(this);
|
File oldConfig = new File(getDataFolder(), "config.yml");
|
||||||
|
if(oldConfig.exists()) {
|
||||||
|
//noinspection ResultOfMethodCallIgnored
|
||||||
|
oldConfig.renameTo(new File(getDataFolder(), "spigot-config.yml"));
|
||||||
|
}
|
||||||
|
|
||||||
|
try {
|
||||||
|
config = new ConfigFile(getDataFolder(), getLogger(), "spigot-config.yml");
|
||||||
|
} catch (Exception e) {
|
||||||
|
getLogger().severe("Unable to read config:");
|
||||||
|
e.printStackTrace();
|
||||||
|
}
|
||||||
|
|
||||||
getLogger().info("Spigot side enabled! v"+getDescription().getVersion());
|
getLogger().info("Spigot side enabled! v"+getDescription().getVersion());
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -163,4 +179,19 @@ public class SpigotMain extends JavaPlugin implements PluginMessageListener,List
|
|||||||
if(!papi) return;
|
if(!papi) return;
|
||||||
placeholders.cleanCache();
|
placeholders.cleanCache();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@EventHandler(priority = EventPriority.HIGH)
|
||||||
|
public void onServerPing(ServerListPingEvent e) {
|
||||||
|
if(!config.getBoolean("take-over-motd-for-whitelist")) return;
|
||||||
|
if(!Bukkit.hasWhitelist()) return;
|
||||||
|
|
||||||
|
StringBuilder whitelist = new StringBuilder();
|
||||||
|
for(OfflinePlayer player : Bukkit.getWhitelistedPlayers()) {
|
||||||
|
whitelist.append(player.getUniqueId()).append(",");
|
||||||
|
}
|
||||||
|
if(whitelist.length() > 1) {
|
||||||
|
whitelist.deleteCharAt(whitelist.length()-1);
|
||||||
|
}
|
||||||
|
e.setMotd("ajQueue;whitelisted="+whitelist);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -0,0 +1,18 @@
|
|||||||
|
# This is the config for the spigot side.
|
||||||
|
# You can find more settings in the config of bungee.
|
||||||
|
|
||||||
|
|
||||||
|
# Should we send queue requests from commands in batches?
|
||||||
|
# Enable this if you have issues with players sometimes not executing commands correctly
|
||||||
|
# Note though that it could delay queue commands by up to 1 second!
|
||||||
|
send-queue-commands-in-batches: false
|
||||||
|
|
||||||
|
# Should we take over the server MOTD to tell the proxy 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
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
# Dont touch this
|
||||||
|
config-version: 2
|
||||||
Reference in New Issue
Block a user