From e5bb0e43dd81da11650825ed2edf5f0c1911f500 Mon Sep 17 00:00:00 2001 From: alisolarflare Date: Mon, 21 Nov 2016 21:12:58 -0500 Subject: [PATCH] Fixed bug where short messages aren't sent --- .../java/buttondevteam/lib/DebugPotato.java | 262 +++++++++--------- .../buttondevteam/lib/DebugPotatoAPI.java | 13 - 2 files changed, 133 insertions(+), 142 deletions(-) delete mode 100644 src/main/java/buttondevteam/lib/DebugPotatoAPI.java diff --git a/src/main/java/buttondevteam/lib/DebugPotato.java b/src/main/java/buttondevteam/lib/DebugPotato.java index 48f195a..4b6ce53 100644 --- a/src/main/java/buttondevteam/lib/DebugPotato.java +++ b/src/main/java/buttondevteam/lib/DebugPotato.java @@ -1,129 +1,133 @@ -package buttondevteam.lib; - -import java.util.ArrayList; -import java.util.Arrays; -import java.util.List; - -import org.bukkit.Material; -import org.bukkit.enchantments.Enchantment; -import org.bukkit.entity.Player; -import org.bukkit.inventory.ItemStack; -import org.bukkit.inventory.meta.ItemMeta; - -public class DebugPotato { - private List message; - private String type; - - /** - * Send the debug potato to a player - * - * @param player - * The player - */ - public void Send(Player player){ - player.getInventory().addItem(this.toItemStack()); - return; - } - - /** - * Get the message (lore of the potato). - * - * @return The message - */ - public List getMessage() { - return message; - } - - /** - * Sets the message (lore of the potato). - * - * @param message - * The message - * @return This potato - */ - public DebugPotato setMessage(List message) { - this.message = message; - return this; - } - - /** - * Sets the message (lore of the potato). It will be word wrapped automatically. - * - * @param message - * The message - * @return This potato - */ - public DebugPotato setMessage(String message) { - this.message = WordWrap(message); - return this; - } - - /** - * Sets the message (lore of the potato). - * - * @param message - * The message - * @return This potato - */ - public DebugPotato setMessage(String[] message) { - this.message = Arrays.asList(message); - return this; - } - - /** - * Gets the type (potato name). - * - * @return The type - */ - public String getType() { - return type; - } - - /** - * Sets the type (potato name). - * - * @param type - * The type - * @return This potato - */ - public DebugPotato setType(String type) { - this.type = type; - return this; - } - - private static List WordWrap(String message) { - String[] splitString = message.split("\\s+"); - List newMessage = new ArrayList(); - String currentLine = ""; - int currentLineLength = 0; - int wordlength; - int maxLineLength = 40; - for (String word : splitString) { - wordlength = word.length(); - if (currentLineLength == 0 || (currentLineLength + wordlength) < maxLineLength) { - currentLine += word + " "; - currentLineLength += wordlength + 1; - } else { - newMessage.add(currentLine); - currentLine = word + " "; - currentLineLength = word.length(); - } - } - return newMessage; - } - public ItemStack toItemStack() { - ItemStack potato = new ItemStack(Material.BAKED_POTATO); - ItemMeta meta = potato.getItemMeta(); - meta.setDisplayName(this.getType() == null ? "Spicy Debug Potato" : this.getType()); - if (this.getMessage() == null){ - List message = new ArrayList(); - message.add("nullMessage"); - meta.setLore(message); - }else{ - meta.setLore(this.getMessage()); - } - potato.setItemMeta(meta); - potato.addUnsafeEnchantment(Enchantment.ARROW_FIRE, 10); - return potato; - } -} +package buttondevteam.lib; + +import java.util.ArrayList; +import java.util.Arrays; +import java.util.List; + +import org.bukkit.Material; +import org.bukkit.enchantments.Enchantment; +import org.bukkit.entity.Player; +import org.bukkit.inventory.ItemStack; +import org.bukkit.inventory.meta.ItemMeta; + +public class DebugPotato { + private List message; + private String type; + + /** + * Send the debug potato to a player + * + * @param player + * The player + */ + public void Send(Player player){ + player.getInventory().addItem(this.toItemStack()); + return; + } + + /** + * Get the message (lore of the potato). + * + * @return The message + */ + public List getMessage() { + return message; + } + + /** + * Sets the message (lore of the potato). + * + * @param message + * The message + * @return This potato + */ + public DebugPotato setMessage(List message) { + this.message = message; + return this; + } + + /** + * Sets the message (lore of the potato). It will be word wrapped automatically. + * + * @param message + * The message + * @return This potato + */ + public DebugPotato setMessage(String message) { + this.message = WordWrap(message); + return this; + } + + /** + * Sets the message (lore of the potato). + * + * @param message + * The message + * @return This potato + */ + public DebugPotato setMessage(String[] message) { + this.message = Arrays.asList(message); + return this; + } + + /** + * Gets the type (potato name). + * + * @return The type + */ + public String getType() { + return type; + } + + /** + * Sets the type (potato name). + * + * @param type + * The type + * @return This potato + */ + public DebugPotato setType(String type) { + this.type = type; + return this; + } + + private static List WordWrap(String message) { + String[] splitString = message.split("\\s+"); + List newMessage = new ArrayList(); + String currentLine = ""; + int currentLineLength = 0; + int wordlength; + int maxLineLength = 40; + if (message.length() <= maxLineLength){ + newMessage.add(message); + return newMessage; + } + for (String word : splitString) { + wordlength = word.length(); + if (currentLineLength == 0 || (currentLineLength + wordlength) < maxLineLength) { + currentLine += word + " "; + currentLineLength += wordlength + 1; + } else { + newMessage.add(currentLine); + currentLine = word + " "; + currentLineLength = word.length(); + } + } + return newMessage; + } + public ItemStack toItemStack() { + ItemStack potato = new ItemStack(Material.BAKED_POTATO); + ItemMeta meta = potato.getItemMeta(); + meta.setDisplayName(this.getType() == null ? "Null Flavoured Debug Potato" : this.getType()); + if (this.getMessage() == null){ + List message = new ArrayList(); + message.add("nullMessage"); + meta.setLore(message); + }else{ + meta.setLore(this.getMessage()); + } + potato.setItemMeta(meta); + potato.addUnsafeEnchantment(Enchantment.ARROW_FIRE, 10); + return potato; + } +} diff --git a/src/main/java/buttondevteam/lib/DebugPotatoAPI.java b/src/main/java/buttondevteam/lib/DebugPotatoAPI.java deleted file mode 100644 index 5b78edd..0000000 --- a/src/main/java/buttondevteam/lib/DebugPotatoAPI.java +++ /dev/null @@ -1,13 +0,0 @@ -package buttondevteam.lib; - -import org.bukkit.entity.Player; - -/**@deprecated - * Fully Replaced by DebugPotato Class - Construct a DebugPotato*/ -public class DebugPotatoAPI { - /**@deprecated Replaced by DebugPotato.send*/ - public static void SendDebugPotato(DebugPotato dp, Player player) { - player.getInventory().addItem(dp.toItemStack()); - return; - } -}