Fixed the columns slightly. Still needs tweaking.
Dieser Commit ist enthalten in:
Ursprung
da0d55fcea
Commit
188f03b39e
@ -28,6 +28,7 @@ import com.comphenix.protocol.injector.GamePhase;
|
|||||||
import com.comphenix.protocol.reflect.FieldAccessException;
|
import com.comphenix.protocol.reflect.FieldAccessException;
|
||||||
import com.comphenix.protocol.reflect.PrettyPrinter;
|
import com.comphenix.protocol.reflect.PrettyPrinter;
|
||||||
import com.comphenix.protocol.utility.ChatExtensions;
|
import com.comphenix.protocol.utility.ChatExtensions;
|
||||||
|
import com.google.common.base.Strings;
|
||||||
import com.google.common.collect.DiscreteDomains;
|
import com.google.common.collect.DiscreteDomains;
|
||||||
import com.google.common.collect.Range;
|
import com.google.common.collect.Range;
|
||||||
import com.google.common.collect.Ranges;
|
import com.google.common.collect.Ranges;
|
||||||
@ -54,6 +55,11 @@ class CommandPacket implements CommandExecutor {
|
|||||||
* Name of this command.
|
* Name of this command.
|
||||||
*/
|
*/
|
||||||
public static final String NAME = "packet";
|
public static final String NAME = "packet";
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Default width of the chat window.
|
||||||
|
*/
|
||||||
|
private static final int CHAT_WIDTH = 90;
|
||||||
|
|
||||||
private Plugin plugin;
|
private Plugin plugin;
|
||||||
private Logger logger;
|
private Logger logger;
|
||||||
@ -127,7 +133,7 @@ class CommandPacket implements CommandExecutor {
|
|||||||
|
|
||||||
/**
|
/**
|
||||||
* Send a message without invoking the packet listeners.
|
* Send a message without invoking the packet listeners.
|
||||||
* @param player - the player to send it to.
|
* @param receiver - the player to send it to.
|
||||||
* @param message - the message to send.
|
* @param message - the message to send.
|
||||||
* @return TRUE if the message was sent successfully, FALSE otherwise.
|
* @return TRUE if the message was sent successfully, FALSE otherwise.
|
||||||
*/
|
*/
|
||||||
@ -205,15 +211,24 @@ class CommandPacket implements CommandExecutor {
|
|||||||
} else if (subCommand == SubCommand.NAMES) {
|
} else if (subCommand == SubCommand.NAMES) {
|
||||||
|
|
||||||
Set<Integer> named = getNamedPackets(side);
|
Set<Integer> named = getNamedPackets(side);
|
||||||
|
List<String> messages = new ArrayList<String>();
|
||||||
|
|
||||||
// Print the equivalent name of every given ID
|
// Print the equivalent name of every given ID
|
||||||
for (Range<Integer> range : ranges) {
|
for (Range<Integer> range : ranges) {
|
||||||
for (int id : range.asSet(DiscreteDomains.integers())) {
|
for (int id : range.asSet(DiscreteDomains.integers())) {
|
||||||
if (named.contains(id)) {
|
if (named.contains(id)) {
|
||||||
sendMessageSilently(sender, ChatColor.BLUE + "" + id + ": " + Packets.getDeclaredName(id));
|
messages.add(ChatColor.BLUE + "" + id + ": " + Packets.getDeclaredName(id));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// Convert to two rows
|
||||||
|
messages = getMessagesInRows(messages, 2, CHAT_WIDTH);
|
||||||
|
|
||||||
|
// Print that
|
||||||
|
for (String message : messages) {
|
||||||
|
sendMessageSilently(sender, message);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
} catch (NumberFormatException e) {
|
} catch (NumberFormatException e) {
|
||||||
@ -228,6 +243,24 @@ class CommandPacket implements CommandExecutor {
|
|||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private List<String> getMessagesInRows(List<String> messages, int rows, int totalWidth) {
|
||||||
|
List<String> output = new ArrayList<String>();
|
||||||
|
int columnWidth = totalWidth / rows;
|
||||||
|
|
||||||
|
for (int i = 0; i < messages.size(); i++) {
|
||||||
|
int mapped = i / rows;
|
||||||
|
|
||||||
|
// Either create a new row, or add to an existing row
|
||||||
|
if (mapped < output.size()) {
|
||||||
|
output.set(mapped, Strings.padEnd(output.get(mapped), columnWidth, ' ') + messages.get(i));
|
||||||
|
} else {
|
||||||
|
output.add(messages.get(i));
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
return output;
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Parse ranges from an array of tokens.
|
* Parse ranges from an array of tokens.
|
||||||
* @param args - array of tokens.
|
* @param args - array of tokens.
|
||||||
|
@ -28,7 +28,7 @@ public class ChatExtensions {
|
|||||||
|
|
||||||
/**
|
/**
|
||||||
* Send a message without invoking the packet listeners.
|
* Send a message without invoking the packet listeners.
|
||||||
* @param player - the player to send it to.
|
* @param receiver - the receiver.
|
||||||
* @param message - the message to send.
|
* @param message - the message to send.
|
||||||
* @return TRUE if the message was sent successfully, FALSE otherwise.
|
* @return TRUE if the message was sent successfully, FALSE otherwise.
|
||||||
* @throws InvocationTargetException If we were unable to send the message.
|
* @throws InvocationTargetException If we were unable to send the message.
|
||||||
|
In neuem Issue referenzieren
Einen Benutzer sperren