mirror of
				https://github.com/Aust1n46/VentureChat.git
				synced 2025-10-30 13:32:24 +00:00 
			
		
		
		
	Resolve more merge conflicts due to file system layout change.
This commit is contained in:
		
							parent
							
								
									81ffcda38b
								
							
						
					
					
						commit
						d20e2c0535
					
				
										
											
												File diff suppressed because it is too large
												Load Diff
											
										
									
								
							| @ -1,454 +1,457 @@ | ||||
| package mineverse.Aust1n46.chat.channel; | ||||
| 
 | ||||
| import java.util.ArrayList; | ||||
| import java.util.Collection; | ||||
| import java.util.HashMap; | ||||
| import java.util.HashSet; | ||||
| import java.util.List; | ||||
| 
 | ||||
| import org.bukkit.ChatColor; | ||||
| import org.bukkit.configuration.ConfigurationSection; | ||||
| 
 | ||||
| import mineverse.Aust1n46.chat.MineverseChat; | ||||
| import mineverse.Aust1n46.chat.utilities.Format; | ||||
| 
 | ||||
| /** | ||||
|  * Chat channel object pojo. Class also contains static initialization methods | ||||
|  * for reading chat channels from the config file. | ||||
|  * | ||||
|  * @author Aust1n46 | ||||
|  */ | ||||
| public class ChatChannel { | ||||
|     private static final String PERMISSION_PREFIX = "venturechat."; | ||||
|     private static final String NO_PERMISSIONS = "venturechat.none"; | ||||
| 
 | ||||
|     private static MineverseChat plugin = MineverseChat.getInstance(); | ||||
|     private static ChatChannel defaultChatChannel; | ||||
|     private static boolean aliasesRegisteredAsCommands; | ||||
| 
 | ||||
|     @Deprecated | ||||
|     private static ChatChannel[] channels; | ||||
| 
 | ||||
|     private static String defaultColor; | ||||
|     private static HashMap<String, ChatChannel> chatChannels; | ||||
| 
 | ||||
|     private String name; | ||||
|     private String permission; | ||||
|     private String speakPermission; | ||||
|     private boolean mutable; | ||||
|     private String color; | ||||
|     private String chatColor; | ||||
|     private boolean defaultChannel; | ||||
|     private boolean autojoin; | ||||
|     private String alias; | ||||
|     private double distance; | ||||
|     private boolean filter; | ||||
|     private boolean bungee; | ||||
|     private String format; | ||||
|     private int cooldown; | ||||
| 
 | ||||
|     /** | ||||
|      * Read chat channels from config file and initialize channel array. | ||||
|      */ | ||||
|     public static void initialize(boolean aliasesRegisteredAsCommands) { | ||||
|         chatChannels = new HashMap<String, ChatChannel>(); | ||||
|         ChatChannel.aliasesRegisteredAsCommands = aliasesRegisteredAsCommands; | ||||
|         ConfigurationSection cs = plugin.getConfig().getConfigurationSection("channels"); | ||||
|         int len = (cs.getKeys(false)).size(); | ||||
|         channels = new ChatChannel[len]; | ||||
|         int counter = 0; | ||||
|         for (String key : cs.getKeys(false)) { | ||||
|             String color = cs.getString(key + ".color", "white"); | ||||
|             String chatColor = cs.getString(key + ".chatcolor", "white"); | ||||
|             String name = key; | ||||
|             String permission = cs.getString(key + ".permissions", "None"); | ||||
|             String speakPermission = cs.getString(key + ".speak_permissions", "None"); | ||||
|             boolean mutable = cs.getBoolean(key + ".mutable", false); | ||||
|             boolean filter = cs.getBoolean(key + ".filter", true); | ||||
|             boolean bungee = cs.getBoolean(key + ".bungeecord", false); | ||||
|             String format = cs.getString(key + ".format", "Default"); | ||||
|             boolean defaultChannel = cs.getBoolean(key + ".default", false); | ||||
|             String alias = cs.getString(key + ".alias", "None"); | ||||
|             double distance = cs.getDouble(key + ".distance", (double) 0); | ||||
|             int cooldown = cs.getInt(key + ".cooldown", 0); | ||||
|             boolean autojoin = cs.getBoolean(key + ".autojoin", false); | ||||
|             ChatChannel chatChannel = new ChatChannel(name, color, chatColor, permission, speakPermission, mutable, | ||||
|                     filter, defaultChannel, alias, distance, autojoin, bungee, cooldown, format); | ||||
|             channels[counter++] = chatChannel; | ||||
|             chatChannels.put(name.toLowerCase(), chatChannel); | ||||
|             chatChannels.put(alias.toLowerCase(), chatChannel); | ||||
|             if (defaultChannel) { | ||||
|                 defaultChatChannel = chatChannel; | ||||
|                 defaultColor = color; | ||||
|             } | ||||
|         } | ||||
|     } | ||||
| 
 | ||||
|     public static boolean areAliasesRegisteredAsCommands() { | ||||
|         return aliasesRegisteredAsCommands; | ||||
|     } | ||||
| 
 | ||||
|     /** | ||||
|      * Get array of chat channels. | ||||
|      * | ||||
|      * @return {@link ChatChannel}[] | ||||
|      */ | ||||
|     @Deprecated | ||||
|     public static ChatChannel[] getChannels() { | ||||
|         return channels; | ||||
|     } | ||||
| 
 | ||||
|     /** | ||||
|      * Get list of chat channels. | ||||
|      * | ||||
|      * @return {@link Collection}<{@link ChatChannel}> | ||||
|      */ | ||||
|     public static Collection<ChatChannel> getChatChannels() { | ||||
|         return new HashSet<ChatChannel>(chatChannels.values()); | ||||
|     } | ||||
| 
 | ||||
|     /** | ||||
|      * Get a chat channel by name. | ||||
|      * | ||||
|      * @param channelName name of channel to get. | ||||
|      * @return {@link ChatChannel} | ||||
|      */ | ||||
|     public static ChatChannel getChannel(String channelName) { | ||||
|         return chatChannels.get(channelName.toLowerCase()); | ||||
|     } | ||||
| 
 | ||||
|     /** | ||||
|      * Checks if the chat channel exists. | ||||
|      * | ||||
|      * @param channelName name of channel to check. | ||||
|      * @return true if channel exists, false otherwise. | ||||
|      */ | ||||
|     public static boolean isChannel(String channelName) { | ||||
|         return getChannel(channelName) != null; | ||||
|     } | ||||
| 
 | ||||
|     /** | ||||
|      * Get default chat channel color. | ||||
|      * | ||||
|      * @return {@link String} | ||||
|      */ | ||||
|     public static String getDefaultColor() { | ||||
|         return defaultColor; | ||||
|     } | ||||
| 
 | ||||
|     /** | ||||
|      * Get default chat channel. | ||||
|      * | ||||
|      * @return {@link ChatChannel} | ||||
|      */ | ||||
|     public static ChatChannel getDefaultChannel() { | ||||
|         return defaultChatChannel; | ||||
|     } | ||||
| 
 | ||||
|     /** | ||||
|      * Get list of chat channels with autojoin set to true. | ||||
|      * | ||||
|      * @return {@link List}<{@link ChatChannel}> | ||||
|      */ | ||||
|     public static List<ChatChannel> getAutojoinList() { | ||||
|         List<ChatChannel> joinlist = new ArrayList<ChatChannel>(); | ||||
|         for (ChatChannel c : channels) { | ||||
|             if (c.getAutojoin()) { | ||||
|                 joinlist.add(c); | ||||
|             } | ||||
|         } | ||||
|         return joinlist; | ||||
|     } | ||||
| 
 | ||||
|     /** | ||||
|      * Parameterized constructor a {@link ChatChannel}. | ||||
|      * | ||||
|      * @param name | ||||
|      * @param color | ||||
|      * @param chatColor | ||||
|      * @param permission | ||||
|      * @param speakPermission | ||||
|      * @param mutable | ||||
|      * @param filter | ||||
|      * @param defaultChannel | ||||
|      * @param alias | ||||
|      * @param distance | ||||
|      * @param autojoin | ||||
|      * @param bungee | ||||
|      * @param cooldown | ||||
|      * @param format | ||||
|      */ | ||||
|     public ChatChannel(String name, String color, String chatColor, String permission, String speakPermission, | ||||
|                        boolean mutable, boolean filter, boolean defaultChannel, String alias, double distance, boolean autojoin, | ||||
|                        boolean bungee, int cooldown, String format) { | ||||
|         this.name = name; | ||||
|         this.color = color; | ||||
|         this.chatColor = chatColor; | ||||
|         this.permission = PERMISSION_PREFIX + permission; | ||||
|         this.speakPermission = PERMISSION_PREFIX + speakPermission; | ||||
|         this.mutable = mutable; | ||||
|         this.filter = filter; | ||||
|         this.defaultChannel = defaultChannel; | ||||
|         this.alias = alias; | ||||
|         this.distance = distance; | ||||
|         this.autojoin = autojoin; | ||||
|         this.bungee = bungee; | ||||
|         this.cooldown = cooldown; | ||||
|         this.format = format; | ||||
|     } | ||||
| 
 | ||||
|     /** | ||||
|      * Deprecated parameterized constructor a {@link ChatChannel}. | ||||
|      * | ||||
|      * @param name | ||||
|      * @param color | ||||
|      * @param chatColor | ||||
|      * @param permission | ||||
|      * @param speakPermission | ||||
|      * @param mutable | ||||
|      * @param filter | ||||
|      * @param defaultChannel | ||||
|      * @param alias | ||||
|      * @param distance | ||||
|      * @param autojoin | ||||
|      * @param bungee | ||||
|      * @param cooldown | ||||
|      * @param format | ||||
|      */ | ||||
|     @Deprecated | ||||
|     public ChatChannel(String name, String color, String chatColor, String permission, String speakPermission, | ||||
|                        Boolean mutable, Boolean filter, Boolean defaultChannel, String alias, Double distance, Boolean autojoin, | ||||
|                        Boolean bungee, int cooldown, String format) { | ||||
|         this.name = name; | ||||
|         this.color = color; | ||||
|         this.chatColor = chatColor; | ||||
|         this.permission = PERMISSION_PREFIX + permission; | ||||
|         this.speakPermission = PERMISSION_PREFIX + speakPermission; | ||||
|         this.mutable = mutable; | ||||
|         this.filter = filter; | ||||
|         this.defaultChannel = defaultChannel; | ||||
|         this.alias = alias; | ||||
|         this.distance = distance; | ||||
|         this.autojoin = autojoin; | ||||
|         this.bungee = bungee; | ||||
|         this.cooldown = cooldown; | ||||
|         this.format = format; | ||||
|     } | ||||
| 
 | ||||
|     /** | ||||
|      * Get the name of the chat channel. | ||||
|      * | ||||
|      * @return {@link String} | ||||
|      */ | ||||
|     public String getName() { | ||||
|         return name; | ||||
|     } | ||||
| 
 | ||||
|     /** | ||||
|      * Get the format of the chat channel. | ||||
|      * | ||||
|      * @return {@link String} | ||||
|      */ | ||||
|     public String getFormat() { | ||||
|         return format; | ||||
|     } | ||||
| 
 | ||||
|     /** | ||||
|      * Get the cooldown of the chat channel in seconds. | ||||
|      * | ||||
|      * @return int | ||||
|      */ | ||||
|     public int getCooldown() { | ||||
|         return cooldown; | ||||
|     } | ||||
| 
 | ||||
|     /** | ||||
|      * Check if the chat channel is BungeeCord enabled. | ||||
|      * | ||||
|      * @return {@link Boolean#TRUE} if the chat channel is BungeeCord enabled, | ||||
|      * {@link Boolean#FALSE} otherwise. | ||||
|      */ | ||||
|     public Boolean getBungee() { | ||||
|         return Boolean.valueOf(bungee); | ||||
|     } | ||||
| 
 | ||||
|     /** | ||||
|      * Get the permissions node for the chat channel. | ||||
|      * | ||||
|      * @return {@link String} | ||||
|      */ | ||||
|     public String getPermission() { | ||||
|         return permission; | ||||
|     } | ||||
| 
 | ||||
|     /** | ||||
|      * Check if autojoin is enabled for the chat channel. | ||||
|      * | ||||
|      * @return {@link Boolean#TRUE} if autojoin is enabled, {@link Boolean#FALSE} | ||||
|      * otherwise. | ||||
|      */ | ||||
|     public Boolean getAutojoin() { | ||||
|         return Boolean.valueOf(autojoin); | ||||
|     } | ||||
| 
 | ||||
|     /** | ||||
|      * Check if the chat channel allows muting. | ||||
|      * | ||||
|      * @return {@link Boolean#TRUE} if muting is allowed, {@link Boolean#FALSE} | ||||
|      * otherwise. | ||||
|      */ | ||||
|     public Boolean isMutable() { | ||||
|         return Boolean.valueOf(mutable); | ||||
|     } | ||||
| 
 | ||||
|     /** | ||||
|      * Get the formatted color of the chat channel. | ||||
|      * | ||||
|      * @return {@link String}. Returns {@link Format#DEFAULT_COLOR_CODE} if the | ||||
|      * color is invalid. | ||||
|      */ | ||||
|     public String getColor() { | ||||
|         if (Format.isValidColor(color)) { | ||||
|             return String.valueOf(ChatColor.valueOf(color.toUpperCase())); | ||||
|         } | ||||
|         if (Format.isValidHexColor(color)) { | ||||
|             return Format.convertHexColorCodeToBukkitColorCode(color); | ||||
|         } | ||||
|         return Format.DEFAULT_COLOR_CODE; | ||||
|     } | ||||
| 
 | ||||
|     /** | ||||
|      * Get the raw color value of the chat channel. | ||||
|      * | ||||
|      * @return {@link String} | ||||
|      */ | ||||
|     public String getColorRaw() { | ||||
|         return color; | ||||
|     } | ||||
| 
 | ||||
|     /** | ||||
|      * Get the formatted chat color of the chat channel. | ||||
|      * | ||||
|      * @return {@link String}. Returns {@link Format#DEFAULT_COLOR_CODE} if the chat | ||||
|      * color is invalid. | ||||
|      */ | ||||
|     public String getChatColor() { | ||||
|         if (chatColor.equalsIgnoreCase("None")) { | ||||
|             return chatColor; | ||||
|         } | ||||
|         if (Format.isValidColor(chatColor)) { | ||||
|             return String.valueOf(ChatColor.valueOf(chatColor.toUpperCase())); | ||||
|         } | ||||
|         if (Format.isValidHexColor(chatColor)) { | ||||
|             return Format.convertHexColorCodeToBukkitColorCode(chatColor); | ||||
|         } | ||||
|         return Format.DEFAULT_COLOR_CODE; | ||||
|     } | ||||
| 
 | ||||
|     /** | ||||
|      * Get the raw chat color value of the chat channel. | ||||
|      * | ||||
|      * @return {@link String} | ||||
|      */ | ||||
|     public String getChatColorRaw() { | ||||
|         return chatColor; | ||||
|     } | ||||
| 
 | ||||
|     /** | ||||
|      * Check if the chat channel is the default chat channel. | ||||
|      * | ||||
|      * @return {@link Boolean#TRUE} if the chat channel is the default chat channel, | ||||
|      * {@link Boolean#FALSE} otherwise. | ||||
|      */ | ||||
|     public Boolean isDefaultchannel() { | ||||
|         return Boolean.valueOf(defaultChannel); | ||||
|     } | ||||
| 
 | ||||
|     /** | ||||
|      * Get the alias of the chat channel. | ||||
|      * | ||||
|      * @return {@link String} | ||||
|      */ | ||||
|     public String getAlias() { | ||||
|         return alias; | ||||
|     } | ||||
| 
 | ||||
|     /** | ||||
|      * Get the distance of the chat channel in blocks. | ||||
|      * | ||||
|      * @return {@link Double} | ||||
|      */ | ||||
|     public Double getDistance() { | ||||
|         return Double.valueOf(distance); | ||||
|     } | ||||
| 
 | ||||
|     /** | ||||
|      * Checks if the chat channel has a distance set. | ||||
|      * | ||||
|      * @return {@link Boolean#TRUE} if the distance is greater than zero, | ||||
|      * {@link Boolean#FALSE} otherwise. | ||||
|      */ | ||||
|     public Boolean hasDistance() { | ||||
|         return Boolean.valueOf(distance > 0); | ||||
|     } | ||||
| 
 | ||||
|     /** | ||||
|      * Checks if the chat channel has a cooldown set. | ||||
|      * | ||||
|      * @return {@link Boolean#TRUE} if the cooldown is greater than zero, | ||||
|      * {@link Boolean#FALSE} otherwise. | ||||
|      */ | ||||
|     public Boolean hasCooldown() { | ||||
|         return Boolean.valueOf(cooldown > 0); | ||||
|     } | ||||
| 
 | ||||
|     /** | ||||
|      * Checks if the chat channel has a permission set. | ||||
|      * | ||||
|      * @return {@link Boolean#TRUE} if the permission does not equal | ||||
|      * {@link ChatChannel#NO_PERMISSIONS}, {@link Boolean#FALSE} otherwise. | ||||
|      */ | ||||
|     public Boolean hasPermission() { | ||||
|         return Boolean.valueOf(!permission.equalsIgnoreCase(NO_PERMISSIONS)); | ||||
|     } | ||||
| 
 | ||||
|     /** | ||||
|      * Checks if the chat channel has a speak permission set. | ||||
|      * | ||||
|      * @return true if the speak permission does not equal | ||||
|      * {@link ChatChannel#NO_PERMISSIONS}, false otherwise. | ||||
|      */ | ||||
|     public boolean hasSpeakPermission() { | ||||
|         return !speakPermission.equalsIgnoreCase(NO_PERMISSIONS); | ||||
|     } | ||||
| 
 | ||||
|     /** | ||||
|      * Get the speak permissions node for the chat channel. | ||||
|      * | ||||
|      * @return {@link String} | ||||
|      */ | ||||
|     public String getSpeakPermission() { | ||||
|         return speakPermission; | ||||
|     } | ||||
| 
 | ||||
|     /** | ||||
|      * Checks if the chat channel has the filter enabled. | ||||
|      * | ||||
|      * @return {@link Boolean#TRUE} if the chat channel has the filter enabled, | ||||
|      * {@link Boolean#FALSE} otherwise. | ||||
|      */ | ||||
|     public Boolean isFiltered() { | ||||
|         return Boolean.valueOf(filter); | ||||
|     } | ||||
| 
 | ||||
|     /** | ||||
|      * Compares the chat channel by name to determine equality. | ||||
|      * | ||||
|      * @param channel Object to compare for equality. | ||||
|      * @return true if the objects are equal, false otherwise. | ||||
|      */ | ||||
|     @Override | ||||
|     public boolean equals(Object channel) { | ||||
|         return channel instanceof ChatChannel && this.name.equals(((ChatChannel) channel).getName()); | ||||
|     } | ||||
| } | ||||
| package mineverse.Aust1n46.chat.channel; | ||||
| 
 | ||||
| import java.util.ArrayList; | ||||
| import java.util.Collection; | ||||
| import java.util.HashMap; | ||||
| import java.util.HashSet; | ||||
| import java.util.List; | ||||
| 
 | ||||
| import org.bukkit.ChatColor; | ||||
| import org.bukkit.configuration.ConfigurationSection; | ||||
| 
 | ||||
| import mineverse.Aust1n46.chat.MineverseChat; | ||||
| import mineverse.Aust1n46.chat.utilities.Format; | ||||
| 
 | ||||
