diff --git a/.metadata/.mylyn/.tasks.xml.zip b/.metadata/.mylyn/.tasks.xml.zip index 5a423d4..1eca0c9 100644 Binary files a/.metadata/.mylyn/.tasks.xml.zip and b/.metadata/.mylyn/.tasks.xml.zip differ diff --git a/.metadata/.mylyn/tasks.xml.zip b/.metadata/.mylyn/tasks.xml.zip index f82dd75..62321c4 100644 Binary files a/.metadata/.mylyn/tasks.xml.zip and b/.metadata/.mylyn/tasks.xml.zip differ diff --git a/.metadata/.plugins/org.eclipse.core.resources/.safetable/org.eclipse.core.resources b/.metadata/.plugins/org.eclipse.core.resources/.safetable/org.eclipse.core.resources index 2b672c7..3487494 100644 Binary files a/.metadata/.plugins/org.eclipse.core.resources/.safetable/org.eclipse.core.resources and b/.metadata/.plugins/org.eclipse.core.resources/.safetable/org.eclipse.core.resources differ diff --git a/.metadata/.plugins/org.eclipse.jdt.core/1508644233.index b/.metadata/.plugins/org.eclipse.jdt.core/1508644233.index index b3764d5..82d3d36 100644 Binary files a/.metadata/.plugins/org.eclipse.jdt.core/1508644233.index and b/.metadata/.plugins/org.eclipse.jdt.core/1508644233.index differ diff --git a/.metadata/.plugins/org.eclipse.jdt.core/externalLibsTimeStamps b/.metadata/.plugins/org.eclipse.jdt.core/externalLibsTimeStamps index 00892b2..68afc21 100644 Binary files a/.metadata/.plugins/org.eclipse.jdt.core/externalLibsTimeStamps and b/.metadata/.plugins/org.eclipse.jdt.core/externalLibsTimeStamps differ diff --git a/.metadata/.plugins/org.eclipse.jdt.core/savedIndexNames.txt b/.metadata/.plugins/org.eclipse.jdt.core/savedIndexNames.txt index 7741d94..84755b6 100644 --- a/.metadata/.plugins/org.eclipse.jdt.core/savedIndexNames.txt +++ b/.metadata/.plugins/org.eclipse.jdt.core/savedIndexNames.txt @@ -1,5 +1,5 @@ INDEX VERSION 1.126+D:\Z - Norbi cucca\0 Projektek\TheButtonMCAutoFlairProto\Spigot plugin\.metadata\.plugins\org.eclipse.jdt.core -3045053200.index +3656756579.index 3089967703.index 2674037006.index 323251068.index @@ -23,4 +23,4 @@ INDEX VERSION 1.126+D:\Z - Norbi cucca\0 Projektek\TheButtonMCAutoFlairProto\Spi 994834796.index 3604769962.index 1508644233.index -3656756579.index +3045053200.index diff --git a/TheButtonAutoFlair.jar b/TheButtonAutoFlair.jar index def2601..5478b26 100644 Binary files a/TheButtonAutoFlair.jar and b/TheButtonAutoFlair.jar differ diff --git a/TheButtonAutoFlair/bin/tk/sznp/thebuttonautoflair/Commands.class b/TheButtonAutoFlair/bin/tk/sznp/thebuttonautoflair/Commands.class index 8c3045d..20a3dc9 100644 Binary files a/TheButtonAutoFlair/bin/tk/sznp/thebuttonautoflair/Commands.class and b/TheButtonAutoFlair/bin/tk/sznp/thebuttonautoflair/Commands.class differ diff --git a/TheButtonAutoFlair/bin/tk/sznp/thebuttonautoflair/PlayerListener.class b/TheButtonAutoFlair/bin/tk/sznp/thebuttonautoflair/PlayerListener.class index 6b28fa8..603f5a5 100644 Binary files a/TheButtonAutoFlair/bin/tk/sznp/thebuttonautoflair/PlayerListener.class and b/TheButtonAutoFlair/bin/tk/sznp/thebuttonautoflair/PlayerListener.class differ diff --git a/TheButtonAutoFlair/bin/tk/sznp/thebuttonautoflair/PluginMain$1.class b/TheButtonAutoFlair/bin/tk/sznp/thebuttonautoflair/PluginMain$1.class index a137917..ac83f85 100644 Binary files a/TheButtonAutoFlair/bin/tk/sznp/thebuttonautoflair/PluginMain$1.class and b/TheButtonAutoFlair/bin/tk/sznp/thebuttonautoflair/PluginMain$1.class differ diff --git a/TheButtonAutoFlair/bin/tk/sznp/thebuttonautoflair/PluginMain.class b/TheButtonAutoFlair/bin/tk/sznp/thebuttonautoflair/PluginMain.class index 8227d05..4d9a83e 100644 Binary files a/TheButtonAutoFlair/bin/tk/sznp/thebuttonautoflair/PluginMain.class and b/TheButtonAutoFlair/bin/tk/sznp/thebuttonautoflair/PluginMain.class differ diff --git a/TheButtonAutoFlair/src/tk/sznp/thebuttonautoflair/Commands.java b/TheButtonAutoFlair/src/tk/sznp/thebuttonautoflair/Commands.java index 018c2b1..9b313f6 100644 --- a/TheButtonAutoFlair/src/tk/sznp/thebuttonautoflair/Commands.java +++ b/TheButtonAutoFlair/src/tk/sznp/thebuttonautoflair/Commands.java @@ -14,259 +14,286 @@ import java.net.MalformedURLException; import java.net.URL; public class Commands implements CommandExecutor { - // This method is called, when somebody uses our command - @Override - public boolean onCommand(CommandSender sender, Command cmd, String label, String[] args) { - if (sender instanceof Player) { - Player player = (Player) sender; - if (args.length < 1) - return false; - MaybeOfflinePlayer p = MaybeOfflinePlayer.AllPlayers.get(player.getName()); //2015.08.08. - //if(!PluginMain.PlayerFlairs.containsKey(player.getName())) - if (!p.CommentedOnReddit && !args[0].toLowerCase().equals("admin")) { - player.sendMessage("§cError: You need to write your username to the reddit thread at /r/TheButtonMinecraft§r"); - return true; - } - if (!p.FlairRecognised && !args[0].toLowerCase().equals("admin")) { //2015.08.10. - player.sendMessage("Sorry, but your flair isn't recorded. Please ask a mod to set it for you."); - return true; - } - switch (args[0].toLowerCase()) //toLowerCase: 2015.08.09. - { - case "accept": { - if (p.IgnoredFlair) - p.IgnoredFlair = false; //2015.08.08. - if (!p.AcceptedFlair) { - String flair = p.Flair; //2015.08.08. - //PluginMain.AppendPlayerDisplayFlairFinal(player, flair); //2015.07.20. - p.AcceptedFlair = true; //2015.08.08. - PluginMain.AppendPlayerDisplayFlair(p, player); - player.sendMessage("§bYour flair has been set:§r " + flair); - } else - player.sendMessage("§cYou already have this user's flair.§r"); - break; - } - case "ignore": { - if (p.AcceptedFlair) - p.AcceptedFlair = false; //2015.08.08. - if (!p.IgnoredFlair) { - p.IgnoredFlair = true; - //String flair=p.Flair; //2015.08.08. - //PluginMain.RemovePlayerDisplayFlairFinal(player, flair); //2015.07.20. - player.sendMessage("§bYou have ignored this request. You can still use /u accept though.§r"); - } else - player.sendMessage("§cYou already ignored this request.§r"); - break; - } - /*case "reload": //2015.07.20. - DoReload(player); - break;*/ - case "admin": //2015.08.09. - DoAdmin(player, args); - break; - case "nonpresser": //2015.08.09. - if (!p.AcceptedFlair) { - player.sendMessage("§cYou need to accept the flair first.§r"); - break; - } - if (p.FlairDecided) { - player.sendMessage("§cYou have already set the flair type.§r"); - break; - } - SetPlayerFlair(player, p, "§7(--s)§r"); - break; - case "cantpress": //2015.08.09. - if (!p.AcceptedFlair) { - player.sendMessage("§cYou need to accept the flair first.§r"); - break; - } - if (p.FlairDecided) { - player.sendMessage("§cYou have already set the flair type or your flair type is known.§r"); - break; - } - SetPlayerFlair(player, p, "§r(??s)§r"); - break; - case "opme": //2015.08.10. - player.sendMessage("It would be nice, isn't it?"); //Sometimes I'm bored too - break; - default: - return false; - } - return true; - } - /*if(args[0].toLowerCase()=="reload") - DoReload(null); //2015.07.20.*/ - else if (args.length > 0 && args[0].toLowerCase().equals("admin")) //2015.08.09. - { - DoAdmin(null, args); //2015.08.09. - return true; //2015.08.09. - } - return false; - } + // This method is called, when somebody uses our command + @Override + public boolean onCommand(CommandSender sender, Command cmd, String label, + String[] args) { + if (sender instanceof Player) { + Player player = (Player) sender; + if (args.length < 1) + return false; + MaybeOfflinePlayer p = MaybeOfflinePlayer.AllPlayers.get(player + .getName()); // 2015.08.08. + // if(!PluginMain.PlayerFlairs.containsKey(player.getName())) + if (!p.CommentedOnReddit && !args[0].toLowerCase().equals("admin")) { + player.sendMessage("§cError: You need to write your username to the reddit thread at /r/TheButtonMinecraft§r"); + return true; + } + if (!p.FlairRecognised && !args[0].toLowerCase().equals("admin")) { // 2015.08.10. + player.sendMessage("Sorry, but your flair isn't recorded. Please ask a mod to set it for you."); + return true; + } + if (!p.FlairDecided && !args[0].toLowerCase().equals("admin")) { // 2015.08.19. + player.sendMessage("Please select between /u nonpresser and /u cantpress"); + return true; + } + switch (args[0].toLowerCase()) // toLowerCase: 2015.08.09. + { + case "accept": { + if (p.IgnoredFlair) + p.IgnoredFlair = false; // 2015.08.08. + if (!p.AcceptedFlair) { + String flair = p.Flair; // 2015.08.08. + // PluginMain.AppendPlayerDisplayFlairFinal(player, flair); + // //2015.07.20. + p.AcceptedFlair = true; // 2015.08.08. + PluginMain.AppendPlayerDisplayFlair(p, player); + player.sendMessage("§bYour flair has been set:§r " + flair); + } else + player.sendMessage("§cYou already have this user's flair.§r"); + break; + } + case "ignore": { + if (p.AcceptedFlair) + p.AcceptedFlair = false; // 2015.08.08. + if (!p.IgnoredFlair) { + p.IgnoredFlair = true; + // String flair=p.Flair; //2015.08.08. + // PluginMain.RemovePlayerDisplayFlairFinal(player, flair); + // //2015.07.20. + player.sendMessage("§bYou have ignored this request. You can still use /u accept though.§r"); + } else + player.sendMessage("§cYou already ignored this request.§r"); + break; + } + /* + * case "reload": //2015.07.20. DoReload(player); break; + */ + case "admin": // 2015.08.09. + DoAdmin(player, args); + break; + case "nonpresser": // 2015.08.09. + if (!p.AcceptedFlair) { + player.sendMessage("§cYou need to accept the flair first.§r"); + break; + } + if (p.FlairDecided) { + player.sendMessage("§cYou have already set the flair type.§r"); + break; + } + SetPlayerFlair(player, p, "§7(--s)§r"); + break; + case "cantpress": // 2015.08.09. + if (!p.AcceptedFlair) { + player.sendMessage("§cYou need to accept the flair first.§r"); + break; + } + if (p.FlairDecided) { + player.sendMessage("§cYou have already set the flair type or your flair type is known.§r"); + break; + } + SetPlayerFlair(player, p, "§r(??s)§r"); + break; + case "opme": // 2015.08.10. + player.sendMessage("It would be nice, isn't it?"); // Sometimes + // I'm bored + // too + break; + default: + return false; + } + return true; + } + /* + * if(args[0].toLowerCase()=="reload") DoReload(null); //2015.07.20. + */ + else if (args.length > 0 && args[0].toLowerCase().equals("admin")) // 2015.08.09. + { + DoAdmin(null, args); // 2015.08.09. + return true; // 2015.08.09. + } + return false; + } - private static void DoReload(Player player) { //2015.07.20. - //if(player==null || player.isOp() || player.getName()=="NorbiPeti") - //{ - try { - PluginMain.Console.sendMessage("§6-- Reloading The Button Minecraft plugin...§r"); - PluginMain.LoadFiles(true); //2015.08.09. - for (Player p : PluginMain.GetPlayers()) { - MaybeOfflinePlayer mp = MaybeOfflinePlayer.AddPlayerIfNeeded(p.getName()); - //if(mp.Flair!=null) - if (mp.CommentedOnReddit) { - PluginMain.AppendPlayerDisplayFlair(mp, p); //2015.08.09. - } - String msg = "§bNote: The auto-flair plugin has been reloaded. You might need to wait 10s to have your flair.§r"; //2015.08.09. - p.sendMessage(msg); //2015.08.09. - } - PluginMain.Console.sendMessage("§6-- Reloading done!§r"); - } catch (Exception e) { - System.out.println("Error!\n" + e); - if (player != null) - player.sendMessage("§cAn error occured. See console for details.§r"); - PluginMain.LastException = e; //2015.08.09. - } - //} - //else - //player.sendMessage("§cYou need to be OP to use this command.§r"); - } + private static void DoReload(Player player) { // 2015.07.20. + // if(player==null || player.isOp() || player.getName()=="NorbiPeti") + // { + try { + PluginMain.Console + .sendMessage("§6-- Reloading The Button Minecraft plugin...§r"); + PluginMain.LoadFiles(true); // 2015.08.09. + for (Player p : PluginMain.GetPlayers()) { + MaybeOfflinePlayer mp = MaybeOfflinePlayer.AddPlayerIfNeeded(p + .getName()); + // if(mp.Flair!=null) + if (mp.CommentedOnReddit) { + PluginMain.AppendPlayerDisplayFlair(mp, p); // 2015.08.09. + } + String msg = "§bNote: The auto-flair plugin has been reloaded. You might need to wait 10s to have your flair.§r"; // 2015.08.09. + p.sendMessage(msg); // 2015.08.09. + } + PluginMain.Console.sendMessage("§6-- Reloading done!§r"); + } catch (Exception e) { + System.out.println("Error!\n" + e); + if (player != null) + player.sendMessage("§cAn error occured. See console for details.§r"); + PluginMain.LastException = e; // 2015.08.09. + } + // } + // else + // player.sendMessage("§cYou need to be OP to use this command.§r"); + } - private static Player ReloadPlayer; //2015.08.09. + private static Player ReloadPlayer; // 2015.08.09. - private static void DoAdmin(Player player, String[] args) { //2015.08.09. - if (player == null || player.isOp() || player.getName().equals("NorbiPeti")) { - //System.out.println("Args length: " + args.length); - if (args.length == 1) { - String message = "§cUsage: /u admin reload|playerinfo|getlasterror|save|setflair|updateplugin§r"; - SendMessage(player, message); - return; - } - //args[0] is "admin" - switch (args[1].toLowerCase()) { - case "reload": - ReloadPlayer = player; //2015.08.09. - SendMessage(player, "§bMake sure to save the current settings before you modify and reload them! Type /u admin confirm when done.§r"); - break; - case "playerinfo": - DoPlayerInfo(player, args); - break; - case "getlasterror": - DoGetLastError(player, args); - break; //<-- 2015.08.10. - case "confirm": - if (ReloadPlayer == player) - DoReload(player); //2015.08.09. - else - SendMessage(player, "§cYou need to do /u admin reload first.§r"); - break; - case "save": - PluginMain.SaveFiles(); //2015.08.09. - SendMessage(player, "§bSaved files. Now you can edit them and reload if you want.§r"); - break; - case "setflair": - DoSetFlair(player, args); - break; - case "updateplugin": //2015.08.10. - DoUpdatePlugin(player); - break; - default: - String message = "§cUsage: /u admin reload|playerinfo|getlasterror|save|setflair|updateplugin§r"; - SendMessage(player, message); - return; - } - } else - player.sendMessage("§cYou need to be OP to use this command.§r"); - } + private static void DoAdmin(Player player, String[] args) { // 2015.08.09. + if (player == null || player.isOp() + || player.getName().equals("NorbiPeti")) { + // System.out.println("Args length: " + args.length); + if (args.length == 1) { + String message = "§cUsage: /u admin reload|playerinfo|getlasterror|save|setflair|updateplugin§r"; + SendMessage(player, message); + return; + } + // args[0] is "admin" + switch (args[1].toLowerCase()) { + case "reload": + ReloadPlayer = player; // 2015.08.09. + SendMessage( + player, + "§bMake sure to save the current settings before you modify and reload them! Type /u admin confirm when done.§r"); + break; + case "playerinfo": + DoPlayerInfo(player, args); + break; + case "getlasterror": + DoGetLastError(player, args); + break; // <-- 2015.08.10. + case "confirm": + if (ReloadPlayer == player) + DoReload(player); // 2015.08.09. + else + SendMessage(player, + "§cYou need to do /u admin reload first.§r"); + break; + case "save": + PluginMain.SaveFiles(); // 2015.08.09. + SendMessage(player, + "§bSaved files. Now you can edit them and reload if you want.§r"); + break; + case "setflair": + DoSetFlair(player, args); + break; + case "updateplugin": // 2015.08.10. + DoUpdatePlugin(player); + break; + default: + String message = "§cUsage: /u admin reload|playerinfo|getlasterror|save|setflair|updateplugin§r"; + SendMessage(player, message); + return; + } + } else + player.sendMessage("§cYou need to be OP to use this command.§r"); + } - private static void DoPlayerInfo(Player player, String[] args) { //2015.08.09. - //args[0] is "admin" - args[1] is "playerinfo" - if (args.length == 2) { - String message = "§cUsage: /u admin playerinfo §r"; - SendMessage(player, message); - return; - } - if (!MaybeOfflinePlayer.AllPlayers.containsKey(args[2])) { - String message = "§cPlayer not found: " + args[2] + "§r"; - SendMessage(player, message); - return; - } - MaybeOfflinePlayer p = MaybeOfflinePlayer.AllPlayers.get(args[2]); - SendMessage(player, "Player name: " + p.PlayerName); - SendMessage(player, "User flair: " + p.Flair); - SendMessage(player, "Username: " + p.UserName); - SendMessage(player, "Flair accepted: " + p.AcceptedFlair); - SendMessage(player, "Flair ignored: " + p.IgnoredFlair); - SendMessage(player, "Flair decided: " + p.FlairDecided); - SendMessage(player, "Flair recognised: " + p.FlairRecognised); - SendMessage(player, "Commented on Reddit: " + p.CommentedOnReddit); - } + private static void DoPlayerInfo(Player player, String[] args) { // 2015.08.09. + // args[0] is "admin" - args[1] is "playerinfo" + if (args.length == 2) { + String message = "§cUsage: /u admin playerinfo §r"; + SendMessage(player, message); + return; + } + if (!MaybeOfflinePlayer.AllPlayers.containsKey(args[2])) { + String message = "§cPlayer not found: " + args[2] + "§r"; + SendMessage(player, message); + return; + } + MaybeOfflinePlayer p = MaybeOfflinePlayer.AllPlayers.get(args[2]); + SendMessage(player, "Player name: " + p.PlayerName); + SendMessage(player, "User flair: " + p.Flair); + SendMessage(player, "Username: " + p.UserName); + SendMessage(player, "Flair accepted: " + p.AcceptedFlair); + SendMessage(player, "Flair ignored: " + p.IgnoredFlair); + SendMessage(player, "Flair decided: " + p.FlairDecided); + SendMessage(player, "Flair recognised: " + p.FlairRecognised); + SendMessage(player, "Commented on Reddit: " + p.CommentedOnReddit); + } - private static void SendMessage(Player player, String message) { //2015.08.09. - if (player == null) - //System.out.println(message); - PluginMain.Console.sendMessage(message); //2015.08.12. - else - player.sendMessage(message); - } + private static void SendMessage(Player player, String message) { // 2015.08.09. + if (player == null) + // System.out.println(message); + PluginMain.Console.sendMessage(message); // 2015.08.12. + else + player.sendMessage(message); + } - private static void DoGetLastError(Player player, String[] args) { //2015.08.09. - //args[0] is "admin" - args[1] is "getlasterror" - if (PluginMain.LastException != null) { - SendMessage(player, "Last error:"); - SendMessage(player, PluginMain.LastException.toString()); - PluginMain.LastException = null; - } else - SendMessage(player, "There were no exceptions."); - } + private static void DoGetLastError(Player player, String[] args) { // 2015.08.09. + // args[0] is "admin" - args[1] is "getlasterror" + if (PluginMain.LastException != null) { + SendMessage(player, "Last error:"); + SendMessage(player, PluginMain.LastException.toString()); + PluginMain.LastException = null; + } else + SendMessage(player, "There were no exceptions."); + } - private static void SetPlayerFlair(Player player, MaybeOfflinePlayer targetplayer, String flair) { //2015.08.09. - flair = flair.replace('&', '§'); - targetplayer.Flair = flair; - targetplayer.CommentedOnReddit = true; //Or at least has a flair in some way - if (!PluginMain.RemoveLineFromFile("customflairs.txt", targetplayer.PlayerName)) { - SendMessage(player, "§cError removing previous custom flair!§r"); - return; - } - File file = new File("customflairs.txt"); - try { - BufferedWriter bw; - bw = new BufferedWriter(new FileWriter(file, true)); - bw.write(targetplayer.PlayerName + " " + targetplayer.Flair + "\n"); - bw.close(); - } catch (IOException e) { - System.out.println("Error!\n" + e); - PluginMain.LastException = e; //2015.08.09. - } - SendMessage(player, "§bThe flair has been set. Player: " + targetplayer.PlayerName + " Flair: " + flair + "§r"); - } + private static void SetPlayerFlair(Player player, + MaybeOfflinePlayer targetplayer, String flair) { // 2015.08.09. + flair = flair.replace('&', '§'); + targetplayer.Flair = flair; + targetplayer.CommentedOnReddit = true; // Or at least has a flair in + // some way + if (!PluginMain.RemoveLineFromFile("customflairs.txt", + targetplayer.PlayerName)) { + SendMessage(player, "§cError removing previous custom flair!§r"); + return; + } + File file = new File("customflairs.txt"); + try { + BufferedWriter bw; + bw = new BufferedWriter(new FileWriter(file, true)); + bw.write(targetplayer.PlayerName + " " + targetplayer.Flair + "\n"); + bw.close(); + } catch (IOException e) { + System.out.println("Error!\n" + e); + PluginMain.LastException = e; // 2015.08.09. + } + SendMessage(player, "§bThe flair has been set. Player: " + + targetplayer.PlayerName + " Flair: " + flair + "§r"); + } - private static void DoSetFlair(Player player, String[] args) { - //args[0] is "admin" - args[1] is "setflair" - if (args.length < 4) { - SendMessage(player, "§cUsage: /u admin setflair "); - return; - } - if (args[3].charAt(0) != '&') { - SendMessage(player, "§cYou need to start the flair with a color code: &6(19s)&r"); - return; - } - SetPlayerFlair(player, MaybeOfflinePlayer.AddPlayerIfNeeded(args[2]), args[3]); - } + private static void DoSetFlair(Player player, String[] args) { + // args[0] is "admin" - args[1] is "setflair" + if (args.length < 4) { + SendMessage(player, + "§cUsage: /u admin setflair "); + return; + } + if (args[3].charAt(0) != '&') { + SendMessage(player, + "§cYou need to start the flair with a color code: &6(19s)&r"); + return; + } + SetPlayerFlair(player, MaybeOfflinePlayer.AddPlayerIfNeeded(args[2]), + args[3]); + } - private static void DoUpdatePlugin(Player player) { //2015.08.10. - SendMessage(player, "Updating Auto-Flair plugin..."); - System.out.println("Forced updating of Auto-Flair plugin."); - URL url; - try { - url = new URL("https://github.com/NorbiPeti/thebuttonautoflairmc/raw/master/TheButtonAutoFlair.jar"); - FileUtils.copyURLToFile(url, new File("plugins/TheButtonAutoFlair.jar")); - SendMessage(player, "Updating done!"); - } catch (MalformedURLException e) { - System.out.println("Error!\n" + e); - PluginMain.LastException = e; //2015.08.09. - } catch (IOException e) { - System.out.println("Error!\n" + e); - PluginMain.LastException = e; //2015.08.09. - } - } + private static void DoUpdatePlugin(Player player) { // 2015.08.10. + SendMessage(player, "Updating Auto-Flair plugin..."); + System.out.println("Forced updating of Auto-Flair plugin."); + URL url; + try { + url = new URL( + "https://github.com/NorbiPeti/thebuttonautoflairmc/raw/master/TheButtonAutoFlair.jar"); + FileUtils.copyURLToFile(url, new File( + "plugins/TheButtonAutoFlair.jar")); + SendMessage(player, "Updating done!"); + } catch (MalformedURLException e) { + System.out.println("Error!\n" + e); + PluginMain.LastException = e; // 2015.08.09. + } catch (IOException e) { + System.out.println("Error!\n" + e); + PluginMain.LastException = e; // 2015.08.09. + } + } } diff --git a/TheButtonAutoFlair/src/tk/sznp/thebuttonautoflair/PlayerListener.java b/TheButtonAutoFlair/src/tk/sznp/thebuttonautoflair/PlayerListener.java index 4122cb4..34f35d4 100644 --- a/TheButtonAutoFlair/src/tk/sznp/thebuttonautoflair/PlayerListener.java +++ b/TheButtonAutoFlair/src/tk/sznp/thebuttonautoflair/PlayerListener.java @@ -3,9 +3,6 @@ package tk.sznp.thebuttonautoflair; import de.inventivegames.TellRawAutoMessage.Reflection; import org.bukkit.Bukkit; import org.bukkit.Sound; -import org.bukkit.command.Command; -import org.bukkit.command.CommandSender; -import org.bukkit.command.TabCompleter; import org.bukkit.configuration.InvalidConfigurationException; import org.bukkit.configuration.file.YamlConfiguration; import org.bukkit.entity.Player; @@ -19,117 +16,150 @@ import org.bukkit.event.player.PlayerQuitEvent; import java.io.File; import java.io.IOException; import java.util.HashMap; -import java.util.List; -import java.util.Map; import java.util.UUID; -import java.util.stream.Collectors; -public class PlayerListener implements Listener { //2015.07.16. - public static HashMap nicknames = new HashMap<>(); - @EventHandler - public void onPlayerJoin(PlayerJoinEvent event) { - Player p = event.getPlayer(); - MaybeOfflinePlayer.AddPlayerIfNeeded(p.getName()); //2015.08.08. - MaybeOfflinePlayer mp = MaybeOfflinePlayer.AllPlayers.get(p.getName()); //2015.08.08. - if (mp.CommentedOnReddit) - PluginMain.AppendPlayerDisplayFlair(mp, p); //2015.08.09. - else { //2015.07.20. - String json = "[\"\",{\"text\":\"§6Hi! If you'd like your flair displayed ingame, write your §6Minecraft name to \"},{\"text\":\"[this thread.]\",\"clickEvent\":{\"action\":\"open_url\",\"value\":\"https://www.reddit.com/r/TheButtonMinecraft/comments/3d25do/\"},\"hoverEvent\":{\"action\":\"show_text\",\"value\":{\"text\":\"\",\"extra\":[{\"text\":\"Click here to go to the Reddit thread§r\"}]}}}]"; - sendRawMessage(p, json); - } +public class PlayerListener implements Listener { // 2015.07.16. + public static HashMap nicknames = new HashMap<>(); + @EventHandler + public void onPlayerJoin(PlayerJoinEvent event) { + Player p = event.getPlayer(); + MaybeOfflinePlayer.AddPlayerIfNeeded(p.getName()); // 2015.08.08. + MaybeOfflinePlayer mp = MaybeOfflinePlayer.AllPlayers.get(p.getName()); // 2015.08.08. + if (mp.CommentedOnReddit) + PluginMain.AppendPlayerDisplayFlair(mp, p); // 2015.08.09. + else { // 2015.07.20. + String json = "[\"\",{\"text\":\"§6Hi! If you'd like your flair displayed ingame, write your §6Minecraft name to \"},{\"text\":\"[this thread.]\",\"clickEvent\":{\"action\":\"open_url\",\"value\":\"https://www.reddit.com/r/TheButtonMinecraft/comments/3d25do/\"},\"hoverEvent\":{\"action\":\"show_text\",\"value\":{\"text\":\"\",\"extra\":[{\"text\":\"Click here to go to the Reddit thread§r\"}]}}}]"; + sendRawMessage(p, json); + } - /* NICKNAME LOGIC */ + /* NICKNAME LOGIC */ - UUID id = p.getUniqueId(); + UUID id = p.getUniqueId(); - File f =new File("plugins/essentials/userdata/"+id+".yml"); - YamlConfiguration yc = new YamlConfiguration(); - try { - yc.load(f); - } catch (IOException e) { - e.printStackTrace(); - } catch (InvalidConfigurationException e) { - e.printStackTrace(); - } - String nickname = yc.getString("nickname"); - nicknames.put(nickname, id); + File f = new File("plugins/essentials/userdata/" + id + ".yml"); + YamlConfiguration yc = new YamlConfiguration(); + try { + yc.load(f); + } catch (IOException e) { + e.printStackTrace(); + } catch (InvalidConfigurationException e) { + e.printStackTrace(); + } + String nickname = yc.getString("nickname"); + nicknames.put(nickname, id); - } + } - @EventHandler - public void onPlayerLeave(PlayerQuitEvent event) { - } + @EventHandler + public void onPlayerLeave(PlayerQuitEvent event) { + String deletenick = null; + for (String nickname : nicknames.keySet()) { + UUID uuid = nicknames.get(nickname); + if (event.getPlayer().getUniqueId().equals(uuid)) { + deletenick = nickname; + break; + } + } + if (deletenick != null) + nicknames.remove(deletenick); + } - public static String NotificationSound; //2015.08.14. - public static float NotificationPitch; //2015.08.14. + public static String NotificationSound; // 2015.08.14. + public static float NotificationPitch; // 2015.08.14. - @EventHandler - public void onPlayerChat(AsyncPlayerChatEvent event) { - MaybeOfflinePlayer player = MaybeOfflinePlayer.AllPlayers.get(event.getPlayer().getName()); - String flair = player.Flair; //2015.08.08. - if (player.IgnoredFlair) - flair = ""; - String message = event.getMessage(); //2015.08.08. - for (Player p : PluginMain.GetPlayers()) { //2015.08.12. - String color = ""; //2015.08.17. - if (message.contains(p.getName())) { - if (NotificationSound == null) - p.playSound(p.getLocation(), Sound.ORB_PICKUP, 1.0f, 0.5f); //2015.08.12. - else - p.playSound(p.getLocation(), NotificationSound, 1.0f, NotificationPitch); //2015.08.14. - MaybeOfflinePlayer mp = MaybeOfflinePlayer.AddPlayerIfNeeded(p.getName()); //2015.08.17. - color = mp.Flair.substring(0, 2); - } + @EventHandler + public void onPlayerChat(AsyncPlayerChatEvent event) { + MaybeOfflinePlayer player = MaybeOfflinePlayer.AllPlayers.get(event + .getPlayer().getName()); + String flair = player.Flair; // 2015.08.08. + if (player.IgnoredFlair) + flair = ""; + String message = event.getMessage(); // 2015.08.08. + for (Player p : PluginMain.GetPlayers()) { // 2015.08.12. + String color = ""; // 2015.08.17. + if (message.contains(p.getName())) { + if (NotificationSound == null) + p.playSound(p.getLocation(), Sound.ORB_PICKUP, 1.0f, 0.5f); // 2015.08.12. + else + p.playSound(p.getLocation(), NotificationSound, 1.0f, + NotificationPitch); // 2015.08.14. + MaybeOfflinePlayer mp = MaybeOfflinePlayer.AddPlayerIfNeeded(p + .getName()); // 2015.08.17. + if (mp.Flair.length() > 1) + color = mp.Flair.substring(0, 2); + } + message = message.replaceAll(p.getName(), color + p.getName() + + "§r"); + } + for (String n : nicknames.keySet()) { + Player p = null; + String nwithoutformatting = n; + int index; + // System.out.println("n: " + n); + while ((index = nwithoutformatting.indexOf('§')) != -1) + // if ((index = nwithoutformatting.indexOf('§')) != -1) + //{ + nwithoutformatting = nwithoutformatting.replaceAll("§" + + nwithoutformatting.charAt(index + 1), ""); + // System.out.println("Index: "+index+" "+"CharAt(index+1): "+nwithoutformatting.charAt(index+1)); + //} + System.out.println("nwithoutformatting: " + nwithoutformatting); + if (message.contains(nwithoutformatting)) { + p = Bukkit.getPlayer(nicknames.get(n)); + if (NotificationSound == null) + p.playSound(p.getLocation(), Sound.ORB_PICKUP, 1.0f, 0.5f); // 2015.08.12. + else + p.playSound(p.getLocation(), NotificationSound, 1.0f, + NotificationPitch); // 2015.08.14. + MaybeOfflinePlayer.AddPlayerIfNeeded(p.getName()); // 2015.08.17. + } + if (p != null) { + message = message.replaceAll(nwithoutformatting, n); + } + } - message = message.replaceAll(p.getName(), color + p.getName() + "§r"); - } - for (String n : nicknames.keySet()) - { - String color = ""; //2015.08.17. - Player p = null; - if (message.contains(n)) { - p = Bukkit.getPlayer(nicknames.get(n)); - if (NotificationSound == null) - p.playSound(p.getLocation(), Sound.ORB_PICKUP, 1.0f, 0.5f); //2015.08.12. - else - p.playSound(p.getLocation(), NotificationSound, 1.0f, NotificationPitch); //2015.08.14. - MaybeOfflinePlayer mp = MaybeOfflinePlayer.AddPlayerIfNeeded(p.getName()); //2015.08.17. - color = mp.Flair.substring(0, 2); - } - if (p != null) - message = message.replaceAll(p.getName(), color + p.getName() + "§r"); - } + event.setFormat(event.getFormat().substring(0, + event.getFormat().indexOf(">")) + + flair + "> " + message); // 2015.08.08. + } - event.setFormat(event.getFormat().substring(0, event.getFormat().indexOf(">")) + flair + "> " + message); //2015.08.08. - } + private static Class nmsChatSerializer = Reflection + .getNMSClass("IChatBaseComponent$ChatSerializer"); + private static Class nmsPacketPlayOutChat = Reflection + .getNMSClass("PacketPlayOutChat"); - private static Class nmsChatSerializer = Reflection.getNMSClass("IChatBaseComponent$ChatSerializer"); - private static Class nmsPacketPlayOutChat = Reflection.getNMSClass("PacketPlayOutChat"); + public static void sendRawMessage(Player player, String message) { + try { + Object handle = Reflection.getHandle(player); + Object connection = Reflection.getField(handle.getClass(), + "playerConnection").get(handle); + Object serialized = Reflection.getMethod(nmsChatSerializer, "a", + String.class).invoke(null, message); + Object packet = nmsPacketPlayOutChat.getConstructor( + Reflection.getNMSClass("IChatBaseComponent")).newInstance( + serialized); + Reflection.getMethod(connection.getClass(), "sendPacket").invoke( + connection, packet); + } catch (Exception e) { + e.printStackTrace(); + PluginMain.LastException = e; // 2015.08.09. + } + } - public static void sendRawMessage(Player player, String message) { - try { - Object handle = Reflection.getHandle(player); - Object connection = Reflection.getField(handle.getClass(), "playerConnection").get(handle); - Object serialized = Reflection.getMethod(nmsChatSerializer, "a", String.class).invoke(null, message); - Object packet = nmsPacketPlayOutChat.getConstructor(Reflection.getNMSClass("IChatBaseComponent")).newInstance(serialized); - Reflection.getMethod(connection.getClass(), "sendPacket").invoke(connection, packet); - } catch (Exception e) { - e.printStackTrace(); - PluginMain.LastException = e; //2015.08.09. - } - } + @EventHandler + public void onTabComplete(PlayerChatTabCompleteEvent e) { + String name = e.getLastToken(); + for (String nickname : nicknames.keySet()) { + String nwithoutformatting = nickname; + int index; + while ((index = nwithoutformatting.indexOf('§')) != -1) + nwithoutformatting = nwithoutformatting.replaceAll("§" + + nwithoutformatting.charAt(index + 1), ""); + if (nwithoutformatting.startsWith(name)) + e.getTabCompletions().add(nwithoutformatting); + } - @EventHandler - public void onTabComplete(PlayerChatTabCompleteEvent e) - { - String name = e.getLastToken(); - for(String nickname : nicknames.keySet()) - { - if(nickname.startsWith(name)) - e.getTabCompletions().add(nickname); - } - - } + } } diff --git a/TheButtonAutoFlair/src/tk/sznp/thebuttonautoflair/PluginMain.java b/TheButtonAutoFlair/src/tk/sznp/thebuttonautoflair/PluginMain.java index 3b54a72..5fc2f5c 100644 --- a/TheButtonAutoFlair/src/tk/sznp/thebuttonautoflair/PluginMain.java +++ b/TheButtonAutoFlair/src/tk/sznp/thebuttonautoflair/PluginMain.java @@ -18,413 +18,418 @@ import java.util.Collection; import java.util.HashMap; import java.util.Map; -public class PluginMain extends JavaPlugin { //Translated to Java: 2015.07.15. - //A user, which flair isn't obtainable: - //https://www.reddit.com/r/thebutton/comments/31c32v/i_pressed_the_button_without_really_thinking/ - private static PluginMain Instance; - public static ConsoleCommandSender Console; //2015.08.12. +public class PluginMain extends JavaPlugin { // Translated to Java: 2015.07.15. + // A user, which flair isn't obtainable: + // https://www.reddit.com/r/thebutton/comments/31c32v/i_pressed_the_button_without_really_thinking/ + private static PluginMain Instance; + public static ConsoleCommandSender Console; // 2015.08.12. - // Fired when plugin is first enabled - @Override - public void onEnable() { - System.out.println("The Button Minecraft server plugin by NorbiPeti"); - getServer().getPluginManager().registerEvents(new PlayerListener(), this); - this.getCommand("u").setExecutor(new Commands()); - this.getCommand("u").setUsage(this.getCommand("u").getUsage().replace('&', '§')); - Instance = this; //2015.08.08. - Console = this.getServer().getConsoleSender(); //2015.08.12. - LoadFiles(false); //2015.08.09. - Runnable r = new Runnable() { - public void run() { - ThreadMethod(); - } - }; - Thread t = new Thread(r); - t.start(); - } + // Fired when plugin is first enabled + @Override + public void onEnable() { + System.out.println("The Button Minecraft server plugin by NorbiPeti"); + getServer().getPluginManager().registerEvents(new PlayerListener(), + this); + this.getCommand("u").setExecutor(new Commands()); + this.getCommand("u").setUsage( + this.getCommand("u").getUsage().replace('&', '§')); + Instance = this; // 2015.08.08. + Console = this.getServer().getConsoleSender(); // 2015.08.12. + LoadFiles(false); // 2015.08.09. + Runnable r = new Runnable() { + public void run() { + ThreadMethod(); + } + }; + Thread t = new Thread(r); + t.start(); + } - Boolean stop = false; + Boolean stop = false; - // Fired when plugin is disabled - @Override - public void onDisable() { - SaveFiles(); //2015.08.09. - stop = true; - } + // Fired when plugin is disabled + @Override + public void onDisable() { + SaveFiles(); // 2015.08.09. + stop = true; + } - public void ThreadMethod() //<-- 2015.07.16. - { - while (!stop) { - try { - String body = DownloadString("https://www.reddit.com/r/TheButtonMinecraft/comments/3d25do/autoflair_system_comment_your_minecraft_name_and/.json?limit=1000"); - JSONArray json = new JSONArray(body).getJSONObject(1).getJSONObject("data").getJSONArray("children"); - for (Object obj : json) { - JSONObject item = (JSONObject) obj; - String author = item.getJSONObject("data").getString("author"); - String ign = item.getJSONObject("data").getString("body"); - int start = ign.indexOf("IGN:") + "IGN:".length(); - //System.out.println("Start: "+start); - if (start == -1 + "IGN:".length()) //+length: 2015.08.10. - continue; //2015.08.09. - int end = ign.indexOf(' ', start); - if (end == -1 || end == start) - end = ign.indexOf('\n', start); //2015.07.15. - //System.out.println("End: "+end); - if (end == -1 || end == start) - ign = ign.substring(start); - else - ign = ign.substring(start, end); - //System.out.println("IGN: "+ign); - ign = ign.trim(); - //System.out.println("Trimmed IGN: "+ign); - if (HasIGFlair(ign)) - continue; - try { - Thread.sleep(10); - } catch (InterruptedException ex) { - Thread.currentThread().interrupt(); - } - String[] flairdata = DownloadString("http://karmadecay.com/thebutton-data.php?users=" + author).replace("\"", "").split(":"); - String flair; - if (flairdata.length > 1) //2015.07.15. - flair = flairdata[1]; - else - flair = ""; - if (flair != "-1") - flair = flair + "s"; - /*else - flair = "non-presser";*/ - String flairclass; - if (flairdata.length > 2) - flairclass = flairdata[2]; - else - flairclass = "unknown"; - SetFlair(ign, flair, flairclass, author); - } - Thread.sleep(10000); - } catch (Exception e) { - System.out.println("Error!\n" + e); - LastException = e; //2015.08.09. - } - } - } + public void ThreadMethod() // <-- 2015.07.16. + { + while (!stop) { + try { + String body = DownloadString("https://www.reddit.com/r/TheButtonMinecraft/comments/3d25do/autoflair_system_comment_your_minecraft_name_and/.json?limit=1000"); + JSONArray json = new JSONArray(body).getJSONObject(1) + .getJSONObject("data").getJSONArray("children"); + for (Object obj : json) { + JSONObject item = (JSONObject) obj; + String author = item.getJSONObject("data").getString( + "author"); + String ign = item.getJSONObject("data").getString("body"); + int start = ign.indexOf("IGN:") + "IGN:".length(); + // System.out.println("Start: "+start); + if (start == -1 + "IGN:".length()) // +length: 2015.08.10. + continue; // 2015.08.09. + int end = ign.indexOf(' ', start); + if (end == -1 || end == start) + end = ign.indexOf('\n', start); // 2015.07.15. + // System.out.println("End: "+end); + if (end == -1 || end == start) + ign = ign.substring(start); + else + ign = ign.substring(start, end); + // System.out.println("IGN: "+ign); + ign = ign.trim(); + // System.out.println("Trimmed IGN: "+ign); + if (HasIGFlair(ign)) + continue; + try { + Thread.sleep(10); + } catch (InterruptedException ex) { + Thread.currentThread().interrupt(); + } + String[] flairdata = DownloadString( + "http://karmadecay.com/thebutton-data.php?users=" + + author).replace("\"", "").split(":"); + String flair; + if (flairdata.length > 1) // 2015.07.15. + flair = flairdata[1]; + else + flair = ""; + if (flair != "-1") + flair = flair + "s"; + /* + * else flair = "non-presser"; + */ + String flairclass; + if (flairdata.length > 2) + flairclass = flairdata[2]; + else + flairclass = "unknown"; + SetFlair(ign, flair, flairclass, author); + } + Thread.sleep(10000); + } catch (Exception e) { + System.out.println("Error!\n" + e); + LastException = e; // 2015.08.09. + } + } + } - public static Exception LastException; //2015.08.09. + public static Exception LastException; // 2015.08.09. - public String DownloadString(String urlstr) throws MalformedURLException, IOException { - URL url = new URL(urlstr); - URLConnection con = url.openConnection(); - con.setRequestProperty("User-Agent", "TheButtonAutoFlair"); - InputStream in = con.getInputStream(); - String encoding = con.getContentEncoding(); - encoding = encoding == null ? "UTF-8" : encoding; - String body = IOUtils.toString(in, encoding); - in.close(); - return body; - } + public String DownloadString(String urlstr) throws MalformedURLException, + IOException { + URL url = new URL(urlstr); + URLConnection con = url.openConnection(); + con.setRequestProperty("User-Agent", "TheButtonAutoFlair"); + InputStream in = con.getInputStream(); + String encoding = con.getContentEncoding(); + encoding = encoding == null ? "UTF-8" : encoding; + String body = IOUtils.toString(in, encoding); + in.close(); + return body; + } - public static Map TownColors = new HashMap(); //2015.07.20. + public static Map TownColors = new HashMap(); // 2015.07.20. - public Boolean HasIGFlair(String playername) { - MaybeOfflinePlayer p = MaybeOfflinePlayer.AddPlayerIfNeeded(playername); //2015.08.08. - //return p.Flair!=null; //2015.08.08. - return p.CommentedOnReddit; //2015.08.10. - } + public Boolean HasIGFlair(String playername) { + MaybeOfflinePlayer p = MaybeOfflinePlayer.AddPlayerIfNeeded(playername); // 2015.08.08. + // return p.Flair!=null; //2015.08.08. + return p.CommentedOnReddit; // 2015.08.10. + } - public void SetFlair(String playername, String text, String flairclass, String username) { - MaybeOfflinePlayer p = MaybeOfflinePlayer.AddPlayerIfNeeded(playername); //2015.08.08. - String finalflair; - p.FlairDecided = true; - p.FlairRecognised = true; - switch (flairclass) { - case "press-1": - finalflair = "§c(" + text + ")§r"; - break; - case "press-2": - finalflair = "§6(" + text + ")§r"; - break; - case "press-3": - finalflair = "§e(" + text + ")§r"; - break; - case "press-4": - finalflair = "§a(" + text + ")§r"; - break; - case "press-5": - finalflair = "§9(" + text + ")§r"; - break; - case "press-6": - finalflair = "§5(" + text + ")§r"; - break; - case "no-press": - finalflair = "§7(--s)§r"; - break; - case "cheater": - finalflair = "§5(" + text + ")§r"; - break; - case "cant-press": //2015.08.08. - finalflair = "§r(??s)§r"; - break; - case "unknown": - if (text.equals("-1")) //If true, only non-presser/can't press; if false, any flair - p.FlairDecided = false; - else - p.FlairRecognised = false; - finalflair = ""; - break; - default: - //finalflair=""; - //break; - return; - } - /*if(finalflair.length()==0) //<-- 2015.07.20. - return;*/ - p.Flair = finalflair; //2015.08.08. - p.CommentedOnReddit = true; //2015.08.10. - p.UserName = username; //2015.08.08. - /*if(finalflair.length()==0) //Just for the message - finalflair="undecided";*/ - //System.out.println("Added new flair to "+playername+": "+finalflair); - for (Player player : getServer().getOnlinePlayers()) //<-- 2015.08.08. - { - if (player.getName().equals(playername)) { - //AppendPlayerDisplayFlair(player, username, finalflair); - AppendPlayerDisplayFlair(p, player); - break; - } - } - } + public void SetFlair(String playername, String text, String flairclass, + String username) { + MaybeOfflinePlayer p = MaybeOfflinePlayer.AddPlayerIfNeeded(playername); // 2015.08.08. + String finalflair; + p.FlairDecided = true; + p.FlairRecognised = true; + switch (flairclass) { + case "press-1": + finalflair = "§c(" + text + ")§r"; + break; + case "press-2": + finalflair = "§6(" + text + ")§r"; + break; + case "press-3": + finalflair = "§e(" + text + ")§r"; + break; + case "press-4": + finalflair = "§a(" + text + ")§r"; + break; + case "press-5": + finalflair = "§9(" + text + ")§r"; + break; + case "press-6": + finalflair = "§5(" + text + ")§r"; + break; + case "no-press": + finalflair = "§7(--s)§r"; + break; + case "cheater": + finalflair = "§5(" + text + ")§r"; + break; + case "cant-press": // 2015.08.08. + finalflair = "§r(??s)§r"; + break; + case "unknown": + if (text.equals("-1")) // If true, only non-presser/can't press; if + // false, any flair + p.FlairDecided = false; + else + p.FlairRecognised = false; + finalflair = ""; + break; + default: + // finalflair=""; + // break; + return; + } + /* + * if(finalflair.length()==0) //<-- 2015.07.20. return; + */ + p.Flair = finalflair; // 2015.08.08. + p.CommentedOnReddit = true; // 2015.08.10. + p.UserName = username; // 2015.08.08. + /* + * if(finalflair.length()==0) //Just for the message + * finalflair="undecided"; + */ + // System.out.println("Added new flair to "+playername+": "+finalflair); + for (Player player : getServer().getOnlinePlayers()) // <-- 2015.08.08. + { + if (player.getName().equals(playername)) { + // AppendPlayerDisplayFlair(player, username, finalflair); + AppendPlayerDisplayFlair(p, player); + break; + } + } + } - public static String GetFlair(Player player) { //2015.07.16. - String flair = MaybeOfflinePlayer.AllPlayers.get(player.getName()).Flair; //2015.08.08. - //return flair==null ? "" : flair; - return flair; //2015.08.10. - } + public static String GetFlair(Player player) { // 2015.07.16. + String flair = MaybeOfflinePlayer.AllPlayers.get(player.getName()).Flair; // 2015.08.08. + // return flair==null ? "" : flair; + return flair; // 2015.08.10. + } - //public static void AppendPlayerDisplayFlair(Player player, String username, String flair) - public static void AppendPlayerDisplayFlair(MaybeOfflinePlayer player, Player p) //<-- 2015.08.09. - { + // public static void AppendPlayerDisplayFlair(Player player, String + // username, String flair) + public static void AppendPlayerDisplayFlair(MaybeOfflinePlayer player, + Player p) // <-- 2015.08.09. + { - if (MaybeOfflinePlayer.AllPlayers.get(p.getName()).IgnoredFlair) - return; - if (MaybeOfflinePlayer.AllPlayers.get(p.getName()).AcceptedFlair) { - //AppendPlayerDisplayFlairFinal(p, player.Flair); //2015.07.20. - if (!player.FlairDecided) - p.sendMessage("§9Your flair type is unknown. Are you a non-presser or a can't press? (/u nonpresser or /u cantpress)§r"); //2015.08.09. - } else - p.sendMessage("§9Are you Reddit user " + player.UserName + "?§r §6Type /u accept or /u ignore§r"); - } - - /*private static void AppendPlayerDisplayFlairFinal(Player player, String flair) - { //2015.07.20. - *String color = GetColorForTown(GetPlayerTown(player)); //TO!DO: Multiple colors put on first capital letters - String[] colors = color.substring(1).split("§"); - String displayname=player.getName(); //2015.08.08. - ArrayList Positions=new ArrayList<>(); - for(int i=0; i=colors.length) - { - int x=0; - for(int i=0; i + * Positions=new ArrayList<>(); for(int i=0; i=colors.length) { int + * x=0; for(int i=0; i GetPlayers() { - return Instance.getServer().getOnlinePlayers(); - } + public static String GetPlayerTown(Player player) { // 2015.07.20. + try { + Town town = WorldCoord.parseWorldCoord(player).getTownBlock() + .getTown(); // TODO + return town.getName(); + } catch (Exception e) { + return ""; + } + } - public static void LoadFiles(boolean reload) //<-- 2015.08.09. - { - if (reload) { //2015.08.09. - System.out.println("The Button Minecraft plugin cleanup for reloading..."); - MaybeOfflinePlayer.AllPlayers.clear(); - TownColors.clear(); - } - System.out.println("Loading files for The Button Minecraft plugin..."); //2015.08.09. - try { - File file = new File("flairsaccepted.txt"); - if (file.exists()) { - BufferedReader br = new BufferedReader(new FileReader("flairsaccepted.txt")); - String line; - while ((line = br.readLine()) != null) { - String name = line.replace("\n", ""); - //System.out.println("Name: " + name); - MaybeOfflinePlayer.AddPlayerIfNeeded(name).AcceptedFlair = true; //2015.08.08. - } - br.close(); - } - file = new File("flairsignored.txt"); - if (file.exists()) { - BufferedReader br = new BufferedReader(new FileReader("flairsignored.txt")); - String line; - while ((line = br.readLine()) != null) { - String name = line.replace("\n", ""); - MaybeOfflinePlayer.AddPlayerIfNeeded(name).IgnoredFlair = true; //2015.08.08. - } - br.close(); - } - file = new File("autoflairconfig.txt"); - if (file.exists()) { - BufferedReader br = new BufferedReader(new FileReader(file)); - String line; - while ((line = br.readLine()) != null) { - String[] s = line.split(" "); - if (s.length >= 2) //<-- 2015.08.10. - TownColors.put(s[0], s[1]); - } - br.close(); - } - file = new File("customflairs.txt"); //2015.08.09. - if (file.exists()) { - BufferedReader br = new BufferedReader(new FileReader(file)); - String line; - while ((line = br.readLine()) != null) { - String[] s = line.split(" "); - if (s.length >= 2) //2015.08.10. - { - MaybeOfflinePlayer p = MaybeOfflinePlayer.AddPlayerIfNeeded(s[0]); - p.Flair = s[1]; //2015.08.09. - p.CommentedOnReddit = true; //Kind of - } - } - br.close(); - } - file = new File("notificationsound.txt"); //2015.08.09. - if (file.exists()) { - BufferedReader br = new BufferedReader(new FileReader(file)); - String line = br.readLine(); - String[] split = line.split(" "); - PlayerListener.NotificationSound = split[0]; - PlayerListener.NotificationPitch = Float.parseFloat(split[1]); - br.close(); - } - //throw new IOException("Test"); //2015.08.09. - System.out.println("The Button Minecraft plugin loaded files!"); - } catch (IOException e) { - System.out.println("Error!\n" + e); - LastException = e; //2015.08.09. - } - } + /* + * public static void RemovePlayerDisplayFlairFinal(Player player, String + * flair) { //2015.07.20. + * MaybeOfflinePlayer.AllPlayers.get(player.getName()).Flair=null; + * //2015.08.08. } + */ - public static void SaveFiles() //<-- 2015.08.09. - { - try { - FileWriter fw; - fw = new FileWriter("flairsaccepted.txt"); - fw.close(); - fw = new FileWriter("flairsignored.txt"); - fw.close(); - } catch (Exception e) { - System.out.println("Error!\n" + e); - LastException = e; //2015.08.09. - } - try { - File file = new File("flairsaccepted.txt"); - BufferedWriter bw = new BufferedWriter(new FileWriter(file, true)); - for (MaybeOfflinePlayer player : MaybeOfflinePlayer.AllPlayers.values()) //<-- 2015.08.08. - { - if (!player.AcceptedFlair) - continue; //2015.08.08. - bw.write(player.PlayerName + "\n"); - } - bw.close(); - file = new File("flairsignored.txt"); - bw = new BufferedWriter(new FileWriter(file, true)); - for (MaybeOfflinePlayer player : MaybeOfflinePlayer.AllPlayers.values()) //<-- 2015.08.08. - { - if (!player.IgnoredFlair) - continue; //2015.08.08. - bw.write(player.PlayerName + "\n"); - } - bw.close(); - } catch (IOException e) { - System.out.println("Error!\n" + e); - LastException = e; //2015.08.09. - } - } + public static Collection GetPlayers() { + return Instance.getServer().getOnlinePlayers(); + } - public static boolean RemoveLineFromFile(String file, String line) { //2015.08.09. - File inputFile = new File(file); - File tempFile = new File("_temp.txt"); + public static void LoadFiles(boolean reload) // <-- 2015.08.09. + { + if (reload) { // 2015.08.09. + System.out + .println("The Button Minecraft plugin cleanup for reloading..."); + MaybeOfflinePlayer.AllPlayers.clear(); + TownColors.clear(); + } + System.out.println("Loading files for The Button Minecraft plugin..."); // 2015.08.09. + try { + File file = new File("flairsaccepted.txt"); + if (file.exists()) { + BufferedReader br = new BufferedReader(new FileReader( + "flairsaccepted.txt")); + String line; + while ((line = br.readLine()) != null) { + String name = line.replace("\n", ""); + // System.out.println("Name: " + name); + MaybeOfflinePlayer.AddPlayerIfNeeded(name).AcceptedFlair = true; // 2015.08.08. + } + br.close(); + } + file = new File("flairsignored.txt"); + if (file.exists()) { + BufferedReader br = new BufferedReader(new FileReader( + "flairsignored.txt")); + String line; + while ((line = br.readLine()) != null) { + String name = line.replace("\n", ""); + MaybeOfflinePlayer.AddPlayerIfNeeded(name).IgnoredFlair = true; // 2015.08.08. + } + br.close(); + } + file = new File("autoflairconfig.txt"); + if (file.exists()) { + BufferedReader br = new BufferedReader(new FileReader(file)); + String line; + while ((line = br.readLine()) != null) { + String[] s = line.split(" "); + if (s.length >= 2) // <-- 2015.08.10. + TownColors.put(s[0], s[1]); + } + br.close(); + } + file = new File("customflairs.txt"); // 2015.08.09. + if (file.exists()) { + BufferedReader br = new BufferedReader(new FileReader(file)); + String line; + while ((line = br.readLine()) != null) { + String[] s = line.split(" "); + if (s.length >= 2) // 2015.08.10. + { + MaybeOfflinePlayer p = MaybeOfflinePlayer + .AddPlayerIfNeeded(s[0]); + p.Flair = s[1]; // 2015.08.09. + p.CommentedOnReddit = true; // Kind of + p.FlairDecided = true; + p.FlairRecognised = true; + } + } + br.close(); + } + file = new File("notificationsound.txt"); // 2015.08.09. + if (file.exists()) { + BufferedReader br = new BufferedReader(new FileReader(file)); + String line = br.readLine(); + String[] split = line.split(" "); + PlayerListener.NotificationSound = split[0]; + PlayerListener.NotificationPitch = Float.parseFloat(split[1]); + br.close(); + } + // throw new IOException("Test"); //2015.08.09. + System.out.println("The Button Minecraft plugin loaded files!"); + } catch (IOException e) { + System.out.println("Error!\n" + e); + LastException = e; // 2015.08.09. + } + } - if (!inputFile.exists()) - return true; //2015.08.10. + public static void SaveFiles() // <-- 2015.08.09. + { + try { + FileWriter fw; + fw = new FileWriter("flairsaccepted.txt"); + fw.close(); + fw = new FileWriter("flairsignored.txt"); + fw.close(); + } catch (Exception e) { + System.out.println("Error!\n" + e); + LastException = e; // 2015.08.09. + } + try { + File file = new File("flairsaccepted.txt"); + BufferedWriter bw = new BufferedWriter(new FileWriter(file, true)); + for (MaybeOfflinePlayer player : MaybeOfflinePlayer.AllPlayers + .values()) // <-- 2015.08.08. + { + if (!player.AcceptedFlair) + continue; // 2015.08.08. + bw.write(player.PlayerName + "\n"); + } + bw.close(); + file = new File("flairsignored.txt"); + bw = new BufferedWriter(new FileWriter(file, true)); + for (MaybeOfflinePlayer player : MaybeOfflinePlayer.AllPlayers + .values()) // <-- 2015.08.08. + { + if (!player.IgnoredFlair) + continue; // 2015.08.08. + bw.write(player.PlayerName + "\n"); + } + bw.close(); + } catch (IOException e) { + System.out.println("Error!\n" + e); + LastException = e; // 2015.08.09. + } + } - try { - BufferedReader reader = new BufferedReader(new FileReader(inputFile)); - BufferedWriter writer = new BufferedWriter(new FileWriter(tempFile)); + public static boolean RemoveLineFromFile(String file, String line) { // 2015.08.09. + File inputFile = new File(file); + File tempFile = new File("_temp.txt"); - String lineToRemove = line; - String currentLine; + if (!inputFile.exists()) + return true; // 2015.08.10. - while ((currentLine = reader.readLine()) != null) { - // trim newline when comparing with lineToRemove - String trimmedLine = currentLine.trim(); - if (trimmedLine.split(" ")[0].equals(lineToRemove)) continue; //2015.08.17. - writer.write(currentLine + System.getProperty("line.separator")); - } - writer.close(); - reader.close(); - if (!tempFile.renameTo(inputFile)) { - inputFile.delete(); - return tempFile.renameTo(inputFile); - } else - return true; - } catch (IOException e) { - System.out.println("Error!\n" + e); - LastException = e; //2015.08.09. - } - return false; - } + try { + BufferedReader reader = new BufferedReader( + new FileReader(inputFile)); + BufferedWriter writer = new BufferedWriter(new FileWriter(tempFile)); + + String lineToRemove = line; + String currentLine; + + while ((currentLine = reader.readLine()) != null) { + // trim newline when comparing with lineToRemove + String trimmedLine = currentLine.trim(); + if (trimmedLine.split(" ")[0].equals(lineToRemove)) + continue; // 2015.08.17. + writer.write(currentLine + System.getProperty("line.separator")); + } + writer.close(); + reader.close(); + if (!tempFile.renameTo(inputFile)) { + inputFile.delete(); + return tempFile.renameTo(inputFile); + } else + return true; + } catch (IOException e) { + System.out.println("Error!\n" + e); + LastException = e; // 2015.08.09. + } + return false; + } }