Skip to content

Commit

Permalink
Fix multi-line JSON message parsing
Browse files Browse the repository at this point in the history
  • Loading branch information
ME1312 committed Jun 15, 2021
1 parent 7d6396e commit 1fff679
Show file tree
Hide file tree
Showing 7 changed files with 191 additions and 86 deletions.
Expand Up @@ -31,7 +31,7 @@ protected RPSI() {
* @param messages Messages to send
* @param response Success Status
*/
protected abstract void sendMessage(UUID[] players, BaseComponent[] messages, Callback<Integer> response);
protected abstract void sendMessage(UUID[] players, BaseComponent[][] messages, Callback<Integer> response);

/**
* Transfers this player to another server
Expand Down
Expand Up @@ -75,7 +75,7 @@ static void broadcastMessage(String... messages) {
}

/**
* Sends messages to all players
* Sends a message to all players
*
* @param message Message to send
* @param response Success Status
Expand Down Expand Up @@ -104,7 +104,7 @@ default void sendMessage(String... messages) {
}

/**
* Sends messages to this player
* Sends a message to this player
*
* @param message Message to send
* @param response Success Status
Expand All @@ -124,17 +124,19 @@ default void sendMessage(String[] messages, Callback<Integer> response) {
}

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

/**
* Sends messages to this player
* Sends a message to these players
*
* @param players Players to select
* @param message Message to send
* @param response Success Status
*/
Expand All @@ -143,8 +145,9 @@ static void sendMessage(UUID[] players, String message, Callback<Integer> respon
}

/**
* Sends messages to this player
* Sends messages to these players
*
* @param players Players to select
* @param messages Messages to send
* @param response Success Status
*/
Expand All @@ -153,16 +156,16 @@ static void sendMessage(UUID[] players, String[] messages, Callback<Integer> res
}

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

/**
* Sends messages to all players
* Sends a message to all players
*
* @param message Message to send
* @param response Success Status
Expand All @@ -171,27 +174,46 @@ static void broadcastMessage(BaseComponent message, Callback<Integer> response)
broadcastMessage(new BaseComponent[]{ message }, response);
}

/**
* Sends a 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
*/
static void broadcastMessage(BaseComponent[]... messages) {
broadcastMessage(messages, i -> {});
}

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

/**
* Sends messages to this player
* Sends a message to this player
*
* @param messages Messages to send
* @param message Message to send
*/
default void sendMessage(BaseComponent... messages) {
sendMessage(messages, i -> {});
default void sendMessage(BaseComponent... message) {
sendMessage(message, i -> {});
}

/**
* Sends messages to this player
* Sends a message to this player
*
* @param message Message to send
* @param response Success Status
Expand All @@ -200,28 +222,47 @@ default void sendMessage(BaseComponent message, Callback<Integer> response) {
sendMessage(new BaseComponent[]{ message }, response);
}

/**
* Sends a message to this player
*
* @param message Message to send
* @param response Success Status
*/
default void sendMessage(BaseComponent[] message, Callback<Integer> response) {
sendMessage(new BaseComponent[][]{ message }, response);
}

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

/**
* Sends messages to this player
*
* @param messages Messages to send
* @param response Success Status
*/
default 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
* Sends a message to these players
*
* @param players Players to select
* @param messages Messages to send
* @param message Message to send
*/
static void sendMessage(UUID[] players, BaseComponent... messages) {
sendMessage(players, messages, i -> {});
static void sendMessage(UUID[] players, BaseComponent... message) {
sendMessage(players, message, i -> {});
}

/**
* Sends messages to this player
* Sends a message to these players
*
* @param players Players to select
* @param message Message to send
Expand All @@ -232,14 +273,35 @@ static void sendMessage(UUID[] players, BaseComponent message, Callback<Integer>
}

/**
* Sends messages to this player
* Sends a message to these players
*
* @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);
sendMessage(players, new BaseComponent[][]{ message }, response);
}

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

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

/**
Expand All @@ -262,7 +324,7 @@ default void transfer(String server, Callback<Integer> response) {
}

/**
* Transfers this player to another server
* Transfers these players to another server
*
* @param players Players to select
* @param server Target server
Expand All @@ -272,7 +334,7 @@ static void transfer(UUID[] players, String server) {
}

/**
* Transfers this player to another server
* Transfers these players to another server
*
* @param players Players to select
* @param server Target server
Expand Down Expand Up @@ -302,7 +364,7 @@ default void transfer(ServerInfo server, Callback<Integer> response) {
}

/**
* Transfers this player to another server
* Transfers these players to another server
*
* @param players Players to select
* @param server Target server
Expand All @@ -312,7 +374,7 @@ static void transfer(UUID[] players, ServerInfo server) {
}

/**
* Transfers this player to another server
* Transfers these players to another server
*
* @param players Players to select
* @param server Target server
Expand Down Expand Up @@ -358,7 +420,7 @@ default void disconnect(String reason, Callback<Integer> response) {
}

/**
* Disconnects this player from the network
* Disconnects these players from the network
*
* @param players Players to select
*/
Expand All @@ -367,7 +429,7 @@ static void disconnect(UUID... players) {
}

/**
* Disconnects this player from the network
* Disconnects these players from the network
*
* @param players Players to select
* @param response Success status
Expand All @@ -377,7 +439,7 @@ static void disconnect(UUID[] players, Callback<Integer> response) {
}

/**
* Disconnects this player from the network
* Disconnects these players from the network
*
* @param players Players to select
* @param reason Disconnect Reason
Expand All @@ -387,7 +449,7 @@ static void disconnect(UUID[] players, String reason) {
}

/**
* Disconnects this player from the network
* Disconnects these players from the network
*
* @param players Players to select
* @param reason Disconnect Reason
Expand Down
Expand Up @@ -14,13 +14,10 @@
import net.md_5.bungee.api.chat.BaseComponent;
import net.md_5.bungee.api.config.ServerInfo;
import net.md_5.bungee.api.connection.ProxiedPlayer;
import net.md_5.bungee.chat.ComponentSerializer;

import java.lang.reflect.InvocationTargetException;
import java.net.InetSocketAddress;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.Collections;
import java.util.UUID;

/**
Expand Down Expand Up @@ -144,22 +141,58 @@ public String getServerName() {
new RPSI() {
@Override
protected void sendMessage(UUID[] players, String[] messages, Callback<Integer> response) {
PacketMessagePlayer.run(Arrays.asList(players), new ContainedPair<>(messages, null), null, response);
StackTraceElement[] origin = new Exception().getStackTrace();
PacketMessagePlayer.run(Arrays.asList(players), new ContainedPair<>(messages, null), null, i -> {
try {
response.run(i);
} catch (Throwable e) {
Throwable ew = new InvocationTargetException(e);
ew.setStackTrace(origin);
ew.printStackTrace();
}
});
}

@Override
protected void sendMessage(UUID[] players, BaseComponent[] messages, Callback<Integer> response) {
PacketMessagePlayer.run(Arrays.asList(players), new ContainedPair<>(null, messages), null, response);
protected void sendMessage(UUID[] players, BaseComponent[][] messages, Callback<Integer> response) {
StackTraceElement[] origin = new Exception().getStackTrace();
PacketMessagePlayer.run(Arrays.asList(players), new ContainedPair<>(null, messages), null, i -> {
try {
response.run(i);
} catch (Throwable e) {
Throwable ew = new InvocationTargetException(e);
ew.setStackTrace(origin);
ew.printStackTrace();
}
});
}

@Override
protected void transfer(UUID[] players, String server, Callback<Integer> response) {
PacketTransferPlayer.run(Arrays.asList(players), server, response);
StackTraceElement[] origin = new Exception().getStackTrace();
PacketTransferPlayer.run(Arrays.asList(players), server, i -> {
try {
response.run(i);
} catch (Throwable e) {
Throwable ew = new InvocationTargetException(e);
ew.setStackTrace(origin);
ew.printStackTrace();
}
});
}

@Override
protected void disconnect(UUID[] players, String reason, Callback<Integer> response) {
PacketDisconnectPlayer.run(Arrays.asList(players), reason, response);
StackTraceElement[] origin = new Exception().getStackTrace();
PacketDisconnectPlayer.run(Arrays.asList(players), reason, i -> {
try {
response.run(i);
} catch (Throwable e) {
Throwable ew = new InvocationTargetException(e);
ew.setStackTrace(origin);
ew.printStackTrace();
}
});
}
};
}
Expand Down

0 comments on commit 1fff679

Please sign in to comment.