| /** | ||||
|  * Chat channel object pojo. Class also contains static initialization methods | ||||
|  * for reading chat channels from the config file. | ||||
|  *  | ||||
|  * @author Aust1n46 | ||||
|  */ | ||||
| public class ChatChannel { | ||||
| 	private static final String PERMISSION_PREFIX = "venturechat."; | ||||
| 	private static final String NO_PERMISSIONS = "venturechat.none"; | ||||
| 	 | ||||
| 	private static boolean aliasesRegisteredAsCommands; | ||||
| 
 | ||||
| 	private static MineverseChat plugin = MineverseChat.getInstance(); | ||||
| 	private static ChatChannel defaultChatChannel; | ||||
| 	private static String defaultColor; | ||||
| 	private static HashMap<String, ChatChannel> chatChannels; | ||||
| 	 | ||||
| 	@Deprecated | ||||
| 	private static ChatChannel[] channels; | ||||
| 
 | ||||
| 	private String name; | ||||
| 	private String permission; | ||||
| 	private String speakPermission; | ||||
| 	private boolean mutable; | ||||
| 	private String color; | ||||
| 	private String chatColor; | ||||
| 	private boolean defaultChannel; | ||||
| 	private boolean autojoin; | ||||
| 	private String alias; | ||||
| 	private double distance; | ||||
| 	private boolean filter; | ||||
| 	private boolean bungee; | ||||
| 	private String format; | ||||
| 	private int cooldown; | ||||
| 
 | ||||
| 	/** | ||||
| 	 * Read chat channels from config file and initialize channel array. | ||||
| 	 */ | ||||
| 	public static void initialize(boolean aliasesRegisteredAsCommands) { | ||||
| 		chatChannels = new HashMap<String, ChatChannel>(); | ||||
| 		ChatChannel.aliasesRegisteredAsCommands = aliasesRegisteredAsCommands; | ||||
| 		ConfigurationSection cs = plugin.getConfig().getConfigurationSection("channels"); | ||||
| 		int len = (cs.getKeys(false)).size(); | ||||
| 		channels = new ChatChannel[len]; | ||||
| 		int counter = 0; | ||||
| 		for (String key : cs.getKeys(false)) { | ||||
| 			String color = cs.getString(key + ".color", "white"); | ||||
| 			String chatColor = cs.getString(key + ".chatcolor", "white"); | ||||
| 			String name = key; | ||||
| 			String permission = cs.getString(key + ".permissions", "None"); | ||||
| 			String speakPermission = cs.getString(key + ".speak_permissions", "None"); | ||||
| 			boolean mutable = cs.getBoolean(key + ".mutable", false); | ||||
| 			boolean filter = cs.getBoolean(key + ".filter", true); | ||||
| 			boolean bungee = cs.getBoolean(key + ".bungeecord", false); | ||||
| 			String format = cs.getString(key + ".format", "Default"); | ||||
| 			boolean defaultChannel = cs.getBoolean(key + ".default", false); | ||||
| 			String alias = cs.getString(key + ".alias", "None"); | ||||
| 			double distance = cs.getDouble(key + ".distance", (double) 0); | ||||
| 			int cooldown = cs.getInt(key + ".cooldown", 0); | ||||
| 			boolean autojoin = cs.getBoolean(key + ".autojoin", false); | ||||
| 			ChatChannel chatChannel = new ChatChannel(name, color, chatColor, permission, speakPermission, mutable, | ||||
| 					filter, defaultChannel, alias, distance, autojoin, bungee, cooldown, format); | ||||
| 			channels[counter++] = chatChannel; | ||||
| 			chatChannels.put(name.toLowerCase(), chatChannel); | ||||
| 			chatChannels.put(alias.toLowerCase(), chatChannel); | ||||
| 			if (defaultChannel) { | ||||
| 				defaultChatChannel = chatChannel; | ||||
| 				defaultColor = color; | ||||
| 			} | ||||
| 		} | ||||
| 	} | ||||
| 	 | ||||
| 	public static boolean areAliasesRegisteredAsCommands() { | ||||
| 		return aliasesRegisteredAsCommands; | ||||
| 	} | ||||
| 
 | ||||
| 	/** | ||||
| 	 * Get array of chat channels. | ||||
| 	 *  | ||||
| 	 * @return {@link ChatChannel}[] | ||||
| 	 */ | ||||
| 	@Deprecated | ||||
| 	public static ChatChannel[] getChannels() { | ||||
| 		return channels; | ||||
| 	} | ||||
| 	 | ||||
| 	/** | ||||
| 	 * Get list of chat channels. | ||||
| 	 *  | ||||
| 	 * @return {@link Collection}<{@link ChatChannel}> | ||||
| 	 */ | ||||
| 	public static Collection<ChatChannel> getChatChannels() { | ||||
| 		return new HashSet<ChatChannel>(chatChannels.values()); | ||||
| 	} | ||||
| 
 | ||||
| 	/** | ||||
| 	 * Get a chat channel by name. | ||||
| 	 *  | ||||
| 	 * @param channelName | ||||
| 	 *            name of channel to get. | ||||
| 	 * @return {@link ChatChannel} | ||||
| 	 */ | ||||
| 	public static ChatChannel getChannel(String channelName) { | ||||
| 		return chatChannels.get(channelName.toLowerCase()); | ||||
| 	} | ||||
| 
 | ||||
| 	/** | ||||
| 	 * Checks if the chat channel exists. | ||||
| 	 *  | ||||
| 	 * @param channelName | ||||
| 	 *            name of channel to check. | ||||
| 	 * @return true if channel exists, false otherwise. | ||||
| 	 */ | ||||
| 	public static boolean isChannel(String channelName) { | ||||
| 		return getChannel(channelName) != null; | ||||
| 	} | ||||
| 
 | ||||
| 	/** | ||||
| 	 * Get default chat channel color. | ||||
| 	 *  | ||||
| 	 * @return {@link String} | ||||
| 	 */ | ||||
| 	public static String getDefaultColor() { | ||||
| 		return defaultColor; | ||||
| 	} | ||||
| 
 | ||||
| 	/** | ||||
| 	 * Get default chat channel. | ||||
| 	 *  | ||||
| 	 * @return {@link ChatChannel} | ||||
| 	 */ | ||||
| 	public static ChatChannel getDefaultChannel() { | ||||
| 		return defaultChatChannel; | ||||
| 	} | ||||
| 
 | ||||
| 	/** | ||||
| 	 * Get list of chat channels with autojoin set to true. | ||||
| 	 *  | ||||
| 	 * @return {@link List}<{@link ChatChannel}> | ||||
| 	 */ | ||||
| 	public static List<ChatChannel> getAutojoinList() { | ||||
| 		List<ChatChannel> joinlist = new ArrayList<ChatChannel>(); | ||||
| 		for (ChatChannel c : channels) { | ||||
| 			if (c.getAutojoin()) { | ||||
| 				joinlist.add(c); | ||||
| 			} | ||||
| 		} | ||||
| 		return joinlist; | ||||
| 	} | ||||
| 
 | ||||
| 	/** | ||||
| 	 * Parameterized constructor a {@link ChatChannel}. | ||||
| 	 *  | ||||
| 	 * @param name | ||||
| 	 * @param color | ||||
| 	 * @param chatColor | ||||
| 	 * @param permission | ||||
| 	 * @param speakPermission | ||||
| 	 * @param mutable | ||||
| 	 * @param filter | ||||
| 	 * @param defaultChannel | ||||
| 	 * @param alias | ||||
| 	 * @param distance | ||||
| 	 * @param autojoin | ||||
| 	 * @param bungee | ||||
| 	 * @param cooldown | ||||
| 	 * @param format | ||||
| 	 */ | ||||
| 	public ChatChannel(String name, String color, String chatColor, String permission, String speakPermission, | ||||
| 			boolean mutable, boolean filter, boolean defaultChannel, String alias, double distance, boolean autojoin, | ||||
| 			boolean bungee, int cooldown, String format) { | ||||
| 		this.name = name; | ||||
| 		this.color = color; | ||||
| 		this.chatColor = chatColor; | ||||
| 		this.permission = PERMISSION_PREFIX + permission; | ||||
| 		this.speakPermission = PERMISSION_PREFIX + speakPermission; | ||||
| 		this.mutable = mutable; | ||||
| 		this.filter = filter; | ||||
| 		this.defaultChannel = defaultChannel; | ||||
| 		this.alias = alias; | ||||
| 		this.distance = distance; | ||||
| 		this.autojoin = autojoin; | ||||
| 		this.bungee = bungee; | ||||
| 		this.cooldown = cooldown; | ||||
| 		this.format = format; | ||||
| 	} | ||||
| 
 | ||||
| 	/** | ||||
| 	 * Deprecated parameterized constructor a {@link ChatChannel}. | ||||
| 	 *  | ||||
| 	 * @param name | ||||
| 	 * @param color | ||||
| 	 * @param chatColor | ||||
| 	 * @param permission | ||||
| 	 * @param speakPermission | ||||
| 	 * @param mutable | ||||
| 	 * @param filter | ||||
| 	 * @param defaultChannel | ||||
| 	 * @param alias | ||||
| 	 * @param distance | ||||
| 	 * @param autojoin | ||||
| 	 * @param bungee | ||||
| 	 * @param cooldown | ||||
| 	 * @param format | ||||
| 	 */ | ||||
| 	@Deprecated | ||||
| 	public ChatChannel(String name, String color, String chatColor, String permission, String speakPermission, | ||||
| 			Boolean mutable, Boolean filter, Boolean defaultChannel, String alias, Double distance, Boolean autojoin, | ||||
| 			Boolean bungee, int cooldown, String format) { | ||||
| 		this.name = name; | ||||
| 		this.color = color; | ||||
| 		this.chatColor = chatColor; | ||||
| 		this.permission = PERMISSION_PREFIX + permission; | ||||
| 		this.speakPermission = PERMISSION_PREFIX + speakPermission; | ||||
| 		this.mutable = mutable; | ||||
| 		this.filter = filter; | ||||
| 		this.defaultChannel = defaultChannel; | ||||
| 		this.alias = alias; | ||||
| 		this.distance = distance; | ||||
| 		this.autojoin = autojoin; | ||||
| 		this.bungee = bungee; | ||||
| 		this.cooldown = cooldown; | ||||
| 		this.format = format; | ||||
| 	} | ||||
| 
 | ||||
| 	/** | ||||
| 	 * Get the name of the chat channel. | ||||
| 	 *  | ||||
| 	 * @return {@link String} | ||||
| 	 */ | ||||
| 	public String getName() { | ||||
| 		return name; | ||||
| 	} | ||||
| 
 | ||||
| 	/** | ||||
| 	 * Get the format of the chat channel. | ||||
| 	 *  | ||||
| 	 * @return {@link String} | ||||
| 	 */ | ||||
| 	public String getFormat() { | ||||
| 		return format; | ||||
| 	} | ||||
| 
 | ||||
| 	/** | ||||
| 	 * Get the cooldown of the chat channel in seconds. | ||||
| 	 *  | ||||
| 	 * @return int | ||||
| 	 */ | ||||
| 	public int getCooldown() { | ||||
| 		return cooldown; | ||||
| 	} | ||||
| 
 | ||||
| 	/** | ||||
| 	 * Check if the chat channel is BungeeCord enabled. | ||||
| 	 *  | ||||
| 	 * @return {@link Boolean#TRUE} if the chat channel is BungeeCord enabled, | ||||
| 	 *         {@link Boolean#FALSE} otherwise. | ||||
| 	 */ | ||||
| 	public Boolean getBungee() { | ||||
| 		return Boolean.valueOf(bungee); | ||||
| 	} | ||||
| 
 | ||||
| 	/** | ||||
| 	 * Get the permissions node for the chat channel. | ||||
| 	 *  | ||||
| 	 * @return {@link String} | ||||
| 	 */ | ||||
| 	public String getPermission() { | ||||
| 		return permission; | ||||
| 	} | ||||
| 
 | ||||
| 	/** | ||||
| 	 * Check if autojoin is enabled for the chat channel. | ||||
| 	 *  | ||||
| 	 * @return {@link Boolean#TRUE} if autojoin is enabled, {@link Boolean#FALSE} | ||||
| 	 *         otherwise. | ||||
| 	 */ | ||||
| 	public Boolean getAutojoin() { | ||||
| 		return Boolean.valueOf(autojoin); | ||||
| 	} | ||||
| 
 | ||||
| 	/** | ||||
| 	 * Check if the chat channel allows muting. | ||||
| 	 *  | ||||
| 	 * @return {@link Boolean#TRUE} if muting is allowed, {@link Boolean#FALSE} | ||||
| 	 *         otherwise. | ||||
| 	 */ | ||||
| 	public Boolean isMutable() { | ||||
| 		return Boolean.valueOf(mutable); | ||||
| 	} | ||||
| 
 | ||||
| 	/** | ||||
| 	 * Get the formatted color of the chat channel. | ||||
| 	 *  | ||||
| 	 * @return {@link String}. Returns {@link Format#DEFAULT_COLOR_CODE} if the | ||||
| 	 *         color is invalid. | ||||
| 	 */ | ||||
| 	public String getColor() { | ||||
| 		if (Format.isValidColor(color)) { | ||||
| 			return String.valueOf(ChatColor.valueOf(color.toUpperCase())); | ||||
| 		} | ||||
| 		if (Format.isValidHexColor(color)) { | ||||
| 			return Format.convertHexColorCodeToBukkitColorCode(color); | ||||
| 		} | ||||
| 		return Format.DEFAULT_COLOR_CODE; | ||||
| 	} | ||||
| 
 | ||||
| 	/** | ||||
| 	 * Get the raw color value of the chat channel. | ||||
| 	 *  | ||||
| 	 * @return {@link String} | ||||
| 	 */ | ||||
| 	public String getColorRaw() { | ||||
| 		return color; | ||||
| 	} | ||||
| 
 | ||||
| 	/** | ||||
| 	 * Get the formatted chat color of the chat channel. | ||||
| 	 *  | ||||
| 	 * @return {@link String}. Returns {@link Format#DEFAULT_COLOR_CODE} if the chat | ||||
| 	 *         color is invalid. | ||||
| 	 */ | ||||
| 	public String getChatColor() { | ||||
| 		if (chatColor.equalsIgnoreCase("None")) { | ||||
| 			return chatColor; | ||||
| 		} | ||||
| 		if (Format.isValidColor(chatColor)) { | ||||
| 			return String.valueOf(ChatColor.valueOf(chatColor.toUpperCase())); | ||||
| 		} | ||||
| 		if (Format.isValidHexColor(chatColor)) { | ||||
| 			return Format.convertHexColorCodeToBukkitColorCode(chatColor); | ||||
| 		} | ||||
| 		return Format.DEFAULT_COLOR_CODE; | ||||
| 	} | ||||
| 
 | ||||
| 	/** | ||||
| 	 * Get the raw chat color value of the chat channel. | ||||
| 	 *  | ||||
| 	 * @return {@link String} | ||||
| 	 */ | ||||
| 	public String getChatColorRaw() { | ||||
| 		return chatColor; | ||||
| 	} | ||||
| 
 | ||||
| 	/** | ||||
| 	 * Check if the chat channel is the default chat channel. | ||||
| 	 *  | ||||
| 	 * @return {@link Boolean#TRUE} if the chat channel is the default chat channel, | ||||
| 	 *         {@link Boolean#FALSE} otherwise. | ||||
| 	 */ | ||||
| 	public Boolean isDefaultchannel() { | ||||
| 		return Boolean.valueOf(defaultChannel); | ||||
| 	} | ||||
| 
 | ||||
| 	/** | ||||
| 	 * Get the alias of the chat channel. | ||||
| 	 *  | ||||
| 	 * @return {@link String} | ||||
| 	 */ | ||||
| 	public String getAlias() { | ||||
| 		return alias; | ||||
| 	} | ||||
| 
 | ||||
| 	/** | ||||
| 	 * Get the distance of the chat channel in blocks. | ||||
| 	 *  | ||||
| 	 * @return {@link Double} | ||||
| 	 */ | ||||
| 	public Double getDistance() { | ||||
| 		return Double.valueOf(distance); | ||||
| 	} | ||||
| 
 | ||||
| 	/** | ||||
| 	 * Checks if the chat channel has a distance set. | ||||
| 	 *  | ||||
| 	 * @return {@link Boolean#TRUE} if the distance is greater than zero, | ||||
| 	 *         {@link Boolean#FALSE} otherwise. | ||||
| 	 */ | ||||
| 	public Boolean hasDistance() { | ||||
| 		return Boolean.valueOf(distance > 0); | ||||
| 	} | ||||
| 
 | ||||
| 	/** | ||||
| 	 * Checks if the chat channel has a cooldown set. | ||||
| 	 *  | ||||
| 	 * @return {@link Boolean#TRUE} if the cooldown is greater than zero, | ||||
| 	 *         {@link Boolean#FALSE} otherwise. | ||||
| 	 */ | ||||
| 	public Boolean hasCooldown() { | ||||
| 		return Boolean.valueOf(cooldown > 0); | ||||
| 	} | ||||
| 
 | ||||
| 	/** | ||||
| 	 * Checks if the chat channel has a permission set. | ||||
| 	 *  | ||||
| 	 * @return {@link Boolean#TRUE} if the permission does not equal | ||||
| 	 *         {@link ChatChannel#NO_PERMISSIONS}, {@link Boolean#FALSE} otherwise. | ||||
| 	 */ | ||||
| 	public Boolean hasPermission() { | ||||
| 		return Boolean.valueOf(!permission.equalsIgnoreCase(NO_PERMISSIONS)); | ||||
| 	} | ||||
| 
 | ||||
| 	/** | ||||
| 	 * Checks if the chat channel has a speak permission set. | ||||
| 	 *  | ||||
| 	 * @return true if the speak permission does not equal | ||||
| 	 *         {@link ChatChannel#NO_PERMISSIONS}, false otherwise. | ||||
| 	 */ | ||||
| 	public boolean hasSpeakPermission() { | ||||
| 		return !speakPermission.equalsIgnoreCase(NO_PERMISSIONS); | ||||
| 	} | ||||
| 
 | ||||
| 	/** | ||||
| 	 * Get the speak permissions node for the chat channel. | ||||
| 	 *  | ||||
| 	 * @return {@link String} | ||||
| 	 */ | ||||
| 	public String getSpeakPermission() { | ||||
| 		return speakPermission; | ||||
| 	} | ||||
| 
 | ||||
| 	/** | ||||
| 	 * Checks if the chat channel has the filter enabled. | ||||
| 	 *  | ||||
| 	 * @return {@link Boolean#TRUE} if the chat channel has the filter enabled, | ||||
| 	 *         {@link Boolean#FALSE} otherwise. | ||||
| 	 */ | ||||
| 	public Boolean isFiltered() { | ||||
| 		return Boolean.valueOf(filter); | ||||
| 	} | ||||
| 
 | ||||
| 	/** | ||||
| 	 * Compares the chat channel by name to determine equality. | ||||
| 	 *  | ||||
| 	 * @param channel | ||||
| 	 *            Object to compare for equality. | ||||
| 	 * @return true if the objects are equal, false otherwise. | ||||
| 	 */ | ||||
| 	@Override | ||||
| 	public boolean equals(Object channel) { | ||||
| 		return channel instanceof ChatChannel && this.name.equals(((ChatChannel) channel).getName()); | ||||
| 	} | ||||
| } | ||||
|  | ||||
| @ -1,134 +1,142 @@ | ||||
| package mineverse.Aust1n46.chat.command; | ||||
| 
 | ||||
| import java.util.HashMap; | ||||
| import java.util.List; | ||||
| import java.util.Map; | ||||
| 
 | ||||
| import org.bukkit.command.Command; | ||||
| import org.bukkit.command.CommandSender; | ||||
| import org.bukkit.command.TabExecutor; | ||||
| 
 | ||||
