Fixes
- Fixed custom flair loading - Added colored name handling for nicknames - It will now remove nicknames on disconnect (so if the nickname gets changed, a relog will make the changes in name mentioning)
This commit is contained in:
parent
5a048c4486
commit
dc3e494a19
14 changed files with 797 additions and 735 deletions
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
|
@ -1,5 +1,5 @@
|
||||||
INDEX VERSION 1.126+D:\Z - Norbi cucca\0 Projektek\TheButtonMCAutoFlairProto\Spigot plugin\.metadata\.plugins\org.eclipse.jdt.core
|
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
|
3089967703.index
|
||||||
2674037006.index
|
2674037006.index
|
||||||
323251068.index
|
323251068.index
|
||||||
|
@ -23,4 +23,4 @@ INDEX VERSION 1.126+D:\Z - Norbi cucca\0 Projektek\TheButtonMCAutoFlairProto\Spi
|
||||||
994834796.index
|
994834796.index
|
||||||
3604769962.index
|
3604769962.index
|
||||||
1508644233.index
|
1508644233.index
|
||||||
3656756579.index
|
3045053200.index
|
||||||
|
|
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
|
@ -16,30 +16,37 @@ import java.net.URL;
|
||||||
public class Commands implements CommandExecutor {
|
public class Commands implements CommandExecutor {
|
||||||
// This method is called, when somebody uses our command
|
// This method is called, when somebody uses our command
|
||||||
@Override
|
@Override
|
||||||
public boolean onCommand(CommandSender sender, Command cmd, String label, String[] args) {
|
public boolean onCommand(CommandSender sender, Command cmd, String label,
|
||||||
|
String[] args) {
|
||||||
if (sender instanceof Player) {
|
if (sender instanceof Player) {
|
||||||
Player player = (Player) sender;
|
Player player = (Player) sender;
|
||||||
if (args.length < 1)
|
if (args.length < 1)
|
||||||
return false;
|
return false;
|
||||||
MaybeOfflinePlayer p = MaybeOfflinePlayer.AllPlayers.get(player.getName()); //2015.08.08.
|
MaybeOfflinePlayer p = MaybeOfflinePlayer.AllPlayers.get(player
|
||||||
//if(!PluginMain.PlayerFlairs.containsKey(player.getName()))
|
.getName()); // 2015.08.08.
|
||||||
|
// if(!PluginMain.PlayerFlairs.containsKey(player.getName()))
|
||||||
if (!p.CommentedOnReddit && !args[0].toLowerCase().equals("admin")) {
|
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");
|
player.sendMessage("§cError: You need to write your username to the reddit thread at /r/TheButtonMinecraft§r");
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
if (!p.FlairRecognised && !args[0].toLowerCase().equals("admin")) { //2015.08.10.
|
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.");
|
player.sendMessage("Sorry, but your flair isn't recorded. Please ask a mod to set it for you.");
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
switch (args[0].toLowerCase()) //toLowerCase: 2015.08.09.
|
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": {
|
case "accept": {
|
||||||
if (p.IgnoredFlair)
|
if (p.IgnoredFlair)
|
||||||
p.IgnoredFlair = false; //2015.08.08.
|
p.IgnoredFlair = false; // 2015.08.08.
|
||||||
if (!p.AcceptedFlair) {
|
if (!p.AcceptedFlair) {
|
||||||
String flair = p.Flair; //2015.08.08.
|
String flair = p.Flair; // 2015.08.08.
|
||||||
//PluginMain.AppendPlayerDisplayFlairFinal(player, flair); //2015.07.20.
|
// PluginMain.AppendPlayerDisplayFlairFinal(player, flair);
|
||||||
p.AcceptedFlair = true; //2015.08.08.
|
// //2015.07.20.
|
||||||
|
p.AcceptedFlair = true; // 2015.08.08.
|
||||||
PluginMain.AppendPlayerDisplayFlair(p, player);
|
PluginMain.AppendPlayerDisplayFlair(p, player);
|
||||||
player.sendMessage("§bYour flair has been set:§r " + flair);
|
player.sendMessage("§bYour flair has been set:§r " + flair);
|
||||||
} else
|
} else
|
||||||
|
@ -48,23 +55,24 @@ public class Commands implements CommandExecutor {
|
||||||
}
|
}
|
||||||
case "ignore": {
|
case "ignore": {
|
||||||
if (p.AcceptedFlair)
|
if (p.AcceptedFlair)
|
||||||
p.AcceptedFlair = false; //2015.08.08.
|
p.AcceptedFlair = false; // 2015.08.08.
|
||||||
if (!p.IgnoredFlair) {
|
if (!p.IgnoredFlair) {
|
||||||
p.IgnoredFlair = true;
|
p.IgnoredFlair = true;
|
||||||
//String flair=p.Flair; //2015.08.08.
|
// String flair=p.Flair; //2015.08.08.
|
||||||
//PluginMain.RemovePlayerDisplayFlairFinal(player, flair); //2015.07.20.
|
// PluginMain.RemovePlayerDisplayFlairFinal(player, flair);
|
||||||
|
// //2015.07.20.
|
||||||
player.sendMessage("§bYou have ignored this request. You can still use /u accept though.§r");
|
player.sendMessage("§bYou have ignored this request. You can still use /u accept though.§r");
|
||||||
} else
|
} else
|
||||||
player.sendMessage("§cYou already ignored this request.§r");
|
player.sendMessage("§cYou already ignored this request.§r");
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
/*case "reload": //2015.07.20.
|
/*
|
||||||
DoReload(player);
|
* case "reload": //2015.07.20. DoReload(player); break;
|
||||||
break;*/
|
*/
|
||||||
case "admin": //2015.08.09.
|
case "admin": // 2015.08.09.
|
||||||
DoAdmin(player, args);
|
DoAdmin(player, args);
|
||||||
break;
|
break;
|
||||||
case "nonpresser": //2015.08.09.
|
case "nonpresser": // 2015.08.09.
|
||||||
if (!p.AcceptedFlair) {
|
if (!p.AcceptedFlair) {
|
||||||
player.sendMessage("§cYou need to accept the flair first.§r");
|
player.sendMessage("§cYou need to accept the flair first.§r");
|
||||||
break;
|
break;
|
||||||
|
@ -75,7 +83,7 @@ public class Commands implements CommandExecutor {
|
||||||
}
|
}
|
||||||
SetPlayerFlair(player, p, "§7(--s)§r");
|
SetPlayerFlair(player, p, "§7(--s)§r");
|
||||||
break;
|
break;
|
||||||
case "cantpress": //2015.08.09.
|
case "cantpress": // 2015.08.09.
|
||||||
if (!p.AcceptedFlair) {
|
if (!p.AcceptedFlair) {
|
||||||
player.sendMessage("§cYou need to accept the flair first.§r");
|
player.sendMessage("§cYou need to accept the flair first.§r");
|
||||||
break;
|
break;
|
||||||
|
@ -86,87 +94,97 @@ public class Commands implements CommandExecutor {
|
||||||
}
|
}
|
||||||
SetPlayerFlair(player, p, "§r(??s)§r");
|
SetPlayerFlair(player, p, "§r(??s)§r");
|
||||||
break;
|
break;
|
||||||
case "opme": //2015.08.10.
|
case "opme": // 2015.08.10.
|
||||||
player.sendMessage("It would be nice, isn't it?"); //Sometimes I'm bored too
|
player.sendMessage("It would be nice, isn't it?"); // Sometimes
|
||||||
|
// I'm bored
|
||||||
|
// too
|
||||||
break;
|
break;
|
||||||
default:
|
default:
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
/*if(args[0].toLowerCase()=="reload")
|
/*
|
||||||
DoReload(null); //2015.07.20.*/
|
* if(args[0].toLowerCase()=="reload") DoReload(null); //2015.07.20.
|
||||||
else if (args.length > 0 && args[0].toLowerCase().equals("admin")) //2015.08.09.
|
*/
|
||||||
|
else if (args.length > 0 && args[0].toLowerCase().equals("admin")) // 2015.08.09.
|
||||||
{
|
{
|
||||||
DoAdmin(null, args); //2015.08.09.
|
DoAdmin(null, args); // 2015.08.09.
|
||||||
return true; //2015.08.09.
|
return true; // 2015.08.09.
|
||||||
}
|
}
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
private static void DoReload(Player player) { //2015.07.20.
|
private static void DoReload(Player player) { // 2015.07.20.
|
||||||
//if(player==null || player.isOp() || player.getName()=="NorbiPeti")
|
// if(player==null || player.isOp() || player.getName()=="NorbiPeti")
|
||||||
//{
|
// {
|
||||||
try {
|
try {
|
||||||
PluginMain.Console.sendMessage("§6-- Reloading The Button Minecraft plugin...§r");
|
PluginMain.Console
|
||||||
PluginMain.LoadFiles(true); //2015.08.09.
|
.sendMessage("§6-- Reloading The Button Minecraft plugin...§r");
|
||||||
|
PluginMain.LoadFiles(true); // 2015.08.09.
|
||||||
for (Player p : PluginMain.GetPlayers()) {
|
for (Player p : PluginMain.GetPlayers()) {
|
||||||
MaybeOfflinePlayer mp = MaybeOfflinePlayer.AddPlayerIfNeeded(p.getName());
|
MaybeOfflinePlayer mp = MaybeOfflinePlayer.AddPlayerIfNeeded(p
|
||||||
//if(mp.Flair!=null)
|
.getName());
|
||||||
|
// if(mp.Flair!=null)
|
||||||
if (mp.CommentedOnReddit) {
|
if (mp.CommentedOnReddit) {
|
||||||
PluginMain.AppendPlayerDisplayFlair(mp, p); //2015.08.09.
|
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.
|
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.
|
p.sendMessage(msg); // 2015.08.09.
|
||||||
}
|
}
|
||||||
PluginMain.Console.sendMessage("§6-- Reloading done!§r");
|
PluginMain.Console.sendMessage("§6-- Reloading done!§r");
|
||||||
} catch (Exception e) {
|
} catch (Exception e) {
|
||||||
System.out.println("Error!\n" + e);
|
System.out.println("Error!\n" + e);
|
||||||
if (player != null)
|
if (player != null)
|
||||||
player.sendMessage("§cAn error occured. See console for details.§r");
|
player.sendMessage("§cAn error occured. See console for details.§r");
|
||||||
PluginMain.LastException = e; //2015.08.09.
|
PluginMain.LastException = e; // 2015.08.09.
|
||||||
}
|
}
|
||||||
//}
|
// }
|
||||||
//else
|
// else
|
||||||
//player.sendMessage("§cYou need to be OP to use this command.§r");
|
// 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.
|
private static void DoAdmin(Player player, String[] args) { // 2015.08.09.
|
||||||
if (player == null || player.isOp() || player.getName().equals("NorbiPeti")) {
|
if (player == null || player.isOp()
|
||||||
//System.out.println("Args length: " + args.length);
|
|| player.getName().equals("NorbiPeti")) {
|
||||||
|
// System.out.println("Args length: " + args.length);
|
||||||
if (args.length == 1) {
|
if (args.length == 1) {
|
||||||
String message = "§cUsage: /u admin reload|playerinfo|getlasterror|save|setflair|updateplugin§r";
|
String message = "§cUsage: /u admin reload|playerinfo|getlasterror|save|setflair|updateplugin§r";
|
||||||
SendMessage(player, message);
|
SendMessage(player, message);
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
//args[0] is "admin"
|
// args[0] is "admin"
|
||||||
switch (args[1].toLowerCase()) {
|
switch (args[1].toLowerCase()) {
|
||||||
case "reload":
|
case "reload":
|
||||||
ReloadPlayer = player; //2015.08.09.
|
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");
|
SendMessage(
|
||||||
|
player,
|
||||||
|
"§bMake sure to save the current settings before you modify and reload them! Type /u admin confirm when done.§r");
|
||||||
break;
|
break;
|
||||||
case "playerinfo":
|
case "playerinfo":
|
||||||
DoPlayerInfo(player, args);
|
DoPlayerInfo(player, args);
|
||||||
break;
|
break;
|
||||||
case "getlasterror":
|
case "getlasterror":
|
||||||
DoGetLastError(player, args);
|
DoGetLastError(player, args);
|
||||||
break; //<-- 2015.08.10.
|
break; // <-- 2015.08.10.
|
||||||
case "confirm":
|
case "confirm":
|
||||||
if (ReloadPlayer == player)
|
if (ReloadPlayer == player)
|
||||||
DoReload(player); //2015.08.09.
|
DoReload(player); // 2015.08.09.
|
||||||
else
|
else
|
||||||
SendMessage(player, "§cYou need to do /u admin reload first.§r");
|
SendMessage(player,
|
||||||
|
"§cYou need to do /u admin reload first.§r");
|
||||||
break;
|
break;
|
||||||
case "save":
|
case "save":
|
||||||
PluginMain.SaveFiles(); //2015.08.09.
|
PluginMain.SaveFiles(); // 2015.08.09.
|
||||||
SendMessage(player, "§bSaved files. Now you can edit them and reload if you want.§r");
|
SendMessage(player,
|
||||||
|
"§bSaved files. Now you can edit them and reload if you want.§r");
|
||||||
break;
|
break;
|
||||||
case "setflair":
|
case "setflair":
|
||||||
DoSetFlair(player, args);
|
DoSetFlair(player, args);
|
||||||
break;
|
break;
|
||||||
case "updateplugin": //2015.08.10.
|
case "updateplugin": // 2015.08.10.
|
||||||
DoUpdatePlugin(player);
|
DoUpdatePlugin(player);
|
||||||
break;
|
break;
|
||||||
default:
|
default:
|
||||||
|
@ -178,8 +196,8 @@ public class Commands implements CommandExecutor {
|
||||||
player.sendMessage("§cYou need to be OP to use this command.§r");
|
player.sendMessage("§cYou need to be OP to use this command.§r");
|
||||||
}
|
}
|
||||||
|
|
||||||
private static void DoPlayerInfo(Player player, String[] args) { //2015.08.09.
|
private static void DoPlayerInfo(Player player, String[] args) { // 2015.08.09.
|
||||||
//args[0] is "admin" - args[1] is "playerinfo"
|
// args[0] is "admin" - args[1] is "playerinfo"
|
||||||
if (args.length == 2) {
|
if (args.length == 2) {
|
||||||
String message = "§cUsage: /u admin playerinfo <player>§r";
|
String message = "§cUsage: /u admin playerinfo <player>§r";
|
||||||
SendMessage(player, message);
|
SendMessage(player, message);
|
||||||
|
@ -201,16 +219,16 @@ public class Commands implements CommandExecutor {
|
||||||
SendMessage(player, "Commented on Reddit: " + p.CommentedOnReddit);
|
SendMessage(player, "Commented on Reddit: " + p.CommentedOnReddit);
|
||||||
}
|
}
|
||||||
|
|
||||||
private static void SendMessage(Player player, String message) { //2015.08.09.
|
private static void SendMessage(Player player, String message) { // 2015.08.09.
|
||||||
if (player == null)
|
if (player == null)
|
||||||
//System.out.println(message);
|
// System.out.println(message);
|
||||||
PluginMain.Console.sendMessage(message); //2015.08.12.
|
PluginMain.Console.sendMessage(message); // 2015.08.12.
|
||||||
else
|
else
|
||||||
player.sendMessage(message);
|
player.sendMessage(message);
|
||||||
}
|
}
|
||||||
|
|
||||||
private static void DoGetLastError(Player player, String[] args) { //2015.08.09.
|
private static void DoGetLastError(Player player, String[] args) { // 2015.08.09.
|
||||||
//args[0] is "admin" - args[1] is "getlasterror"
|
// args[0] is "admin" - args[1] is "getlasterror"
|
||||||
if (PluginMain.LastException != null) {
|
if (PluginMain.LastException != null) {
|
||||||
SendMessage(player, "Last error:");
|
SendMessage(player, "Last error:");
|
||||||
SendMessage(player, PluginMain.LastException.toString());
|
SendMessage(player, PluginMain.LastException.toString());
|
||||||
|
@ -219,11 +237,14 @@ public class Commands implements CommandExecutor {
|
||||||
SendMessage(player, "There were no exceptions.");
|
SendMessage(player, "There were no exceptions.");
|
||||||
}
|
}
|
||||||
|
|
||||||
private static void SetPlayerFlair(Player player, MaybeOfflinePlayer targetplayer, String flair) { //2015.08.09.
|
private static void SetPlayerFlair(Player player,
|
||||||
|
MaybeOfflinePlayer targetplayer, String flair) { // 2015.08.09.
|
||||||
flair = flair.replace('&', '§');
|
flair = flair.replace('&', '§');
|
||||||
targetplayer.Flair = flair;
|
targetplayer.Flair = flair;
|
||||||
targetplayer.CommentedOnReddit = true; //Or at least has a flair in some way
|
targetplayer.CommentedOnReddit = true; // Or at least has a flair in
|
||||||
if (!PluginMain.RemoveLineFromFile("customflairs.txt", targetplayer.PlayerName)) {
|
// some way
|
||||||
|
if (!PluginMain.RemoveLineFromFile("customflairs.txt",
|
||||||
|
targetplayer.PlayerName)) {
|
||||||
SendMessage(player, "§cError removing previous custom flair!§r");
|
SendMessage(player, "§cError removing previous custom flair!§r");
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
@ -235,38 +256,44 @@ public class Commands implements CommandExecutor {
|
||||||
bw.close();
|
bw.close();
|
||||||
} catch (IOException e) {
|
} catch (IOException e) {
|
||||||
System.out.println("Error!\n" + e);
|
System.out.println("Error!\n" + e);
|
||||||
PluginMain.LastException = e; //2015.08.09.
|
PluginMain.LastException = e; // 2015.08.09.
|
||||||
}
|
}
|
||||||
SendMessage(player, "§bThe flair has been set. Player: " + targetplayer.PlayerName + " Flair: " + flair + "§r");
|
SendMessage(player, "§bThe flair has been set. Player: "
|
||||||
|
+ targetplayer.PlayerName + " Flair: " + flair + "§r");
|
||||||
}
|
}
|
||||||
|
|
||||||
private static void DoSetFlair(Player player, String[] args) {
|
private static void DoSetFlair(Player player, String[] args) {
|
||||||
//args[0] is "admin" - args[1] is "setflair"
|
// args[0] is "admin" - args[1] is "setflair"
|
||||||
if (args.length < 4) {
|
if (args.length < 4) {
|
||||||
SendMessage(player, "§cUsage: /u admin setflair <playername> <flair>");
|
SendMessage(player,
|
||||||
|
"§cUsage: /u admin setflair <playername> <flair>");
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
if (args[3].charAt(0) != '&') {
|
if (args[3].charAt(0) != '&') {
|
||||||
SendMessage(player, "§cYou need to start the flair with a color code: &6(19s)&r");
|
SendMessage(player,
|
||||||
|
"§cYou need to start the flair with a color code: &6(19s)&r");
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
SetPlayerFlair(player, MaybeOfflinePlayer.AddPlayerIfNeeded(args[2]), args[3]);
|
SetPlayerFlair(player, MaybeOfflinePlayer.AddPlayerIfNeeded(args[2]),
|
||||||
|
args[3]);
|
||||||
}
|
}
|
||||||
|
|
||||||
private static void DoUpdatePlugin(Player player) { //2015.08.10.
|
private static void DoUpdatePlugin(Player player) { // 2015.08.10.
|
||||||
SendMessage(player, "Updating Auto-Flair plugin...");
|
SendMessage(player, "Updating Auto-Flair plugin...");
|
||||||
System.out.println("Forced updating of Auto-Flair plugin.");
|
System.out.println("Forced updating of Auto-Flair plugin.");
|
||||||
URL url;
|
URL url;
|
||||||
try {
|
try {
|
||||||
url = new URL("https://github.com/NorbiPeti/thebuttonautoflairmc/raw/master/TheButtonAutoFlair.jar");
|
url = new URL(
|
||||||
FileUtils.copyURLToFile(url, new File("plugins/TheButtonAutoFlair.jar"));
|
"https://github.com/NorbiPeti/thebuttonautoflairmc/raw/master/TheButtonAutoFlair.jar");
|
||||||
|
FileUtils.copyURLToFile(url, new File(
|
||||||
|
"plugins/TheButtonAutoFlair.jar"));
|
||||||
SendMessage(player, "Updating done!");
|
SendMessage(player, "Updating done!");
|
||||||
} catch (MalformedURLException e) {
|
} catch (MalformedURLException e) {
|
||||||
System.out.println("Error!\n" + e);
|
System.out.println("Error!\n" + e);
|
||||||
PluginMain.LastException = e; //2015.08.09.
|
PluginMain.LastException = e; // 2015.08.09.
|
||||||
} catch (IOException e) {
|
} catch (IOException e) {
|
||||||
System.out.println("Error!\n" + e);
|
System.out.println("Error!\n" + e);
|
||||||
PluginMain.LastException = e; //2015.08.09.
|
PluginMain.LastException = e; // 2015.08.09.
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -3,9 +3,6 @@ package tk.sznp.thebuttonautoflair;
|
||||||
import de.inventivegames.TellRawAutoMessage.Reflection;
|
import de.inventivegames.TellRawAutoMessage.Reflection;
|
||||||
import org.bukkit.Bukkit;
|
import org.bukkit.Bukkit;
|
||||||
import org.bukkit.Sound;
|
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.InvalidConfigurationException;
|
||||||
import org.bukkit.configuration.file.YamlConfiguration;
|
import org.bukkit.configuration.file.YamlConfiguration;
|
||||||
import org.bukkit.entity.Player;
|
import org.bukkit.entity.Player;
|
||||||
|
@ -19,31 +16,28 @@ import org.bukkit.event.player.PlayerQuitEvent;
|
||||||
import java.io.File;
|
import java.io.File;
|
||||||
import java.io.IOException;
|
import java.io.IOException;
|
||||||
import java.util.HashMap;
|
import java.util.HashMap;
|
||||||
import java.util.List;
|
|
||||||
import java.util.Map;
|
|
||||||
import java.util.UUID;
|
import java.util.UUID;
|
||||||
import java.util.stream.Collectors;
|
|
||||||
|
|
||||||
public class PlayerListener implements Listener { //2015.07.16.
|
public class PlayerListener implements Listener { // 2015.07.16.
|
||||||
public static HashMap<String, UUID> nicknames = new HashMap<>();
|
public static HashMap<String, UUID> nicknames = new HashMap<>();
|
||||||
|
|
||||||
@EventHandler
|
@EventHandler
|
||||||
public void onPlayerJoin(PlayerJoinEvent event) {
|
public void onPlayerJoin(PlayerJoinEvent event) {
|
||||||
Player p = event.getPlayer();
|
Player p = event.getPlayer();
|
||||||
MaybeOfflinePlayer.AddPlayerIfNeeded(p.getName()); //2015.08.08.
|
MaybeOfflinePlayer.AddPlayerIfNeeded(p.getName()); // 2015.08.08.
|
||||||
MaybeOfflinePlayer mp = MaybeOfflinePlayer.AllPlayers.get(p.getName()); //2015.08.08.
|
MaybeOfflinePlayer mp = MaybeOfflinePlayer.AllPlayers.get(p.getName()); // 2015.08.08.
|
||||||
if (mp.CommentedOnReddit)
|
if (mp.CommentedOnReddit)
|
||||||
PluginMain.AppendPlayerDisplayFlair(mp, p); //2015.08.09.
|
PluginMain.AppendPlayerDisplayFlair(mp, p); // 2015.08.09.
|
||||||
else { //2015.07.20.
|
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\"}]}}}]";
|
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);
|
sendRawMessage(p, json);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
/* NICKNAME LOGIC */
|
/* NICKNAME LOGIC */
|
||||||
|
|
||||||
UUID id = p.getUniqueId();
|
UUID id = p.getUniqueId();
|
||||||
|
|
||||||
File f =new File("plugins/essentials/userdata/"+id+".yml");
|
File f = new File("plugins/essentials/userdata/" + id + ".yml");
|
||||||
YamlConfiguration yc = new YamlConfiguration();
|
YamlConfiguration yc = new YamlConfiguration();
|
||||||
try {
|
try {
|
||||||
yc.load(f);
|
yc.load(f);
|
||||||
|
@ -59,76 +53,112 @@ public class PlayerListener implements Listener { //2015.07.16.
|
||||||
|
|
||||||
@EventHandler
|
@EventHandler
|
||||||
public void onPlayerLeave(PlayerQuitEvent event) {
|
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 String NotificationSound; // 2015.08.14.
|
||||||
public static float NotificationPitch; //2015.08.14.
|
public static float NotificationPitch; // 2015.08.14.
|
||||||
|
|
||||||
@EventHandler
|
@EventHandler
|
||||||
public void onPlayerChat(AsyncPlayerChatEvent event) {
|
public void onPlayerChat(AsyncPlayerChatEvent event) {
|
||||||
MaybeOfflinePlayer player = MaybeOfflinePlayer.AllPlayers.get(event.getPlayer().getName());
|
MaybeOfflinePlayer player = MaybeOfflinePlayer.AllPlayers.get(event
|
||||||
String flair = player.Flair; //2015.08.08.
|
.getPlayer().getName());
|
||||||
|
String flair = player.Flair; // 2015.08.08.
|
||||||
if (player.IgnoredFlair)
|
if (player.IgnoredFlair)
|
||||||
flair = "";
|
flair = "";
|
||||||
String message = event.getMessage(); //2015.08.08.
|
String message = event.getMessage(); // 2015.08.08.
|
||||||
for (Player p : PluginMain.GetPlayers()) { //2015.08.12.
|
for (Player p : PluginMain.GetPlayers()) { // 2015.08.12.
|
||||||
String color = ""; //2015.08.17.
|
String color = ""; // 2015.08.17.
|
||||||
if (message.contains(p.getName())) {
|
if (message.contains(p.getName())) {
|
||||||
if (NotificationSound == null)
|
if (NotificationSound == null)
|
||||||
p.playSound(p.getLocation(), Sound.ORB_PICKUP, 1.0f, 0.5f); //2015.08.12.
|
p.playSound(p.getLocation(), Sound.ORB_PICKUP, 1.0f, 0.5f); // 2015.08.12.
|
||||||
else
|
else
|
||||||
p.playSound(p.getLocation(), NotificationSound, 1.0f, NotificationPitch); //2015.08.14.
|
p.playSound(p.getLocation(), NotificationSound, 1.0f,
|
||||||
MaybeOfflinePlayer mp = MaybeOfflinePlayer.AddPlayerIfNeeded(p.getName()); //2015.08.17.
|
NotificationPitch); // 2015.08.14.
|
||||||
|
MaybeOfflinePlayer mp = MaybeOfflinePlayer.AddPlayerIfNeeded(p
|
||||||
|
.getName()); // 2015.08.17.
|
||||||
|
if (mp.Flair.length() > 1)
|
||||||
color = mp.Flair.substring(0, 2);
|
color = mp.Flair.substring(0, 2);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
message = message.replaceAll(p.getName(), color + p.getName()
|
||||||
message = message.replaceAll(p.getName(), color + p.getName() + "§r");
|
+ "§r");
|
||||||
}
|
}
|
||||||
for (String n : nicknames.keySet())
|
for (String n : nicknames.keySet()) {
|
||||||
{
|
|
||||||
String color = ""; //2015.08.17.
|
|
||||||
Player p = null;
|
Player p = null;
|
||||||
if (message.contains(n)) {
|
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));
|
p = Bukkit.getPlayer(nicknames.get(n));
|
||||||
if (NotificationSound == null)
|
if (NotificationSound == null)
|
||||||
p.playSound(p.getLocation(), Sound.ORB_PICKUP, 1.0f, 0.5f); //2015.08.12.
|
p.playSound(p.getLocation(), Sound.ORB_PICKUP, 1.0f, 0.5f); // 2015.08.12.
|
||||||
else
|
else
|
||||||
p.playSound(p.getLocation(), NotificationSound, 1.0f, NotificationPitch); //2015.08.14.
|
p.playSound(p.getLocation(), NotificationSound, 1.0f,
|
||||||
MaybeOfflinePlayer mp = MaybeOfflinePlayer.AddPlayerIfNeeded(p.getName()); //2015.08.17.
|
NotificationPitch); // 2015.08.14.
|
||||||
color = mp.Flair.substring(0, 2);
|
MaybeOfflinePlayer.AddPlayerIfNeeded(p.getName()); // 2015.08.17.
|
||||||
|
}
|
||||||
|
if (p != null) {
|
||||||
|
message = message.replaceAll(nwithoutformatting, n);
|
||||||
}
|
}
|
||||||
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<?> nmsChatSerializer = Reflection
|
||||||
private static Class<?> nmsPacketPlayOutChat = Reflection.getNMSClass("PacketPlayOutChat");
|
.getNMSClass("IChatBaseComponent$ChatSerializer");
|
||||||
|
private static Class<?> nmsPacketPlayOutChat = Reflection
|
||||||
|
.getNMSClass("PacketPlayOutChat");
|
||||||
|
|
||||||
public static void sendRawMessage(Player player, String message) {
|
public static void sendRawMessage(Player player, String message) {
|
||||||
try {
|
try {
|
||||||
Object handle = Reflection.getHandle(player);
|
Object handle = Reflection.getHandle(player);
|
||||||
Object connection = Reflection.getField(handle.getClass(), "playerConnection").get(handle);
|
Object connection = Reflection.getField(handle.getClass(),
|
||||||
Object serialized = Reflection.getMethod(nmsChatSerializer, "a", String.class).invoke(null, message);
|
"playerConnection").get(handle);
|
||||||
Object packet = nmsPacketPlayOutChat.getConstructor(Reflection.getNMSClass("IChatBaseComponent")).newInstance(serialized);
|
Object serialized = Reflection.getMethod(nmsChatSerializer, "a",
|
||||||
Reflection.getMethod(connection.getClass(), "sendPacket").invoke(connection, packet);
|
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) {
|
} catch (Exception e) {
|
||||||
e.printStackTrace();
|
e.printStackTrace();
|
||||||
PluginMain.LastException = e; //2015.08.09.
|
PluginMain.LastException = e; // 2015.08.09.
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@EventHandler
|
@EventHandler
|
||||||
public void onTabComplete(PlayerChatTabCompleteEvent e)
|
public void onTabComplete(PlayerChatTabCompleteEvent e) {
|
||||||
{
|
|
||||||
String name = e.getLastToken();
|
String name = e.getLastToken();
|
||||||
for(String nickname : nicknames.keySet())
|
for (String nickname : nicknames.keySet()) {
|
||||||
{
|
String nwithoutformatting = nickname;
|
||||||
if(nickname.startsWith(name))
|
int index;
|
||||||
e.getTabCompletions().add(nickname);
|
while ((index = nwithoutformatting.indexOf('§')) != -1)
|
||||||
|
nwithoutformatting = nwithoutformatting.replaceAll("§"
|
||||||
|
+ nwithoutformatting.charAt(index + 1), "");
|
||||||
|
if (nwithoutformatting.startsWith(name))
|
||||||
|
e.getTabCompletions().add(nwithoutformatting);
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
|
@ -18,22 +18,24 @@ import java.util.Collection;
|
||||||
import java.util.HashMap;
|
import java.util.HashMap;
|
||||||
import java.util.Map;
|
import java.util.Map;
|
||||||
|
|
||||||
public class PluginMain extends JavaPlugin { //Translated to Java: 2015.07.15.
|
public class PluginMain extends JavaPlugin { // Translated to Java: 2015.07.15.
|
||||||
//A user, which flair isn't obtainable:
|
// A user, which flair isn't obtainable:
|
||||||
//https://www.reddit.com/r/thebutton/comments/31c32v/i_pressed_the_button_without_really_thinking/
|
// https://www.reddit.com/r/thebutton/comments/31c32v/i_pressed_the_button_without_really_thinking/
|
||||||
private static PluginMain Instance;
|
private static PluginMain Instance;
|
||||||
public static ConsoleCommandSender Console; //2015.08.12.
|
public static ConsoleCommandSender Console; // 2015.08.12.
|
||||||
|
|
||||||
// Fired when plugin is first enabled
|
// Fired when plugin is first enabled
|
||||||
@Override
|
@Override
|
||||||
public void onEnable() {
|
public void onEnable() {
|
||||||
System.out.println("The Button Minecraft server plugin by NorbiPeti");
|
System.out.println("The Button Minecraft server plugin by NorbiPeti");
|
||||||
getServer().getPluginManager().registerEvents(new PlayerListener(), this);
|
getServer().getPluginManager().registerEvents(new PlayerListener(),
|
||||||
|
this);
|
||||||
this.getCommand("u").setExecutor(new Commands());
|
this.getCommand("u").setExecutor(new Commands());
|
||||||
this.getCommand("u").setUsage(this.getCommand("u").getUsage().replace('&', '§'));
|
this.getCommand("u").setUsage(
|
||||||
Instance = this; //2015.08.08.
|
this.getCommand("u").getUsage().replace('&', '§'));
|
||||||
Console = this.getServer().getConsoleSender(); //2015.08.12.
|
Instance = this; // 2015.08.08.
|
||||||
LoadFiles(false); //2015.08.09.
|
Console = this.getServer().getConsoleSender(); // 2015.08.12.
|
||||||
|
LoadFiles(false); // 2015.08.09.
|
||||||
Runnable r = new Runnable() {
|
Runnable r = new Runnable() {
|
||||||
public void run() {
|
public void run() {
|
||||||
ThreadMethod();
|
ThreadMethod();
|
||||||
|
@ -48,35 +50,37 @@ public class PluginMain extends JavaPlugin { //Translated to Java: 2015.07.15.
|
||||||
// Fired when plugin is disabled
|
// Fired when plugin is disabled
|
||||||
@Override
|
@Override
|
||||||
public void onDisable() {
|
public void onDisable() {
|
||||||
SaveFiles(); //2015.08.09.
|
SaveFiles(); // 2015.08.09.
|
||||||
stop = true;
|
stop = true;
|
||||||
}
|
}
|
||||||
|
|
||||||
public void ThreadMethod() //<-- 2015.07.16.
|
public void ThreadMethod() // <-- 2015.07.16.
|
||||||
{
|
{
|
||||||
while (!stop) {
|
while (!stop) {
|
||||||
try {
|
try {
|
||||||
String body = DownloadString("https://www.reddit.com/r/TheButtonMinecraft/comments/3d25do/autoflair_system_comment_your_minecraft_name_and/.json?limit=1000");
|
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");
|
JSONArray json = new JSONArray(body).getJSONObject(1)
|
||||||
|
.getJSONObject("data").getJSONArray("children");
|
||||||
for (Object obj : json) {
|
for (Object obj : json) {
|
||||||
JSONObject item = (JSONObject) obj;
|
JSONObject item = (JSONObject) obj;
|
||||||
String author = item.getJSONObject("data").getString("author");
|
String author = item.getJSONObject("data").getString(
|
||||||
|
"author");
|
||||||
String ign = item.getJSONObject("data").getString("body");
|
String ign = item.getJSONObject("data").getString("body");
|
||||||
int start = ign.indexOf("IGN:") + "IGN:".length();
|
int start = ign.indexOf("IGN:") + "IGN:".length();
|
||||||
//System.out.println("Start: "+start);
|
// System.out.println("Start: "+start);
|
||||||
if (start == -1 + "IGN:".length()) //+length: 2015.08.10.
|
if (start == -1 + "IGN:".length()) // +length: 2015.08.10.
|
||||||
continue; //2015.08.09.
|
continue; // 2015.08.09.
|
||||||
int end = ign.indexOf(' ', start);
|
int end = ign.indexOf(' ', start);
|
||||||
if (end == -1 || end == start)
|
if (end == -1 || end == start)
|
||||||
end = ign.indexOf('\n', start); //2015.07.15.
|
end = ign.indexOf('\n', start); // 2015.07.15.
|
||||||
//System.out.println("End: "+end);
|
// System.out.println("End: "+end);
|
||||||
if (end == -1 || end == start)
|
if (end == -1 || end == start)
|
||||||
ign = ign.substring(start);
|
ign = ign.substring(start);
|
||||||
else
|
else
|
||||||
ign = ign.substring(start, end);
|
ign = ign.substring(start, end);
|
||||||
//System.out.println("IGN: "+ign);
|
// System.out.println("IGN: "+ign);
|
||||||
ign = ign.trim();
|
ign = ign.trim();
|
||||||
//System.out.println("Trimmed IGN: "+ign);
|
// System.out.println("Trimmed IGN: "+ign);
|
||||||
if (HasIGFlair(ign))
|
if (HasIGFlair(ign))
|
||||||
continue;
|
continue;
|
||||||
try {
|
try {
|
||||||
|
@ -84,16 +88,19 @@ public class PluginMain extends JavaPlugin { //Translated to Java: 2015.07.15.
|
||||||
} catch (InterruptedException ex) {
|
} catch (InterruptedException ex) {
|
||||||
Thread.currentThread().interrupt();
|
Thread.currentThread().interrupt();
|
||||||
}
|
}
|
||||||
String[] flairdata = DownloadString("http://karmadecay.com/thebutton-data.php?users=" + author).replace("\"", "").split(":");
|
String[] flairdata = DownloadString(
|
||||||
|
"http://karmadecay.com/thebutton-data.php?users="
|
||||||
|
+ author).replace("\"", "").split(":");
|
||||||
String flair;
|
String flair;
|
||||||
if (flairdata.length > 1) //2015.07.15.
|
if (flairdata.length > 1) // 2015.07.15.
|
||||||
flair = flairdata[1];
|
flair = flairdata[1];
|
||||||
else
|
else
|
||||||
flair = "";
|
flair = "";
|
||||||
if (flair != "-1")
|
if (flair != "-1")
|
||||||
flair = flair + "s";
|
flair = flair + "s";
|
||||||
/*else
|
/*
|
||||||
flair = "non-presser";*/
|
* else flair = "non-presser";
|
||||||
|
*/
|
||||||
String flairclass;
|
String flairclass;
|
||||||
if (flairdata.length > 2)
|
if (flairdata.length > 2)
|
||||||
flairclass = flairdata[2];
|
flairclass = flairdata[2];
|
||||||
|
@ -104,14 +111,15 @@ public class PluginMain extends JavaPlugin { //Translated to Java: 2015.07.15.
|
||||||
Thread.sleep(10000);
|
Thread.sleep(10000);
|
||||||
} catch (Exception e) {
|
} catch (Exception e) {
|
||||||
System.out.println("Error!\n" + e);
|
System.out.println("Error!\n" + e);
|
||||||
LastException = e; //2015.08.09.
|
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 {
|
public String DownloadString(String urlstr) throws MalformedURLException,
|
||||||
|
IOException {
|
||||||
URL url = new URL(urlstr);
|
URL url = new URL(urlstr);
|
||||||
URLConnection con = url.openConnection();
|
URLConnection con = url.openConnection();
|
||||||
con.setRequestProperty("User-Agent", "TheButtonAutoFlair");
|
con.setRequestProperty("User-Agent", "TheButtonAutoFlair");
|
||||||
|
@ -123,16 +131,17 @@ public class PluginMain extends JavaPlugin { //Translated to Java: 2015.07.15.
|
||||||
return body;
|
return body;
|
||||||
}
|
}
|
||||||
|
|
||||||
public static Map<String, String> TownColors = new HashMap<String, String>(); //2015.07.20.
|
public static Map<String, String> TownColors = new HashMap<String, String>(); // 2015.07.20.
|
||||||
|
|
||||||
public Boolean HasIGFlair(String playername) {
|
public Boolean HasIGFlair(String playername) {
|
||||||
MaybeOfflinePlayer p = MaybeOfflinePlayer.AddPlayerIfNeeded(playername); //2015.08.08.
|
MaybeOfflinePlayer p = MaybeOfflinePlayer.AddPlayerIfNeeded(playername); // 2015.08.08.
|
||||||
//return p.Flair!=null; //2015.08.08.
|
// return p.Flair!=null; //2015.08.08.
|
||||||
return p.CommentedOnReddit; //2015.08.10.
|
return p.CommentedOnReddit; // 2015.08.10.
|
||||||
}
|
}
|
||||||
|
|
||||||
public void SetFlair(String playername, String text, String flairclass, String username) {
|
public void SetFlair(String playername, String text, String flairclass,
|
||||||
MaybeOfflinePlayer p = MaybeOfflinePlayer.AddPlayerIfNeeded(playername); //2015.08.08.
|
String username) {
|
||||||
|
MaybeOfflinePlayer p = MaybeOfflinePlayer.AddPlayerIfNeeded(playername); // 2015.08.08.
|
||||||
String finalflair;
|
String finalflair;
|
||||||
p.FlairDecided = true;
|
p.FlairDecided = true;
|
||||||
p.FlairRecognised = true;
|
p.FlairRecognised = true;
|
||||||
|
@ -161,156 +170,145 @@ public class PluginMain extends JavaPlugin { //Translated to Java: 2015.07.15.
|
||||||
case "cheater":
|
case "cheater":
|
||||||
finalflair = "§5(" + text + ")§r";
|
finalflair = "§5(" + text + ")§r";
|
||||||
break;
|
break;
|
||||||
case "cant-press": //2015.08.08.
|
case "cant-press": // 2015.08.08.
|
||||||
finalflair = "§r(??s)§r";
|
finalflair = "§r(??s)§r";
|
||||||
break;
|
break;
|
||||||
case "unknown":
|
case "unknown":
|
||||||
if (text.equals("-1")) //If true, only non-presser/can't press; if false, any flair
|
if (text.equals("-1")) // If true, only non-presser/can't press; if
|
||||||
|
// false, any flair
|
||||||
p.FlairDecided = false;
|
p.FlairDecided = false;
|
||||||
else
|
else
|
||||||
p.FlairRecognised = false;
|
p.FlairRecognised = false;
|
||||||
finalflair = "";
|
finalflair = "";
|
||||||
break;
|
break;
|
||||||
default:
|
default:
|
||||||
//finalflair="";
|
// finalflair="";
|
||||||
//break;
|
// break;
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
/*if(finalflair.length()==0) //<-- 2015.07.20.
|
/*
|
||||||
return;*/
|
* if(finalflair.length()==0) //<-- 2015.07.20. return;
|
||||||
p.Flair = finalflair; //2015.08.08.
|
*/
|
||||||
p.CommentedOnReddit = true; //2015.08.10.
|
p.Flair = finalflair; // 2015.08.08.
|
||||||
p.UserName = username; //2015.08.08.
|
p.CommentedOnReddit = true; // 2015.08.10.
|
||||||
/*if(finalflair.length()==0) //Just for the message
|
p.UserName = username; // 2015.08.08.
|
||||||
finalflair="undecided";*/
|
/*
|
||||||
//System.out.println("Added new flair to "+playername+": "+finalflair);
|
* if(finalflair.length()==0) //Just for the message
|
||||||
for (Player player : getServer().getOnlinePlayers()) //<-- 2015.08.08.
|
* finalflair="undecided";
|
||||||
|
*/
|
||||||
|
// System.out.println("Added new flair to "+playername+": "+finalflair);
|
||||||
|
for (Player player : getServer().getOnlinePlayers()) // <-- 2015.08.08.
|
||||||
{
|
{
|
||||||
if (player.getName().equals(playername)) {
|
if (player.getName().equals(playername)) {
|
||||||
//AppendPlayerDisplayFlair(player, username, finalflair);
|
// AppendPlayerDisplayFlair(player, username, finalflair);
|
||||||
AppendPlayerDisplayFlair(p, player);
|
AppendPlayerDisplayFlair(p, player);
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
public static String GetFlair(Player player) { //2015.07.16.
|
public static String GetFlair(Player player) { // 2015.07.16.
|
||||||
String flair = MaybeOfflinePlayer.AllPlayers.get(player.getName()).Flair; //2015.08.08.
|
String flair = MaybeOfflinePlayer.AllPlayers.get(player.getName()).Flair; // 2015.08.08.
|
||||||
//return flair==null ? "" : flair;
|
// return flair==null ? "" : flair;
|
||||||
return flair; //2015.08.10.
|
return flair; // 2015.08.10.
|
||||||
}
|
}
|
||||||
|
|
||||||
//public static void AppendPlayerDisplayFlair(Player player, String username, String flair)
|
// public static void AppendPlayerDisplayFlair(Player player, String
|
||||||
public static void AppendPlayerDisplayFlair(MaybeOfflinePlayer player, Player p) //<-- 2015.08.09.
|
// username, String flair)
|
||||||
|
public static void AppendPlayerDisplayFlair(MaybeOfflinePlayer player,
|
||||||
|
Player p) // <-- 2015.08.09.
|
||||||
{
|
{
|
||||||
|
|
||||||
if (MaybeOfflinePlayer.AllPlayers.get(p.getName()).IgnoredFlair)
|
if (MaybeOfflinePlayer.AllPlayers.get(p.getName()).IgnoredFlair)
|
||||||
return;
|
return;
|
||||||
if (MaybeOfflinePlayer.AllPlayers.get(p.getName()).AcceptedFlair) {
|
if (MaybeOfflinePlayer.AllPlayers.get(p.getName()).AcceptedFlair) {
|
||||||
//AppendPlayerDisplayFlairFinal(p, player.Flair); //2015.07.20.
|
// AppendPlayerDisplayFlairFinal(p, player.Flair); //2015.07.20.
|
||||||
if (!player.FlairDecided)
|
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.
|
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
|
} else
|
||||||
p.sendMessage("§9Are you Reddit user " + player.UserName + "?§r §6Type /u accept or /u ignore§r");
|
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.
|
* private static void AppendPlayerDisplayFlairFinal(Player player, String
|
||||||
*String color = GetColorForTown(GetPlayerTown(player)); //TO!DO: Multiple colors put on first capital letters
|
* flair) { //2015.07.20.String color =
|
||||||
String[] colors = color.substring(1).split("§");
|
* GetColorForTown(GetPlayerTown(player)); //TO!DO: Multiple colors put on
|
||||||
String displayname=player.getName(); //2015.08.08.
|
* first capital letters String[] colors = color.substring(1).split("§");
|
||||||
ArrayList<Integer> Positions=new ArrayList<>();
|
* String displayname=player.getName(); //2015.08.08. ArrayList<Integer>
|
||||||
for(int i=0; i<displayname.length(); i++) {
|
* Positions=new ArrayList<>(); for(int i=0; i<displayname.length(); i++) {
|
||||||
if(Character.isUpperCase(displayname.charAt(i))) {
|
* if(Character.isUpperCase(displayname.charAt(i))) { Positions.add(i); } }
|
||||||
Positions.add(i);
|
* String finalname=""; //TODO if(Positions.size()>=colors.length) { int
|
||||||
}
|
* x=0; for(int i=0; i<Positions.size(); i++) { int pos=Positions.get(i);
|
||||||
}
|
* int nextpos; if(i!=Positions.size()-1) nextpos=Positions.get(i+1); else
|
||||||
String finalname=""; //TODO
|
* nextpos=displayname.length(); String
|
||||||
if(Positions.size()>=colors.length)
|
* substr="§"+colors[x++]+displayname.substring(pos, nextpos)+"§r";
|
||||||
{
|
* finalname+=substr; } } else { Positions.clear(); int
|
||||||
int x=0;
|
* unit=displayname.length()/colors.length; int x=0; for(int i=0;
|
||||||
for(int i=0; i<Positions.size(); i++)
|
* i<displayname.length()-unit; i+=unit) { int pos=i; int nextpos;
|
||||||
{
|
* if(i<displayname.length()-unit-unit) nextpos=i+unit; else
|
||||||
int pos=Positions.get(i);
|
* nextpos=displayname.length(); String
|
||||||
int nextpos;
|
* substr="§"+colors[x++]+displayname.substring(pos, nextpos)+"§r";
|
||||||
if(i!=Positions.size()-1)
|
* finalname+=substr; } }* }
|
||||||
nextpos=Positions.get(i+1);
|
*/
|
||||||
else
|
|
||||||
nextpos=displayname.length();
|
|
||||||
String substr="§"+colors[x++]+displayname.substring(pos, nextpos)+"§r";
|
|
||||||
finalname+=substr;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
Positions.clear();
|
|
||||||
int unit=displayname.length()/colors.length;
|
|
||||||
int x=0;
|
|
||||||
for(int i=0; i<displayname.length()-unit; i+=unit)
|
|
||||||
{
|
|
||||||
int pos=i;
|
|
||||||
int nextpos;
|
|
||||||
if(i<displayname.length()-unit-unit)
|
|
||||||
nextpos=i+unit;
|
|
||||||
else
|
|
||||||
nextpos=displayname.length();
|
|
||||||
String substr="§"+colors[x++]+displayname.substring(pos, nextpos)+"§r";
|
|
||||||
finalname+=substr;
|
|
||||||
}
|
|
||||||
}*
|
|
||||||
}*/
|
|
||||||
|
|
||||||
public static String GetColorForTown(String townname) { //2015.07.20.
|
public static String GetColorForTown(String townname) { // 2015.07.20.
|
||||||
if (TownColors.containsKey(townname))
|
if (TownColors.containsKey(townname))
|
||||||
return TownColors.get(townname);
|
return TownColors.get(townname);
|
||||||
return "";
|
return "";
|
||||||
}
|
}
|
||||||
|
|
||||||
public static String GetPlayerTown(Player player) { //2015.07.20.
|
public static String GetPlayerTown(Player player) { // 2015.07.20.
|
||||||
try {
|
try {
|
||||||
Town town = WorldCoord.parseWorldCoord(player).getTownBlock().getTown(); //TODO
|
Town town = WorldCoord.parseWorldCoord(player).getTownBlock()
|
||||||
|
.getTown(); // TODO
|
||||||
return town.getName();
|
return town.getName();
|
||||||
} catch (Exception e) {
|
} catch (Exception e) {
|
||||||
return "";
|
return "";
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
/*public static void RemovePlayerDisplayFlairFinal(Player player, String flair)
|
/*
|
||||||
{ //2015.07.20.
|
* public static void RemovePlayerDisplayFlairFinal(Player player, String
|
||||||
MaybeOfflinePlayer.AllPlayers.get(player.getName()).Flair=null; //2015.08.08.
|
* flair) { //2015.07.20.
|
||||||
}*/
|
* MaybeOfflinePlayer.AllPlayers.get(player.getName()).Flair=null;
|
||||||
|
* //2015.08.08. }
|
||||||
|
*/
|
||||||
|
|
||||||
public static Collection<? extends Player> GetPlayers() {
|
public static Collection<? extends Player> GetPlayers() {
|
||||||
return Instance.getServer().getOnlinePlayers();
|
return Instance.getServer().getOnlinePlayers();
|
||||||
}
|
}
|
||||||
|
|
||||||
public static void LoadFiles(boolean reload) //<-- 2015.08.09.
|
public static void LoadFiles(boolean reload) // <-- 2015.08.09.
|
||||||
{
|
{
|
||||||
if (reload) { //2015.08.09.
|
if (reload) { // 2015.08.09.
|
||||||
System.out.println("The Button Minecraft plugin cleanup for reloading...");
|
System.out
|
||||||
|
.println("The Button Minecraft plugin cleanup for reloading...");
|
||||||
MaybeOfflinePlayer.AllPlayers.clear();
|
MaybeOfflinePlayer.AllPlayers.clear();
|
||||||
TownColors.clear();
|
TownColors.clear();
|
||||||
}
|
}
|
||||||
System.out.println("Loading files for The Button Minecraft plugin..."); //2015.08.09.
|
System.out.println("Loading files for The Button Minecraft plugin..."); // 2015.08.09.
|
||||||
try {
|
try {
|
||||||
File file = new File("flairsaccepted.txt");
|
File file = new File("flairsaccepted.txt");
|
||||||
if (file.exists()) {
|
if (file.exists()) {
|
||||||
BufferedReader br = new BufferedReader(new FileReader("flairsaccepted.txt"));
|
BufferedReader br = new BufferedReader(new FileReader(
|
||||||
|
"flairsaccepted.txt"));
|
||||||
String line;
|
String line;
|
||||||
while ((line = br.readLine()) != null) {
|
while ((line = br.readLine()) != null) {
|
||||||
String name = line.replace("\n", "");
|
String name = line.replace("\n", "");
|
||||||
//System.out.println("Name: " + name);
|
// System.out.println("Name: " + name);
|
||||||
MaybeOfflinePlayer.AddPlayerIfNeeded(name).AcceptedFlair = true; //2015.08.08.
|
MaybeOfflinePlayer.AddPlayerIfNeeded(name).AcceptedFlair = true; // 2015.08.08.
|
||||||
}
|
}
|
||||||
br.close();
|
br.close();
|
||||||
}
|
}
|
||||||
file = new File("flairsignored.txt");
|
file = new File("flairsignored.txt");
|
||||||
if (file.exists()) {
|
if (file.exists()) {
|
||||||
BufferedReader br = new BufferedReader(new FileReader("flairsignored.txt"));
|
BufferedReader br = new BufferedReader(new FileReader(
|
||||||
|
"flairsignored.txt"));
|
||||||
String line;
|
String line;
|
||||||
while ((line = br.readLine()) != null) {
|
while ((line = br.readLine()) != null) {
|
||||||
String name = line.replace("\n", "");
|
String name = line.replace("\n", "");
|
||||||
MaybeOfflinePlayer.AddPlayerIfNeeded(name).IgnoredFlair = true; //2015.08.08.
|
MaybeOfflinePlayer.AddPlayerIfNeeded(name).IgnoredFlair = true; // 2015.08.08.
|
||||||
}
|
}
|
||||||
br.close();
|
br.close();
|
||||||
}
|
}
|
||||||
|
@ -320,27 +318,30 @@ public class PluginMain extends JavaPlugin { //Translated to Java: 2015.07.15.
|
||||||
String line;
|
String line;
|
||||||
while ((line = br.readLine()) != null) {
|
while ((line = br.readLine()) != null) {
|
||||||
String[] s = line.split(" ");
|
String[] s = line.split(" ");
|
||||||
if (s.length >= 2) //<-- 2015.08.10.
|
if (s.length >= 2) // <-- 2015.08.10.
|
||||||
TownColors.put(s[0], s[1]);
|
TownColors.put(s[0], s[1]);
|
||||||
}
|
}
|
||||||
br.close();
|
br.close();
|
||||||
}
|
}
|
||||||
file = new File("customflairs.txt"); //2015.08.09.
|
file = new File("customflairs.txt"); // 2015.08.09.
|
||||||
if (file.exists()) {
|
if (file.exists()) {
|
||||||
BufferedReader br = new BufferedReader(new FileReader(file));
|
BufferedReader br = new BufferedReader(new FileReader(file));
|
||||||
String line;
|
String line;
|
||||||
while ((line = br.readLine()) != null) {
|
while ((line = br.readLine()) != null) {
|
||||||
String[] s = line.split(" ");
|
String[] s = line.split(" ");
|
||||||
if (s.length >= 2) //2015.08.10.
|
if (s.length >= 2) // 2015.08.10.
|
||||||
{
|
{
|
||||||
MaybeOfflinePlayer p = MaybeOfflinePlayer.AddPlayerIfNeeded(s[0]);
|
MaybeOfflinePlayer p = MaybeOfflinePlayer
|
||||||
p.Flair = s[1]; //2015.08.09.
|
.AddPlayerIfNeeded(s[0]);
|
||||||
p.CommentedOnReddit = true; //Kind of
|
p.Flair = s[1]; // 2015.08.09.
|
||||||
|
p.CommentedOnReddit = true; // Kind of
|
||||||
|
p.FlairDecided = true;
|
||||||
|
p.FlairRecognised = true;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
br.close();
|
br.close();
|
||||||
}
|
}
|
||||||
file = new File("notificationsound.txt"); //2015.08.09.
|
file = new File("notificationsound.txt"); // 2015.08.09.
|
||||||
if (file.exists()) {
|
if (file.exists()) {
|
||||||
BufferedReader br = new BufferedReader(new FileReader(file));
|
BufferedReader br = new BufferedReader(new FileReader(file));
|
||||||
String line = br.readLine();
|
String line = br.readLine();
|
||||||
|
@ -349,15 +350,15 @@ public class PluginMain extends JavaPlugin { //Translated to Java: 2015.07.15.
|
||||||
PlayerListener.NotificationPitch = Float.parseFloat(split[1]);
|
PlayerListener.NotificationPitch = Float.parseFloat(split[1]);
|
||||||
br.close();
|
br.close();
|
||||||
}
|
}
|
||||||
//throw new IOException("Test"); //2015.08.09.
|
// throw new IOException("Test"); //2015.08.09.
|
||||||
System.out.println("The Button Minecraft plugin loaded files!");
|
System.out.println("The Button Minecraft plugin loaded files!");
|
||||||
} catch (IOException e) {
|
} catch (IOException e) {
|
||||||
System.out.println("Error!\n" + e);
|
System.out.println("Error!\n" + e);
|
||||||
LastException = e; //2015.08.09.
|
LastException = e; // 2015.08.09.
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
public static void SaveFiles() //<-- 2015.08.09.
|
public static void SaveFiles() // <-- 2015.08.09.
|
||||||
{
|
{
|
||||||
try {
|
try {
|
||||||
FileWriter fw;
|
FileWriter fw;
|
||||||
|
@ -367,42 +368,45 @@ public class PluginMain extends JavaPlugin { //Translated to Java: 2015.07.15.
|
||||||
fw.close();
|
fw.close();
|
||||||
} catch (Exception e) {
|
} catch (Exception e) {
|
||||||
System.out.println("Error!\n" + e);
|
System.out.println("Error!\n" + e);
|
||||||
LastException = e; //2015.08.09.
|
LastException = e; // 2015.08.09.
|
||||||
}
|
}
|
||||||
try {
|
try {
|
||||||
File file = new File("flairsaccepted.txt");
|
File file = new File("flairsaccepted.txt");
|
||||||
BufferedWriter bw = new BufferedWriter(new FileWriter(file, true));
|
BufferedWriter bw = new BufferedWriter(new FileWriter(file, true));
|
||||||
for (MaybeOfflinePlayer player : MaybeOfflinePlayer.AllPlayers.values()) //<-- 2015.08.08.
|
for (MaybeOfflinePlayer player : MaybeOfflinePlayer.AllPlayers
|
||||||
|
.values()) // <-- 2015.08.08.
|
||||||
{
|
{
|
||||||
if (!player.AcceptedFlair)
|
if (!player.AcceptedFlair)
|
||||||
continue; //2015.08.08.
|
continue; // 2015.08.08.
|
||||||
bw.write(player.PlayerName + "\n");
|
bw.write(player.PlayerName + "\n");
|
||||||
}
|
}
|
||||||
bw.close();
|
bw.close();
|
||||||
file = new File("flairsignored.txt");
|
file = new File("flairsignored.txt");
|
||||||
bw = new BufferedWriter(new FileWriter(file, true));
|
bw = new BufferedWriter(new FileWriter(file, true));
|
||||||
for (MaybeOfflinePlayer player : MaybeOfflinePlayer.AllPlayers.values()) //<-- 2015.08.08.
|
for (MaybeOfflinePlayer player : MaybeOfflinePlayer.AllPlayers
|
||||||
|
.values()) // <-- 2015.08.08.
|
||||||
{
|
{
|
||||||
if (!player.IgnoredFlair)
|
if (!player.IgnoredFlair)
|
||||||
continue; //2015.08.08.
|
continue; // 2015.08.08.
|
||||||
bw.write(player.PlayerName + "\n");
|
bw.write(player.PlayerName + "\n");
|
||||||
}
|
}
|
||||||
bw.close();
|
bw.close();
|
||||||
} catch (IOException e) {
|
} catch (IOException e) {
|
||||||
System.out.println("Error!\n" + e);
|
System.out.println("Error!\n" + e);
|
||||||
LastException = e; //2015.08.09.
|
LastException = e; // 2015.08.09.
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
public static boolean RemoveLineFromFile(String file, String line) { //2015.08.09.
|
public static boolean RemoveLineFromFile(String file, String line) { // 2015.08.09.
|
||||||
File inputFile = new File(file);
|
File inputFile = new File(file);
|
||||||
File tempFile = new File("_temp.txt");
|
File tempFile = new File("_temp.txt");
|
||||||
|
|
||||||
if (!inputFile.exists())
|
if (!inputFile.exists())
|
||||||
return true; //2015.08.10.
|
return true; // 2015.08.10.
|
||||||
|
|
||||||
try {
|
try {
|
||||||
BufferedReader reader = new BufferedReader(new FileReader(inputFile));
|
BufferedReader reader = new BufferedReader(
|
||||||
|
new FileReader(inputFile));
|
||||||
BufferedWriter writer = new BufferedWriter(new FileWriter(tempFile));
|
BufferedWriter writer = new BufferedWriter(new FileWriter(tempFile));
|
||||||
|
|
||||||
String lineToRemove = line;
|
String lineToRemove = line;
|
||||||
|
@ -411,7 +415,8 @@ public class PluginMain extends JavaPlugin { //Translated to Java: 2015.07.15.
|
||||||
while ((currentLine = reader.readLine()) != null) {
|
while ((currentLine = reader.readLine()) != null) {
|
||||||
// trim newline when comparing with lineToRemove
|
// trim newline when comparing with lineToRemove
|
||||||
String trimmedLine = currentLine.trim();
|
String trimmedLine = currentLine.trim();
|
||||||
if (trimmedLine.split(" ")[0].equals(lineToRemove)) continue; //2015.08.17.
|
if (trimmedLine.split(" ")[0].equals(lineToRemove))
|
||||||
|
continue; // 2015.08.17.
|
||||||
writer.write(currentLine + System.getProperty("line.separator"));
|
writer.write(currentLine + System.getProperty("line.separator"));
|
||||||
}
|
}
|
||||||
writer.close();
|
writer.close();
|
||||||
|
@ -423,7 +428,7 @@ public class PluginMain extends JavaPlugin { //Translated to Java: 2015.07.15.
|
||||||
return true;
|
return true;
|
||||||
} catch (IOException e) {
|
} catch (IOException e) {
|
||||||
System.out.println("Error!\n" + e);
|
System.out.println("Error!\n" + e);
|
||||||
LastException = e; //2015.08.09.
|
LastException = e; // 2015.08.09.
|
||||||
}
|
}
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in a new issue