Skip to content

Commit

Permalink
Allow targeting multiple RemotePlayers
Browse files Browse the repository at this point in the history
  • Loading branch information
ME1312 committed Jun 15, 2021
1 parent 517074f commit 7d6396e
Show file tree
Hide file tree
Showing 30 changed files with 1,089 additions and 476 deletions.
Expand Up @@ -12,10 +12,12 @@
* BungeeCord Common Layout Class
*/
public abstract class BungeeCommon extends BungeeCord {
private static BungeeCommon instance;
final ReturnRunnable<BungeeAPI> api;

protected BungeeCommon(ReturnRunnable<BungeeAPI> api) throws IOException {
this.api = api;
instance = this;
}

/**
Expand All @@ -31,4 +33,13 @@ protected BungeeCommon(ReturnRunnable<BungeeAPI> api) throws IOException {
* @return Server Map Copy
*/
public abstract Map<String, ServerInfo> getServersCopy();

/**
* Gets the ProxyServer Common Object
*
* @return ProxyServer Common
*/
public static BungeeCommon getInstance() {
return instance;
}
}
@@ -0,0 +1,53 @@
package net.ME1312.SubServers.Bungee.Library.Compatibility;

import net.ME1312.Galaxi.Library.Callback.Callback;

import net.md_5.bungee.api.chat.BaseComponent;

import java.util.UUID;

/**
* RemotePlayer Static Implementation Layout Class
*/
public abstract class RPSI {
protected static RPSI instance;
protected RPSI() {
if (instance == null) instance = this;
}

/**
* Sends messages to this player
*
* @param players Players to send to
* @param messages Messages to send
* @param response Success Status
*/
protected abstract void sendMessage(UUID[] players, String[] messages, Callback<Integer> response);

/**
* Sends messages to this player
*
* @param players Players to send to
* @param messages Messages to send
* @param response Success Status
*/
protected abstract void sendMessage(UUID[] players, BaseComponent[] messages, Callback<Integer> response);

/**
* Transfers this player to another server
*
* @param players Players to send to
* @param server Target server
* @param response Success Status
*/
protected abstract void transfer(UUID[] players, String server, Callback<Integer> response);

/**
* Disconnects this player from the network
*
* @param players Players to send to
* @param reason Disconnect Reason
* @param response Success status
*/
protected abstract void disconnect(UUID[] players, String reason, Callback<Integer> response);
}
Expand Up @@ -3,15 +3,14 @@
import net.ME1312.Galaxi.Library.Callback.Callback;

import net.md_5.bungee.api.chat.BaseComponent;
import net.md_5.bungee.api.chat.TextComponent;
import net.md_5.bungee.api.config.ServerInfo;
import net.md_5.bungee.api.connection.ProxiedPlayer;

import java.net.InetSocketAddress;
import java.util.Arrays;
import java.util.LinkedList;
import java.util.UUID;

import static net.ME1312.SubServers.Bungee.Library.Compatibility.RPSI.instance;