| import mineverse.Aust1n46.chat.MineverseChat; | ||||
| import mineverse.Aust1n46.chat.command.chat.Broadcast; | ||||
| import mineverse.Aust1n46.chat.command.chat.BungeeToggle; | ||||
| import mineverse.Aust1n46.chat.command.chat.Channel; | ||||
| import mineverse.Aust1n46.chat.command.chat.Channelinfo; | ||||
| import mineverse.Aust1n46.chat.command.chat.Chatinfo; | ||||
| import mineverse.Aust1n46.chat.command.chat.Chatreload; | ||||
| import mineverse.Aust1n46.chat.command.chat.Chlist; | ||||
| import mineverse.Aust1n46.chat.command.chat.Chwho; | ||||
| import mineverse.Aust1n46.chat.command.chat.Clearchat; | ||||
| import mineverse.Aust1n46.chat.command.chat.Commandblock; | ||||
| import mineverse.Aust1n46.chat.command.chat.Commandspy; | ||||
| import mineverse.Aust1n46.chat.command.chat.Config; | ||||
| import mineverse.Aust1n46.chat.command.chat.Edit; | ||||
| import mineverse.Aust1n46.chat.command.chat.Filter; | ||||
| import mineverse.Aust1n46.chat.command.chat.Force; | ||||
| import mineverse.Aust1n46.chat.command.chat.Forceall; | ||||
| import mineverse.Aust1n46.chat.command.chat.Kickchannel; | ||||
| import mineverse.Aust1n46.chat.command.chat.Kickchannelall; | ||||
| import mineverse.Aust1n46.chat.command.chat.Leave; | ||||
| import mineverse.Aust1n46.chat.command.chat.Listen; | ||||
| import mineverse.Aust1n46.chat.command.chat.Me; | ||||
| import mineverse.Aust1n46.chat.command.chat.Nick; | ||||
| import mineverse.Aust1n46.chat.command.chat.Party; | ||||
| import mineverse.Aust1n46.chat.command.chat.RangedSpy; | ||||
| import mineverse.Aust1n46.chat.command.chat.Removemessage; | ||||
| import mineverse.Aust1n46.chat.command.chat.Setchannel; | ||||
| import mineverse.Aust1n46.chat.command.chat.Setchannelall; | ||||
| import mineverse.Aust1n46.chat.command.chat.VentureChatGui; | ||||
| import mineverse.Aust1n46.chat.command.chat.Venturechat; | ||||
| import mineverse.Aust1n46.chat.command.message.IgnoreCommandExecutor; | ||||
| import mineverse.Aust1n46.chat.command.message.MessageCommandExecutor; | ||||
| import mineverse.Aust1n46.chat.command.message.MessageToggle; | ||||
| import mineverse.Aust1n46.chat.command.message.Notifications; | ||||
| import mineverse.Aust1n46.chat.command.message.Reply; | ||||
| import mineverse.Aust1n46.chat.command.message.Spy; | ||||
| import mineverse.Aust1n46.chat.command.mute.Mute; | ||||
| import mineverse.Aust1n46.chat.command.mute.Muteall; | ||||
| import mineverse.Aust1n46.chat.command.mute.Unmute; | ||||
| import mineverse.Aust1n46.chat.command.mute.Unmuteall; | ||||
| 
 | ||||
| /** | ||||
|  * Class that initializes and executes the plugin's commands. | ||||
|  */ | ||||
| public class VentureCommandExecutor implements TabExecutor { | ||||
|     private static Map<String, VentureCommand> commands = new HashMap<String, VentureCommand>(); | ||||
|     private static MineverseChat plugin = MineverseChat.getInstance(); | ||||
|     private static VentureCommandExecutor commandExecutor; | ||||
| 
 | ||||
|     @Override | ||||
|     public boolean onCommand(CommandSender sender, Command command, String label, String[] parameters) { | ||||
|         commands.get(command.getName()).execute(sender, command.getName(), parameters); | ||||
|         return true; | ||||
|     } | ||||
| 
 | ||||
|     @Override | ||||
|     public List<String> onTabComplete(CommandSender sender, Command command, String label, String[] args) { | ||||
|         return commands.get(command.getName()).onTabComplete(sender, command, label, args); | ||||
|     } | ||||
| 
 | ||||
|     public static void initialize() { | ||||
|         commandExecutor = new VentureCommandExecutor(); | ||||
|         commands.put("broadcast", new Broadcast()); | ||||
|         commands.put("channel", new Channel()); | ||||
|         commands.put("join", new Channel()); | ||||
|         commands.put("channelinfo", new Channelinfo()); | ||||
|         commands.put("chatinfo", new Chatinfo()); | ||||
|         commands.put("chatreload", new Chatreload()); | ||||
|         commands.put("chlist", new Chlist()); | ||||
|         commands.put("chwho", new Chwho()); | ||||
|         commands.put("clearchat", new Clearchat()); | ||||
|         commands.put("commandblock", new Commandblock()); | ||||
|         commands.put("commandspy", new Commandspy()); | ||||
|         commands.put("config", new Config()); | ||||
|         commands.put("edit", new Edit()); | ||||
|         commands.put("filter", new Filter()); | ||||
|         commands.put("force", new Force()); | ||||
|         commands.put("forceall", new Forceall()); | ||||
|         commands.put("kickchannel", new Kickchannel()); | ||||
|         commands.put("kickchannelall", new Kickchannelall()); | ||||
|         commands.put("leave", new Leave()); | ||||
|         commands.put("listen", new Listen()); | ||||
|         commands.put("me", new Me()); | ||||
|         commands.put("venturechat", new Venturechat()); | ||||
|         commands.put("setnickname", new Nick()); | ||||
|         commands.put("notifications", new Notifications()); | ||||
|         commands.put("party", new Party()); | ||||
|         commands.put("rangedspy", new RangedSpy()); | ||||
|         commands.put("removemessage", new Removemessage()); | ||||
|         commands.put("setchannel", new Setchannel()); | ||||
|         commands.put("setchannelall", new Setchannelall()); | ||||
|         commands.put("spy", new Spy()); | ||||
|         commands.put("venturechatgui", new VentureChatGui()); | ||||
|         commands.put("messagetoggle", new MessageToggle()); | ||||
|         commands.put("bungeetoggle", new BungeeToggle()); | ||||
|         for (String command : commands.keySet()) { | ||||
|             plugin.getCommand(command).setExecutor(commandExecutor); | ||||
|         } | ||||
| 
 | ||||
|         plugin.getServer().getScheduler().runTaskLater(plugin, () -> { | ||||
|             VentureCommand reply = new Reply(); | ||||
|             commands.put("reply", reply); | ||||
|             commands.put("r", reply); | ||||
|             plugin.getCommand("reply").setExecutor(commandExecutor); | ||||
|             plugin.getCommand("r").setExecutor(commandExecutor); | ||||
| 
 | ||||
|             commands.put("mute", new Mute()); | ||||
|             commands.put("muteall", new Muteall()); | ||||
|             commands.put("unmute", new Unmute()); | ||||
|             commands.put("unmuteall", new Unmuteall()); | ||||
|             plugin.getCommand("mute").setExecutor(commandExecutor); | ||||
|             plugin.getCommand("muteall").setExecutor(commandExecutor); | ||||
|             plugin.getCommand("unmute").setExecutor(commandExecutor); | ||||
|             plugin.getCommand("unmuteall").setExecutor(commandExecutor); | ||||
| 
 | ||||
|             MessageCommandExecutor messageCommandExecutor = new MessageCommandExecutor(); | ||||
|             plugin.getCommand("message").setExecutor(messageCommandExecutor); | ||||
|             plugin.getCommand("msg").setExecutor(messageCommandExecutor); | ||||
|             plugin.getCommand("tell").setExecutor(messageCommandExecutor); | ||||
|             plugin.getCommand("whisper").setExecutor(messageCommandExecutor); | ||||
|             plugin.getCommand("ignore").setExecutor(new IgnoreCommandExecutor()); | ||||
|         }, 0); | ||||
|     } | ||||
| } | ||||
| package mineverse.Aust1n46.chat.command; | ||||
| 
 | ||||
| import java.util.HashMap; | ||||
| import java.util.List; | ||||
| import java.util.Map; | ||||
| 
 | ||||
| import org.bukkit.command.Command; | ||||
| import org.bukkit.command.CommandExecutor; | ||||
| import org.bukkit.command.CommandSender; | ||||
| import org.bukkit.command.TabExecutor; | ||||
| 
 | ||||
| import mineverse.Aust1n46.chat.MineverseChat; | ||||
| import mineverse.Aust1n46.chat.command.chat.Broadcast; | ||||
| import mineverse.Aust1n46.chat.command.chat.BungeeToggle; | ||||
| import mineverse.Aust1n46.chat.command.chat.Channel; | ||||
| import mineverse.Aust1n46.chat.command.chat.Channelinfo; | ||||
| import mineverse.Aust1n46.chat.command.chat.Chatinfo; | ||||
| import mineverse.Aust1n46.chat.command.chat.Chatreload; | ||||
| import mineverse.Aust1n46.chat.command.chat.Chlist; | ||||
| import mineverse.Aust1n46.chat.command.chat.Chwho; | ||||
| import mineverse.Aust1n46.chat.command.chat.Clearchat; | ||||
| import mineverse.Aust1n46.chat.command.chat.Commandblock; | ||||
| import mineverse.Aust1n46.chat.command.chat.Commandspy; | ||||
| import mineverse.Aust1n46.chat.command.chat.Config; | ||||
| import mineverse.Aust1n46.chat.command.chat.Edit; | ||||
| import mineverse.Aust1n46.chat.command.chat.Filter; | ||||
| import mineverse.Aust1n46.chat.command.chat.Force; | ||||
| import mineverse.Aust1n46.chat.command.chat.Forceall; | ||||
| import mineverse.Aust1n46.chat.command.chat.Kickchannel; | ||||
| import mineverse.Aust1n46.chat.command.chat.Kickchannelall; | ||||
| import mineverse.Aust1n46.chat.command.chat.Leave; | ||||
| import mineverse.Aust1n46.chat.command.chat.Listen; | ||||
| import mineverse.Aust1n46.chat.command.chat.Me; | ||||
| import mineverse.Aust1n46.chat.command.chat.Nick; | ||||
| import mineverse.Aust1n46.chat.command.chat.Party; | ||||
| import mineverse.Aust1n46.chat.command.chat.RangedSpy; | ||||
| import mineverse.Aust1n46.chat.command.chat.Removemessage; | ||||
| import mineverse.Aust1n46.chat.command.chat.Setchannel; | ||||
| import mineverse.Aust1n46.chat.command.chat.Setchannelall; | ||||
| import mineverse.Aust1n46.chat.command.chat.VentureChatGui; | ||||
| import mineverse.Aust1n46.chat.command.chat.Venturechat; | ||||
| import mineverse.Aust1n46.chat.command.message.IgnoreCommandExecutor; | ||||
| import mineverse.Aust1n46.chat.command.message.MessageCommandExecutor; | ||||
| import mineverse.Aust1n46.chat.command.message.MessageToggle; | ||||
| import mineverse.Aust1n46.chat.command.message.Notifications; | ||||
| import mineverse.Aust1n46.chat.command.message.Reply; | ||||
| import mineverse.Aust1n46.chat.command.message.Spy; | ||||
| import mineverse.Aust1n46.chat.command.mute.Mute; | ||||
| import mineverse.Aust1n46.chat.command.mute.Muteall; | ||||
| import mineverse.Aust1n46.chat.command.mute.Unmute; | ||||
| import mineverse.Aust1n46.chat.command.mute.Unmuteall; | ||||
| 
 | ||||
| /** | ||||
|  * Class that initializes and executes the plugin's commands. | ||||
|  */ | ||||
| public class VentureCommandExecutor implements TabExecutor { | ||||
| 	private static Map<String, VentureCommand> commands = new HashMap<String, VentureCommand>(); | ||||
| 	private static MineverseChat plugin = MineverseChat.getInstance(); | ||||
| 	private static VentureCommandExecutor commandExecutor; | ||||
| 
 | ||||
| 	@Override | ||||
| 	public boolean onCommand(CommandSender sender, Command command, String label, String[] parameters) { | ||||
| 		commands.get(command.getName()).execute(sender, command.getName(), parameters); | ||||
| 		return true; | ||||
| 	} | ||||
| 
 | ||||
| 	@Override | ||||
| 	public List<String> onTabComplete(CommandSender sender, Command command, String label, String[] args) { | ||||
| 		return commands.get(command.getName()).onTabComplete(sender, command, label, args); | ||||
| 	} | ||||
| 	 | ||||
| 	public static void initialize() { | ||||
| 		commandExecutor = new VentureCommandExecutor(); | ||||
| 		commands.put("broadcast", new Broadcast()); | ||||
| 		commands.put("channel", new Channel()); | ||||
| 		commands.put("join", new Channel()); | ||||
| 		commands.put("channelinfo", new Channelinfo()); | ||||
| 		commands.put("chatinfo", new Chatinfo()); | ||||
| 		commands.put("chatreload", new Chatreload()); | ||||
| 		commands.put("chlist", new Chlist()); | ||||
| 		commands.put("chwho", new Chwho()); | ||||
| 		commands.put("clearchat", new Clearchat()); | ||||
| 		commands.put("commandblock", new Commandblock()); | ||||
| 		commands.put("commandspy", new Commandspy()); | ||||
| 		commands.put("config", new Config()); | ||||
| 		commands.put("edit", new Edit()); | ||||
| 		commands.put("filter", new Filter()); | ||||
| 		commands.put("force", new Force()); | ||||
| 		commands.put("forceall", new Forceall()); | ||||
| 		commands.put("kickchannel", new Kickchannel()); | ||||
| 		commands.put("kickchannelall", new Kickchannelall()); | ||||
| 		commands.put("leave", new Leave()); | ||||
| 		commands.put("listen", new Listen()); | ||||
| 		commands.put("me", new Me()); | ||||
| 		commands.put("venturechat", new Venturechat()); | ||||
| 		commands.put("setnickname", new Nick()); | ||||
| 		commands.put("notifications", new Notifications()); | ||||
| 		commands.put("party", new Party()); | ||||
| 		commands.put("rangedspy", new RangedSpy()); | ||||
| 		commands.put("removemessage", new Removemessage()); | ||||
| 		commands.put("setchannel", new Setchannel()); | ||||
| 		commands.put("setchannelall", new Setchannelall()); | ||||
| 		commands.put("spy", new Spy()); | ||||
| 		commands.put("venturechatgui", new VentureChatGui()); | ||||
| 		commands.put("messagetoggle", new MessageToggle()); | ||||
| 		commands.put("bungeetoggle", new BungeeToggle()); | ||||
| 		for(String command : commands.keySet()) { | ||||
| 			registerCommand(command, commandExecutor); | ||||
| 		} | ||||
| 		 | ||||
| 		plugin.getServer().getScheduler().runTaskLater(plugin, () -> { | ||||
| 			VentureCommand reply = new Reply(); | ||||
| 			commands.put("reply", reply); | ||||
| 			commands.put("r", reply); | ||||
| 			registerCommand("reply", commandExecutor); | ||||
| 			registerCommand("r", commandExecutor); | ||||
| 			 | ||||
| 			commands.put("mute", new Mute()); | ||||
| 			commands.put("muteall", new Muteall()); | ||||
| 			commands.put("unmute", new Unmute()); | ||||
| 			commands.put("unmuteall", new Unmuteall()); | ||||
| 			registerCommand("mute", commandExecutor); | ||||
| 			registerCommand("muteall", commandExecutor); | ||||
| 			registerCommand("unmute", commandExecutor); | ||||
| 			registerCommand("unmuteall", commandExecutor); | ||||
| 			 | ||||
| 			MessageCommandExecutor messageCommandExecutor = new MessageCommandExecutor(); | ||||
| 			registerCommand("message", messageCommandExecutor); | ||||
| 			registerCommand("msg", messageCommandExecutor); | ||||
| 			registerCommand("tell", messageCommandExecutor); | ||||
| 			registerCommand("whisper", messageCommandExecutor); | ||||
| 			 | ||||
| 			registerCommand("ignore", new IgnoreCommandExecutor()); | ||||
| 		}, 0); | ||||
| 	} | ||||
| 	 | ||||
| 	private static void registerCommand(String command, CommandExecutor commandExecutor) { | ||||
| 		if(plugin.getCommand(command) != null) { | ||||
| 			plugin.getCommand(command).setExecutor(commandExecutor); | ||||
| 		} | ||||
| 	} | ||||
| } | ||||
|  | ||||
| @ -1,32 +1,60 @@ | ||||
| package mineverse.Aust1n46.chat.command.chat; | ||||
| 
 | ||||
| import org.bukkit.Bukkit; | ||||
| import org.bukkit.command.CommandSender; | ||||
| 
 | ||||
| import mineverse.Aust1n46.chat.MineverseChat; | ||||
| import mineverse.Aust1n46.chat.api.MineverseChatAPI; | ||||
| import mineverse.Aust1n46.chat.api.MineverseChatPlayer; | ||||
| import mineverse.Aust1n46.chat.command.VentureCommand; | ||||
| import mineverse.Aust1n46.chat.localization.LocalizedMessage; | ||||
| 
 | ||||
| public class Chatreload implements VentureCommand { | ||||
|     private MineverseChat plugin = MineverseChat.getInstance(); | ||||
| 
 | ||||
|     @Override | ||||
|     public void execute(CommandSender sender, String command, String[] args) { | ||||
|         if (sender.hasPermission("venturechat.reload")) { | ||||
|             plugin.reloadConfig(); | ||||
|             Bukkit.getPluginManager().disablePlugin(plugin); | ||||
|             Bukkit.getPluginManager().enablePlugin(plugin); | ||||
|             plugin.getServer().getLogger().info("[VentureChat] Config reloaded"); | ||||
|             for (MineverseChatPlayer player : MineverseChatAPI.getOnlineMineverseChatPlayers()) { | ||||
|                 if (player.getPlayer().hasPermission("venturechat.reload")) { | ||||
|                     player.getPlayer().sendMessage(LocalizedMessage.CONFIG_RELOADED.toString()); | ||||
|                 } | ||||
|             } | ||||
|             return; | ||||
|         } | ||||
|         sender.sendMessage(LocalizedMessage.COMMAND_NO_PERMISSION.toString()); | ||||
|         return; | ||||
|     } | ||||
| } | ||||
| package mineverse.Aust1n46.chat.command.chat; | ||||
| 
 | ||||
| import java.util.UUID; | ||||
| 
 | ||||
| import org.bukkit.Bukkit; | ||||
| import org.bukkit.command.CommandSender; | ||||
| import org.bukkit.entity.Player; | ||||
| 
 | ||||
| import mineverse.Aust1n46.chat.MineverseChat; | ||||
| import mineverse.Aust1n46.chat.api.MineverseChatAPI; | ||||
| import mineverse.Aust1n46.chat.api.MineverseChatPlayer; | ||||
| import mineverse.Aust1n46.chat.command.VentureCommand; | ||||
| import mineverse.Aust1n46.chat.database.PlayerData; | ||||
| import mineverse.Aust1n46.chat.localization.LocalizedMessage; | ||||
| import mineverse.Aust1n46.chat.utilities.Format; | ||||
| 
 | ||||
