mirror of
https://github.com/mcMMO-Dev/mcMMO.git
synced 2024-11-22 21:26:46 +01:00
Fixing words too long to fit on a single line.
This commit is contained in:
parent
61a8781f62
commit
461e998537
@ -26,24 +26,24 @@ public class vMinecraftAnnouncements {
|
|||||||
if(split[0].equalsIgnoreCase("/kick")) {
|
if(split[0].equalsIgnoreCase("/kick")) {
|
||||||
Player playerTarget = etc.getServer().matchPlayer(split[1]);
|
Player playerTarget = etc.getServer().matchPlayer(split[1]);
|
||||||
if (playerTarget != null && !playerTarget.hasControlOver(player)) {
|
if (playerTarget != null && !playerTarget.hasControlOver(player)) {
|
||||||
vMinecraftChat.gmsg(player.getColor()+player.getName()+Colors.Blue+" has kicked "+Colors.Red+playerTarget.getColor()+playerTarget.getName());
|
vMinecraftChat.gmsg(player, player.getColor()+player.getName()+Colors.Blue+" has kicked "+Colors.Red+playerTarget.getColor()+playerTarget.getName());
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
if(split[0].equalsIgnoreCase("/ban")) {
|
if(split[0].equalsIgnoreCase("/ban")) {
|
||||||
Player playerTarget = etc.getServer().matchPlayer(split[1]);
|
Player playerTarget = etc.getServer().matchPlayer(split[1]);
|
||||||
if (playerTarget != null && !playerTarget.hasControlOver(player)) {
|
if (playerTarget != null && !playerTarget.hasControlOver(player)) {
|
||||||
vMinecraftChat.gmsg(player.getColor()+player.getName()+Colors.Blue+" has banned "+Colors.Red+playerTarget.getColor()+playerTarget.getName());
|
vMinecraftChat.gmsg(player, player.getColor()+player.getName()+Colors.Blue+" has banned "+Colors.Red+playerTarget.getColor()+playerTarget.getName());
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
if(split[0].equalsIgnoreCase("/ipban")) {
|
if(split[0].equalsIgnoreCase("/ipban")) {
|
||||||
Player playerTarget = etc.getServer().matchPlayer(split[1]);
|
Player playerTarget = etc.getServer().matchPlayer(split[1]);
|
||||||
if (playerTarget != null && !playerTarget.hasControlOver(player)) {
|
if (playerTarget != null && !playerTarget.hasControlOver(player)) {
|
||||||
vMinecraftChat.gmsg(player.getColor()+player.getName()+Colors.Blue+" has IP banned "+Colors.Red+playerTarget.getColor()+playerTarget.getName());
|
vMinecraftChat.gmsg(player, player.getColor()+player.getName()+Colors.Blue+" has IP banned "+Colors.Red+playerTarget.getColor()+playerTarget.getName());
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
if(split[0].equalsIgnoreCase("/time")) {
|
if(split[0].equalsIgnoreCase("/time")) {
|
||||||
if (split.length <= 2) {
|
if (split.length <= 2) {
|
||||||
vMinecraftChat.gmsg(Colors.Blue+"Time changes thanks to "+player.getColor()+player.getName());
|
vMinecraftChat.gmsg(player, Colors.Blue+"Time changes thanks to "+player.getColor()+player.getName());
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -16,10 +16,10 @@ public class vMinecraftChat {
|
|||||||
//Output: None
|
//Output: None
|
||||||
//Use: Outputs a message to everybody
|
//Use: Outputs a message to everybody
|
||||||
//=====================================================================
|
//=====================================================================
|
||||||
public static void gmsg(String msg){
|
public static void gmsg(Player sender, String msg){
|
||||||
for (Player p : etc.getServer().getPlayerList()) {
|
for (Player receiver : etc.getServer().getPlayerList()) {
|
||||||
if (p != null) {
|
if (receiver != null) {
|
||||||
sendMessage(p, msg);
|
sendMessage(sender, receiver, msg);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -30,10 +30,10 @@ public class vMinecraftChat {
|
|||||||
//Output: None
|
//Output: None
|
||||||
//Use: Outputs a message to everybody
|
//Use: Outputs a message to everybody
|
||||||
//=====================================================================
|
//=====================================================================
|
||||||
public static void sendMessage(Player player, String msg){
|
public static void sendMessage(Player sender, Player receiver, String msg){
|
||||||
String[] message = applyColors(wordWrap(msg));
|
String[] message = applyColors(wordWrap(msg));
|
||||||
for(String out : message)
|
for(String out : message)
|
||||||
player.sendMessage(out + " ");
|
receiver.sendMessage(out + " ");
|
||||||
}
|
}
|
||||||
|
|
||||||
//=====================================================================
|
//=====================================================================
|
||||||
@ -45,38 +45,49 @@ public class vMinecraftChat {
|
|||||||
//=====================================================================
|
//=====================================================================
|
||||||
public static String[] wordWrap(String msg){
|
public static String[] wordWrap(String msg){
|
||||||
//Split each word apart
|
//Split each word apart
|
||||||
String[] split = msg.split(" ");
|
ArrayList<String> split = new ArrayList<String>();
|
||||||
|
for(String in : msg.split(" "))
|
||||||
|
split.add(in);
|
||||||
|
|
||||||
//Create an arraylist for the output
|
//Create an arraylist for the output
|
||||||
ArrayList<String> out = new ArrayList<String>();
|
ArrayList<String> out = new ArrayList<String>();
|
||||||
|
|
||||||
//While i is less than the length of the array of words
|
//While i is less than the length of the array of words
|
||||||
int i = 0;
|
while(!split.isEmpty()){
|
||||||
while(i < split.length){
|
|
||||||
int len = 0;
|
int len = 0;
|
||||||
int j = i;
|
|
||||||
|
//Create an arraylist to hold individual words
|
||||||
|
ArrayList<String> words = new ArrayList<String>();
|
||||||
|
|
||||||
//Loop through the words finding their length and increasing
|
//Loop through the words finding their length and increasing
|
||||||
//j, the end point for the sub string
|
//j, the end point for the sub string
|
||||||
while(len <= 300 && i < split.length)
|
while(len <= 316 && !split.isEmpty())
|
||||||
{
|
{
|
||||||
len += msgLength(split[i]) + 4;
|
int wordLength = msgLength(split.get(0)) + 4;
|
||||||
if( len <= 300)
|
|
||||||
i++;
|
|
||||||
|
|
||||||
|
//If a word is too long for a line
|
||||||
|
if(wordLength > 316)
|
||||||
|
{
|
||||||
|
String[] tempArray = wordCut(len, split.remove(0));
|
||||||
|
words.add(tempArray[0]);
|
||||||
|
split.add(tempArray[1]);
|
||||||
|
log.log(Level.INFO, tempArray[0]);
|
||||||
|
log.log(Level.INFO, tempArray[1]);
|
||||||
}
|
}
|
||||||
//Copy the words in the selection into a new array
|
|
||||||
String[] temp = new String[i - j];
|
|
||||||
System.arraycopy(split, j, temp, 0, i - j);
|
|
||||||
|
|
||||||
|
//If the word is not too long to fit
|
||||||
|
len += wordLength;
|
||||||
|
log.log(Level.INFO, String.valueOf(len));
|
||||||
|
if( len < 316)
|
||||||
|
words.add(split.remove(0));
|
||||||
|
}
|
||||||
//Merge them and add them to the output array.
|
//Merge them and add them to the output array.
|
||||||
out.add( etc.combineSplit(0, temp, " ") );
|
log.log(Level.INFO, etc.combineSplit(0,
|
||||||
|
words.toArray(new String[out.size()]), " "));
|
||||||
|
out.add( etc.combineSplit(0,
|
||||||
|
words.toArray(new String[out.size()]), " ") );
|
||||||
}
|
}
|
||||||
|
|
||||||
//Convert to an array and return
|
//Convert to an array and return
|
||||||
String[] tempout = new String[out.size()];
|
return out.toArray(new String[out.size()]);
|
||||||
out.toArray(tempout);
|
|
||||||
return tempout;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
//=====================================================================
|
//=====================================================================
|
||||||
@ -91,26 +102,61 @@ public class vMinecraftChat {
|
|||||||
//and their following color codes
|
//and their following color codes
|
||||||
for(int x = 0; x<str.length(); x++)
|
for(int x = 0; x<str.length(); x++)
|
||||||
{
|
{
|
||||||
if(str.charAt(x) == Colors.White.charAt(0))
|
int len = charLength(str.charAt(x));
|
||||||
|
if( len > 0)
|
||||||
|
length += len;
|
||||||
|
else
|
||||||
x++;
|
x++;
|
||||||
else if("i;,.:|!".indexOf(str.charAt(x)) != -1)
|
|
||||||
length+=2;
|
|
||||||
else if("l'".indexOf(str.charAt(x)) != -1)
|
|
||||||
length+=3;
|
|
||||||
else if("tI[]".indexOf(str.charAt(x)) != -1)
|
|
||||||
length+=4;
|
|
||||||
else if("kf{}<>\"*()".indexOf(str.charAt(x)) != -1)
|
|
||||||
length+=5;
|
|
||||||
else if("hequcbrownxjmpsvazydgTHEQUCKBROWNFXJMPSVLAZYDG1234567890#\\/?$%-=_+&".indexOf(str.charAt(x)) != -1)
|
|
||||||
length+=6;
|
|
||||||
else if("@~".indexOf(str.charAt(x)) != -1)
|
|
||||||
length+=7;
|
|
||||||
else if(str.charAt(x)==' ')
|
|
||||||
length+=4;
|
|
||||||
}
|
}
|
||||||
return length;
|
return length;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
//=====================================================================
|
||||||
|
//Function: wordCut
|
||||||
|
//Input: String str: The string to find the length of
|
||||||
|
//Output: String[]: The cut up word
|
||||||
|
//Use: Cuts apart a word that is too long to fit on one line
|
||||||
|
//=====================================================================
|
||||||
|
private static String[] wordCut(int lengthBefore, String str){
|
||||||
|
int length = lengthBefore;
|
||||||
|
//Loop through all the characters, skipping any color characters
|
||||||
|
//and their following color codes
|
||||||
|
String[] output = new String[2];
|
||||||
|
int x = 0;
|
||||||
|
while(length < 316 && x < str.length())
|
||||||
|
{
|
||||||
|
int len = charLength(str.charAt(x));
|
||||||
|
if( len > 0)
|
||||||
|
length += len;
|
||||||
|
x++;
|
||||||
|
}
|
||||||
|
//Add the substring to the output after cutting it
|
||||||
|
output[0] = str.substring(0, x);
|
||||||
|
//Add the last of the string to the output.
|
||||||
|
output[1] = str.substring(x);
|
||||||
|
return output;
|
||||||
|
}
|
||||||
|
|
||||||
|
private static int charLength(char x)
|
||||||
|
{
|
||||||
|
if("i;,.:|!".indexOf(x) != -1)
|
||||||
|
return 2;
|
||||||
|
else if("l'".indexOf(x) != -1)
|
||||||
|
return 3;
|
||||||
|
else if("tI[]".indexOf(x) != -1)
|
||||||
|
return 4;
|
||||||
|
else if("kf{}<>\"*()".indexOf(x) != -1)
|
||||||
|
return 5;
|
||||||
|
else if("hequcbrownxjmpsvazydgTHEQUCKBROWNFXJMPSVLAZYDG1234567890#\\/?$%-=_+&".indexOf(x) != -1)
|
||||||
|
return 6;
|
||||||
|
else if("@~".indexOf(x) != -1)
|
||||||
|
return 7;
|
||||||
|
else if(x==' ')
|
||||||
|
return 4;
|
||||||
|
else
|
||||||
|
return -1;
|
||||||
|
}
|
||||||
|
|
||||||
//=====================================================================
|
//=====================================================================
|
||||||
//Function: rainbow
|
//Function: rainbow
|
||||||
//Input: String msg: The string to colorify
|
//Input: String msg: The string to colorify
|
||||||
@ -271,7 +317,7 @@ public class vMinecraftChat {
|
|||||||
|
|
||||||
//And if p is an admin or has access to adminchat send message
|
//And if p is an admin or has access to adminchat send message
|
||||||
if (p.isAdmin() || (p.canUseCommand("/adminchat"))) {
|
if (p.isAdmin() || (p.canUseCommand("/adminchat"))) {
|
||||||
sendMessage(p, adminchat + message);
|
sendMessage(player, p, adminchat + message);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -301,7 +347,7 @@ public class vMinecraftChat {
|
|||||||
log.log(Level.INFO, "<"+player.getName()+"> " +message);
|
log.log(Level.INFO, "<"+player.getName()+"> " +message);
|
||||||
|
|
||||||
//Output the message
|
//Output the message
|
||||||
gmsg(playerName + Colors.LightGreen + message);
|
gmsg(player, playerName + Colors.LightGreen + message);
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
return false;
|
return false;
|
||||||
@ -323,7 +369,7 @@ public class vMinecraftChat {
|
|||||||
log.log(Level.INFO, "<"+player.getName()+"> "+message);
|
log.log(Level.INFO, "<"+player.getName()+"> "+message);
|
||||||
|
|
||||||
//Output the message
|
//Output the message
|
||||||
gmsg(playerName + Colors.Red + message);
|
gmsg(player, playerName + Colors.Red + message);
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
return false;
|
return false;
|
||||||
@ -347,7 +393,7 @@ public class vMinecraftChat {
|
|||||||
log.log(Level.INFO, "<"+player.getName()+"> "+message);
|
log.log(Level.INFO, "<"+player.getName()+"> "+message);
|
||||||
|
|
||||||
//Output the message
|
//Output the message
|
||||||
gmsg(playerName + message);
|
gmsg(player, playerName + message);
|
||||||
|
|
||||||
//Loop through the string finding the color codes and inserting them
|
//Loop through the string finding the color codes and inserting them
|
||||||
return true;
|
return true;
|
||||||
@ -363,7 +409,7 @@ public class vMinecraftChat {
|
|||||||
//=====================================================================
|
//=====================================================================
|
||||||
public static boolean emote(Player player, String message)
|
public static boolean emote(Player player, String message)
|
||||||
{
|
{
|
||||||
gmsg("* " + getName(player) + " " + Colors.White + message);
|
gmsg(player, "* " + getName(player) + " " + Colors.White + message);
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -391,7 +437,7 @@ public class vMinecraftChat {
|
|||||||
for(int x = 0; x< msg.length(); x++)
|
for(int x = 0; x< msg.length(); x++)
|
||||||
{
|
{
|
||||||
//If the char is a ^ or <EFBFBD>
|
//If the char is a ^ or <EFBFBD>
|
||||||
if(msg.charAt(x) == '^')
|
if(msg.charAt(x) == '^' || msg.charAt(x) == Colors.White.charAt(0))
|
||||||
{
|
{
|
||||||
if(x != msg.length() - 1)
|
if(x != msg.length() - 1)
|
||||||
{
|
{
|
||||||
|
@ -113,7 +113,7 @@ public class vMinecraftCommands{
|
|||||||
playerTarget.sendMessage(Colors.Blue + "You have been healed by " + vMinecraftChat.getName(player));
|
playerTarget.sendMessage(Colors.Blue + "You have been healed by " + vMinecraftChat.getName(player));
|
||||||
}
|
}
|
||||||
else if (playerTarget == null){
|
else if (playerTarget == null){
|
||||||
vMinecraftChat.gmsg(Colors.Rose + "Couldn't find that player");
|
player.sendMessage(Colors.Rose + "Couldn't find that player");
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
return EXIT_SUCCESS;
|
return EXIT_SUCCESS;
|
||||||
@ -318,7 +318,7 @@ public class vMinecraftCommands{
|
|||||||
log.log(Level.INFO, player.getName()+" fabulously said \""+ str+"\"");
|
log.log(Level.INFO, player.getName()+" fabulously said \""+ str+"\"");
|
||||||
|
|
||||||
//Prepend the player name and cut into lines.
|
//Prepend the player name and cut into lines.
|
||||||
vMinecraftChat.gmsg(playerName + vMinecraftChat.rainbow(str));
|
vMinecraftChat.gmsg(player, playerName + vMinecraftChat.rainbow(str));
|
||||||
|
|
||||||
return EXIT_SUCCESS;
|
return EXIT_SUCCESS;
|
||||||
}
|
}
|
||||||
@ -405,7 +405,7 @@ public class vMinecraftCommands{
|
|||||||
int maxPlayers = server.getInt("max-players");
|
int maxPlayers = server.getInt("max-players");
|
||||||
|
|
||||||
//Output the player list
|
//Output the player list
|
||||||
vMinecraftChat.sendMessage(player, Colors.Rose + "Player List ("
|
vMinecraftChat.sendMessage(player, player, Colors.Rose + "Player List ("
|
||||||
+ count + "/" + maxPlayers +"): " + tempList);
|
+ count + "/" + maxPlayers +"): " + tempList);
|
||||||
|
|
||||||
return EXIT_SUCCESS;
|
return EXIT_SUCCESS;
|
||||||
@ -429,7 +429,7 @@ public class vMinecraftCommands{
|
|||||||
player.sendMessage(Colors.Rose + "Usage is /say [message]");
|
player.sendMessage(Colors.Rose + "Usage is /say [message]");
|
||||||
}
|
}
|
||||||
//Display the message globally
|
//Display the message globally
|
||||||
vMinecraftChat.gmsg(Colors.Yellow + etc.combineSplit(0, args, " "));
|
vMinecraftChat.gmsg(player, Colors.Yellow + etc.combineSplit(0, args, " "));
|
||||||
return EXIT_SUCCESS;
|
return EXIT_SUCCESS;
|
||||||
}
|
}
|
||||||
return EXIT_FAIL;
|
return EXIT_FAIL;
|
||||||
@ -454,7 +454,7 @@ public class vMinecraftCommands{
|
|||||||
//If the player isn't invulnerable kill them
|
//If the player isn't invulnerable kill them
|
||||||
if (!vMinecraftSettings.getInstance().isEzModo(playerTarget.getName())) {
|
if (!vMinecraftSettings.getInstance().isEzModo(playerTarget.getName())) {
|
||||||
playerTarget.setHealth(0);
|
playerTarget.setHealth(0);
|
||||||
vMinecraftChat.gmsg(vMinecraftChat.getName(player)
|
vMinecraftChat.gmsg(player, vMinecraftChat.getName(player)
|
||||||
+ Colors.LightBlue + " has slain "
|
+ Colors.LightBlue + " has slain "
|
||||||
+ vMinecraftChat.getName(playerTarget));
|
+ vMinecraftChat.getName(playerTarget));
|
||||||
//Otherwise output error to the user
|
//Otherwise output error to the user
|
||||||
|
@ -86,7 +86,7 @@ public class vMinecraftListener extends PluginListener {
|
|||||||
|
|
||||||
}
|
}
|
||||||
else if (vMinecraftSettings.getInstance().globalmessages() && player.getHealth() < 1) {
|
else if (vMinecraftSettings.getInstance().globalmessages() && player.getHealth() < 1) {
|
||||||
vMinecraftChat.gmsg(Colors.Gray + player.getName() + " " + vMinecraftSettings.randomDeathMsg());
|
vMinecraftChat.gmsg(player, Colors.Gray + player.getName() + " " + vMinecraftSettings.randomDeathMsg());
|
||||||
}
|
}
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user