progress
This commit is contained in:
@@ -3,5 +3,10 @@ package us.ajg0702.queue.api;
|
|||||||
import us.ajg0702.queue.api.players.AdaptedPlayer;
|
import us.ajg0702.queue.api.players.AdaptedPlayer;
|
||||||
|
|
||||||
public interface EventHandler {
|
public interface EventHandler {
|
||||||
|
|
||||||
void handleMessage(AdaptedPlayer reciever, byte[] data);
|
void handleMessage(AdaptedPlayer reciever, byte[] data);
|
||||||
|
|
||||||
|
void onPlayerJoin(AdaptedPlayer player);
|
||||||
|
|
||||||
|
void onPlayerLeave(AdaptedPlayer player);
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -19,4 +19,11 @@ public interface Logic {
|
|||||||
* @param player The player that is being queued
|
* @param player The player that is being queued
|
||||||
*/
|
*/
|
||||||
QueuePlayer priorityLogic(QueueServer server, AdaptedPlayer player);
|
QueuePlayer priorityLogic(QueueServer server, AdaptedPlayer player);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* The logic for checking if a player has been disconnected for too long
|
||||||
|
* @param player The player to check
|
||||||
|
* @return true if the player has been disconnected for too long and should be removed from the queue
|
||||||
|
*/
|
||||||
|
boolean playerDisconnectedTooLong(QueuePlayer player);
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -9,14 +9,6 @@ import us.ajg0702.queue.api.queues.QueueServer;
|
|||||||
import java.util.List;
|
import java.util.List;
|
||||||
|
|
||||||
public interface PlatformMethods {
|
public interface PlatformMethods {
|
||||||
/**
|
|
||||||
* BungeeUtils.sendCustomData(p, "position", pos+"");
|
|
||||||
* BungeeUtils.sendCustomData(p, "positionof", len+"");
|
|
||||||
* BungeeUtils.sendCustomData(p, "queuename", pl.aliases.getAlias(s));
|
|
||||||
* BungeeUtils.sendCustomData(p, "inqueue", "true");
|
|
||||||
* BungeeUtils.sendCustomData(p, "inqueueevent", "true");
|
|
||||||
*/
|
|
||||||
void sendJoinQueueChannelMessages(QueueServer queueServer, QueuePlayer queuePlayer);
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Sends a plugin message on the plugin messaging channel
|
* Sends a plugin message on the plugin messaging channel
|
||||||
|
|||||||
@@ -56,4 +56,10 @@ public interface QueuePlayer {
|
|||||||
* @return the player's username
|
* @return the player's username
|
||||||
*/
|
*/
|
||||||
String getName();
|
String getName();
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Returns the number of miliseconds since this player was online
|
||||||
|
* @return The number of miliseconds since this player was online
|
||||||
|
*/
|
||||||
|
long getTimeSinceOnline();
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -198,6 +198,12 @@ public interface QueueServer {
|
|||||||
*/
|
*/
|
||||||
QueuePlayer findPlayer(AdaptedPlayer player);
|
QueuePlayer findPlayer(AdaptedPlayer player);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Finds the player with this uuid in this queue and returns the representative QueuePlayer
|
||||||
|
* @return The QueuePlayer representing the player, null if not found
|
||||||
|
*/
|
||||||
|
QueuePlayer findPlayer(UUID uuid);
|
||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Gets the most ideal server in this group to join
|
* Gets the most ideal server in this group to join
|
||||||
|
|||||||
@@ -23,6 +23,6 @@ public class PlayerSender implements ICommandSender {
|
|||||||
|
|
||||||
@Override
|
@Override
|
||||||
public AdaptedPlayer getHandle() {
|
public AdaptedPlayer getHandle() {
|
||||||
return null;
|
return handle;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -49,13 +49,10 @@ public class LeaveCommand extends BaseCommand {
|
|||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void execute(ICommandSender sender, String[] args) {
|
public void execute(ICommandSender sender, String[] args) {
|
||||||
System.out.println("leave command");
|
|
||||||
if(!sender.isPlayer()) {
|
if(!sender.isPlayer()) {
|
||||||
System.out.println("not player");
|
|
||||||
sender.sendMessage(getMessages().getComponent("errors.player-only"));
|
sender.sendMessage(getMessages().getComponent("errors.player-only"));
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
System.out.println("player");
|
|
||||||
AdaptedPlayer player = main.getPlatformMethods().senderToPlayer(sender);
|
AdaptedPlayer player = main.getPlatformMethods().senderToPlayer(sender);
|
||||||
List<QueueServer> servers = main.getQueueManager().getPlayerQueues(player);
|
List<QueueServer> servers = main.getQueueManager().getPlayerQueues(player);
|
||||||
|
|
||||||
@@ -64,7 +61,6 @@ public class LeaveCommand extends BaseCommand {
|
|||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
System.out.println("0");
|
|
||||||
|
|
||||||
if(servers.size() == 1) {
|
if(servers.size() == 1) {
|
||||||
servers.get(0).removePlayer(player);
|
servers.get(0).removePlayer(player);
|
||||||
@@ -72,7 +68,6 @@ public class LeaveCommand extends BaseCommand {
|
|||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
System.out.println("1");
|
|
||||||
|
|
||||||
if(args.length <= 0) {
|
if(args.length <= 0) {
|
||||||
sender.sendMessage(getMessages().getComponent("commands.leave.more-args", "QUEUES:"+getQueueList(servers)));
|
sender.sendMessage(getMessages().getComponent("commands.leave.more-args", "QUEUES:"+getQueueList(servers)));
|
||||||
@@ -91,7 +86,6 @@ public class LeaveCommand extends BaseCommand {
|
|||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
System.out.println("2");
|
|
||||||
|
|
||||||
leavingServer.removePlayer(queuePlayer);
|
leavingServer.removePlayer(queuePlayer);
|
||||||
sender.sendMessage(getMessages().getComponent("commands.leave-queue", "SERVER:"+leavingServer.getAlias()));
|
sender.sendMessage(getMessages().getComponent("commands.leave-queue", "SERVER:"+leavingServer.getAlias()));
|
||||||
|
|||||||
@@ -1,10 +1,13 @@
|
|||||||
package us.ajg0702.queue.common;
|
package us.ajg0702.queue.common;
|
||||||
|
|
||||||
|
import com.google.common.collect.ImmutableList;
|
||||||
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;
|
||||||
|
import us.ajg0702.queue.api.players.QueuePlayer;
|
||||||
import us.ajg0702.queue.api.queues.QueueServer;
|
import us.ajg0702.queue.api.queues.QueueServer;
|
||||||
import us.ajg0702.queue.commands.commands.PlayerSender;
|
import us.ajg0702.queue.commands.commands.PlayerSender;
|
||||||
|
import us.ajg0702.queue.common.players.QueuePlayerImpl;
|
||||||
|
|
||||||
import java.io.ByteArrayInputStream;
|
import java.io.ByteArrayInputStream;
|
||||||
import java.io.DataInputStream;
|
import java.io.DataInputStream;
|
||||||
@@ -30,8 +33,6 @@ public class EventHandlerImpl implements EventHandler {
|
|||||||
String[] args = new String[1];
|
String[] args = new String[1];
|
||||||
args[0] = rawData;
|
args[0] = rawData;
|
||||||
moveCommand.execute(new PlayerSender(recievingPlayer), args);
|
moveCommand.execute(new PlayerSender(recievingPlayer), args);
|
||||||
//man.addToQueue(player, data);
|
|
||||||
|
|
||||||
}
|
}
|
||||||
if(subchannel.equals("massqueue")) {
|
if(subchannel.equals("massqueue")) {
|
||||||
String inData = in.readUTF();
|
String inData = in.readUTF();
|
||||||
@@ -89,4 +90,24 @@ public class EventHandlerImpl implements EventHandler {
|
|||||||
e1.printStackTrace();
|
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;
|
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.AdaptedServer;
|
||||||
import us.ajg0702.queue.api.server.ServerBuilder;
|
import us.ajg0702.queue.api.server.ServerBuilder;
|
||||||
import us.ajg0702.queue.common.players.QueuePlayerImpl;
|
import us.ajg0702.queue.common.players.QueuePlayerImpl;
|
||||||
|
import us.ajg0702.utils.bungee.BungeeUtils;
|
||||||
import us.ajg0702.utils.common.Messages;
|
import us.ajg0702.utils.common.Messages;
|
||||||
import us.ajg0702.utils.common.TimeUtils;
|
import us.ajg0702.utils.common.TimeUtils;
|
||||||
|
|
||||||
@@ -131,7 +132,11 @@ public class QueueManagerImpl implements QueueManager {
|
|||||||
if(!server.isJoinable(player)) {
|
if(!server.isJoinable(player)) {
|
||||||
sendMessage(queuePlayer);
|
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;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -232,7 +237,6 @@ public class QueueManagerImpl implements QueueManager {
|
|||||||
for(QueueServer server : servers) {
|
for(QueueServer server : servers) {
|
||||||
String status = server.getStatusString();
|
String status = server.getStatusString();
|
||||||
for(QueuePlayer queuePlayer : server.getQueue()) {
|
for(QueuePlayer queuePlayer : server.getQueue()) {
|
||||||
if(!getSingleServer(queuePlayer.getPlayer()).equals(server)) continue;
|
|
||||||
|
|
||||||
int pos = queuePlayer.getPosition();
|
int pos = queuePlayer.getPosition();
|
||||||
if(pos == 0) {
|
if(pos == 0) {
|
||||||
@@ -243,6 +247,8 @@ public class QueueManagerImpl implements QueueManager {
|
|||||||
AdaptedPlayer player = queuePlayer.getPlayer();
|
AdaptedPlayer player = queuePlayer.getPlayer();
|
||||||
if(player == null) continue;
|
if(player == null) continue;
|
||||||
|
|
||||||
|
if(!getSingleServer(player).equals(server)) continue;
|
||||||
|
|
||||||
if(!server.isJoinable(player)) {
|
if(!server.isJoinable(player)) {
|
||||||
queuePlayer.getPlayer().sendActionBar(msgs.getComponent("spigot.actionbar.offline",
|
queuePlayer.getPlayer().sendActionBar(msgs.getComponent("spigot.actionbar.offline",
|
||||||
"POS:"+pos,
|
"POS:"+pos,
|
||||||
|
|||||||
@@ -9,6 +9,7 @@ import java.util.concurrent.TimeUnit;
|
|||||||
|
|
||||||
public class TaskManager {
|
public class TaskManager {
|
||||||
|
|
||||||
|
|
||||||
final ScheduledExecutorService executor = Executors.newScheduledThreadPool(1);
|
final ScheduledExecutorService executor = Executors.newScheduledThreadPool(1);
|
||||||
final ScheduledExecutorService updateExecutor = Executors.newScheduledThreadPool(1);
|
final ScheduledExecutorService updateExecutor = Executors.newScheduledThreadPool(1);
|
||||||
|
|
||||||
@@ -17,6 +18,11 @@ public class TaskManager {
|
|||||||
this.main = main;
|
this.main = main;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public void shutdown() {
|
||||||
|
executor.shutdown();
|
||||||
|
updateExecutor.shutdown();
|
||||||
|
}
|
||||||
|
|
||||||
public String taskStatus() {
|
public String taskStatus() {
|
||||||
List<ScheduledFuture<?>> tasks = Arrays.asList(sendTask, updateTask, messageTask, actionBarTask, queueEventTask, reloadServerTask);
|
List<ScheduledFuture<?>> tasks = Arrays.asList(sendTask, updateTask, messageTask, actionBarTask, queueEventTask, reloadServerTask);
|
||||||
StringBuilder sb = new StringBuilder();
|
StringBuilder sb = new StringBuilder();
|
||||||
|
|||||||
@@ -47,7 +47,7 @@ public class QueuePlayerImpl implements QueuePlayer {
|
|||||||
@Nullable
|
@Nullable
|
||||||
@Override
|
@Override
|
||||||
public AdaptedPlayer getPlayer() {
|
public AdaptedPlayer getPlayer() {
|
||||||
if(!player.isConnected()) return null;
|
if(player != null && !player.isConnected()) player = null;
|
||||||
return player;
|
return player;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -73,4 +73,20 @@ public class QueuePlayerImpl implements QueuePlayer {
|
|||||||
public String getName() {
|
public String getName() {
|
||||||
return name;
|
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
|
@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) {
|
for(QueuePlayer queuePlayer : queue) {
|
||||||
AdaptedPlayer queuedPlayer = queuePlayer.getPlayer();
|
if(queuePlayer.getUniqueId().toString().equals(uuid.toString())) {
|
||||||
if(queuedPlayer == null) continue;
|
|
||||||
if(
|
|
||||||
queuedPlayer
|
|
||||||
.getUniqueId()
|
|
||||||
.equals(
|
|
||||||
player
|
|
||||||
.getUniqueId()
|
|
||||||
)
|
|
||||||
) {
|
|
||||||
return queuePlayer;
|
return queuePlayer;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -15,4 +15,9 @@ public class FreeLogic implements Logic {
|
|||||||
public QueuePlayer priorityLogic(QueueServer server, AdaptedPlayer player) {
|
public QueuePlayer priorityLogic(QueueServer server, AdaptedPlayer player) {
|
||||||
return null;
|
return null;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public boolean playerDisconnectedTooLong(QueuePlayer player) {
|
||||||
|
return true;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
+6
-9
@@ -15,6 +15,7 @@ import us.ajg0702.queue.api.commands.ICommandSender;
|
|||||||
import us.ajg0702.queue.api.players.AdaptedPlayer;
|
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 us.ajg0702.queue.commands.commands.PlayerSender;
|
||||||
import us.ajg0702.queue.platforms.velocity.players.VelocityPlayer;
|
import us.ajg0702.queue.platforms.velocity.players.VelocityPlayer;
|
||||||
|
|
||||||
import java.util.ArrayList;
|
import java.util.ArrayList;
|
||||||
@@ -23,25 +24,18 @@ import java.util.Locale;
|
|||||||
import java.util.Optional;
|
import java.util.Optional;
|
||||||
import java.util.logging.Logger;
|
import java.util.logging.Logger;
|
||||||
|
|
||||||
public class PlatformMethodsImpl implements PlatformMethods {
|
public class VelocityMethods implements PlatformMethods {
|
||||||
|
|
||||||
final ProxyServer proxyServer;
|
final ProxyServer proxyServer;
|
||||||
final Logger logger;
|
final Logger logger;
|
||||||
final VelocityQueue plugin;
|
final VelocityQueue plugin;
|
||||||
|
|
||||||
public PlatformMethodsImpl(VelocityQueue plugin, ProxyServer proxyServer, Logger logger) {
|
public VelocityMethods(VelocityQueue plugin, ProxyServer proxyServer, Logger logger) {
|
||||||
this.proxyServer = proxyServer;
|
this.proxyServer = proxyServer;
|
||||||
this.logger = logger;
|
this.logger = logger;
|
||||||
this.plugin = plugin;
|
this.plugin = plugin;
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
|
||||||
public void sendJoinQueueChannelMessages(QueueServer queueServer, QueuePlayer queuePlayer) {
|
|
||||||
AdaptedPlayer player = queuePlayer.getPlayer();
|
|
||||||
if(player == null) return;
|
|
||||||
player.sendMessage(Component.text());
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void sendPluginMessage(AdaptedPlayer player, String channel, String... data) {
|
public void sendPluginMessage(AdaptedPlayer player, String channel, String... data) {
|
||||||
if(player == null) return;
|
if(player == null) return;
|
||||||
@@ -58,6 +52,9 @@ public class PlatformMethodsImpl implements PlatformMethods {
|
|||||||
|
|
||||||
@Override
|
@Override
|
||||||
public AdaptedPlayer senderToPlayer(ICommandSender sender) {
|
public AdaptedPlayer senderToPlayer(ICommandSender sender) {
|
||||||
|
if(sender instanceof PlayerSender) {
|
||||||
|
return ((PlayerSender) sender).getHandle();
|
||||||
|
}
|
||||||
return new VelocityPlayer((Player) sender.getHandle());
|
return new VelocityPlayer((Player) sender.getHandle());
|
||||||
}
|
}
|
||||||
|
|
||||||
+35
-4
@@ -2,14 +2,18 @@ package us.ajg0702.queue.platforms.velocity;
|
|||||||
|
|
||||||
import com.google.inject.Inject;
|
import com.google.inject.Inject;
|
||||||
import com.velocitypowered.api.command.CommandManager;
|
import com.velocitypowered.api.command.CommandManager;
|
||||||
import com.velocitypowered.api.event.ResultedEvent;
|
|
||||||
import com.velocitypowered.api.event.Subscribe;
|
import com.velocitypowered.api.event.Subscribe;
|
||||||
|
import com.velocitypowered.api.event.connection.DisconnectEvent;
|
||||||
import com.velocitypowered.api.event.connection.PluginMessageEvent;
|
import com.velocitypowered.api.event.connection.PluginMessageEvent;
|
||||||
|
import com.velocitypowered.api.event.player.ServerPostConnectEvent;
|
||||||
import com.velocitypowered.api.event.proxy.ProxyInitializeEvent;
|
import com.velocitypowered.api.event.proxy.ProxyInitializeEvent;
|
||||||
|
import com.velocitypowered.api.event.proxy.ProxyShutdownEvent;
|
||||||
import com.velocitypowered.api.plugin.Plugin;
|
import com.velocitypowered.api.plugin.Plugin;
|
||||||
import com.velocitypowered.api.plugin.annotation.DataDirectory;
|
import com.velocitypowered.api.plugin.annotation.DataDirectory;
|
||||||
import com.velocitypowered.api.proxy.Player;
|
import com.velocitypowered.api.proxy.Player;
|
||||||
import com.velocitypowered.api.proxy.ProxyServer;
|
import com.velocitypowered.api.proxy.ProxyServer;
|
||||||
|
import com.velocitypowered.api.proxy.messages.MinecraftChannelIdentifier;
|
||||||
|
import net.kyori.adventure.text.Component;
|
||||||
import us.ajg0702.queue.api.commands.IBaseCommand;
|
import us.ajg0702.queue.api.commands.IBaseCommand;
|
||||||
import us.ajg0702.queue.commands.BaseCommand;
|
import us.ajg0702.queue.commands.BaseCommand;
|
||||||
import us.ajg0702.queue.commands.commands.leavequeue.LeaveCommand;
|
import us.ajg0702.queue.commands.commands.leavequeue.LeaveCommand;
|
||||||
@@ -58,7 +62,7 @@ public class VelocityQueue {
|
|||||||
public void onProxyInit(ProxyInitializeEvent e) {
|
public void onProxyInit(ProxyInitializeEvent e) {
|
||||||
main = new QueueMain(
|
main = new QueueMain(
|
||||||
logger,
|
logger,
|
||||||
new PlatformMethodsImpl(this, proxyServer, logger),
|
new VelocityMethods(this, proxyServer, logger),
|
||||||
dataFolder
|
dataFolder
|
||||||
);
|
);
|
||||||
main.setServerBuilder(new ServerBuilderImpl(main, proxyServer));
|
main.setServerBuilder(new ServerBuilderImpl(main, proxyServer));
|
||||||
@@ -73,6 +77,10 @@ public class VelocityQueue {
|
|||||||
CommandManager commandManager = proxyServer.getCommandManager();
|
CommandManager commandManager = proxyServer.getCommandManager();
|
||||||
|
|
||||||
|
|
||||||
|
proxyServer.getChannelRegistrar().register(MinecraftChannelIdentifier.from("ajqueue:tospigot"));
|
||||||
|
proxyServer.getChannelRegistrar().register(MinecraftChannelIdentifier.from("ajqueue:toproxy"));
|
||||||
|
|
||||||
|
|
||||||
for(IBaseCommand command : commands) {
|
for(IBaseCommand command : commands) {
|
||||||
commandManager.register(
|
commandManager.register(
|
||||||
commandManager.metaBuilder(command.getName())
|
commandManager.metaBuilder(command.getName())
|
||||||
@@ -83,18 +91,41 @@ public class VelocityQueue {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Subscribe
|
||||||
|
public void onProxyShutdown(ProxyShutdownEvent e) {
|
||||||
|
main.shutdown();
|
||||||
|
}
|
||||||
|
|
||||||
@Subscribe
|
@Subscribe
|
||||||
public void onPluginMessage(PluginMessageEvent e) {
|
public void onPluginMessage(PluginMessageEvent e) {
|
||||||
System.out.println("Recieved message: "+e.getIdentifier().getId());
|
|
||||||
if(e.getIdentifier().getId().equals("ajqueue:tospigot")) {
|
if(e.getIdentifier().getId().equals("ajqueue:tospigot")) {
|
||||||
e.setResult(PluginMessageEvent.ForwardResult.handled());
|
e.setResult(PluginMessageEvent.ForwardResult.handled());
|
||||||
|
System.out.println("Skipping message: "+e.getIdentifier().getId());
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
if(!e.getIdentifier().getId().equals("ajqueue:toproxy")) {
|
||||||
|
System.out.println("Skipping message: "+e.getIdentifier().getId());
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
if(!e.getIdentifier().getId().equals("ajqueue:toproxy")) return;
|
|
||||||
e.setResult(PluginMessageEvent.ForwardResult.handled());
|
e.setResult(PluginMessageEvent.ForwardResult.handled());
|
||||||
|
|
||||||
|
System.out.println("Processing message: "+e.getIdentifier().getId());
|
||||||
|
|
||||||
if(!(e.getTarget() instanceof Player)) return;
|
if(!(e.getTarget() instanceof Player)) return;
|
||||||
|
|
||||||
main.getEventHandler().handleMessage(new VelocityPlayer((Player) e.getTarget()), e.getData());
|
main.getEventHandler().handleMessage(new VelocityPlayer((Player) e.getTarget()), e.getData());
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@SuppressWarnings("UnstableApiUsage")
|
||||||
|
@Subscribe
|
||||||
|
public void onJoin(ServerPostConnectEvent e) {
|
||||||
|
if(e.getPreviousServer() != null) return; // only run if the player just joined
|
||||||
|
main.getEventHandler().onPlayerJoin(new VelocityPlayer(e.getPlayer()));
|
||||||
|
}
|
||||||
|
|
||||||
|
@Subscribe
|
||||||
|
public void onLeave(DisconnectEvent e) {
|
||||||
|
main.getEventHandler().onPlayerLeave(new VelocityPlayer(e.getPlayer()));
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -10,6 +10,7 @@ import org.bukkit.event.Listener;
|
|||||||
import org.bukkit.event.player.PlayerQuitEvent;
|
import org.bukkit.event.player.PlayerQuitEvent;
|
||||||
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 us.ajg0702.queue.spigot.utils.VersionSupport;
|
import us.ajg0702.queue.spigot.utils.VersionSupport;
|
||||||
|
|
||||||
import java.util.HashMap;
|
import java.util.HashMap;
|
||||||
@@ -23,7 +24,7 @@ public class Main extends JavaPlugin implements PluginMessageListener,Listener {
|
|||||||
|
|
||||||
public void onEnable() {
|
public void onEnable() {
|
||||||
getServer().getMessenger().registerIncomingPluginChannel(this, "ajqueue:tospigot", this);
|
getServer().getMessenger().registerIncomingPluginChannel(this, "ajqueue:tospigot", this);
|
||||||
getServer().getMessenger().registerOutgoingPluginChannel(this, "ajqueue:tobungee");
|
getServer().getMessenger().registerOutgoingPluginChannel(this, "ajqueue:toproxy");
|
||||||
|
|
||||||
this.getCommand("move").setExecutor(new Commands(this));
|
this.getCommand("move").setExecutor(new Commands(this));
|
||||||
this.getCommand("leavequeue").setExecutor(new Commands(this));
|
this.getCommand("leavequeue").setExecutor(new Commands(this));
|
||||||
@@ -62,8 +63,12 @@ public class Main extends JavaPlugin implements PluginMessageListener,Listener {
|
|||||||
HashMap<Player, String> queuebatch = new HashMap<>();
|
HashMap<Player, String> queuebatch = new HashMap<>();
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void onPluginMessageReceived(String channel, Player player, byte[] message) {
|
public void onPluginMessageReceived(@NotNull String channel, @NotNull Player player, @NotNull byte[] message) {
|
||||||
if (!channel.equals("ajqueue:tospigot")) return;
|
if (!channel.equals("ajqueue:tospigot")) {
|
||||||
|
getLogger().info("Skipping message: "+channel);
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
getLogger().info("Processing message: "+channel);
|
||||||
|
|
||||||
ByteArrayDataInput in = ByteStreams.newDataInput(message);
|
ByteArrayDataInput in = ByteStreams.newDataInput(message);
|
||||||
|
|
||||||
@@ -161,7 +166,7 @@ public class Main extends JavaPlugin implements PluginMessageListener,Listener {
|
|||||||
out.writeUTF(subchannel);
|
out.writeUTF(subchannel);
|
||||||
out.writeUTF(data);
|
out.writeUTF(data);
|
||||||
|
|
||||||
player.sendPluginMessage(this, "ajqueue:tobungee", out.toByteArray());
|
player.sendPluginMessage(this, "ajqueue:toproxy", out.toByteArray());
|
||||||
}
|
}
|
||||||
|
|
||||||
public void sendMessage(String subchannel, String data) {
|
public void sendMessage(String subchannel, String data) {
|
||||||
@@ -170,7 +175,7 @@ public class Main extends JavaPlugin implements PluginMessageListener,Listener {
|
|||||||
out.writeUTF(data);
|
out.writeUTF(data);
|
||||||
|
|
||||||
Bukkit.getOnlinePlayers().iterator().next()
|
Bukkit.getOnlinePlayers().iterator().next()
|
||||||
.sendPluginMessage(this, "ajqueue:tobungee", out.toByteArray());
|
.sendPluginMessage(this, "ajqueue:toproxy", out.toByteArray());
|
||||||
}
|
}
|
||||||
|
|
||||||
@EventHandler
|
@EventHandler
|
||||||
|
|||||||
Reference in New Issue
Block a user