| public class Chatreload implements VentureCommand { | ||||
| 	private MineverseChat plugin = MineverseChat.getInstance(); | ||||
| 
 | ||||
| 	@Override | ||||
| 	public void execute(CommandSender sender, String command, String[] args) { | ||||
| 		if(sender.hasPermission("venturechat.reload")) { | ||||
| 			PlayerData.savePlayerData(); | ||||
| 			MineverseChatAPI.clearMineverseChatPlayerMap(); | ||||
| 			MineverseChatAPI.clearNameMap(); | ||||
| 			MineverseChatAPI.clearOnlineMineverseChatPlayerMap(); | ||||
| 			 | ||||
| 			plugin.reloadConfig(); | ||||
| 			MineverseChat.initializeConfigReaders(); | ||||
| 			 | ||||
| 			PlayerData.loadLegacyPlayerData(); | ||||
| 			PlayerData.loadPlayerData(); | ||||
| 			for(Player p : plugin.getServer().getOnlinePlayers()) { | ||||
| 				MineverseChatPlayer mcp = MineverseChatAPI.getMineverseChatPlayer(p); | ||||
| 				if(mcp == null) { | ||||
| 					Bukkit.getConsoleSender().sendMessage(Format.FormatStringAll("&8[&eVentureChat&8]&c - Could not find player data post reload for currently online player: " + p.getName())); | ||||
| 					Bukkit.getConsoleSender().sendMessage(Format.FormatStringAll("&8[&eVentureChat&8]&c - There could be an issue with your player data saving.")); | ||||
| 					String name = p.getName(); | ||||
| 					UUID uuid = p.getUniqueId(); | ||||
| 					mcp = new MineverseChatPlayer(uuid, name); | ||||
| 				} | ||||
| 				mcp.setOnline(true); | ||||
| 				mcp.setHasPlayed(false); | ||||
| 				mcp.setJsonFormat(); | ||||
| 				MineverseChatAPI.addMineverseChatOnlinePlayerToMap(mcp); | ||||
| 				MineverseChatAPI.addNameToMap(mcp); | ||||
| 			} | ||||
| 			 | ||||
| 			Bukkit.getConsoleSender().sendMessage(Format.FormatStringAll("&8[&eVentureChat&8]&e - Config reloaded"));	 | ||||
| 			for(MineverseChatPlayer player : MineverseChatAPI.getOnlineMineverseChatPlayers()) { | ||||
| 				if(player.getPlayer().hasPermission("venturechat.reload")) { | ||||
| 					player.getPlayer().sendMessage(LocalizedMessage.CONFIG_RELOADED.toString()); | ||||
| 				} | ||||
| 			} | ||||
| 			return; | ||||
| 		} | ||||
| 		sender.sendMessage(LocalizedMessage.COMMAND_NO_PERMISSION.toString()); | ||||
| 		return; | ||||
| 	} | ||||
| } | ||||
|  | ||||
										
											
												File diff suppressed because it is too large
												Load Diff
											
										
									
								
							
										
											
												File diff suppressed because it is too large
												Load Diff
											
										
									
								
							| @ -1,423 +1,424 @@ | ||||
| #=============================================================== | ||||
| #                     VentureChat Config                       = | ||||
| #                      Author: Aust1n46                        =                   | ||||
| #=============================================================== | ||||
| 
 | ||||
| # - regex1,regex2 | ||||
| # Simple regex tips: Use \b to "cut" a section of the word or phrase.  Example: \bass,donuts | ||||
| # Example filtered sentence: You are an ass.  Will become: You are an donuts.   | ||||
| # Example filtered sentence: You caught a bass.  Will stay: You caught a bass.   | ||||
| # Example filtered sentence: You are an asshole.  Will become: You are an donutshole. | ||||
| # Default filters by Jabelpeeps | ||||
| filters: | ||||
| - (\b.?anus),donuts | ||||
| - (\ba+r*(se+|ss+(?!(ass|um|oc|ign|ist)).*?|s*e*h+[o0]*[l1]+e*[sz]*)\b),donuts | ||||
| - (b[i1]a?tch(es)?),puppy | ||||
| - Carpet Muncher,cookie monster | ||||
| - (\bc((?!ook\b)[o0]+c*|aw)k\W?(sucker|s*|he[ea]*d)\b),rooster | ||||
| - (\b[ck]r+a+p+(er|s|z)?\b),poopoo | ||||
| - (\bcu+m+\b),go | ||||
| - (\b.?[ck](u*n+|[l1]+[i1]+)t+[sz]*\b),peach | ||||
| - (\b.?d[1i](c?k(head)?|[l1]+d[o0])e?[sz]?\b),rooster | ||||
| - f u c k( e r)?,nono | ||||
| - (\b.?fai*g+[oei1]*t*[sz]*\b),cigar | ||||
| - Fudge Packer,fine person | ||||
| - (\b(m[uo]+th[ae]r?)?(f|ph)uc*k*(e[rn]|ah*|ing?|)[sz]?\b),oh dear | ||||
| - (\b(j(ac|er|ur)k\W?(of+))|(ji[sz]+i*m*)\b),bake brownies | ||||
| - (\b(ma+s+te?rbai?te?[rs]?|wank(er)?[sz]?)\b),bake brownies | ||||
| - orafi(s|ce),rooster | ||||
| - (\bp+[e3]+[ai]*n+[i1!ua]+s+),rooster | ||||
| - (\bp[i1]s+(?!(ton))(flap|face|drop)?),peepee | ||||
| - (\b.?sh[i1!y]t+(er?|y|head)?[sz]*),poopoo | ||||
| - (\bva[1i]?[gj]+[i1]+na+\b),peach | ||||
| - vu[1l]+va,peach | ||||
| - planet.?minecraft,another dimension | ||||
| - pmc,another dimension | ||||
| - ((\d+\.){3}\d+),another dimension | ||||
| 
 | ||||
| # command without the / | ||||
| blockablecommands: | ||||
| - vote | ||||
| - me | ||||
| 
 | ||||
| # blacklisted nicknames  | ||||
| nicknames: | ||||
| - Notch | ||||
| 
 | ||||
| nickname-in-tablist: true | ||||
| 
 | ||||
| # {player} : player sending command | ||||
| # {command} : command typed | ||||
| commandspy: | ||||
|   format: '&6{player}: {command}' | ||||
|   worldeditcommands: true | ||||
|    | ||||
| antispam: | ||||
|   enabled: true | ||||
|    | ||||
|   # Number of messages to be spam | ||||
|   spamnumber: 5 | ||||
|    | ||||
|   # Amount of time in seconds for it to be spam | ||||
|   spamtime: 10 | ||||
|    | ||||
|   # Amount of time for the mute to last | ||||
|   # Acceptable units are: d,h,m,s | ||||
|   # Units can be combined, for example: 1d8h30m15s | ||||
|   # Use 0 for untimed mute | ||||
|   mutetime: 10m | ||||
|   | ||||
| # Logging chat and commands to a mysql database  | ||||
| mysql: | ||||
|   enabled: false | ||||
|   user: User | ||||
|   port: 3306 | ||||
|   password: Password | ||||
|   host: localhost | ||||
|   database: Database | ||||
| 
 | ||||
| # Loglevel feature is still in the works for adding of debug messages | ||||
| # Valid loglevels: | ||||
| # Info: Regular logging | ||||
| # Debug: Show extra messages and caught errors for debugging | ||||
| # Severe: Only show severe messages | ||||
| loglevel: info | ||||
| 
 | ||||
| # saveinterval is in minutes | ||||
| saveinterval: 30 | ||||
| 
 | ||||
| # If you're running a "cracked" server, player data might not be stored properly, and thus, you are on your own. | ||||
| # If you run your server in offline mode, you might have to reset your player data when switching to online mode! | ||||
| # If you see this warning by accident and you are using BungeeCord, make sure you have properly setup IP Forwarding. | ||||
| # https://www.spigotmc.org/wiki/bungeecord-ip-forwarding/ | ||||
| # No player data will be saved in offline mode unless you set this acknowledgement to 'true' | ||||
| offline_server_acknowledgement: false | ||||
| 
 | ||||
| # The time in seconds between each check to remove timed mutes | ||||
| unmuteinterval: 60 | ||||
| 
 | ||||
| # Enables or disabled BungeeCord messaging | ||||
| bungeecordmessaging: false | ||||
| 
 | ||||
| # Sound for message notification | ||||
| message_sound: ENTITY_PLAYER_LEVELUP | ||||
| 
 | ||||
| # This will allow vanished players to be exempt from being sent private messages, and will act as if they aren't online | ||||
| vanishsupport: true | ||||
| 
 | ||||
| # Use PlaceholderAPI placeholders | ||||
| # Start the placeholder with 'sender_' for the sending players placeholder | ||||
| # Start the placeholder with 'receiver_' for the receiving players placeholder | ||||
| # The defaults shown below provide an example of each | ||||
| tellformatto: '&7You message {receiver_vault_prefix}{receiver_player_displayname}&7:' | ||||
| tellformatfrom: '{sender_vault_prefix}{sender_player_displayname} &7messages you:' | ||||
| tellformatspy: '{sender_player_name} messages {receiver_player_name}:&7' | ||||
| replyformatto: '&7You reply to {receiver_vault_prefix}{receiver_player_displayname}&7:' | ||||
| replyformatfrom: '{sender_vault_prefix}{sender_player_displayname} &7replies to you:' | ||||
| replyformatspy: '{sender_player_name} replies to {receiver_player_name}:&7' | ||||
| 
 | ||||
| # {host} : party hosts name | ||||
| # {player} : player name | ||||
| # use Default for the basic formatting | ||||
| partyformat: Default | ||||
| 
 | ||||
| formatcleaner: true | ||||
| 
 | ||||
| # If true, /ignore will block chat from the ignored player as well as PM's | ||||
| ignorechat: false | ||||
| 
 | ||||
| # The message shown to players alerting them no one is in the channel to hear them | ||||
| emptychannelalert: "&6No one is listening to you." | ||||
| 
 | ||||
| messageremoverpermissions: '&cYou need additional permissions to view this message!' | ||||
| messageremovertext: '&c&o<message removed>' | ||||
| 
 | ||||
| # The name of the group is the permissions node for the format | ||||
| # Example: venturechat.json.Owner is the node for the group Owner | ||||
| # A lower priority overrides a higher priority if a player has more than 1 group | ||||
| # Possible options for click_name and click_prefix are suggest_command, run_command, and open_url | ||||
| jsonformatting: | ||||
|   Default: # This default format is required!  Do not delete or rename it! | ||||
|     priority: 2147483647 # Integer.MAX_VALUE | ||||
|     hover_name: | ||||
|     - '&6I have no rank!' | ||||
|     click_name: 'suggest_command' | ||||
|     click_name_text: '/msg {player_name}' | ||||
|     hover_prefix: | ||||
|     - '&dI am default!' | ||||
|     click_prefix: 'run_command' | ||||
|     click_prefix_text: '/help' | ||||
|     hover_suffix: | ||||
|     - '&dI am default suffix!' | ||||
|     click_suffix: 'suggest_command' | ||||
|     click_suffix_text: '/msg {player_name}' | ||||
|   Owner: | ||||
|     priority: 1 # Lowest Priority | ||||
|     hover_name: | ||||
|     - '&cOwner of the server!' | ||||
|     - '&bMessage me for help!' | ||||
|     click_name: 'suggest_command' | ||||
|     click_name_text: '/msg {player_name}' | ||||
|     hover_prefix: | ||||
|     - '&dServer Owner' | ||||
|     click_prefix: 'run_command' | ||||
|     click_prefix_text: '/help' | ||||
|     hover_suffix: | ||||
|     - '&dI am Owner suffix!' | ||||
|     click_suffix: 'suggest_command' | ||||
|     click_suffix_text: '/msg {player_name}' | ||||
|      | ||||
| # The icon is the block shown in the GUI | ||||
| # The text is the display name of the block icon | ||||
| # Include a slash (/) before the command    | ||||
| # Permissions are the name of the button and automatically include "venturechat."  | ||||
| # Example: mute equals venturechat.mute | ||||
| venturegui: | ||||
|   mute: | ||||
|     icon: 'REDSTONE_BLOCK' | ||||
|     durability: 0 | ||||
|     text: '&cMute {player_name} &410m' | ||||
|     permission: 'mute' | ||||
|     command: '/mute {channel} {player_name} 10m' | ||||
|     slot: 1 | ||||
|   unmute: | ||||
|     icon: 'DIAMOND_BLOCK' | ||||
|     durability: 0 | ||||
|     text: '&bUnmute {player_name}' | ||||
|     permission: 'mute' | ||||
|     command: '/unmute {channel} {player_name} ' | ||||
|     slot: 2 | ||||
|   removemessage: | ||||
|     icon: 'DIAMOND_AXE' | ||||
|     durability: 0 | ||||
|     text: '&cRemove Message' | ||||
|     permission: 'removemessage' | ||||
|     command: '/removemessage {hash} {channel}' | ||||
|     slot: 7 | ||||
| 
 | ||||
| guiicon: '&c [✓]' | ||||
| guitext: '&cOpen Moderation GUI' | ||||
| guirows: 1 | ||||
| 
 | ||||
| # All clickable URL's will be underlined if set to true | ||||
| underlineurls: true | ||||
| 
 | ||||
| # broadcast information | ||||
| broadcast: | ||||
|   color: red | ||||
|   permissions: venturechat.adminchannel | ||||
|   displaytag: '[Broadcast]' | ||||
|    | ||||
| # Use $ to include arguments into the message   | ||||
| # Valid component types are: | ||||
| # Command: Sends a message or command in chat | ||||
| # Message: Sends a message to the player | ||||
| # Broadcast: Sends a broadcast to all players on the server | ||||
| # Permissions automatically include "venturechat."  | ||||
| # Example: permissions: alert equals venturechat.alert | ||||
| # Use None for no permissions | ||||
| # The number of arguments is the minimum number of required arguments, use 0 for no required arguments | ||||
| alias:   | ||||
|   vote: | ||||
|     arguments: 0 | ||||
|     permissions: None | ||||
|     components: | ||||
|     - 'Message: &6Vote here: www.votelinkhere.com' | ||||
|   bane: | ||||
|     arguments: 2 | ||||
|     permissions: bane | ||||
|     components: | ||||
|     - 'Command: /ban $ appeal at www.site.com' | ||||
|     - 'Command: /st banned $' | ||||
|   alert: | ||||
|     arguments: 1 | ||||
|     permissions: alert | ||||
|     components: | ||||
|     - 'Broadcast: &c<Alert> $' | ||||
|   donate: | ||||
|     arguments: 0 | ||||
|     permissions: None | ||||
|     components: | ||||
|     - 'Message: &bDonate here: www.mywebsite.com' | ||||
|   website: | ||||
|     arguments: 0 | ||||
|     permissions: None | ||||
|     components: | ||||
|     - 'Message: &aThis is our website: www.site.net' | ||||
|    | ||||
| # Enables the creation of special Towny channels: Town and Nation | ||||
| # To create these channels, simply name two channels below "Town" and "Nation" | ||||
| # Bungeecord must be set to false for these channels!  | ||||
| enable_towny_channel: false | ||||
| 
 | ||||
| # Enables the creation of a special faction only channel using the Factions plugin | ||||
| # To create this channel, simply name a channel below "Faction" | ||||
| # Bungeecord must be set to false for this channel! | ||||
| # WARNING: May not work for all versions of Factions! | ||||
| enable_factions_channel: false | ||||
| 
 | ||||
| # color = [channel] color | ||||
| # chatcolor = text color | ||||
| # cooldown is in seconds | ||||
| # bungeecord overrides distance | ||||
| # channel permissions are configurable | ||||
| # channels can be changed, and new channels can be created | ||||
| # Permissions automatically include "venturechat."  | ||||
| # Example: permissions: staff equals venturechat.staff | ||||
| # Use None for no permissions | ||||
| 
 | ||||
| # Use PlaceholderAPI placeholders are required!!! | ||||
| # Use PlaceholderAPI placeholders are required!!! | ||||
| # Use PlaceholderAPI placeholders are required!!! | ||||
| # /papi ecloud download [plugin] | ||||
| # /papi reload | ||||
| # Use '' or "" around format, example: '[&2global&f] {vault_prefix} {player_displayname}&2:' | ||||
| # You must have prefixes and suffixes set in a Vault compatible permissions plugin to avoid errors | ||||
| # Use "" as the prefix or suffix to have none | ||||
| 
 | ||||
| # Set chatcolor to 'None' to have a group based chat color! Don't forget to put a suffix or other placeholder at the end of the format! | ||||
| 
 | ||||
| # Important!!! | ||||
| # Important!!! | ||||
| # If you delete a channel, restart the server! Do not use /chatreload!!! | ||||
| channels: | ||||
|   GroupChatColorExample: | ||||
|     color: '#706C1E' | ||||
|     chatcolor: 'None' | ||||
|     mutable: true | ||||
|     filter: true | ||||
|     autojoin: true | ||||
|     default: false | ||||
|     distance: 0 | ||||
|     cooldown: 0 | ||||
|     bungeecord: false | ||||
|     alias: ge | ||||
|     permissions: None | ||||
|     speak_permissions: None | ||||
|     format: '&f[#706C1EGroupColorChat&f] {vault_prefix} {player_displayname}#706C1E:{vault_suffix}' | ||||
|   HexExample: | ||||
|     color: '#ff0000' | ||||
|     chatcolor: '#ff0000' | ||||
|     mutable: true | ||||
|     filter: true | ||||
|     autojoin: true | ||||
|     default: false | ||||
|     distance: 0 | ||||
|     cooldown: 0 | ||||
|     bungeecord: false | ||||
|     alias: he | ||||
|     permissions: None | ||||
|     speak_permissions: None | ||||
|     format: '&f[#ff0000Hex&f] {vault_prefix} {player_displayname}#ff0000:' | ||||
|   BungeeExample: | ||||
|     color: gold | ||||
|     chatcolor: gold | ||||
|     mutable: true | ||||
|     filter: true | ||||
|     autojoin: true | ||||
|     default: false | ||||
|     distance: 0 | ||||
|     cooldown: 3 | ||||
|     bungeecord: true | ||||
|     alias: be | ||||
|     permissions: None | ||||
|     speak_permissions: None | ||||
|     format: '&f[&6Network&f] {vault_prefix} {player_displayname}&6:' | ||||
|   AnnouncementExample: | ||||
|     color: red | ||||
|     chatcolor: red | ||||
|     mutable: false | ||||
|     filter: false | ||||
|     autojoin: true | ||||
|     default: false | ||||
|     distance: 0 | ||||
|     cooldown: 0 | ||||
|     bungeecord: true | ||||
|     alias: announce | ||||
|     permissions: None | ||||
|     speak_permissions: announcement | ||||
|     format: '&f[&aServer Announcement&f] {vault_prefix} {player_displayname}&c:' | ||||
|   Global: | ||||
|     color: dark_green | ||||
|     chatcolor: dark_green | ||||
|     mutable: true | ||||
|     filter: true | ||||
|     autojoin: true | ||||
|     default: true | ||||
|     distance: 0 | ||||
|     cooldown: 0 | ||||
|     bungeecord: false | ||||
|     alias: g | ||||
|     permissions: None | ||||
|     speak_permissions: None | ||||
|     format: '&f[&2Global&f] {vault_prefix} {player_displayname}&2:' | ||||
|   Staff: | ||||
|     color: green | ||||
|     chatcolor: green | ||||
|     mutable: false | ||||
|     filter: false | ||||
|     autojoin: true | ||||
|     default: false | ||||
|     distance: 0 | ||||
|     cooldown: 0 | ||||
|     bungeecord: false | ||||
|     alias: st | ||||
|     permissions: staffchannel | ||||
|     speak_permissions: None | ||||
|     format: '&f[&aStaff&f] {vault_prefix} {player_displayname}&a:' | ||||
|   Donator: | ||||
|     color: light_purple | ||||
|     chatcolor: light_purple | ||||
|     mutable: true | ||||
|     filter: true | ||||
|     autojoin: true | ||||
|     default: false | ||||
|     distance: 0 | ||||
|     cooldown: 0 | ||||
|     bungeecord: false | ||||
|     alias: d | ||||
|     permissions: donatorchannel | ||||
|     speak_permissions: None | ||||
|     format: '&f[&dDonator&f] {vault_prefix} {player_displayname}&d:' | ||||
|   Help: | ||||
|     color: aqua | ||||
|     chatcolor: aqua | ||||
|     mutable: true | ||||
|     filter: true | ||||
|     autojoin: true | ||||
|     default: false | ||||
|     distance: 0 | ||||
|     cooldown: 0 | ||||
|     bungeecord: false | ||||
|     alias: h | ||||
|     permissions: None | ||||
|     speak_permissions: None | ||||
|     format: '&f[&bHelp&f] {vault_prefix} {player_displayname}&b:' | ||||
|   Trade: | ||||
|     color: dark_aqua | ||||
|     chatcolor: dark_aqua | ||||
|     mutable: true | ||||
|     filter: true | ||||
|     autojoin: true | ||||
|     default: false | ||||
|     distance: 0 | ||||
|     cooldown: 0 | ||||
|     bungeecord: false | ||||
|     alias: t | ||||
|     permissions: None | ||||
|     speak_permissions: None | ||||
|     format: '&f[&3Trade&f] {vault_prefix} {player_displayname}&3:' | ||||
|   Local: | ||||
|     color: yellow | ||||
|     chatcolor: yellow | ||||
|     mutable: true | ||||
|     filter: true | ||||
|     autojoin: true | ||||
|     default: false | ||||
|     distance: 230 | ||||
|     cooldown: 0 | ||||
|     bungeecord: false | ||||
|     alias: l | ||||
|     permissions: None | ||||
|     speak_permissions: None | ||||
| #=============================================================== | ||||
| #                     VentureChat Config                       = | ||||
| #                      Author: Aust1n46                        =                   | ||||
| #=============================================================== | ||||
| 
 | ||||
