001    package org.bukkit.conversations;
002    
003    import org.bukkit.ChatColor;
004    import org.bukkit.command.CommandSender;
005    import org.bukkit.plugin.Plugin;
006    
007    /**
008     * PluginNameConversationPrefix is a {@link ConversationPrefix} implementation
009     * that displays the plugin name in front of conversation output.
010     */
011    public class PluginNameConversationPrefix implements ConversationPrefix {
012        
013        protected String separator;
014        protected ChatColor prefixColor;
015        protected Plugin plugin;
016        
017        private String cachedPrefix;
018        
019        public PluginNameConversationPrefix(Plugin plugin) {
020            this(plugin, " > ", ChatColor.LIGHT_PURPLE);
021        }
022        
023        public PluginNameConversationPrefix(Plugin plugin, String separator, ChatColor prefixColor) {
024            this.separator = separator;
025            this.prefixColor = prefixColor;
026            this.plugin = plugin;
027    
028            cachedPrefix = prefixColor + plugin.getDescription().getName() + separator + ChatColor.WHITE;
029        }
030    
031        /**
032         * Prepends each conversation message with the plugin name.
033         *
034         * @param context Context information about the conversation.
035         * @return An empty string.
036         */
037        public String getPrefix(ConversationContext context) {
038            return cachedPrefix;
039        }
040    }