package ml.codenoodles.lmve; import java.io.File; import java.io.IOException; import java.util.UUID; import org.bukkit.ChatColor; import org.bukkit.NamespacedKey; import org.bukkit.command.Command; import org.bukkit.command.CommandSender; import org.bukkit.configuration.file.FileConfiguration; import org.bukkit.configuration.file.YamlConfiguration; import org.bukkit.entity.Player; import org.bukkit.event.Listener; import org.bukkit.plugin.java.JavaPlugin; import ml.codenoodles.lmve.modules.CustomRecipes; import ml.codenoodles.lmve.modules.EnragedMobs; import ml.codenoodles.lmve.modules.Hardcore; import ml.codenoodles.lmve.modules.Leaderboard; import ml.codenoodles.lmve.modules.Messages; import ml.codenoodles.lmve.modules.NetherPortal; import ml.codenoodles.lmve.modules.PlayerHeads; import ml.codenoodles.lmve.modules.PlayerList; import ml.codenoodles.lmve.modules.PlayerStatistics; import ml.codenoodles.lmve.modules.PreventMobGriefing; import ml.codenoodles.lmve.modules.SQLHandler; import ml.codenoodles.lmve.modules.SleepVoteSystem; import ml.codenoodles.lmve.modules.StatCounter; import ml.codenoodles.lmve.modules.UUIDReference; import ml.codenoodles.lmve.other.ConsoleColor; import ml.codenoodles.lmve.other.GlobalMute; import ml.codenoodles.lmve.other.RemoveVanillaRecipes; import ml.codenoodles.lmve.other.WelcomeBossBar; import ml.codenoodles.lmve.sounds.ChatNotification; public class Main extends JavaPlugin implements Listener { FileConfiguration cfg = this.getConfig(); NamespacedKey Nkey = new NamespacedKey(this, this.getDescription().getName()); SQLHandler sql = new SQLHandler(); public void onEnable() { this.saveDefaultConfig(); registerEvents(); File PlayerDB = new File(getDataFolder().getAbsoluteFile() + "/" + "Players.db"); if(!PlayerDB.exists()) { sql.createDefaultDatabase(getDataFolder().getAbsolutePath()); } System.out.println(ConsoleColor.BLUE + "[LMVE]Plugin Enabled!" + ConsoleColor.RESET); } public void onDisable() { System.out.println(ConsoleColor.BLUE + "[LMVE]Plugin Disabled!" + ConsoleColor.RESET); } public void registerEvents() { //Modules this.getServer().getPluginManager().registerEvents(new CustomRecipes(this), this); this.getServer().getPluginManager().registerEvents(new PlayerStatistics(this), this); this.getServer().getPluginManager().registerEvents(new StatCounter(this), this); this.getServer().getPluginManager().registerEvents(new Messages(this), this); this.getServer().getPluginManager().registerEvents(new Hardcore(this), this); this.getServer().getPluginManager().registerEvents(new PlayerList(this), this); this.getServer().getPluginManager().registerEvents(new SleepVoteSystem(this), this); this.getServer().getPluginManager().registerEvents(new UUIDReference(this), this); this.getServer().getPluginManager().registerEvents(new EnragedMobs(this), this); this.getServer().getPluginManager().registerEvents(new PreventMobGriefing(this), this); this.getServer().getPluginManager().registerEvents(new PlayerHeads(this), this); //Sounds this.getServer().getPluginManager().registerEvents(new ChatNotification(this), this); //Other Stuff this.getServer().getPluginManager().registerEvents(new NetherPortal(this), this); this.getServer().getPluginManager().registerEvents(new GlobalMute(this), this); this.getServer().getPluginManager().registerEvents(new RemoveVanillaRecipes(this), this); this.getServer().getPluginManager().registerEvents(new WelcomeBossBar(this), this); } //Getter public FileConfiguration getConfigFile() { return cfg; } ////////// RVC = RemoveVanillaRecipes // VARS // ////////// public boolean RVC_magmablock = cfg.getBoolean("RemoveVanillaRecipes.magma-block"); public boolean snd_chatnotify = cfg.getBoolean("Sounds.chat"); ////////////// // Commands // ////////////// public boolean onCommand(CommandSender sender, Command cmd, String commandLabel, String[] args) { if(cmd.getName().equalsIgnoreCase("lmve")) { if(args.length == 0) { sender.sendMessage(ChatColor.GRAY + "================"); sender.sendMessage(ChatColor.GOLD + "" + ChatColor.BOLD + "LMVE MAIN COMMANDS"); sender.sendMessage(ChatColor.RED + "/lmve info" + ChatColor.WHITE + " - Shows the plugin information"); sender.sendMessage(ChatColor.RED + "/lmve stats" + ChatColor.WHITE + " - Shows the Player Stats"); sender.sendMessage(ChatColor.RED + "/lmve leaderboard" + ChatColor.WHITE + " - Shows the Leaderboard Infos"); sender.sendMessage(ChatColor.RED + "/lmve settings" + ChatColor.WHITE + " - Shows the Player Settings"); sender.sendMessage(ChatColor.RED + "/lmve version" + ChatColor.WHITE + " - Shows the plugin version"); sender.sendMessage(ChatColor.GRAY + "================"); return true; } if(args[0].equalsIgnoreCase("info")) { sender.sendMessage(ChatColor.GRAY + "================"); sender.sendMessage(ChatColor.GOLD + "" + ChatColor.BOLD + "LMVE INFO"); sender.sendMessage(ChatColor.YELLOW + "Name: " + ChatColor.RED + "L" + ChatColor.WHITE + "ittle " + ChatColor.RED + "M" + ChatColor.WHITE + "inecraft " + ChatColor.RED + "V" + ChatColor.WHITE + "anilla " + ChatColor.RED + "E" + ChatColor.WHITE + "xtension" ); sender.sendMessage(ChatColor.YELLOW + "Author: " + ChatColor.WHITE + "netbenix"); sender.sendMessage(ChatColor.GRAY + "================"); return true; } if(args[0].equalsIgnoreCase("stats")) { if(args.length == 1) { sender.sendMessage(ChatColor.GRAY + "================"); sender.sendMessage(ChatColor.GOLD + "" + ChatColor.BOLD + "LMVE STATS"); sender.sendMessage(ChatColor.YELLOW + "Usage: " + ChatColor.AQUA + "/lmve stats "); sender.sendMessage(ChatColor.YELLOW + "Sub-Commands:"); sender.sendMessage(ChatColor.RED + "show" + ChatColor.WHITE + " - Shows your Stats"); sender.sendMessage(ChatColor.RED + "show " + ChatColor.WHITE + " - Shows another players Stats"); sender.sendMessage(ChatColor.GRAY + "================"); return true; } if(args[1].equalsIgnoreCase("show")) { if(args.length >= 4) { sender.sendMessage(ChatColor.RED + "Too many Arguments."); return true; } if(args.length == 2) { if(!(sender instanceof Player)) { sender.sendMessage("Please use: /lmve stats show "); return true; } Player p = (Player) sender; PlayerStatistics pStats = new PlayerStatistics(this); UUIDReference uuidRef = new UUIDReference(this); UUID uuid = uuidRef.getUUID(p.getName()); pStats.outputStats(sender, uuid); } if(args.length == 3) { PlayerStatistics pStats = new PlayerStatistics(this); UUIDReference uuidRef = new UUIDReference(this); UUID uuid; if(uuidRef.getUUID(args[2]) == null) { sender.sendMessage(ChatColor.RED + "Player was never on this Server!"); return true; } else { uuid = uuidRef.getUUID(args[2]); } pStats.outputStats(sender, uuid); } return true; } return true; } if(args[0].equalsIgnoreCase("leaderboard")){ if(args.length == 1){ sender.sendMessage(ChatColor.GRAY + "================"); sender.sendMessage(ChatColor.GOLD + "" + ChatColor.BOLD + "LMVE LEADERBOARD INFO"); sender.sendMessage(ChatColor.YELLOW + "Usage : " + ChatColor.AQUA + "/lmve leaderboard "); sender.sendMessage(ChatColor.YELLOW + "Categorys: "); sender.sendMessage(ChatColor.RED + "time-played"); sender.sendMessage(ChatColor.RED + "deaths"); sender.sendMessage(ChatColor.RED + "damage-taken"); return true; } if(args.length > 2){ sender.sendMessage(ChatColor.RED + "Too many Arguments."); return true; } if(args.length == 2){ PlayerList playerList = new PlayerList(this); int totalPlayers = 0; totalPlayers = playerList.getAmount(); Leaderboard lb = new Leaderboard(this); lb.show(sender, totalPlayers, args); } return true; } if(args[0].equalsIgnoreCase("settings")) { if(!(sender instanceof Player)) { sender.sendMessage("Command is only for Players!"); return true; } if(args.length == 1) { Player p = (Player) sender; File playerStat = new File(getDataFolder() + "/Players", p.getUniqueId() + ".yml"); @SuppressWarnings("static-access") FileConfiguration player_stat = new YamlConfiguration().loadConfiguration(playerStat); sender.sendMessage(ChatColor.GRAY + "================"); sender.sendMessage(ChatColor.GOLD + "" + ChatColor.BOLD + "LMVE SETTINGS"); sender.sendMessage(ChatColor.YELLOW + "Usage: " + ChatColor.AQUA + "/lmve settings "); sender.sendMessage(ChatColor.YELLOW + "Your Settings: "); sender.sendMessage(ChatColor.RED+ "ChatNotify: " + ChatColor.WHITE + player_stat.getBoolean(p.getUniqueId() + ".Settings.Sounds.ChatNotify")); sender.sendMessage(ChatColor.GRAY + "================"); return true; } if(args.length > 2) { sender.sendMessage(ChatColor.RED + "Too many Arguments."); return true; } if(args[1].equalsIgnoreCase("ChatNotify")) { Player p = (Player) sender; File PlayerStat = new File(getDataFolder() + "/Players", p.getUniqueId() + ".yml"); @SuppressWarnings("static-access") FileConfiguration player_stat = new YamlConfiguration().loadConfiguration(PlayerStat); if(player_stat.getBoolean(p.getUniqueId() + ".Settings.Sounds.ChatNotify")) { player_stat.set(p.getUniqueId() + ".Settings.Sounds.ChatNotify", false); sender.sendMessage(ChatColor.YELLOW + "Setting now changed to: " + ChatColor.RED + "false"); } else { player_stat.set(p.getUniqueId() + ".Settings.Sounds.ChatNotify", true); sender.sendMessage(ChatColor.YELLOW + "Setting now changed to: " + ChatColor.RED + "true"); } try { player_stat.save(PlayerStat); } catch (IOException e) { // TODO Auto-generated catch block e.printStackTrace(); } } return true; } if(args[0].equalsIgnoreCase("version")) { sender.sendMessage(ChatColor.GRAY + "Current " + ChatColor.GOLD + "" + ChatColor.BOLD + "LMVE" + ChatColor.GRAY + " version running: " + ChatColor.RED + this.getDescription().getVersion()); return true; } return true; } return false; } }