| # - regex1,regex2 | ||||
| # Simple regex tips: Use \b to "cut" a section of the word or phrase.  Example: \bass,donuts | ||||
| # Example filtered sentence: You are an ass.  Will become: You are an donuts.   | ||||
| # Example filtered sentence: You caught a bass.  Will stay: You caught a bass.   | ||||
| # Example filtered sentence: You are an asshole.  Will become: You are an donutshole. | ||||
| # Default filters by Jabelpeeps | ||||
| filters: | ||||
| - (\b.?anus),donuts | ||||
| - (\ba+r*(se+|ss+(?!(ass|um|oc|ign|ist)).*?|s*e*h+[o0]*[l1]+e*[sz]*)\b),donuts | ||||
| - (b[i1]a?tch(es)?),puppy | ||||
| - Carpet Muncher,cookie monster | ||||
| - (\bc((?!ook\b)[o0]+c*|aw)k\W?(sucker|s*|he[ea]*d)\b),rooster | ||||
| - (\b[ck]r+a+p+(er|s|z)?\b),poopoo | ||||
| - (\bcu+m+\b),go | ||||
| - (\b.?[ck](u*n+|[l1]+[i1]+)t+[sz]*\b),peach | ||||
| - (\b.?d[1i](c?k(head)?|[l1]+d[o0])e?[sz]?\b),rooster | ||||
| - f u c k( e r)?,nono | ||||
| - (\b.?fai*g+[oei1]*t*[sz]*\b),cigar | ||||
| - Fudge Packer,fine person | ||||
| - (\b(m[uo]+th[ae]r?)?(f|ph)uc*k*(e[rn]|ah*|ing?|)[sz]?\b),oh dear | ||||
| - (\b(j(ac|er|ur)k\W?(of+))|(ji[sz]+i*m*)\b),bake brownies | ||||
| - (\b(ma+s+te?rbai?te?[rs]?|wank(er)?[sz]?)\b),bake brownies | ||||
| - orafi(s|ce),rooster | ||||
| - (\bp+[e3]+[ai]*n+[i1!ua]+s+),rooster | ||||
| - (\bp[i1]s+(?!(ton))(flap|face|drop)?),peepee | ||||
| - (\b.?sh[i1!y]t+(er?|y|head)?[sz]*),poopoo | ||||
| - (\bva[1i]?[gj]+[i1]+na+\b),peach | ||||
| - vu[1l]+va,peach | ||||
| - planet.?minecraft,another dimension | ||||
| - pmc,another dimension | ||||
| - ((\d+\.){3}\d+),another dimension | ||||
| 
 | ||||
| # command without the / | ||||
| blockablecommands: | ||||
| - vote | ||||
| - me | ||||
| 
 | ||||
| # blacklisted nicknames  | ||||
| nicknames: | ||||
| - Notch | ||||
| 
 | ||||
| nickname-in-tablist: true | ||||
| 
 | ||||
| # {player} : player sending command | ||||
| # {command} : command typed | ||||
| commandspy: | ||||
|   format: '&6{player}: {command}' | ||||
|   worldeditcommands: true | ||||
|    | ||||
| antispam: | ||||
|   enabled: true | ||||
|    | ||||
|   # Number of messages to be spam | ||||
|   spamnumber: 5 | ||||
|    | ||||
|   # Amount of time in seconds for it to be spam | ||||
|   spamtime: 10 | ||||
|    | ||||
|   # Amount of time for the mute to last | ||||
|   # Acceptable units are: d,h,m,s | ||||
|   # Units can be combined, for example: 1d8h30m15s | ||||
|   # Use 0 for untimed mute | ||||
|   mutetime: 10m | ||||
|   | ||||
| # Logging chat and commands to a mysql database  | ||||
| mysql: | ||||
|   enabled: false | ||||
|   user: User | ||||
|   port: 3306 | ||||
|   password: Password | ||||
|   host: localhost | ||||
|   database: Database | ||||
| 
 | ||||
| # Loglevel feature is still in the works for adding of debug messages | ||||
| # Valid loglevels: | ||||
| # Info: Regular logging | ||||
| # Debug: Show extra messages and caught errors for debugging | ||||
| # Severe: Only show severe messages | ||||
| loglevel: info | ||||
| 
 | ||||
| # saveinterval is in minutes | ||||
| saveinterval: 30 | ||||
| 
 | ||||
| # If you're running a "cracked" server, player data might not be stored properly, and thus, you are on your own. | ||||
| # If you run your server in offline mode, you might have to reset your player data when switching to online mode! | ||||
| # If you see this warning by accident and you are using BungeeCord, make sure you have properly setup IP Forwarding. | ||||
| # https://www.spigotmc.org/wiki/bungeecord-ip-forwarding/ | ||||
| # No player data will be saved in offline mode unless you set this acknowledgement to 'true' | ||||
| offline_server_acknowledgement: false | ||||
| 
 | ||||
| # The time in seconds between each check to remove timed mutes | ||||
| unmuteinterval: 60 | ||||
| 
 | ||||
| # Enables or disabled BungeeCord messaging | ||||
| bungeecordmessaging: false | ||||
| 
 | ||||
| # Sound for message notification | ||||
| # Enter 'None' to disable the sound | ||||
| message_sound: ENTITY_PLAYER_LEVELUP | ||||
| 
 | ||||
| # This will allow vanished players to be exempt from being sent private messages, and will act as if they aren't online | ||||
| vanishsupport: true | ||||
| 
 | ||||
| # Use PlaceholderAPI placeholders | ||||
| # Start the placeholder with 'sender_' for the sending players placeholder | ||||
| # Start the placeholder with 'receiver_' for the receiving players placeholder | ||||
| # The defaults shown below provide an example of each | ||||
| tellformatto: '&7You message {receiver_vault_prefix}{receiver_player_displayname}&7:' | ||||
| tellformatfrom: '{sender_vault_prefix}{sender_player_displayname} &7messages you:' | ||||
| tellformatspy: '{sender_player_name} messages {receiver_player_name}:&7' | ||||
| replyformatto: '&7You reply to {receiver_vault_prefix}{receiver_player_displayname}&7:' | ||||
| replyformatfrom: '{sender_vault_prefix}{sender_player_displayname} &7replies to you:' | ||||
| replyformatspy: '{sender_player_name} replies to {receiver_player_name}:&7' | ||||
| 
 | ||||
| # {host} : party hosts name | ||||
| # {player} : player name | ||||
| # use Default for the basic formatting | ||||
| partyformat: Default | ||||
| 
 | ||||
| formatcleaner: true | ||||
| 
 | ||||
| # If true, /ignore will block chat from the ignored player as well as PM's | ||||
| ignorechat: false | ||||
| 
 | ||||
| # The message shown to players alerting them no one is in the channel to hear them | ||||
| emptychannelalert: "&6No one is listening to you." | ||||
| 
 | ||||
| messageremoverpermissions: '&cYou need additional permissions to view this message!' | ||||
| messageremovertext: '&c&o<message removed>' | ||||
| 
 | ||||
| # The name of the group is the permissions node for the format | ||||
| # Example: venturechat.json.Owner is the node for the group Owner | ||||
| # A lower priority overrides a higher priority if a player has more than 1 group | ||||
| # Possible options for click_name and click_prefix are suggest_command, run_command, and open_url | ||||
| jsonformatting: | ||||
|   Default: # This default format is required!  Do not delete or rename it! | ||||
|     priority: 2147483647 # Integer.MAX_VALUE | ||||
|     hover_name: | ||||
|     - '&6I have no rank!' | ||||
|     click_name: 'suggest_command' | ||||
|     click_name_text: '/msg {player_name}' | ||||
|     hover_prefix: | ||||
|     - '&dI am default!' | ||||
|     click_prefix: 'run_command' | ||||
|     click_prefix_text: '/help' | ||||
|     hover_suffix: | ||||
|     - '&dI am default suffix!' | ||||
|     click_suffix: 'suggest_command' | ||||
|     click_suffix_text: '/msg {player_name}' | ||||
|   Owner: | ||||
|     priority: 1 # Lowest Priority | ||||
|     hover_name: | ||||
|     - '&cOwner of the server!' | ||||
|     - '&bMessage me for help!' | ||||
|     click_name: 'suggest_command' | ||||
|     click_name_text: '/msg {player_name}' | ||||
|     hover_prefix: | ||||
|     - '&dServer Owner' | ||||
|     click_prefix: 'run_command' | ||||
|     click_prefix_text: '/help' | ||||
|     hover_suffix: | ||||
|     - '&dI am Owner suffix!' | ||||
|     click_suffix: 'suggest_command' | ||||
|     click_suffix_text: '/msg {player_name}' | ||||
|      | ||||
| # The icon is the block shown in the GUI | ||||
| # The text is the display name of the block icon | ||||
| # Include a slash (/) before the command    | ||||
| # Permissions are the name of the button and automatically include "venturechat."  | ||||
| # Example: mute equals venturechat.mute | ||||
| venturegui: | ||||
|   mute: | ||||
|     icon: 'REDSTONE_BLOCK' | ||||
|     durability: 0 | ||||
|     text: '&cMute {player_name} &410m' | ||||
|     permission: 'mute' | ||||
|     command: '/mute {channel} {player_name} 10m' | ||||
|     slot: 1 | ||||
|   unmute: | ||||
|     icon: 'DIAMOND_BLOCK' | ||||
|     durability: 0 | ||||
|     text: '&bUnmute {player_name}' | ||||
|     permission: 'mute' | ||||
|     command: '/unmute {channel} {player_name} ' | ||||
|     slot: 2 | ||||
|   removemessage: | ||||
|     icon: 'DIAMOND_AXE' | ||||
|     durability: 0 | ||||
|     text: '&cRemove Message' | ||||
|     permission: 'removemessage' | ||||
|     command: '/removemessage {hash} {channel}' | ||||
|     slot: 7 | ||||
| 
 | ||||
| guiicon: '&c [✓]' | ||||
| guitext: '&cOpen Moderation GUI' | ||||
| guirows: 1 | ||||
| 
 | ||||
| # All clickable URL's will be underlined if set to true | ||||
| underlineurls: true | ||||
| 
 | ||||
| # broadcast information | ||||
| broadcast: | ||||
|   color: red | ||||
|   permissions: venturechat.adminchannel | ||||
|   displaytag: '[Broadcast]' | ||||
|    | ||||
| # Use $ to include arguments into the message   | ||||
| # Valid component types are: | ||||
| # Command: Sends a message or command in chat | ||||
| # Message: Sends a message to the player | ||||
| # Broadcast: Sends a broadcast to all players on the server | ||||
| # Permissions automatically include "venturechat."  | ||||
| # Example: permissions: alert equals venturechat.alert | ||||
| # Use None for no permissions | ||||
| # The number of arguments is the minimum number of required arguments, use 0 for no required arguments | ||||
| alias:   | ||||
|   vote: | ||||
|     arguments: 0 | ||||
|     permissions: None | ||||
|     components: | ||||
|     - 'Message: &6Vote here: www.votelinkhere.com' | ||||
|   bane: | ||||
|     arguments: 2 | ||||
|     permissions: bane | ||||
|     components: | ||||
|     - 'Command: /ban $ appeal at www.site.com' | ||||
|     - 'Command: /st banned $' | ||||
|   alert: | ||||
|     arguments: 1 | ||||
|     permissions: alert | ||||
|     components: | ||||
|     - 'Broadcast: &c<Alert> $' | ||||
|   donate: | ||||
|     arguments: 0 | ||||
|     permissions: None | ||||
|     components: | ||||
|     - 'Message: &bDonate here: www.mywebsite.com' | ||||
|   website: | ||||
|     arguments: 0 | ||||
|     permissions: None | ||||
|     components: | ||||
|     - 'Message: &aThis is our website: www.site.net' | ||||
|    | ||||
| # Enables the creation of special Towny channels: Town and Nation | ||||
| # To create these channels, simply name two channels below "Town" and "Nation" | ||||
| # Bungeecord must be set to false for these channels!  | ||||
| enable_towny_channel: false | ||||
| 
 | ||||
| # Enables the creation of a special faction only channel using the Factions plugin | ||||
| # To create this channel, simply name a channel below "Faction" | ||||
| # Bungeecord must be set to false for this channel! | ||||
| # WARNING: May not work for all versions of Factions! | ||||
| enable_factions_channel: false | ||||
| 
 | ||||
| # color = [channel] color | ||||
| # chatcolor = text color | ||||
| # cooldown is in seconds | ||||
| # bungeecord overrides distance | ||||
| # channel permissions are configurable | ||||
| # channels can be changed, and new channels can be created | ||||
| # Permissions automatically include "venturechat."  | ||||
| # Example: permissions: staff equals venturechat.staff | ||||
| # Use None for no permissions | ||||
| 
 | ||||
| # Use PlaceholderAPI placeholders are required!!! | ||||
| # Use PlaceholderAPI placeholders are required!!! | ||||
| # Use PlaceholderAPI placeholders are required!!! | ||||
| # /papi ecloud download [plugin] | ||||
| # /papi reload | ||||
| # Use '' or "" around format, example: '[&2global&f] {vault_prefix} {player_displayname}&2:' | ||||
| # You must have prefixes and suffixes set in a Vault compatible permissions plugin to avoid errors | ||||
| # Use "" as the prefix or suffix to have none | ||||
| 
 | ||||
| # Set chatcolor to 'None' to have a group based chat color! Don't forget to put a suffix or other placeholder at the end of the format! | ||||
| 
 | ||||
| # Important!!! | ||||
| # Important!!! | ||||
| # If you delete a channel, restart the server! Do not use /chatreload!!! | ||||
| channels: | ||||
|   GroupChatColorExample: | ||||
|     color: '#706C1E' | ||||
|     chatcolor: 'None' | ||||
|     mutable: true | ||||
|     filter: true | ||||
|     autojoin: true | ||||
|     default: false | ||||
|     distance: 0 | ||||
|     cooldown: 0 | ||||
|     bungeecord: false | ||||
|     alias: ge | ||||
|     permissions: None | ||||
|     speak_permissions: None | ||||
|     format: '&f[#706C1EGroupColorChat&f] {vault_prefix} {player_displayname}#706C1E:{vault_suffix}' | ||||
|   HexExample: | ||||
|     color: '#ff0000' | ||||
|     chatcolor: '#ff0000' | ||||
|     mutable: true | ||||
|     filter: true | ||||
|     autojoin: true | ||||
|     default: false | ||||
|     distance: 0 | ||||
|     cooldown: 0 | ||||
|     bungeecord: false | ||||
|     alias: he | ||||
|     permissions: None | ||||
|     speak_permissions: None | ||||
|     format: '&f[#ff0000Hex&f] {vault_prefix} {player_displayname}#ff0000:' | ||||
|   BungeeExample: | ||||
|     color: gold | ||||
|     chatcolor: gold | ||||
|     mutable: true | ||||
|     filter: true | ||||
|     autojoin: true | ||||
|     default: false | ||||
|     distance: 0 | ||||
|     cooldown: 3 | ||||
|     bungeecord: true | ||||
|     alias: be | ||||
|     permissions: None | ||||
|     speak_permissions: None | ||||
|     format: '&f[&6Network&f] {vault_prefix} {player_displayname}&6:' | ||||
|   AnnouncementExample: | ||||
|     color: red | ||||
|     chatcolor: red | ||||
|     mutable: false | ||||
|     filter: false | ||||
|     autojoin: true | ||||
|     default: false | ||||
|     distance: 0 | ||||
|     cooldown: 0 | ||||
|     bungeecord: true | ||||
|     alias: announce | ||||
|     permissions: None | ||||
|     speak_permissions: announcement | ||||
|     format: '&f[&aServer Announcement&f] {vault_prefix} {player_displayname}&c:' | ||||
|   Global: | ||||
|     color: dark_green | ||||
|     chatcolor: dark_green | ||||
|     mutable: true | ||||
|     filter: true | ||||
|     autojoin: true | ||||
|     default: true | ||||
|     distance: 0 | ||||
|     cooldown: 0 | ||||
|     bungeecord: false | ||||
|     alias: g | ||||
|     permissions: None | ||||
|     speak_permissions: None | ||||
|     format: '&f[&2Global&f] {vault_prefix} {player_displayname}&2:' | ||||
|   Staff: | ||||
|     color: green | ||||
|     chatcolor: green | ||||
|     mutable: false | ||||
|     filter: false | ||||
|     autojoin: true | ||||
|     default: false | ||||
|     distance: 0 | ||||
|     cooldown: 0 | ||||
|     bungeecord: false | ||||
|     alias: st | ||||
|     permissions: staffchannel | ||||
|     speak_permissions: None | ||||
|     format: '&f[&aStaff&f] {vault_prefix} {player_displayname}&a:' | ||||
|   Donator: | ||||
|     color: light_purple | ||||
|     chatcolor: light_purple | ||||
|     mutable: true | ||||
|     filter: true | ||||
|     autojoin: true | ||||
|     default: false | ||||
|     distance: 0 | ||||
|     cooldown: 0 | ||||
|     bungeecord: false | ||||
|     alias: d | ||||
|     permissions: donatorchannel | ||||
|     speak_permissions: None | ||||
|     format: '&f[&dDonator&f] {vault_prefix} {player_displayname}&d:' | ||||
|   Help: | ||||
|     color: aqua | ||||
|     chatcolor: aqua | ||||
|     mutable: true | ||||
|     filter: true | ||||
|     autojoin: true | ||||
|     default: false | ||||
|     distance: 0 | ||||
|     cooldown: 0 | ||||
|     bungeecord: false | ||||
|     alias: h | ||||
|     permissions: None | ||||
|     speak_permissions: None | ||||
|     format: '&f[&bHelp&f] {vault_prefix} {player_displayname}&b:' | ||||
|   Trade: | ||||
|     color: dark_aqua | ||||
|     chatcolor: dark_aqua | ||||
|     mutable: true | ||||
|     filter: true | ||||
|     autojoin: true | ||||
|     default: false | ||||
|     distance: 0 | ||||
|     cooldown: 0 | ||||
|     bungeecord: false | ||||
|     alias: t | ||||
|     permissions: None | ||||
|     speak_permissions: None | ||||
|     format: '&f[&3Trade&f] {vault_prefix} {player_displayname}&3:' | ||||
|   Local: | ||||
|     color: yellow | ||||
|     chatcolor: yellow | ||||
|     mutable: true | ||||
|     filter: true | ||||
|     autojoin: true | ||||
|     default: false | ||||
|     distance: 230 | ||||
|     cooldown: 0 | ||||
|     bungeecord: false | ||||
|     alias: l | ||||
|     permissions: None | ||||
|     speak_permissions: None | ||||
|     format: '&f[&eLocal&f] {vault_prefix} {player_displayname}&e:' | ||||
| @ -1,423 +1,424 @@ | ||||
| #=============================================================== | ||||
| #                     VentureChat Config                       = | ||||
| #                      Author: Aust1n46                        =                   | ||||
| #=============================================================== | ||||
| 
 | ||||