/**
* RemotePlayer Layout Class
*/
Expand Down Expand Up @@ -66,6 +65,35 @@ public interface RemotePlayer {
*/
ServerInfo getServer();

/**
* Sends messages to all players
*
* @param messages Messages to send
*/
static void broadcastMessage(String... messages) {
broadcastMessage(messages, i -> {});
}

/**
* Sends messages to all players
*
* @param message Message to send
* @param response Success Status
*/
static void broadcastMessage(String message, Callback<Integer> response) {
broadcastMessage(new String[]{ message }, response);
}

/**
* Sends messages to all players
*
* @param messages Messages to send
* @param response Success Status
*/
static void broadcastMessage(String[] messages, Callback<Integer> response) {
sendMessage(null, messages, response);
}

/**
* Sends messages to this player
*
Expand All @@ -91,7 +119,67 @@ default void sendMessage(String message, Callback<Integer> response) {
* @param messages Messages to send
* @param response Success Status
*/
void sendMessage(String[] messages, Callback<Integer> response);
default void sendMessage(String[] messages, Callback<Integer> response) {
sendMessage(new UUID[]{ getUniqueId() }, messages, response);
}

/**
* Sends messages to this player
*
* @param messages Messages to send
*/
static void sendMessage(UUID[] players, String... messages) {
sendMessage(players, messages, i -> {});
}

/**
* Sends messages to this player
*
* @param message Message to send
* @param response Success Status
*/
static void sendMessage(UUID[] players, String message, Callback<Integer> response) {
sendMessage(players, new String[]{ message }, response);
}

/**
* Sends messages to this player
*
* @param messages Messages to send
* @param response Success Status
*/
static void sendMessage(UUID[] players, String[] messages, Callback<Integer> response) {
instance.sendMessage(players, messages, response);
}

/**
* Sends messages to all players
*
* @param messages Messages to send
*/
static void broadcastMessage(BaseComponent... messages) {
broadcastMessage(messages, i -> {});
}

/**
* Sends messages to all players
*
* @param message Message to send
* @param response Success Status
*/
static void broadcastMessage(BaseComponent message, Callback<Integer> response) {
broadcastMessage(new BaseComponent[]{ message }, response);
}

/**
* Sends messages to all players
*
* @param messages Messages to send
* @param response Success Status
*/
static void broadcastMessage(BaseComponent[] messages, Callback<Integer> response) {
sendMessage(null, messages, response);
}

/**
* Sends messages to this player
Expand All @@ -118,7 +206,41 @@ default void sendMessage(BaseComponent message, Callback<Integer> response) {
* @param messages Messages to send
* @param response Success Status
*/
void sendMessage(BaseComponent[] messages, Callback<Integer> response);
default void sendMessage(BaseComponent[] messages, Callback<Integer> response) {
sendMessage(new UUID[]{ getUniqueId() }, messages, response);
}

/**
* Sends messages to this player
*
* @param players Players to select
* @param messages Messages to send
*/
static void sendMessage(UUID[] players, BaseComponent... messages) {
sendMessage(players, messages, i -> {});
}

/**
* Sends messages to this player
*
* @param players Players to select
* @param message Message to send
* @param response Success Status
*/
static void sendMessage(UUID[] players, BaseComponent message, Callback<Integer> response) {
sendMessage(players, new BaseComponent[]{ message }, response);
}

/**
* Sends messages to this player
*
* @param players Players to select
* @param message Message to send
* @param response Success Status
*/
static void sendMessage(UUID[] players, BaseComponent[] message, Callback<Integer> response) {
instance.sendMessage(players, message, response);
}

/**
* Transfers this player to another server
Expand All @@ -135,7 +257,30 @@ default void transfer(String server) {
* @param server Target server
* @param response Success status
*/
void transfer(String server, Callback<Integer> response);
default void transfer(String server, Callback<Integer> response) {
transfer(new UUID[]{ getUniqueId() }, server, response);
}

/**
* Transfers this player to another server
*
* @param players Players to select
* @param server Target server
*/
static void transfer(UUID[] players, String server) {
transfer(players, server, i -> {});
}

/**
* Transfers this player to another server
*
* @param players Players to select
* @param server Target server
* @param response Success status
*/
static void transfer(UUID[] players, String server, Callback<Integer> response) {
instance.transfer(players, server, response);
}

/**
* Transfers this player to another server
Expand All @@ -152,13 +297,36 @@ default void transfer(ServerInfo server) {
* @param server Target server
* @param response Success status
*/
void transfer(ServerInfo server, Callback<Integer> response);
default void transfer(ServerInfo server, Callback<Integer> response) {
transfer(new UUID[]{ getUniqueId() }, server, response);
}

/**
* Transfers this player to another server
*
* @param players Players to select
* @param server Target server
*/
static void transfer(UUID[] players, ServerInfo server) {
transfer(players, server, i -> {});
}

/**
* Transfers this player to another server
*
* @param players Players to select
* @param server Target server
* @param response Success status
*/
static void transfer(UUID[] players, ServerInfo server, Callback<Integer> response) {
instance.transfer(players, server.getName(), response);
}

/**
* Disconnects this player from the network
*/
default void disconnect() {
disconnect(i -> {});
disconnect((String) null);
}

/**
Expand All @@ -167,7 +335,7 @@ default void disconnect() {
* @param response Success status
*/
default void disconnect(Callback<Integer> response) {
disconnect(null, response);
disconnect((String) null, response);
}

/**
Expand All @@ -185,5 +353,47 @@ default void disconnect(String reason) {
* @param reason Disconnect Reason
* @param response Success status
*/
void disconnect(String reason, Callback<Integer> response);
default void disconnect(String reason, Callback<Integer> response) {
disconnect(new UUID[]{ getUniqueId() }, reason, response);
}

/**
* Disconnects this player from the network
*
* @param players Players to select
*/
static void disconnect(UUID... players) {
disconnect(players, (String) null);
}

/**
* Disconnects this player from the network
*
* @param players Players to select
* @param response Success status
*/
static void disconnect(UUID[] players, Callback<Integer> response) {
disconnect(players, null, response);
}

/**
* Disconnects this player from the network
*
* @param players Players to select
* @param reason Disconnect Reason
*/
static void disconnect(UUID[] players, String reason) {
disconnect(players, reason, i -> {});
}

/**
* Disconnects this player from the network
*
* @param players Players to select
* @param reason Disconnect Reason
* @param response Success status
*/
static void disconnect(UUID[] players, String reason, Callback<Integer> response) {
instance.disconnect(players, reason, response);
}
}
Expand Up @@ -160,8 +160,8 @@ public SubCreator getCreator() {

@Override
public SubServer getSubServer(String name) {
if (Util.isNull(name)) throw new NullPointerException();
return getSubServers().get(name.toLowerCase());
if (Util.isNull(name)) return null;
return servers.get(name.toLowerCase());
}

@Override
Expand Down
Expand Up @@ -94,8 +94,8 @@ public SubCreator getCreator() {

@Override
public SubServer getSubServer(String name) {
if (Util.isNull(name)) throw new NullPointerException();
return getSubServers().get(name.toLowerCase());
if (Util.isNull(name)) return null;
return servers.get(name.toLowerCase());
}

@Override
Expand Down

0 comments on commit 7d6396e

Please sign in to comment.