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 }