| # - regex1,regex2 | ||||
| # Simple regex tips: Use \b to "cut" a section of the word or phrase.  Example: \bass,donuts | ||||
| # Example filtered sentence: You are an ass.  Will become: You are an donuts.   | ||||
| # Example filtered sentence: You caught a bass.  Will stay: You caught a bass.   | ||||
| # Example filtered sentence: You are an asshole.  Will become: You are an donutshole. | ||||
| # Default filters by Jabelpeeps | ||||
| filters: | ||||
| - (\b.?anus),donuts | ||||
| - (\ba+r*(se+|ss+(?!(ass|um|oc|ign|ist)).*?|s*e*h+[o0]*[l1]+e*[sz]*)\b),donuts | ||||
| - (b[i1]a?tch(es)?),puppy | ||||
| - Carpet Muncher,cookie monster | ||||
| - (\bc((?!ook\b)[o0]+c*|aw)k\W?(sucker|s*|he[ea]*d)\b),rooster | ||||
| - (\b[ck]r+a+p+(er|s|z)?\b),poopoo | ||||
| - (\bcu+m+\b),go | ||||
| - (\b.?[ck](u*n+|[l1]+[i1]+)t+[sz]*\b),peach | ||||
| - (\b.?d[1i](c?k(head)?|[l1]+d[o0])e?[sz]?\b),rooster | ||||
| - f u c k( e r)?,nono | ||||
| - (\b.?fai*g+[oei1]*t*[sz]*\b),cigar | ||||
| - Fudge Packer,fine person | ||||
| - (\b(m[uo]+th[ae]r?)?(f|ph)uc*k*(e[rn]|ah*|ing?|)[sz]?\b),oh dear | ||||
| - (\b(j(ac|er|ur)k\W?(of+))|(ji[sz]+i*m*)\b),bake brownies | ||||
| - (\b(ma+s+te?rbai?te?[rs]?|wank(er)?[sz]?)\b),bake brownies | ||||
| - orafi(s|ce),rooster | ||||
| - (\bp+[e3]+[ai]*n+[i1!ua]+s+),rooster | ||||
| - (\bp[i1]s+(?!(ton))(flap|face|drop)?),peepee | ||||
| - (\b.?sh[i1!y]t+(er?|y|head)?[sz]*),poopoo | ||||
| - (\bva[1i]?[gj]+[i1]+na+\b),peach | ||||
| - vu[1l]+va,peach | ||||
| - planet.?minecraft,another dimension | ||||
| - pmc,another dimension | ||||
| - ((\d+\.){3}\d+),another dimension | ||||
| 
 | ||||
| # command without the / | ||||
| blockablecommands: | ||||
| - vote | ||||
| - me | ||||
| 
 | ||||
| # blacklisted nicknames  | ||||
| nicknames: | ||||
| - Notch | ||||
| 
 | ||||
| nickname-in-tablist: true | ||||
| 
 | ||||
| # {player} : player sending command | ||||
| # {command} : command typed | ||||
| commandspy: | ||||
|   format: '&6{player}: {command}' | ||||
|   worldeditcommands: true | ||||
|    | ||||
| antispam: | ||||
|   enabled: true | ||||
|    | ||||
|   # Number of messages to be spam | ||||
|   spamnumber: 5 | ||||
|    | ||||
|   # Amount of time in seconds for it to be spam | ||||
|   spamtime: 10 | ||||
|    | ||||
|   # Amount of time for the mute to last | ||||
|   # Acceptable units are: d,h,m,s | ||||
|   # Units can be combined, for example: 1d8h30m15s | ||||
|   # Use 0 for untimed mute | ||||
|   mutetime: 10m | ||||
|   | ||||
| # Logging chat and commands to a mysql database  | ||||
| mysql: | ||||
|   enabled: false | ||||
|   user: User | ||||
|   port: 3306 | ||||
|   password: Password | ||||
|   host: localhost | ||||
|   database: Database | ||||
| 
 | ||||
| # Loglevel feature is still in the works for adding of debug messages | ||||
| # Valid loglevels: | ||||
| # Info: Regular logging | ||||
| # Debug: Show extra messages and caught errors for debugging | ||||
| # Severe: Only show severe messages | ||||
| loglevel: info | ||||
| 
 | ||||
| # saveinterval is in minutes | ||||
| saveinterval: 30 | ||||
| 
 | ||||
| # If you're running a "cracked" server, player data might not be stored properly, and thus, you are on your own. | ||||
| # If you run your server in offline mode, you might have to reset your player data when switching to online mode! | ||||
| # If you see this warning by accident and you are using BungeeCord, make sure you have properly setup IP Forwarding. | ||||
| # https://www.spigotmc.org/wiki/bungeecord-ip-forwarding/ | ||||
| # No player data will be saved in offline mode unless you set this acknowledgement to 'true' | ||||
| offline_server_acknowledgement: false | ||||
| 
 | ||||
| # The time in seconds between each check to remove timed mutes | ||||
| unmuteinterval: 60 | ||||
| 
 | ||||
| # Enables or disabled BungeeCord messaging | ||||
| bungeecordmessaging: false | ||||
| 
 | ||||
| # Sound for message notification | ||||
| message_sound: ENTITY_PLAYER_LEVELUP | ||||
| 
 | ||||
| # This will allow vanished players to be exempt from being sent private messages, and will act as if they aren't online | ||||
| vanishsupport: true | ||||
| 
 | ||||
| # Use PlaceholderAPI placeholders | ||||
| # Start the placeholder with 'sender_' for the sending players placeholder | ||||
| # Start the placeholder with 'receiver_' for the receiving players placeholder | ||||
| # The defaults shown below provide an example of each | ||||
| tellformatto: '&7You message {receiver_vault_prefix}{receiver_player_displayname}&7:' | ||||
| tellformatfrom: '{sender_vault_prefix}{sender_player_displayname} &7messages you:' | ||||
| tellformatspy: '{sender_player_name} messages {receiver_player_name}:&7' | ||||
| replyformatto: '&7You reply to {receiver_vault_prefix}{receiver_player_displayname}&7:' | ||||
| replyformatfrom: '{sender_vault_prefix}{sender_player_displayname} &7replies to you:' | ||||
| replyformatspy: '{sender_player_name} replies to {receiver_player_name}:&7' | ||||
| 
 | ||||
| # {host} : party hosts name | ||||
| # {player} : player name | ||||
| # use Default for the basic formatting | ||||
| partyformat: Default | ||||
| 
 | ||||
| formatcleaner: true | ||||
| 
 | ||||
| # If true, /ignore will block chat from the ignored player as well as PM's | ||||
| ignorechat: false | ||||
| 
 | ||||
| # The message shown to players alerting them no one is in the channel to hear them | ||||
| emptychannelalert: "&6No one is listening to you." | ||||
| 
 | ||||
| messageremoverpermissions: '&cYou need additional permissions to view this message!' | ||||
| messageremovertext: '&c&o<message removed>' | ||||
| 
 | ||||
| # The name of the group is the permissions node for the format | ||||
| # Example: venturechat.json.Owner is the node for the group Owner | ||||
| # A lower priority overrides a higher priority if a player has more than 1 group | ||||
| # Possible options for click_name and click_prefix are suggest_command, run_command, and open_url | ||||
| jsonformatting: | ||||
|   Default: # This default format is required!  Do not delete or rename it! | ||||
|     priority: 2147483647 # Integer.MAX_VALUE | ||||
|     hover_name: | ||||
|     - '&6I have no rank!' | ||||
|     click_name: 'suggest_command' | ||||
|     click_name_text: '/msg {player_name}' | ||||
|     hover_prefix: | ||||
|     - '&dI am default!' | ||||
|     click_prefix: 'run_command' | ||||
|     click_prefix_text: '/help' | ||||
|     hover_suffix: | ||||
|     - '&dI am default suffix!' | ||||
|     click_suffix: 'suggest_command' | ||||
|     click_suffix_text: '/msg {player_name}' | ||||
|   Owner: | ||||
|     priority: 1 # Lowest Priority | ||||
|     hover_name: | ||||
|     - '&cOwner of the server!' | ||||
|     - '&bMessage me for help!' | ||||
|     click_name: 'suggest_command' | ||||
|     click_name_text: '/msg {player_name}' | ||||
|     hover_prefix: | ||||
|     - '&dServer Owner' | ||||
|     click_prefix: 'run_command' | ||||
|     click_prefix_text: '/help' | ||||
|     hover_suffix: | ||||
|     - '&dI am Owner suffix!' | ||||
|     click_suffix: 'suggest_command' | ||||
|     click_suffix_text: '/msg {player_name}' | ||||
|      | ||||
| # The icon is the block shown in the GUI | ||||
| # The text is the display name of the block icon | ||||
| # Include a slash (/) before the command    | ||||
| # Permissions are the name of the button and automatically include "venturechat."  | ||||
| # Example: mute equals venturechat.mute | ||||
| venturegui: | ||||
|   mute: | ||||
|     icon: 'REDSTONE_BLOCK' | ||||
|     durability: 0 | ||||
|     text: '&cMute {player_name} &410m' | ||||
|     permission: 'mute' | ||||
|     command: '/mute {channel} {player_name} 10m' | ||||
|     slot: 1 | ||||
|   unmute: | ||||
|     icon: 'DIAMOND_BLOCK' | ||||
|     durability: 0 | ||||
|     text: '&bUnmute {player_name}' | ||||
|     permission: 'mute' | ||||
|     command: '/unmute {channel} {player_name} ' | ||||
|     slot: 2 | ||||
|   removemessage: | ||||
|     icon: 'DIAMOND_AXE' | ||||
|     durability: 0 | ||||
|     text: '&cRemove Message' | ||||
|     permission: 'removemessage' | ||||
|     command: '/removemessage {hash} {channel}' | ||||
|     slot: 7 | ||||
| 
 | ||||
| guiicon: '&c [✓]' | ||||
| guitext: '&cOpen Moderation GUI' | ||||
| guirows: 1 | ||||
| 
 | ||||
| # All clickable URL's will be underlined if set to true | ||||
| underlineurls: true | ||||
| 
 | ||||
| # broadcast information | ||||
| broadcast: | ||||
|   color: red | ||||
|   permissions: venturechat.adminchannel | ||||
|   displaytag: '[Broadcast]' | ||||
|    | ||||
| # Use $ to include arguments into the message   | ||||
| # Valid component types are: | ||||
| # Command: Sends a message or command in chat | ||||
| # Message: Sends a message to the player | ||||
| # Broadcast: Sends a broadcast to all players on the server | ||||
| # Permissions automatically include "venturechat."  | ||||
| # Example: permissions: alert equals venturechat.alert | ||||
| # Use None for no permissions | ||||
| # The number of arguments is the minimum number of required arguments, use 0 for no required arguments | ||||
| alias:   | ||||
|   vote: | ||||
|     arguments: 0 | ||||
|     permissions: None | ||||
|     components: | ||||
|     - 'Message: &6Vote here: www.votelinkhere.com' | ||||
|   bane: | ||||
|     arguments: 2 | ||||
|     permissions: bane | ||||
|     components: | ||||
|     - 'Command: /ban $ appeal at www.site.com' | ||||
|     - 'Command: /st banned $' | ||||
|   alert: | ||||
|     arguments: 1 | ||||
|     permissions: alert | ||||
|     components: | ||||
|     - 'Broadcast: &c<Alert> $' | ||||
|   donate: | ||||
|     arguments: 0 | ||||
|     permissions: None | ||||
|     components: | ||||
|     - 'Message: &bDonate here: www.mywebsite.com' | ||||
|   website: | ||||
|     arguments: 0 | ||||
|     permissions: None | ||||
|     components: | ||||
|     - 'Message: &aThis is our website: www.site.net' | ||||
|    | ||||
| # Enables the creation of special Towny channels: Town and Nation | ||||
| # To create these channels, simply name two channels below "Town" and "Nation" | ||||
| # Bungeecord must be set to false for these channels!  | ||||
| enable_towny_channel: false | ||||
| 
 | ||||
| # Enables the creation of a special faction only channel using the Factions plugin | ||||
| # To create this channel, simply name a channel below "Faction" | ||||
| # Bungeecord must be set to false for this channel! | ||||
| # WARNING: May not work for all versions of Factions! | ||||
| enable_factions_channel: false | ||||
| 
 | ||||
| # color = [channel] color | ||||
| # chatcolor = text color | ||||
| # cooldown is in seconds | ||||
| # bungeecord overrides distance | ||||
| # channel permissions are configurable | ||||
| # channels can be changed, and new channels can be created | ||||
| # Permissions automatically include "venturechat."  | ||||
| # Example: permissions: staff equals venturechat.staff | ||||
| # Use None for no permissions | ||||
| 
 | ||||
| # Use PlaceholderAPI placeholders are required!!! | ||||
| # Use PlaceholderAPI placeholders are required!!! | ||||
| # Use PlaceholderAPI placeholders are required!!! | ||||
| # /papi ecloud download [plugin] | ||||
| # /papi reload | ||||
| # Use '' or "" around format, example: '[&2global&f] {vault_prefix} {player_displayname}&2:' | ||||
| # You must have prefixes and suffixes set in a Vault compatible permissions plugin to avoid errors | ||||
| # Use "" as the prefix or suffix to have none | ||||
| 
 | ||||
| # Set chatcolor to 'None' to have a group based chat color! Don't forget to put a suffix or other placeholder at the end of the format! | ||||
| 
 | ||||
| # Important!!! | ||||
| # Important!!! | ||||
| # If you delete a channel, restart the server! Do not use /chatreload!!! | ||||
| channels: | ||||
|   GroupChatColorExample: | ||||
|     color: '#706C1E' | ||||
|     chatcolor: 'None' | ||||
|     mutable: true | ||||
|     filter: true | ||||
|     autojoin: true | ||||
|     default: false | ||||
|     distance: 0 | ||||
|     cooldown: 0 | ||||
|     bungeecord: false | ||||
|     alias: ge | ||||
|     permissions: None | ||||
|     speak_permissions: None | ||||
|     format: '&f[#706C1EGroupColorChat&f] {vault_prefix} {player_displayname}#706C1E:{vault_suffix}' | ||||
|   HexExample: | ||||
|     color: '#ff0000' | ||||
|     chatcolor: '#ff0000' | ||||
|     mutable: true | ||||
|     filter: true | ||||
|     autojoin: true | ||||
|     default: false | ||||
|     distance: 0 | ||||
|     cooldown: 0 | ||||
|     bungeecord: false | ||||
|     alias: he | ||||
|     permissions: None | ||||
|     speak_permissions: None | ||||
|     format: '&f[#ff0000Hex&f] {vault_prefix} {player_displayname}#ff0000:' | ||||
|   BungeeExample: | ||||
|     color: gold | ||||
|     chatcolor: gold | ||||
|     mutable: true | ||||
|     filter: true | ||||
|     autojoin: true | ||||
|     default: false | ||||
|     distance: 0 | ||||
|     cooldown: 3 | ||||
|     bungeecord: true | ||||
|     alias: be | ||||
|     permissions: None | ||||
|     speak_permissions: None | ||||
|     format: '&f[&6Network&f] {vault_prefix} {player_displayname}&6:' | ||||
|   AnnouncementExample: | ||||
|     color: red | ||||
|     chatcolor: red | ||||
|     mutable: false | ||||
|     filter: false | ||||
|     autojoin: true | ||||
|     default: false | ||||
|     distance: 0 | ||||
|     cooldown: 0 | ||||
|     bungeecord: true | ||||
|     alias: announce | ||||
|     permissions: None | ||||
|     speak_permissions: announcement | ||||
|     format: '&f[&aServer Announcement&f] {vault_prefix} {player_displayname}&c:' | ||||
|   Global: | ||||
|     color: dark_green | ||||
|     chatcolor: dark_green | ||||
|     mutable: true | ||||
|     filter: true | ||||
|     autojoin: true | ||||
|     default: true | ||||
|     distance: 0 | ||||
|     cooldown: 0 | ||||
|     bungeecord: false | ||||
|     alias: g | ||||
|     permissions: None | ||||
|     speak_permissions: None | ||||
|     format: '&f[&2Global&f] {vault_prefix} {player_displayname}&2:' | ||||
|   Staff: | ||||
|     color: green | ||||
|     chatcolor: green | ||||
|     mutable: false | ||||
|     filter: false | ||||
|     autojoin: true | ||||
|     default: false | ||||
|     distance: 0 | ||||
|     cooldown: 0 | ||||
|     bungeecord: false | ||||
|     alias: st | ||||
|     permissions: staffchannel | ||||
|     speak_permissions: None | ||||
|     format: '&f[&aStaff&f] {vault_prefix} {player_displayname}&a:' | ||||
|   Donator: | ||||
|     color: light_purple | ||||
|     chatcolor: light_purple | ||||
|     mutable: true | ||||
|     filter: true | ||||
|     autojoin: true | ||||
|     default: false | ||||
|     distance: 0 | ||||
|     cooldown: 0 | ||||
|     bungeecord: false | ||||
|     alias: d | ||||
|     permissions: donatorchannel | ||||
|     speak_permissions: None | ||||
|     format: '&f[&dDonator&f] {vault_prefix} {player_displayname}&d:' | ||||
|   Help: | ||||
|     color: aqua | ||||
|     chatcolor: aqua | ||||
|     mutable: true | ||||
|     filter: true | ||||
|     autojoin: true | ||||
|     default: false | ||||
|     distance: 0 | ||||
|     cooldown: 0 | ||||
|     bungeecord: false | ||||
|     alias: h | ||||
|     permissions: None | ||||
|     speak_permissions: None | ||||
|     format: '&f[&bHelp&f] {vault_prefix} {player_displayname}&b:' | ||||
|   Trade: | ||||
|     color: dark_aqua | ||||
|     chatcolor: dark_aqua | ||||
|     mutable: true | ||||
|     filter: true | ||||
|     autojoin: true | ||||
|     default: false | ||||
|     distance: 0 | ||||
|     cooldown: 0 | ||||
|     bungeecord: false | ||||
|     alias: t | ||||
|     permissions: None | ||||
|     speak_permissions: None | ||||
|     format: '&f[&3Trade&f] {vault_prefix} {player_displayname}&3:' | ||||
|   Local: | ||||
|     color: yellow | ||||
|     chatcolor: yellow | ||||
|     mutable: true | ||||
|     filter: true | ||||
|     autojoin: true | ||||
|     default: false | ||||
|     distance: 230 | ||||
|     cooldown: 0 | ||||
|     bungeecord: false | ||||
|     alias: l | ||||
|     permissions: None | ||||
|     speak_permissions: None | ||||
| #=============================================================== | ||||
| #                     VentureChat Config                       = | ||||
| #                      Author: Aust1n46                        =                   | ||||
| #=============================================================== | ||||
| 
 | ||||
