PexTabChat

A Bukkit-Plugin based around the PermissionEx-Api. The core features are a colored tablist and a chatformat.
git clone git://git.oshgnacknak.de/PexTabChat.git
Log | Files | Refs | README | LICENSE

Main.java (2413B)


      1 package de.oshgnacknak.PexTabChat;
      2 
      3 import java.io.IOException;
      4 
      5 import org.bukkit.command.Command;
      6 import org.bukkit.command.CommandSender;
      7 import org.bukkit.configuration.InvalidConfigurationException;
      8 import org.bukkit.entity.Player;
      9 import org.bukkit.plugin.java.JavaPlugin;
     10 
     11 import net.md_5.bungee.api.ChatColor;
     12 import ru.tehkode.permissions.PermissionUser;
     13 import ru.tehkode.permissions.bukkit.PermissionsEx;
     14 
     15 public class Main extends JavaPlugin {
     16 
     17 	static private Main plugin;
     18 
     19 	@Override
     20 	public void onEnable() {
     21 		if (!getServer().getPluginManager().isPluginEnabled("PermissionsEx")) {
     22 			System.err.println("PexTabChat: PermissionsEx not enabled, disabling.");
     23 			getServer().getPluginManager().disablePlugin(this);
     24 		}
     25 		
     26 		plugin = this;
     27 
     28 		getServer().getPluginManager().registerEvents(new EventListener(), this);
     29 
     30 		try {
     31 			Config.global.load();
     32 		} catch (Exception e) {
     33 			System.err.println("PexTabChat: Cannot load config, disabling.");
     34 			e.printStackTrace();
     35 			getServer().getPluginManager().disablePlugin(this);
     36 		}
     37 
     38 		TablistManager.global.update();
     39 	}
     40 
     41 	@Override
     42 	public boolean onCommand(CommandSender sender, Command command, String label, String[] args) {
     43 		if (command.getName().equalsIgnoreCase("pextabchatreload")) {
     44 			try {
     45 				reloadConfig();
     46 				Config.global.load();
     47 				sender.sendMessage(ChatColor.GREEN + "PexTabChat: reloaded.");
     48 			} catch (IOException | InvalidConfigurationException e) {
     49 				sender.sendMessage(ChatColor.RED + "PexTabChat: Cannot load config.");
     50 				e.printStackTrace();
     51 			}
     52 
     53 			TablistManager.global.update();
     54 		}
     55 		return true;
     56 	}
     57 
     58 	@Override
     59 	public void onDisable() {
     60 		plugin = null;
     61 	}
     62 
     63 	static Main getPlugin() {
     64 		return plugin;
     65 	}
     66 
     67 	public static String formatMSG(Player p, String format) {
     68 		PermissionUser u = PermissionsEx.getUser(p);
     69 
     70 		format = format.replaceAll("\\{prefix\\}", u.getPrefix());
     71 		format = format.replaceAll("\\{suffix\\}", u.getSuffix());
     72 		format = format.replaceAll("\\{display\\}", p.getDisplayName());
     73 		format = format.replaceAll("\\{name\\}", p.getName());
     74 
     75 		return ChatColor.translateAlternateColorCodes('&', format);
     76 	}
     77 
     78 	public static String formatChat(Player p, String format, String message) {
     79 
     80 		format = formatMSG(p, format);
     81 
     82 		format = format.replaceAll("\\{message\\}",
     83 				p.hasPermission("pextabchat.color") ? ChatColor.translateAlternateColorCodes('&', message) : message);
     84 
     85 		return format;
     86 	}
     87 }