From 3115ab07167acda0ecc19748172ba7ff26b2392e Mon Sep 17 00:00:00 2001 From: md_5 Date: Sat, 13 Dec 2014 02:59:14 +0100 Subject: [PATCH] BungeeCord Chat API diff --git a/pom.xml b/pom.xml index 88b109e0..99ff13b3 100644 --- a/pom.xml +++ b/pom.xml @@ -76,6 +76,14 @@ 1.21 compile + + net.md-5 + bungeecord-chat + 1.12-SNAPSHOT + jar + compile + + junit diff --git a/src/main/java/org/bukkit/ChatColor.java b/src/main/java/org/bukkit/ChatColor.java index b8872b41..adbae51a 100644 --- a/src/main/java/org/bukkit/ChatColor.java +++ b/src/main/java/org/bukkit/ChatColor.java @@ -10,95 +10,205 @@ import com.google.common.collect.Maps; /** * All supported color values for chat */ -public enum ChatColor { +public enum ChatColor{ /** * Represents black */ - BLACK('0', 0x00), + BLACK('0', 0x00) { + @Override + public net.md_5.bungee.api.ChatColor asBungee() { + return net.md_5.bungee.api.ChatColor.BLACK; + } + }, /** * Represents dark blue */ - DARK_BLUE('1', 0x1), + DARK_BLUE('1', 0x1){ + @Override + public net.md_5.bungee.api.ChatColor asBungee() { + return net.md_5.bungee.api.ChatColor.DARK_BLUE; + } + }, /** * Represents dark green */ - DARK_GREEN('2', 0x2), + DARK_GREEN('2', 0x2){ + @Override + public net.md_5.bungee.api.ChatColor asBungee() { + return net.md_5.bungee.api.ChatColor.DARK_GREEN; + } + }, /** * Represents dark blue (aqua) */ - DARK_AQUA('3', 0x3), + DARK_AQUA('3', 0x3){ + @Override + public net.md_5.bungee.api.ChatColor asBungee() { + return net.md_5.bungee.api.ChatColor.DARK_AQUA; + } + }, /** * Represents dark red */ - DARK_RED('4', 0x4), + DARK_RED('4', 0x4){ + @Override + public net.md_5.bungee.api.ChatColor asBungee() { + return net.md_5.bungee.api.ChatColor.DARK_RED; + } + }, /** * Represents dark purple */ - DARK_PURPLE('5', 0x5), + DARK_PURPLE('5', 0x5){ + @Override + public net.md_5.bungee.api.ChatColor asBungee() { + return net.md_5.bungee.api.ChatColor.DARK_PURPLE; + } + }, /** * Represents gold */ - GOLD('6', 0x6), + GOLD('6', 0x6){ + @Override + public net.md_5.bungee.api.ChatColor asBungee() { + return net.md_5.bungee.api.ChatColor.GOLD; + } + }, /** * Represents gray */ - GRAY('7', 0x7), + GRAY('7', 0x7){ + @Override + public net.md_5.bungee.api.ChatColor asBungee() { + return net.md_5.bungee.api.ChatColor.GRAY; + } + }, /** * Represents dark gray */ - DARK_GRAY('8', 0x8), + DARK_GRAY('8', 0x8){ + @Override + public net.md_5.bungee.api.ChatColor asBungee() { + return net.md_5.bungee.api.ChatColor.DARK_GRAY; + } + }, /** * Represents blue */ - BLUE('9', 0x9), + BLUE('9', 0x9){ + @Override + public net.md_5.bungee.api.ChatColor asBungee() { + return net.md_5.bungee.api.ChatColor.BLUE; + } + }, /** * Represents green */ - GREEN('a', 0xA), + GREEN('a', 0xA){ + @Override + public net.md_5.bungee.api.ChatColor asBungee() { + return net.md_5.bungee.api.ChatColor.GREEN; + } + }, /** * Represents aqua */ - AQUA('b', 0xB), + AQUA('b', 0xB){ + @Override + public net.md_5.bungee.api.ChatColor asBungee() { + return net.md_5.bungee.api.ChatColor.AQUA; + } + }, /** * Represents red */ - RED('c', 0xC), + RED('c', 0xC){ + @Override + public net.md_5.bungee.api.ChatColor asBungee() { + return net.md_5.bungee.api.ChatColor.RED; + } + }, /** * Represents light purple */ - LIGHT_PURPLE('d', 0xD), + LIGHT_PURPLE('d', 0xD){ + @Override + public net.md_5.bungee.api.ChatColor asBungee() { + return net.md_5.bungee.api.ChatColor.LIGHT_PURPLE; + } + }, /** * Represents yellow */ - YELLOW('e', 0xE), + YELLOW('e', 0xE){ + @Override + public net.md_5.bungee.api.ChatColor asBungee() { + return net.md_5.bungee.api.ChatColor.YELLOW; + } + }, /** * Represents white */ - WHITE('f', 0xF), + WHITE('f', 0xF){ + @Override + public net.md_5.bungee.api.ChatColor asBungee() { + return net.md_5.bungee.api.ChatColor.WHITE; + } + }, /** * Represents magical characters that change around randomly */ - MAGIC('k', 0x10, true), + MAGIC('k', 0x10, true){ + @Override + public net.md_5.bungee.api.ChatColor asBungee() { + return net.md_5.bungee.api.ChatColor.MAGIC; + } + }, /** * Makes the text bold. */ - BOLD('l', 0x11, true), + BOLD('l', 0x11, true){ + @Override + public net.md_5.bungee.api.ChatColor asBungee() { + return net.md_5.bungee.api.ChatColor.BOLD; + } + }, /** * Makes a line appear through the text. */ - STRIKETHROUGH('m', 0x12, true), + STRIKETHROUGH('m', 0x12, true){ + @Override + public net.md_5.bungee.api.ChatColor asBungee() { + return net.md_5.bungee.api.ChatColor.STRIKETHROUGH; + } + }, /** * Makes the text appear underlined. */ - UNDERLINE('n', 0x13, true), + UNDERLINE('n', 0x13, true){ + @Override + public net.md_5.bungee.api.ChatColor asBungee() { + return net.md_5.bungee.api.ChatColor.UNDERLINE; + } + }, /** * Makes the text italic. */ - ITALIC('o', 0x14, true), + ITALIC('o', 0x14, true){ + @Override + public net.md_5.bungee.api.ChatColor asBungee() { + return net.md_5.bungee.api.ChatColor.ITALIC; + } + }, /** * Resets all previous chat colors or formats. */ - RESET('r', 0x15); + RESET('r', 0x15){ + @Override + public net.md_5.bungee.api.ChatColor asBungee() { + return net.md_5.bungee.api.ChatColor.RESET; + } + }; /** * The special character which prefixes all chat colour codes. Use this if @@ -125,6 +235,10 @@ public enum ChatColor { this.toString = new String(new char[] {COLOR_CHAR, code}); } + public net.md_5.bungee.api.ChatColor asBungee() { + return net.md_5.bungee.api.ChatColor.RESET; + }; + /** * Gets the char value associated with this color * diff --git a/src/main/java/org/bukkit/Server.java b/src/main/java/org/bukkit/Server.java index 65ad9aa0..2b8f039f 100644 --- a/src/main/java/org/bukkit/Server.java +++ b/src/main/java/org/bukkit/Server.java @@ -1013,6 +1013,24 @@ public interface Server extends PluginMessageRecipient { { throw new UnsupportedOperationException( "Not supported yet." ); } + + /** + * Sends the component to the player + * + * @param component the components to send + */ + public void broadcast(net.md_5.bungee.api.chat.BaseComponent component) { + throw new UnsupportedOperationException("Not supported yet."); + } + + /** + * Sends an array of components as a single message to the player + * + * @param components the components to send + */ + public void broadcast(net.md_5.bungee.api.chat.BaseComponent... components) { + throw new UnsupportedOperationException("Not supported yet."); + } } Spigot spigot(); diff --git a/src/main/java/org/bukkit/command/CommandSender.java b/src/main/java/org/bukkit/command/CommandSender.java index 5dcd2218..abf68a2c 100644 --- a/src/main/java/org/bukkit/command/CommandSender.java +++ b/src/main/java/org/bukkit/command/CommandSender.java @@ -37,6 +37,23 @@ public interface CommandSender extends Permissible { public class Spigot { + /** + * Sends this sender a chat component. + * + * @param component the components to send + */ + public void sendMessage(net.md_5.bungee.api.chat.BaseComponent component) { + throw new UnsupportedOperationException("Not supported yet."); + } + + /** + * Sends an array of components as a single message to the sender. + * + * @param components the components to send + */ + public void sendMessage(net.md_5.bungee.api.chat.BaseComponent... components) { + throw new UnsupportedOperationException("Not supported yet."); + } } Spigot spigot(); diff --git a/src/main/java/org/bukkit/entity/Player.java b/src/main/java/org/bukkit/entity/Player.java index f59c2c19..86eca9e1 100644 --- a/src/main/java/org/bukkit/entity/Player.java +++ b/src/main/java/org/bukkit/entity/Player.java @@ -1511,6 +1511,36 @@ public interface Player extends HumanEntity, Conversable, CommandSender, Offline { throw new UnsupportedOperationException( "Not supported yet." ); } + + @Override + public void sendMessage(net.md_5.bungee.api.chat.BaseComponent component) { + throw new UnsupportedOperationException("Not supported yet."); + } + + @Override + public void sendMessage(net.md_5.bungee.api.chat.BaseComponent... components) { + throw new UnsupportedOperationException("Not supported yet."); + } + + /** + * Sends the component to the specified screen position of this player + * + * @param position the screen position + * @param component the components to send + */ + public void sendMessage(net.md_5.bungee.api.ChatMessageType position, net.md_5.bungee.api.chat.BaseComponent component) { + throw new UnsupportedOperationException("Not supported yet."); + } + + /** + * Sends an array of components as a single message to the specified screen position of this player + * + * @param position the screen position + * @param components the components to send + */ + public void sendMessage(net.md_5.bungee.api.ChatMessageType position, net.md_5.bungee.api.chat.BaseComponent... components) { + throw new UnsupportedOperationException("Not supported yet."); + } } @Override diff --git a/src/main/java/org/bukkit/inventory/meta/BookMeta.java b/src/main/java/org/bukkit/inventory/meta/BookMeta.java index 3b6bf419..75b03ac3 100644 --- a/src/main/java/org/bukkit/inventory/meta/BookMeta.java +++ b/src/main/java/org/bukkit/inventory/meta/BookMeta.java @@ -1,6 +1,7 @@ package org.bukkit.inventory.meta; import java.util.List; +import net.md_5.bungee.api.chat.BaseComponent; import org.bukkit.Material; @@ -177,6 +178,68 @@ public interface BookMeta extends ItemMeta { // Spigot start public class Spigot extends ItemMeta.Spigot { + /** + * Gets the specified page in the book. The given page must exist. + * + * @param page the page number to get + * @return the page from the book + */ + public BaseComponent[] getPage(int page) { + throw new UnsupportedOperationException("Not supported yet."); + } + + /** + * Sets the specified page in the book. Pages of the book must be + * contiguous. + *

+ * The data can be up to 256 characters in length, additional characters + * are truncated. + * + * @param page the page number to set + * @param data the data to set for that page + */ + public void setPage(int page, BaseComponent... data) { + throw new UnsupportedOperationException("Not supported yet."); + } + + /** + * Gets all the pages in the book. + * + * @return list of all the pages in the book + */ + public List getPages() { + throw new UnsupportedOperationException("Not supported yet."); + } + + /** + * Clears the existing book pages, and sets the book to use the provided + * pages. Maximum 50 pages with 256 characters per page. + * + * @param pages A list of pages to set the book to use + */ + public void setPages(List pages) { + throw new UnsupportedOperationException("Not supported yet."); + } + + /** + * Clears the existing book pages, and sets the book to use the provided + * pages. Maximum 50 pages with 256 characters per page. + * + * @param pages A list of component arrays, each being a page + */ + public void setPages(BaseComponent[]... pages) { + throw new UnsupportedOperationException("Not supported yet."); + } + + /** + * Adds new pages to the end of the book. Up to a maximum of 50 pages + * with 256 characters per page. + * + * @param pages A list of component arrays, each being a page + */ + public void addPage(BaseComponent[]... pages) { + throw new UnsupportedOperationException("Not supported yet."); + } } @Override -- 2.18.0