| # - regex1,regex2 | ||||
| # Simple regex tips: Use \b to "cut" a section of the word or phrase.  Example: \bass,donuts | ||||
| # Example filtered sentence: You are an ass.  Will become: You are an donuts.   | ||||
| # Example filtered sentence: You caught a bass.  Will stay: You caught a bass.   | ||||
| # Example filtered sentence: You are an asshole.  Will become: You are an donutshole. | ||||
| # Default filters by Jabelpeeps | ||||
| filters: | ||||
| - (\b.?anus),donuts | ||||
| - (\ba+r*(se+|ss+(?!(ass|um|oc|ign|ist)).*?|s*e*h+[o0]*[l1]+e*[sz]*)\b),donuts | ||||
| - (b[i1]a?tch(es)?),puppy | ||||
| - Carpet Muncher,cookie monster | ||||
| - (\bc((?!ook\b)[o0]+c*|aw)k\W?(sucker|s*|he[ea]*d)\b),rooster | ||||
| - (\b[ck]r+a+p+(er|s|z)?\b),poopoo | ||||
| - (\bcu+m+\b),go | ||||
| - (\b.?[ck](u*n+|[l1]+[i1]+)t+[sz]*\b),peach | ||||
| - (\b.?d[1i](c?k(head)?|[l1]+d[o0])e?[sz]?\b),rooster | ||||
| - f u c k( e r)?,nono | ||||
| - (\b.?fai*g+[oei1]*t*[sz]*\b),cigar | ||||
| - Fudge Packer,fine person | ||||
| - (\b(m[uo]+th[ae]r?)?(f|ph)uc*k*(e[rn]|ah*|ing?|)[sz]?\b),oh dear | ||||
| - (\b(j(ac|er|ur)k\W?(of+))|(ji[sz]+i*m*)\b),bake brownies | ||||
| - (\b(ma+s+te?rbai?te?[rs]?|wank(er)?[sz]?)\b),bake brownies | ||||
| - orafi(s|ce),rooster | ||||
| - (\bp+[e3]+[ai]*n+[i1!ua]+s+),rooster | ||||
| - (\bp[i1]s+(?!(ton))(flap|face|drop)?),peepee | ||||
| - (\b.?sh[i1!y]t+(er?|y|head)?[sz]*),poopoo | ||||
| - (\bva[1i]?[gj]+[i1]+na+\b),peach | ||||
| - vu[1l]+va,peach | ||||
| - planet.?minecraft,another dimension | ||||
| - pmc,another dimension | ||||
| - ((\d+\.){3}\d+),another dimension | ||||
| 
 | ||||
| # command without the / | ||||
| blockablecommands: | ||||
| - vote | ||||
| - me | ||||
| 
 | ||||
| # blacklisted nicknames  | ||||
| nicknames: | ||||
| - Notch | ||||
| 
 | ||||
| nickname-in-tablist: true | ||||
| 
 | ||||
| # {player} : player sending command | ||||
| # {command} : command typed | ||||
| commandspy: | ||||
|   format: '&6{player}: {command}' | ||||
|   worldeditcommands: true | ||||
|    | ||||
| antispam: | ||||
|   enabled: true | ||||
|    | ||||
|   # Number of messages to be spam | ||||
|   spamnumber: 5 | ||||
|    | ||||
|   # Amount of time in seconds for it to be spam | ||||
|   spamtime: 10 | ||||
|    | ||||
|   # Amount of time for the mute to last | ||||
|   # Acceptable units are: d,h,m,s | ||||
|   # Units can be combined, for example: 1d8h30m15s | ||||
|   # Use 0 for untimed mute | ||||
|   mutetime: 10m | ||||
|   | ||||
| # Logging chat and commands to a mysql database  | ||||
| mysql: | ||||
|   enabled: false | ||||
|   user: User | ||||
|   port: 3306 | ||||
|   password: Password | ||||
|   host: localhost | ||||
|   database: Database | ||||
| 
 | ||||
| # Loglevel feature is still in the works for adding of debug messages | ||||
| # Valid loglevels: | ||||
| # Info: Regular logging | ||||
| # Debug: Show extra messages and caught errors for debugging | ||||
| # Severe: Only show severe messages | ||||
| loglevel: info | ||||
| 
 | ||||
| # saveinterval is in minutes | ||||
| saveinterval: 30 | ||||
| 
 | ||||
| # If you're running a "cracked" server, player data might not be stored properly, and thus, you are on your own. | ||||
| # If you run your server in offline mode, you might have to reset your player data when switching to online mode! | ||||
| # If you see this warning by accident and you are using BungeeCord, make sure you have properly setup IP Forwarding. | ||||
| # https://www.spigotmc.org/wiki/bungeecord-ip-forwarding/ | ||||
| # No player data will be saved in offline mode unless you set this acknowledgement to 'true' | ||||
| offline_server_acknowledgement: false | ||||
| 
 | ||||
| # The time in seconds between each check to remove timed mutes | ||||
| unmuteinterval: 60 | ||||
| 
 | ||||
| # Enables or disabled BungeeCord messaging | ||||
| bungeecordmessaging: false | ||||
| 
 | ||||
| # Sound for message notification | ||||
| # Enter 'None' to disable the sound | ||||
| message_sound: ENTITY_PLAYER_LEVELUP | ||||
| 
 | ||||
| # This will allow vanished players to be exempt from being sent private messages, and will act as if they aren't online | ||||
| vanishsupport: true | ||||
| 
 | ||||
| # Use PlaceholderAPI placeholders | ||||
| # Start the placeholder with 'sender_' for the sending players placeholder | ||||
| # Start the placeholder with 'receiver_' for the receiving players placeholder | ||||
| # The defaults shown below provide an example of each | ||||
| tellformatto: '&7You message {receiver_vault_prefix}{receiver_player_displayname}&7:' | ||||
| tellformatfrom: '{sender_vault_prefix}{sender_player_displayname} &7messages you:' | ||||
| tellformatspy: '{sender_player_name} messages {receiver_player_name}:&7' | ||||
| replyformatto: '&7You reply to {receiver_vault_prefix}{receiver_player_displayname}&7:' | ||||
| replyformatfrom: '{sender_vault_prefix}{sender_player_displayname} &7replies to you:' | ||||
| replyformatspy: '{sender_player_name} replies to {receiver_player_name}:&7' | ||||
| 
 | ||||
| # {host} : party hosts name | ||||
| # {player} : player name | ||||
| # use Default for the basic formatting | ||||
| partyformat: Default | ||||
| 
 | ||||
| formatcleaner: true | ||||
| 
 | ||||
| # If true, /ignore will block chat from the ignored player as well as PM's | ||||
| ignorechat: false | ||||
| 
 | ||||
| # The message shown to players alerting them no one is in the channel to hear them | ||||
| emptychannelalert: "&6No one is listening to you." | ||||
| 
 | ||||
| messageremoverpermissions: '&cYou need additional permissions to view this message!' | ||||
| messageremovertext: '&c&o<message removed>' | ||||
| 
 | ||||
| # The name of the group is the permissions node for the format | ||||
| # Example: venturechat.json.Owner is the node for the group Owner | ||||
| # A lower priority overrides a higher priority if a player has more than 1 group | ||||
| # Possible options for click_name and click_prefix are suggest_command, run_command, and open_url | ||||
| jsonformatting: | ||||
|   Default: # This default format is required!  Do not delete or rename it! | ||||
|     priority: 2147483647 # Integer.MAX_VALUE | ||||
|     hover_name: | ||||
|     - '&6I have no rank!' | ||||
|     click_name: 'suggest_command' | ||||
|     click_name_text: '/msg {player_name}' | ||||
|     hover_prefix: | ||||
|     - '&dI am default!' | ||||
|     click_prefix: 'run_command' | ||||
|     click_prefix_text: '/help' | ||||
|     hover_suffix: | ||||
|     - '&dI am default suffix!' | ||||
|     click_suffix: 'suggest_command' | ||||
|     click_suffix_text: '/msg {player_name}' | ||||
|   Owner: | ||||
|     priority: 1 # Lowest Priority | ||||
|     hover_name: | ||||
|     - '&cOwner of the server!' | ||||
|     - '&bMessage me for help!' | ||||
|     click_name: 'suggest_command' | ||||
|     click_name_text: '/msg {player_name}' | ||||
|     hover_prefix: | ||||
|     - '&dServer Owner' | ||||
|     click_prefix: 'run_command' | ||||
|     click_prefix_text: '/help' | ||||
|     hover_suffix: | ||||
|     - '&dI am Owner suffix!' | ||||
|     click_suffix: 'suggest_command' | ||||
|     click_suffix_text: '/msg {player_name}' | ||||
|      | ||||
| # The icon is the block shown in the GUI | ||||
| # The text is the display name of the block icon | ||||
| # Include a slash (/) before the command    | ||||
| # Permissions are the name of the button and automatically include "venturechat."  | ||||
| # Example: mute equals venturechat.mute | ||||
| venturegui: | ||||
|   mute: | ||||
|     icon: 'REDSTONE_BLOCK' | ||||
|     durability: 0 | ||||
|     text: '&cMute {player_name} &410m' | ||||
|     permission: 'mute' | ||||
|     command: '/mute {channel} {player_name} 10m' | ||||
|     slot: 1 | ||||
|   unmute: | ||||
|     icon: 'DIAMOND_BLOCK' | ||||
|     durability: 0 | ||||
|     text: '&bUnmute {player_name}' | ||||
|     permission: 'mute' | ||||
|     command: '/unmute {channel} {player_name} ' | ||||
|     slot: 2 | ||||
|   removemessage: | ||||
|     icon: 'DIAMOND_AXE' | ||||
|     durability: 0 | ||||
|     text: '&cRemove Message' | ||||
|     permission: 'removemessage' | ||||
|     command: '/removemessage {hash} {channel}' | ||||
|     slot: 7 | ||||
| 
 | ||||
| guiicon: '&c [✓]' | ||||
| guitext: '&cOpen Moderation GUI' | ||||
| guirows: 1 | ||||
| 
 | ||||
| # All clickable URL's will be underlined if set to true | ||||
| underlineurls: true | ||||
| 
 | ||||
| # broadcast information | ||||
| broadcast: | ||||
|   color: red | ||||
|   permissions: venturechat.adminchannel | ||||
|   displaytag: '[Broadcast]' | ||||
|    | ||||
| # Use $ to include arguments into the message   | ||||
| # Valid component types are: | ||||
| # Command: Sends a message or command in chat | ||||
| # Message: Sends a message to the player | ||||
| # Broadcast: Sends a broadcast to all players on the server | ||||
| # Permissions automatically include "venturechat."  | ||||
| # Example: permissions: alert equals venturechat.alert | ||||
| # Use None for no permissions | ||||
| # The number of arguments is the minimum number of required arguments, use 0 for no required arguments | ||||
| alias:   | ||||
|   vote: | ||||
|     arguments: 0 | ||||
|     permissions: None | ||||
|     components: | ||||
|     - 'Message: &6Vote here: www.votelinkhere.com' | ||||
|   bane: | ||||
|     arguments: 2 | ||||
|     permissions: bane | ||||
|     components: | ||||
|     - 'Command: /ban $ appeal at www.site.com' | ||||
|     - 'Command: /st banned $' | ||||
|   alert: | ||||
|     arguments: 1 | ||||
|     permissions: alert | ||||
|     components: | ||||
|     - 'Broadcast: &c<Alert> $' | ||||
|   donate: | ||||
|     arguments: 0 | ||||
|     permissions: None | ||||
|     components: | ||||
|     - 'Message: &bDonate here: www.mywebsite.com' | ||||
|   website: | ||||
|     arguments: 0 | ||||
|     permissions: None | ||||
|     components: | ||||
|     - 'Message: &aThis is our website: www.site.net' | ||||
|    | ||||
| # Enables the creation of special Towny channels: Town and Nation | ||||
| # To create these channels, simply name two channels below "Town" and "Nation" | ||||
| # Bungeecord must be set to false for these channels!  | ||||
| enable_towny_channel: false | ||||
| 
 | ||||
| # Enables the creation of a special faction only channel using the Factions plugin | ||||
| # To create this channel, simply name a channel below "Faction" | ||||
| # Bungeecord must be set to false for this channel! | ||||
| # WARNING: May not work for all versions of Factions! | ||||
| enable_factions_channel: false | ||||
| 
 | ||||
| # color = [channel] color | ||||
| # chatcolor = text color | ||||
| # cooldown is in seconds | ||||
| # bungeecord overrides distance | ||||
| # channel permissions are configurable | ||||
| # channels can be changed, and new channels can be created | ||||
| # Permissions automatically include "venturechat."  | ||||
| # Example: permissions: staff equals venturechat.staff | ||||
| # Use None for no permissions | ||||
| 
 | ||||
| # Use PlaceholderAPI placeholders are required!!! | ||||
| # Use PlaceholderAPI placeholders are required!!! | ||||
| # Use PlaceholderAPI placeholders are required!!! | ||||
| # /papi ecloud download [plugin] | ||||
| # /papi reload | ||||
| # Use '' or "" around format, example: '[&2global&f] {vault_prefix} {player_displayname}&2:' | ||||
| # You must have prefixes and suffixes set in a Vault compatible permissions plugin to avoid errors | ||||
| # Use "" as the prefix or suffix to have none | ||||
| 
 | ||||
| # Set chatcolor to 'None' to have a group based chat color! Don't forget to put a suffix or other placeholder at the end of the format! | ||||
| 
 | ||||
| # Important!!! | ||||
| # Important!!! | ||||
| # If you delete a channel, restart the server! Do not use /chatreload!!! | ||||
| channels: | ||||
|   GroupChatColorExample: | ||||
|     color: '#706C1E' | ||||
|     chatcolor: 'None' | ||||
|     mutable: true | ||||
|     filter: true | ||||
|     autojoin: true | ||||
|     default: false | ||||
|     distance: 0 | ||||
|     cooldown: 0 | ||||
|     bungeecord: false | ||||
|     alias: ge | ||||
|     permissions: None | ||||
|     speak_permissions: None | ||||
|     format: '&f[#706C1EGroupColorChat&f] {vault_prefix} {player_displayname}#706C1E:{vault_suffix}' | ||||
|   HexExample: | ||||
|     color: '#ff0000' | ||||
|     chatcolor: '#ff0000' | ||||
|     mutable: true | ||||
|     filter: true | ||||
|     autojoin: true | ||||
|     default: false | ||||
|     distance: 0 | ||||
|     cooldown: 0 | ||||
|     bungeecord: false | ||||
|     alias: he | ||||
|     permissions: None | ||||
|     speak_permissions: None | ||||
|     format: '&f[#ff0000Hex&f] {vault_prefix} {player_displayname}#ff0000:' | ||||
|   BungeeExample: | ||||
|     color: gold | ||||
|     chatcolor: gold | ||||
|     mutable: true | ||||
|     filter: true | ||||
|     autojoin: true | ||||
|     default: false | ||||
|     distance: 0 | ||||
|     cooldown: 3 | ||||
|     bungeecord: true | ||||
|     alias: be | ||||
|     permissions: None | ||||
|     speak_permissions: None | ||||
|     format: '&f[&6Network&f] {vault_prefix} {player_displayname}&6:' | ||||
|   AnnouncementExample: | ||||
|     color: red | ||||
|     chatcolor: red | ||||
|     mutable: false | ||||
|     filter: false | ||||
|     autojoin: true | ||||
|     default: false | ||||
|     distance: 0 | ||||
|     cooldown: 0 | ||||
|     bungeecord: true | ||||
|     alias: announce | ||||
|     permissions: None | ||||
|     speak_permissions: announcement | ||||
|     format: '&f[&aServer Announcement&f] {vault_prefix} {player_displayname}&c:' | ||||
|   Global: | ||||
|     color: dark_green | ||||
|     chatcolor: dark_green | ||||
|     mutable: true | ||||
|     filter: true | ||||
|     autojoin: true | ||||
|     default: true | ||||
|     distance: 0 | ||||
|     cooldown: 0 | ||||
|     bungeecord: false | ||||
|     alias: g | ||||
|     permissions: None | ||||
|     speak_permissions: None | ||||
|     format: '&f[&2Global&f] {vault_prefix} {player_displayname}&2:' | ||||
|   Staff: | ||||
|     color: green | ||||
|     chatcolor: green | ||||
|     mutable: false | ||||
|     filter: false | ||||
|     autojoin: true | ||||
|     default: false | ||||
|     distance: 0 | ||||
|     cooldown: 0 | ||||
|     bungeecord: false | ||||
|     alias: st | ||||
|     permissions: staffchannel | ||||
|     speak_permissions: None | ||||
|     format: '&f[&aStaff&f] {vault_prefix} {player_displayname}&a:' | ||||
|   Donator: | ||||
|     color: light_purple | ||||
|     chatcolor: light_purple | ||||
|     mutable: true | ||||
|     filter: true | ||||
|     autojoin: true | ||||
|     default: false | ||||
|     distance: 0 | ||||
|     cooldown: 0 | ||||
|     bungeecord: false | ||||
|     alias: d | ||||
|     permissions: donatorchannel | ||||
|     speak_permissions: None | ||||
|     format: '&f[&dDonator&f] {vault_prefix} {player_displayname}&d:' | ||||
|   Help: | ||||
|     color: aqua | ||||
|     chatcolor: aqua | ||||
|     mutable: true | ||||
|     filter: true | ||||
|     autojoin: true | ||||
|     default: false | ||||
|     distance: 0 | ||||
|     cooldown: 0 | ||||
|     bungeecord: false | ||||
|     alias: h | ||||
|     permissions: None | ||||
|     speak_permissions: None | ||||
|     format: '&f[&bHelp&f] {vault_prefix} {player_displayname}&b:' | ||||
|   Trade: | ||||
|     color: dark_aqua | ||||
|     chatcolor: dark_aqua | ||||
|     mutable: true | ||||
|     filter: true | ||||
|     autojoin: true | ||||
|     default: false | ||||
|     distance: 0 | ||||
|     cooldown: 0 | ||||
|     bungeecord: false | ||||
|     alias: t | ||||
|     permissions: None | ||||
|     speak_permissions: None | ||||
|     format: '&f[&3Trade&f] {vault_prefix} {player_displayname}&3:' | ||||
|   Local: | ||||
|     color: yellow | ||||
|     chatcolor: yellow | ||||
|     mutable: true | ||||
|     filter: true | ||||
|     autojoin: true | ||||
|     default: false | ||||
|     distance: 230 | ||||
|     cooldown: 0 | ||||
|     bungeecord: false | ||||
|     alias: l | ||||
|     permissions: None | ||||
|     speak_permissions: None | ||||
|     format: '&f[&eLocal&f] {vault_prefix} {player_displayname}&e:' | ||||
| @ -1,187 +1,187 @@ | ||||
| package mineverse.Aust1n46.chat.utilities; | ||||
| 
 | ||||
| import static mineverse.Aust1n46.chat.utilities.Format.BUKKIT_COLOR_CODE_PREFIX; | ||||
| import static org.junit.Assert.assertEquals; | ||||
| import static org.junit.Assert.assertFalse; | ||||
| import static org.junit.Assert.assertTrue; | ||||
| 
 | ||||
| import java.util.ArrayList; | ||||
| import java.util.List; | ||||
| 
 | ||||
