This commit is contained in:
ajgeiss0702
2021-07-23 11:46:29 -05:00
parent 5bd770da9c
commit 696e7c126d
17 changed files with 146 additions and 49 deletions
@@ -23,6 +23,6 @@ public class PlayerSender implements ICommandSender {
@Override
public AdaptedPlayer getHandle() {
return null;
return handle;
}
}
@@ -49,13 +49,10 @@ public class LeaveCommand extends BaseCommand {
@Override
public void execute(ICommandSender sender, String[] args) {
System.out.println("leave command");
if(!sender.isPlayer()) {
System.out.println("not player");
sender.sendMessage(getMessages().getComponent("errors.player-only"));
return;
}
System.out.println("player");
AdaptedPlayer player = main.getPlatformMethods().senderToPlayer(sender);
List<QueueServer> servers = main.getQueueManager().getPlayerQueues(player);
@@ -64,7 +61,6 @@ public class LeaveCommand extends BaseCommand {
return;
}
System.out.println("0");
if(servers.size() == 1) {
servers.get(0).removePlayer(player);
@@ -72,7 +68,6 @@ public class LeaveCommand extends BaseCommand {
return;
}
System.out.println("1");
if(args.length <= 0) {
sender.sendMessage(getMessages().getComponent("commands.leave.more-args", "QUEUES:"+getQueueList(servers)));
@@ -91,7 +86,6 @@ public class LeaveCommand extends BaseCommand {
return;
}
System.out.println("2");
leavingServer.removePlayer(queuePlayer);
sender.sendMessage(getMessages().getComponent("commands.leave-queue", "SERVER:"+leavingServer.getAlias()));
@@ -1,10 +1,13 @@
package us.ajg0702.queue.common;
import com.google.common.collect.ImmutableList;
import us.ajg0702.queue.api.EventHandler;
import us.ajg0702.queue.api.commands.IBaseCommand;
import us.ajg0702.queue.api.players.AdaptedPlayer;
import us.ajg0702.queue.api.players.QueuePlayer;
import us.ajg0702.queue.api.queues.QueueServer;
import us.ajg0702.queue.commands.commands.PlayerSender;
import us.ajg0702.queue.common.players.QueuePlayerImpl;
import java.io.ByteArrayInputStream;
import java.io.DataInputStream;
@@ -30,8 +33,6 @@ public class EventHandlerImpl implements EventHandler {
String[] args = new String[1];
args[0] = rawData;
moveCommand.execute(new PlayerSender(recievingPlayer), args);
//man.addToQueue(player, data);
}
if(subchannel.equals("massqueue")) {
String inData = in.readUTF();
@@ -89,4 +90,24 @@ public class EventHandlerImpl implements EventHandler {
e1.printStackTrace();
}
}
@Override
public void onPlayerJoin(AdaptedPlayer player) {
ImmutableList<QueuePlayer> queues = main.getQueueManager().findPlayerInQueues(player);
for(QueuePlayer queuePlayer : queues) {
queuePlayer.setPlayer(player);
}
if(queues.size() > 0) {
main.getQueueManager().sendMessage(main.getQueueManager().getSingleServer(player).findPlayer(player));
}
}
@Override
public void onPlayerLeave(AdaptedPlayer player) {
ImmutableList<QueuePlayer> queues = main.getQueueManager().findPlayerInQueues(player);
for(QueuePlayer queuePlayer : queues) {
((QueuePlayerImpl) queuePlayer).setLeaveTime(System.currentTimeMillis());
}
}
}
@@ -96,6 +96,11 @@ public class QueueMain {
}
public void shutdown() {
taskManager.shutdown();
}
private final File dataFolder;
@@ -8,6 +8,7 @@ import us.ajg0702.queue.api.queues.QueueServer;
import us.ajg0702.queue.api.server.AdaptedServer;
import us.ajg0702.queue.api.server.ServerBuilder;
import us.ajg0702.queue.common.players.QueuePlayerImpl;
import us.ajg0702.utils.bungee.BungeeUtils;
import us.ajg0702.utils.common.Messages;
import us.ajg0702.utils.common.TimeUtils;
@@ -131,7 +132,11 @@ public class QueueManagerImpl implements QueueManager {
if(!server.isJoinable(player)) {
sendMessage(queuePlayer);
}
main.getPlatformMethods().sendJoinQueueChannelMessages(server, queuePlayer);
main.getPlatformMethods().sendPluginMessage(player, "position", pos+"");
main.getPlatformMethods().sendPluginMessage(player, "positionof", len+"");
main.getPlatformMethods().sendPluginMessage(player, "queuename", server.getAlias());
main.getPlatformMethods().sendPluginMessage(player, "inqueue", "true");
main.getPlatformMethods().sendPluginMessage(player, "inqueueevent", "true");
return true;
}
@@ -232,7 +237,6 @@ public class QueueManagerImpl implements QueueManager {
for(QueueServer server : servers) {
String status = server.getStatusString();
for(QueuePlayer queuePlayer : server.getQueue()) {
if(!getSingleServer(queuePlayer.getPlayer()).equals(server)) continue;
int pos = queuePlayer.getPosition();
if(pos == 0) {
@@ -243,6 +247,8 @@ public class QueueManagerImpl implements QueueManager {
AdaptedPlayer player = queuePlayer.getPlayer();
if(player == null) continue;
if(!getSingleServer(player).equals(server)) continue;
if(!server.isJoinable(player)) {
queuePlayer.getPlayer().sendActionBar(msgs.getComponent("spigot.actionbar.offline",
"POS:"+pos,
@@ -9,6 +9,7 @@ import java.util.concurrent.TimeUnit;
public class TaskManager {
final ScheduledExecutorService executor = Executors.newScheduledThreadPool(1);
final ScheduledExecutorService updateExecutor = Executors.newScheduledThreadPool(1);
@@ -17,6 +18,11 @@ public class TaskManager {
this.main = main;
}
public void shutdown() {
executor.shutdown();
updateExecutor.shutdown();
}
public String taskStatus() {
List<ScheduledFuture<?>> tasks = Arrays.asList(sendTask, updateTask, messageTask, actionBarTask, queueEventTask, reloadServerTask);
StringBuilder sb = new StringBuilder();
@@ -47,7 +47,7 @@ public class QueuePlayerImpl implements QueuePlayer {
@Nullable
@Override
public AdaptedPlayer getPlayer() {
if(!player.isConnected()) return null;
if(player != null && !player.isConnected()) player = null;
return player;
}
@@ -73,4 +73,20 @@ public class QueuePlayerImpl implements QueuePlayer {
public String getName() {
return name;
}
@Override
public long getTimeSinceOnline() {
if(player != null && player.isConnected()) {
return 0;
}
return System.currentTimeMillis()-leaveTime;
}
private long leaveTime = 0;
public void setLeaveTime(long leaveTime) {
this.leaveTime = leaveTime;
}
}
@@ -304,18 +304,13 @@ public class QueueServerImpl implements QueueServer {
}
@Override
public synchronized QueuePlayer findPlayer(AdaptedPlayer player) {
public QueuePlayer findPlayer(AdaptedPlayer player) {
return findPlayer(player.getUniqueId());
}
@Override
public synchronized QueuePlayer findPlayer(UUID uuid) {
for(QueuePlayer queuePlayer : queue) {
AdaptedPlayer queuedPlayer = queuePlayer.getPlayer();
if(queuedPlayer == null) continue;
if(
queuedPlayer
.getUniqueId()
.equals(
player
.getUniqueId()
)
) {
if(queuePlayer.getUniqueId().toString().equals(uuid.toString())) {
return queuePlayer;
}
}
@@ -15,4 +15,9 @@ public class FreeLogic implements Logic {
public QueuePlayer priorityLogic(QueueServer server, AdaptedPlayer player) {
return null;
}
@Override
public boolean playerDisconnectedTooLong(QueuePlayer player) {
return true;
}
}