actionbar
This commit is contained in:
@@ -175,6 +175,9 @@ public class QueueMain {
|
||||
d.put("placeholders.queued.none", "None");
|
||||
d.put("placeholders.position.none", "None");
|
||||
|
||||
d.put("title.title", "");
|
||||
d.put("title.subtitle", "<gold>You are <green>#{POS} <gold>in the queue!");
|
||||
|
||||
d.put("commands.leave.more-args", "&cPlease specify which queue you want to leave! &7You are in these queues: {QUEUES}");
|
||||
d.put("commands.leave.queues-list-format", "&f{NAME}&7, ");
|
||||
d.put("commands.leave.not-queued", "&cYou are not queued for that server! &7You are in these queues: {QUEUES}");
|
||||
|
||||
@@ -1,6 +1,8 @@
|
||||
package us.ajg0702.queue.common;
|
||||
|
||||
import com.google.common.collect.ImmutableList;
|
||||
import net.kyori.adventure.text.Component;
|
||||
import net.kyori.adventure.title.Title;
|
||||
import us.ajg0702.queue.api.QueueManager;
|
||||
import us.ajg0702.queue.api.players.AdaptedPlayer;
|
||||
import us.ajg0702.queue.api.players.QueuePlayer;
|
||||
@@ -11,6 +13,7 @@ import us.ajg0702.queue.common.queues.QueueServerImpl;
|
||||
import us.ajg0702.utils.common.Messages;
|
||||
import us.ajg0702.utils.common.TimeUtils;
|
||||
|
||||
import java.time.Duration;
|
||||
import java.util.ArrayList;
|
||||
import java.util.Collections;
|
||||
import java.util.HashMap;
|
||||
@@ -313,6 +316,44 @@ public class QueueManagerImpl implements QueueManager {
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public void sendTitles() {
|
||||
if(!main.getConfig().getBoolean("send-title")) return;
|
||||
|
||||
for(QueueServer server : servers) {
|
||||
String status = server.getStatusString();
|
||||
for(QueuePlayer queuePlayer : server.getQueue()) {
|
||||
|
||||
int pos = queuePlayer.getPosition();
|
||||
if(pos == 0) {
|
||||
server.removePlayer(queuePlayer);
|
||||
continue;
|
||||
}
|
||||
|
||||
AdaptedPlayer player = queuePlayer.getPlayer();
|
||||
if(player == null) continue;
|
||||
|
||||
if(!getSingleServer(player).equals(server)) continue;
|
||||
|
||||
Component titleMessage = msgs.getComponent("title.title",
|
||||
"POS:"+pos,
|
||||
"LEN:"+server.getQueue().size(),
|
||||
"SERVER:"+server.getAlias(),
|
||||
"STATUS:"+status
|
||||
);
|
||||
Component subTitleMessage = msgs.getComponent("title.title",
|
||||
"POS:"+pos,
|
||||
"LEN:"+server.getQueue().size(),
|
||||
"SERVER:"+server.getAlias(),
|
||||
"STATUS:"+status
|
||||
);
|
||||
|
||||
Title title = Title.title(titleMessage, subTitleMessage, Title.Times.of(Duration.ZERO, Duration.ofSeconds(2L), Duration.ZERO));
|
||||
player.showTitle(title);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public void sendQueueEvents() {
|
||||
List<String> svs = main.getConfig().getStringList("queue-servers");
|
||||
|
||||
@@ -24,7 +24,7 @@ public class TaskManager {
|
||||
}
|
||||
|
||||
public String taskStatus() {
|
||||
List<ScheduledFuture<?>> tasks = Arrays.asList(sendTask, updateTask, messageTask, actionBarTask, queueEventTask, reloadServerTask);
|
||||
List<ScheduledFuture<?>> tasks = Arrays.asList(sendTask, updateTask, messageTask, actionBarTask, titleTask, queueEventTask, reloadServerTask);
|
||||
StringBuilder sb = new StringBuilder();
|
||||
for(ScheduledFuture<?> task : tasks) {
|
||||
sb.append(task == null ? "null" : task.isDone() ? "canceled/done" : "running");
|
||||
@@ -37,6 +37,7 @@ public class TaskManager {
|
||||
ScheduledFuture<?> updateTask;
|
||||
ScheduledFuture<?> messageTask;
|
||||
ScheduledFuture<?> actionBarTask;
|
||||
ScheduledFuture<?> titleTask;
|
||||
ScheduledFuture<?> queueEventTask;
|
||||
ScheduledFuture<?> reloadServerTask;
|
||||
public void rescheduleTasks() {
|
||||
@@ -67,6 +68,12 @@ public class TaskManager {
|
||||
TimeUnit.MILLISECONDS
|
||||
);
|
||||
|
||||
titleTask = scheduleAtFixedRate(
|
||||
main.getQueueManager()::sendTitles,
|
||||
1500L,
|
||||
TimeUnit.MILLISECONDS
|
||||
);
|
||||
|
||||
queueEventTask = scheduleAtFixedRate(
|
||||
main.getQueueManager()::sendQueueEvents,
|
||||
1500L,
|
||||
@@ -96,6 +103,9 @@ public class TaskManager {
|
||||
if(actionBarTask != null && !actionBarTask.isCancelled()) {
|
||||
actionBarTask.cancel(true);
|
||||
}
|
||||
if(titleTask != null && !titleTask.isCancelled()) {
|
||||
titleTask.cancel(true);
|
||||
}
|
||||
if(queueEventTask != null && !queueEventTask.isCancelled()) {
|
||||
queueEventTask.cancel(true);
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user