| import org.bukkit.configuration.file.FileConfiguration; | ||||
| import org.junit.After; | ||||
| import org.junit.Before; | ||||
| import org.junit.Test; | ||||
| import org.junit.runner.RunWith; | ||||
| import org.mockito.Mockito; | ||||
| import org.powermock.api.mockito.PowerMockito; | ||||
| import org.powermock.core.classloader.annotations.PrepareForTest; | ||||
| import org.powermock.modules.junit4.PowerMockRunner; | ||||
| 
 | ||||
| import mineverse.Aust1n46.chat.MineverseChat; | ||||
| 
 | ||||
| /** | ||||
|  * Tests {@link Format}. | ||||
|  */ | ||||
| @RunWith(PowerMockRunner.class) | ||||
| @PrepareForTest({ MineverseChat.class }) | ||||
| public class FormatTest { | ||||
| 
 | ||||
| 	private MineverseChat mockPlugin; | ||||
| 	private FileConfiguration mockConfig; | ||||
| 
 | ||||
| 	private List<String> filters; | ||||
| 
 | ||||
| 	@Before | ||||
| 	public void setUp() { | ||||
| 		filters = new ArrayList<String>(); | ||||
| 		filters.add("ass,donut"); | ||||
| 
 | ||||
| 		mockPlugin = Mockito.mock(MineverseChat.class); | ||||
| 		mockConfig = Mockito.mock(FileConfiguration.class); | ||||
| 
 | ||||
| 		PowerMockito.mockStatic(MineverseChat.class); | ||||
| 		PowerMockito.when(MineverseChat.getInstance()).thenReturn(mockPlugin); | ||||
| 		Mockito.when(mockPlugin.getConfig()).thenReturn(mockConfig); | ||||
| 		Mockito.when(mockConfig.getStringList("filters")).thenReturn(filters); | ||||
| 	} | ||||
| 
 | ||||
| 	@After | ||||
| 	public void tearDown() { | ||||
| 		mockPlugin = null; | ||||
| 		mockConfig = null; | ||||
| 		filters = new ArrayList<String>(); | ||||
| 	} | ||||
| 
 | ||||
| 	@Test | ||||
| 	public void testGetLastCodeSingleColor() { | ||||
| 		String input = BUKKIT_COLOR_CODE_PREFIX + "cHello"; | ||||
| 		String expectedResult = BUKKIT_COLOR_CODE_PREFIX + "c"; | ||||
| 
 | ||||
| 		String result = Format.getLastCode(input); | ||||
| 
 | ||||
| 		assertEquals(expectedResult, result); | ||||
| 	} | ||||
| 
 | ||||
| 	@Test | ||||
| 	public void testGetLastCodeColorAfterFormat() { | ||||
| 		String input = BUKKIT_COLOR_CODE_PREFIX + "o" + BUKKIT_COLOR_CODE_PREFIX + "cHello"; | ||||
| 		String expectedResult = BUKKIT_COLOR_CODE_PREFIX + "c"; | ||||
| 
 | ||||
| 		String result = Format.getLastCode(input); | ||||
| 
 | ||||
| 		assertEquals(expectedResult, result); | ||||
| 	} | ||||
| 
 | ||||
| 	@Test | ||||
| 	public void testGetLastCodeColorBeforeFormat() { | ||||
| 		String input = BUKKIT_COLOR_CODE_PREFIX + "c" + BUKKIT_COLOR_CODE_PREFIX + "oHello"; | ||||
| 		String expectedResult = BUKKIT_COLOR_CODE_PREFIX + "c" + BUKKIT_COLOR_CODE_PREFIX + "o"; | ||||
| 
 | ||||
| 		String result = Format.getLastCode(input); | ||||
| 
 | ||||
| 		assertEquals(expectedResult, result); | ||||
| 	} | ||||
| 
 | ||||
| 	@Test | ||||
| 	public void testFilterChat() { | ||||
| 		String test = "I am an ass"; | ||||
| 		String expectedResult = "I am an donut"; | ||||
| 
 | ||||
| 		String result = Format.FilterChat(test); | ||||
| 		assertEquals(expectedResult, result); | ||||
| 	} | ||||
| 
 | ||||
| 	@Test | ||||
| 	public void testIsValidColor() { | ||||
| 		String color = "red"; | ||||
| 
 | ||||
| 		boolean result = Format.isValidColor(color); | ||||
| 		assertTrue(result); | ||||
| 	} | ||||
| 
 | ||||
| 	@Test | ||||
| 	public void testIsInvalidColor() { | ||||
| 		String color = "randomString"; | ||||
| 
 | ||||
| 		boolean result = Format.isValidColor(color); | ||||
| 		assertFalse(result); | ||||
| 	} | ||||
| 
 | ||||
| 	@Test | ||||
| 	public void testIsValidHexColor() { | ||||
| 		String hexColor = "#ff00ff"; | ||||
| 
 | ||||
| 		boolean result = Format.isValidHexColor(hexColor); | ||||
| 		assertTrue(result); | ||||
| 	} | ||||
| 
 | ||||
| 	@Test | ||||
| 	public void testIsInvalidHexColor() { | ||||
| 		String hexColor = "#random"; | ||||
| 
 | ||||
| 		boolean result = Format.isValidHexColor(hexColor); | ||||
| 		assertFalse(result); | ||||
| 	} | ||||
| 
 | ||||
| 	@Test | ||||
| 	public void testConvertHexColorCodeToBukkitColorCode() { | ||||
| 		String hexColor = "#ff00ff"; | ||||
| 		String expectedResult = BUKKIT_COLOR_CODE_PREFIX + "x" + BUKKIT_COLOR_CODE_PREFIX + "f" | ||||
| 				+ BUKKIT_COLOR_CODE_PREFIX + "f" + BUKKIT_COLOR_CODE_PREFIX + "0" + BUKKIT_COLOR_CODE_PREFIX + "0" | ||||
| 				+ BUKKIT_COLOR_CODE_PREFIX + "f" + BUKKIT_COLOR_CODE_PREFIX + "f"; | ||||
| 
 | ||||
| 		String result = Format.convertHexColorCodeToBukkitColorCode(hexColor); | ||||
| 		assertEquals(expectedResult, result); | ||||
| 	} | ||||
| 
 | ||||
| 	@Test | ||||
| 	public void testConvertHexColorCodeStringToBukkitColorCodeString() { | ||||
| 		String input = "#ff00ffHello" + BUKKIT_COLOR_CODE_PREFIX + "cThere#00ff00Austin"; | ||||
| 		String expectedResult = BUKKIT_COLOR_CODE_PREFIX + "x" + BUKKIT_COLOR_CODE_PREFIX + "f" | ||||
| 				+ BUKKIT_COLOR_CODE_PREFIX + "f" + BUKKIT_COLOR_CODE_PREFIX + "0" + BUKKIT_COLOR_CODE_PREFIX + "0" | ||||
| 				+ BUKKIT_COLOR_CODE_PREFIX + "f" + BUKKIT_COLOR_CODE_PREFIX + "fHello" + BUKKIT_COLOR_CODE_PREFIX | ||||
| 				+ "cThere" + BUKKIT_COLOR_CODE_PREFIX + "x" + BUKKIT_COLOR_CODE_PREFIX + "0" + BUKKIT_COLOR_CODE_PREFIX | ||||
| 				+ "0" + BUKKIT_COLOR_CODE_PREFIX + "f" + BUKKIT_COLOR_CODE_PREFIX + "f" + BUKKIT_COLOR_CODE_PREFIX + "0" | ||||
| 				+ BUKKIT_COLOR_CODE_PREFIX + "0Austin"; | ||||
| 
 | ||||
| 		String result = Format.convertHexColorCodeStringToBukkitColorCodeString(input); | ||||
| 		assertEquals(expectedResult, result); | ||||
| 	} | ||||
| 
 | ||||
| 	@Test | ||||
| 	public void testFormatStringLegacyColor_NoColorCode() { | ||||
| 		String input = "Hello There Austin"; | ||||
| 		String expectedResult = "Hello There Austin"; | ||||
| 
 | ||||
| 		String result = Format.FormatStringLegacyColor(input); | ||||
| 		assertEquals(expectedResult, result); | ||||
| 	} | ||||
| 
 | ||||
| 	@Test | ||||
| 	public void testFormatStringLegacyColor_LegacyCodeOnly() { | ||||
| 		String input = "Hello &cThere Austin"; | ||||
| 		String expectedResult = "Hello " + BUKKIT_COLOR_CODE_PREFIX + "cThere Austin"; | ||||
| 
 | ||||
| 		String result = Format.FormatStringLegacyColor(input); | ||||
| 		assertEquals(expectedResult, result); | ||||
| 	} | ||||
| 
 | ||||
| 	@Test | ||||
| 	public void testFormatStringLegacyColor_SpigotHexCodeOnly() { | ||||
| 		String input = "&x&f&f&f&f&f&fHello There Austin"; | ||||
| 		String expectedResult = "&x&f&f&f&f&f&fHello There Austin"; | ||||
| 
 | ||||
| 		String result = Format.FormatStringLegacyColor(input); | ||||
| 		assertEquals(expectedResult, result); | ||||
| 	} | ||||
| 
 | ||||
| 	@Test | ||||
| 	public void testFormatStringLegacyColor_BothColorCodes() { | ||||
| 		String input = "&x&f&f&f&f&f&f&cHello There Austin"; | ||||
| 		String expectedResult = "&x&f&f&f&f&f&f" + BUKKIT_COLOR_CODE_PREFIX + "cHello There Austin"; | ||||
| 
 | ||||
| 		String result = Format.FormatStringLegacyColor(input); | ||||
| 		assertEquals(expectedResult, result); | ||||
| 	} | ||||
| } | ||||
| package mineverse.Aust1n46.chat.utilities; | ||||
| 
 | ||||
| import static mineverse.Aust1n46.chat.utilities.Format.BUKKIT_COLOR_CODE_PREFIX; | ||||
| import static org.junit.Assert.assertEquals; | ||||
| import static org.junit.Assert.assertFalse; | ||||
| import static org.junit.Assert.assertTrue; | ||||
| 
 | ||||
| import java.util.ArrayList; | ||||
| import java.util.List; | ||||
| 
 | ||||
| import org.bukkit.configuration.file.FileConfiguration; | ||||
| import org.junit.After; | ||||
| import org.junit.Before; | ||||
| import org.junit.Test; | ||||
| import org.junit.runner.RunWith; | ||||
| import org.mockito.Mockito; | ||||
| import org.powermock.api.mockito.PowerMockito; | ||||
| import org.powermock.core.classloader.annotations.PrepareForTest; | ||||
| import org.powermock.modules.junit4.PowerMockRunner; | ||||
| 
 | ||||
| import mineverse.Aust1n46.chat.MineverseChat; | ||||
| 
 | ||||
| /** | ||||
|  * Tests {@link Format}. | ||||
|  */ | ||||
| @RunWith(PowerMockRunner.class) | ||||
| @PrepareForTest({ MineverseChat.class }) | ||||
| public class FormatTest { | ||||
| 
 | ||||
| 	private MineverseChat mockPlugin; | ||||
| 	private FileConfiguration mockConfig; | ||||
| 
 | ||||
| 	private List<String> filters; | ||||
| 
 | ||||
| 	@Before | ||||
| 	public void setUp() { | ||||
| 		filters = new ArrayList<String>(); | ||||
| 		filters.add("ass,donut"); | ||||
| 
 | ||||
| 		mockPlugin = Mockito.mock(MineverseChat.class); | ||||
| 		mockConfig = Mockito.mock(FileConfiguration.class); | ||||
| 
 | ||||
| 		PowerMockito.mockStatic(MineverseChat.class); | ||||
| 		PowerMockito.when(MineverseChat.getInstance()).thenReturn(mockPlugin); | ||||
| 		Mockito.when(mockPlugin.getConfig()).thenReturn(mockConfig); | ||||
| 		Mockito.when(mockConfig.getStringList("filters")).thenReturn(filters); | ||||
| 	} | ||||
| 
 | ||||
| 	@After | ||||
| 	public void tearDown() { | ||||
| 		mockPlugin = null; | ||||
| 		mockConfig = null; | ||||
| 		filters = new ArrayList<String>(); | ||||
| 	} | ||||
| 
 | ||||
| 	@Test | ||||
| 	public void testGetLastCodeSingleColor() { | ||||
| 		String input = BUKKIT_COLOR_CODE_PREFIX + "cHello"; | ||||
| 		String expectedResult = BUKKIT_COLOR_CODE_PREFIX + "c"; | ||||
| 
 | ||||
| 		String result = Format.getLastCode(input); | ||||
| 
 | ||||
| 		assertEquals(expectedResult, result); | ||||
| 	} | ||||
| 
 | ||||
| 	@Test | ||||
| 	public void testGetLastCodeColorAfterFormat() { | ||||
| 		String input = BUKKIT_COLOR_CODE_PREFIX + "o" + BUKKIT_COLOR_CODE_PREFIX + "cHello"; | ||||
| 		String expectedResult = BUKKIT_COLOR_CODE_PREFIX + "c"; | ||||
| 
 | ||||
| 		String result = Format.getLastCode(input); | ||||
| 
 | ||||
| 		assertEquals(expectedResult, result); | ||||
| 	} | ||||
| 
 | ||||
| 	@Test | ||||
| 	public void testGetLastCodeColorBeforeFormat() { | ||||
| 		String input = BUKKIT_COLOR_CODE_PREFIX + "c" + BUKKIT_COLOR_CODE_PREFIX + "oHello"; | ||||
| 		String expectedResult = BUKKIT_COLOR_CODE_PREFIX + "c" + BUKKIT_COLOR_CODE_PREFIX + "o"; | ||||
| 
 | ||||
| 		String result = Format.getLastCode(input); | ||||
| 
 | ||||
| 		assertEquals(expectedResult, result); | ||||
| 	} | ||||
| 
 | ||||
| 	@Test | ||||
| 	public void testFilterChat() { | ||||
| 		String test = "I am an ass"; | ||||
| 		String expectedResult = "I am an donut"; | ||||
| 
 | ||||
| 		String result = Format.FilterChat(test); | ||||
| 		assertEquals(expectedResult, result); | ||||
| 	} | ||||
| 
 | ||||
| 	@Test | ||||
| 	public void testIsValidColor() { | ||||
| 		String color = "red"; | ||||
| 
 | ||||
| 		boolean result = Format.isValidColor(color); | ||||
| 		assertTrue(result); | ||||
| 	} | ||||
| 
 | ||||
| 	@Test | ||||
| 	public void testIsInvalidColor() { | ||||
| 		String color = "randomString"; | ||||
| 
 | ||||
| 		boolean result = Format.isValidColor(color); | ||||
| 		assertFalse(result); | ||||
| 	} | ||||
| 
 | ||||
| 	@Test | ||||
| 	public void testIsValidHexColor() { | ||||
| 		String hexColor = "#ff00ff"; | ||||
| 
 | ||||
| 		boolean result = Format.isValidHexColor(hexColor); | ||||
| 		assertTrue(result); | ||||
| 	} | ||||
| 
 | ||||
| 	@Test | ||||
| 	public void testIsInvalidHexColor() { | ||||
| 		String hexColor = "#random"; | ||||
| 
 | ||||
| 		boolean result = Format.isValidHexColor(hexColor); | ||||
| 		assertFalse(result); | ||||
| 	} | ||||
| 
 | ||||
| 	@Test | ||||
| 	public void testConvertHexColorCodeToBukkitColorCode() { | ||||
| 		String hexColor = "#ff00ff"; | ||||
| 		String expectedResult = BUKKIT_COLOR_CODE_PREFIX + "x" + BUKKIT_COLOR_CODE_PREFIX + "f" | ||||
| 				+ BUKKIT_COLOR_CODE_PREFIX + "f" + BUKKIT_COLOR_CODE_PREFIX + "0" + BUKKIT_COLOR_CODE_PREFIX + "0" | ||||
| 				+ BUKKIT_COLOR_CODE_PREFIX + "f" + BUKKIT_COLOR_CODE_PREFIX + "f"; | ||||
| 
 | ||||
| 		String result = Format.convertHexColorCodeToBukkitColorCode(hexColor); | ||||
| 		assertEquals(expectedResult, result); | ||||
| 	} | ||||
| 
 | ||||
| 	@Test | ||||
| 	public void testConvertHexColorCodeStringToBukkitColorCodeString() { | ||||
| 		String input = "#ff00ffHello" + BUKKIT_COLOR_CODE_PREFIX + "cThere#00ff00Austin"; | ||||
| 		String expectedResult = BUKKIT_COLOR_CODE_PREFIX + "x" + BUKKIT_COLOR_CODE_PREFIX + "f" | ||||
| 				+ BUKKIT_COLOR_CODE_PREFIX + "f" + BUKKIT_COLOR_CODE_PREFIX + "0" + BUKKIT_COLOR_CODE_PREFIX + "0" | ||||
| 				+ BUKKIT_COLOR_CODE_PREFIX + "f" + BUKKIT_COLOR_CODE_PREFIX + "fHello" + BUKKIT_COLOR_CODE_PREFIX | ||||
| 				+ "cThere" + BUKKIT_COLOR_CODE_PREFIX + "x" + BUKKIT_COLOR_CODE_PREFIX + "0" + BUKKIT_COLOR_CODE_PREFIX | ||||
| 				+ "0" + BUKKIT_COLOR_CODE_PREFIX + "f" + BUKKIT_COLOR_CODE_PREFIX + "f" + BUKKIT_COLOR_CODE_PREFIX + "0" | ||||
| 				+ BUKKIT_COLOR_CODE_PREFIX + "0Austin"; | ||||
| 
 | ||||
| 		String result = Format.convertHexColorCodeStringToBukkitColorCodeString(input); | ||||
| 		assertEquals(expectedResult, result); | ||||
| 	} | ||||
| 
 | ||||
| 	@Test | ||||
| 	public void testFormatStringLegacyColor_NoColorCode() { | ||||
| 		String input = "Hello There Austin"; | ||||
| 		String expectedResult = "Hello There Austin"; | ||||
| 
 | ||||
| 		String result = Format.FormatStringLegacyColor(input); | ||||
| 		assertEquals(expectedResult, result); | ||||
| 	} | ||||
| 
 | ||||
| 	@Test | ||||
| 	public void testFormatStringLegacyColor_LegacyCodeOnly() { | ||||
| 		String input = "Hello &cThere Austin"; | ||||
| 		String expectedResult = "Hello " + BUKKIT_COLOR_CODE_PREFIX + "cThere Austin"; | ||||
| 
 | ||||
| 		String result = Format.FormatStringLegacyColor(input); | ||||
| 		assertEquals(expectedResult, result); | ||||
| 	} | ||||
| 
 | ||||
| 	@Test | ||||
| 	public void testFormatStringLegacyColor_SpigotHexCodeOnly() { | ||||
| 		String input = "&x&f&f&f&f&f&fHello There Austin"; | ||||
| 		String expectedResult = "&x&f&f&f&f&f&fHello There Austin"; | ||||
| 
 | ||||
| 		String result = Format.FormatStringLegacyColor(input); | ||||
| 		assertEquals(expectedResult, result); | ||||
| 	} | ||||
| 
 | ||||
| 	@Test | ||||
| 	public void testFormatStringLegacyColor_BothColorCodes() { | ||||
| 		String input = "&x&f&f&f&f&f&f&cHello There Austin"; | ||||
| 		String expectedResult = "&x&f&f&f&f&f&f" + BUKKIT_COLOR_CODE_PREFIX + "cHello There Austin"; | ||||
| 
 | ||||
| 		String result = Format.FormatStringLegacyColor(input); | ||||
| 		assertEquals(expectedResult, result); | ||||
| 	} | ||||
| } | ||||
|  | ||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user
	 Aust1n46
						Aust1n46