Merge pull request #1 from Sciguymjm/master
Clean up code and add nickname support
This commit is contained in:
commit
fc2ff7db1e
27 changed files with 719 additions and 717 deletions
5
.gitignore
vendored
5
.gitignore
vendored
|
@ -215,3 +215,8 @@ pip-log.txt
|
|||
#Mr Developer
|
||||
.mr.developer.cfg
|
||||
.metadata/*
|
||||
TheButtonAutoFlair/out/artifacts/Autoflair/Autoflair.jar
|
||||
*.iml
|
||||
*.name
|
||||
.idea/compiler.xml
|
||||
*.xml
|
||||
|
|
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
|
@ -1,5 +1,11 @@
|
|||
package tk.sznp.thebuttonautoflair;
|
||||
|
||||
import org.apache.commons.io.FileUtils;
|
||||
import org.bukkit.command.Command;
|
||||
import org.bukkit.command.CommandExecutor;
|
||||
import org.bukkit.command.CommandSender;
|
||||
import org.bukkit.entity.Player;
|
||||
|
||||
import java.io.BufferedWriter;
|
||||
import java.io.File;
|
||||
import java.io.FileWriter;
|
||||
|
@ -7,12 +13,6 @@ import java.io.IOException;
|
|||
import java.net.MalformedURLException;
|
||||
import java.net.URL;
|
||||
|
||||
import org.apache.commons.io.FileUtils;
|
||||
import org.bukkit.command.Command;
|
||||
import org.bukkit.command.CommandExecutor;
|
||||
import org.bukkit.command.CommandSender;
|
||||
import org.bukkit.entity.Player;
|
||||
|
||||
public class Commands implements CommandExecutor {
|
||||
// This method is called, when somebody uses our command
|
||||
@Override
|
||||
|
@ -23,46 +23,38 @@ public class Commands implements CommandExecutor {
|
|||
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"))
|
||||
{
|
||||
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.
|
||||
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":
|
||||
{
|
||||
case "accept": {
|
||||
if (p.IgnoredFlair)
|
||||
p.IgnoredFlair = false; //2015.08.08.
|
||||
if(!p.AcceptedFlair)
|
||||
{
|
||||
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
|
||||
} else
|
||||
player.sendMessage("§cYou already have this user's flair.§r");
|
||||
break;
|
||||
}
|
||||
case "ignore":
|
||||
{
|
||||
case "ignore": {
|
||||
if (p.AcceptedFlair)
|
||||
p.AcceptedFlair = false; //2015.08.08.
|
||||
if(!p.IgnoredFlair)
|
||||
{
|
||||
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
|
||||
} else
|
||||
player.sendMessage("§cYou already ignored this request.§r");
|
||||
break;
|
||||
}
|
||||
|
@ -73,26 +65,22 @@ public class Commands implements CommandExecutor {
|
|||
DoAdmin(player, args);
|
||||
break;
|
||||
case "nonpresser": //2015.08.09.
|
||||
if(!p.AcceptedFlair)
|
||||
{
|
||||
if (!p.AcceptedFlair) {
|
||||
player.sendMessage("§cYou need to accept the flair first.§r");
|
||||
break;
|
||||
}
|
||||
if(p.FlairDecided)
|
||||
{
|
||||
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)
|
||||
{
|
||||
if (!p.AcceptedFlair) {
|
||||
player.sendMessage("§cYou need to accept the flair first.§r");
|
||||
break;
|
||||
}
|
||||
if(p.FlairDecided)
|
||||
{
|
||||
if (p.FlairDecided) {
|
||||
player.sendMessage("§cYou have already set the flair type or your flair type is known.§r");
|
||||
break;
|
||||
}
|
||||
|
@ -115,29 +103,24 @@ public class Commands implements CommandExecutor {
|
|||
}
|
||||
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")
|
||||
//{
|
||||
try
|
||||
{
|
||||
try {
|
||||
PluginMain.Console.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());
|
||||
//if(mp.Flair!=null)
|
||||
if(mp.CommentedOnReddit)
|
||||
{
|
||||
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)
|
||||
{
|
||||
} catch (Exception e) {
|
||||
System.out.println("Error!\n" + e);
|
||||
if (player != null)
|
||||
player.sendMessage("§cAn error occured. See console for details.§r");
|
||||
|
@ -147,21 +130,19 @@ public class Commands implements CommandExecutor {
|
|||
//else
|
||||
//player.sendMessage("§cYou need to be OP to use this command.§r");
|
||||
}
|
||||
|
||||
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"))
|
||||
{
|
||||
|
||||
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)
|
||||
{
|
||||
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())
|
||||
{
|
||||
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");
|
||||
|
@ -193,21 +174,18 @@ public class Commands implements CommandExecutor {
|
|||
SendMessage(player, message);
|
||||
return;
|
||||
}
|
||||
}
|
||||
else
|
||||
} else
|
||||
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"
|
||||
if(args.length==2)
|
||||
{
|
||||
if (args.length == 2) {
|
||||
String message = "§cUsage: /u admin playerinfo <player>§r";
|
||||
SendMessage(player, message);
|
||||
return;
|
||||
}
|
||||
if(!MaybeOfflinePlayer.AllPlayers.containsKey(args[2]))
|
||||
{
|
||||
if (!MaybeOfflinePlayer.AllPlayers.containsKey(args[2])) {
|
||||
String message = "§cPlayer not found: " + args[2] + "§r";
|
||||
SendMessage(player, message);
|
||||
return;
|
||||
|
@ -222,33 +200,30 @@ public class Commands implements CommandExecutor {
|
|||
SendMessage(player, "Flair recognised: " + p.FlairRecognised);
|
||||
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)
|
||||
//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.
|
||||
|
||||
private static void DoGetLastError(Player player, String[] args) { //2015.08.09.
|
||||
//args[0] is "admin" - args[1] is "getlasterror"
|
||||
if(PluginMain.LastException!=null)
|
||||
{
|
||||
if (PluginMain.LastException != null) {
|
||||
SendMessage(player, "Last error:");
|
||||
SendMessage(player, PluginMain.LastException.toString());
|
||||
PluginMain.LastException = null;
|
||||
}
|
||||
else
|
||||
} else
|
||||
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('&', '§');
|
||||
targetplayer.Flair = flair;
|
||||
targetplayer.CommentedOnReddit = true; //Or at least has a flair in some way
|
||||
if(!PluginMain.RemoveLineFromFile("customflairs.txt", targetplayer.PlayerName))
|
||||
{
|
||||
if (!PluginMain.RemoveLineFromFile("customflairs.txt", targetplayer.PlayerName)) {
|
||||
SendMessage(player, "§cError removing previous custom flair!§r");
|
||||
return;
|
||||
}
|
||||
|
@ -264,23 +239,21 @@ public class Commands implements CommandExecutor {
|
|||
}
|
||||
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"
|
||||
if(args.length<4)
|
||||
{
|
||||
if (args.length < 4) {
|
||||
SendMessage(player, "§cUsage: /u admin setflair <playername> <flair>");
|
||||
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");
|
||||
return;
|
||||
}
|
||||
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...");
|
||||
System.out.println("Forced updating of Auto-Flair plugin.");
|
||||
URL url;
|
||||
|
@ -288,12 +261,10 @@ public class Commands implements CommandExecutor {
|
|||
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) {
|
||||
} catch (MalformedURLException e) {
|
||||
System.out.println("Error!\n" + e);
|
||||
PluginMain.LastException = e; //2015.08.09.
|
||||
}
|
||||
catch (IOException e) {
|
||||
} catch (IOException e) {
|
||||
System.out.println("Error!\n" + e);
|
||||
PluginMain.LastException = e; //2015.08.09.
|
||||
}
|
||||
|
|
|
@ -1,52 +1,79 @@
|
|||
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;
|
||||
import org.bukkit.event.EventHandler;
|
||||
import org.bukkit.event.Listener;
|
||||
import org.bukkit.event.player.AsyncPlayerChatEvent;
|
||||
import org.bukkit.event.player.PlayerChatTabCompleteEvent;
|
||||
import org.bukkit.event.player.PlayerJoinEvent;
|
||||
import org.bukkit.event.player.PlayerQuitEvent;
|
||||
|
||||
import de.inventivegames.TellRawAutoMessage.Reflection;
|
||||
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 class PlayerListener implements Listener { //2015.07.16.
|
||||
public static HashMap<String, UUID> nicknames = new HashMap<>();
|
||||
@EventHandler
|
||||
public void onPlayerJoin(PlayerJoinEvent event)
|
||||
{
|
||||
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.
|
||||
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 */
|
||||
|
||||
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);
|
||||
|
||||
}
|
||||
|
||||
@EventHandler
|
||||
public void onPlayerLeave(PlayerQuitEvent event)
|
||||
{
|
||||
public void onPlayerLeave(PlayerQuitEvent event) {
|
||||
}
|
||||
|
||||
public static String NotificationSound; //2015.08.14.
|
||||
public static float NotificationPitch; //2015.08.14.
|
||||
|
||||
@EventHandler
|
||||
public void onPlayerChat(AsyncPlayerChatEvent event)
|
||||
{
|
||||
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.
|
||||
for (Player p : PluginMain.GetPlayers()) { //2015.08.12.
|
||||
String color = ""; //2015.08.17.
|
||||
if(message.contains(p.getName()))
|
||||
{
|
||||
if (message.contains(p.getName())) {
|
||||
if (NotificationSound == null)
|
||||
p.playSound(p.getLocation(), Sound.ORB_PICKUP, 1.0f, 0.5f); //2015.08.12.
|
||||
else
|
||||
|
@ -54,15 +81,34 @@ public class PlayerListener implements Listener
|
|||
MaybeOfflinePlayer mp = MaybeOfflinePlayer.AddPlayerIfNeeded(p.getName()); //2015.08.17.
|
||||
color = mp.Flair.substring(0, 2);
|
||||
}
|
||||
|
||||
|
||||
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.
|
||||
}
|
||||
|
||||
private static Class<?> nmsChatSerializer = Reflection.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 {
|
||||
Object handle = Reflection.getHandle(player);
|
||||
Object connection = Reflection.getField(handle.getClass(), "playerConnection").get(handle);
|
||||
|
@ -75,4 +121,15 @@ public class PlayerListener implements Listener
|
|||
}
|
||||
}
|
||||
|
||||
@EventHandler
|
||||
public void onTabComplete(PlayerChatTabCompleteEvent e)
|
||||
{
|
||||
String name = e.getLastToken();
|
||||
for(String nickname : nicknames.keySet())
|
||||
{
|
||||
if(nickname.startsWith(name))
|
||||
e.getTabCompletions().add(nickname);
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
|
|
|
@ -1,19 +1,7 @@
|
|||
package tk.sznp.thebuttonautoflair;
|
||||
|
||||
import java.io.BufferedReader;
|
||||
import java.io.BufferedWriter;
|
||||
import java.io.File;
|
||||
import java.io.FileReader;
|
||||
import java.io.FileWriter;
|
||||
import java.io.IOException;
|
||||
import java.io.InputStream;
|
||||
import java.net.MalformedURLException;
|
||||
import java.net.URL;
|
||||
import java.net.URLConnection;
|
||||
import java.util.Collection;
|
||||
import java.util.HashMap;
|
||||
import java.util.Map;
|
||||
|
||||
import com.palmergames.bukkit.towny.object.Town;
|
||||
import com.palmergames.bukkit.towny.object.WorldCoord;
|
||||
import org.apache.commons.io.IOUtils;
|
||||
import org.bukkit.command.ConsoleCommandSender;
|
||||
import org.bukkit.entity.Player;
|
||||
|
@ -21,19 +9,24 @@ import org.bukkit.plugin.java.JavaPlugin;
|
|||
import org.json.JSONArray;
|
||||
import org.json.JSONObject;
|
||||
|
||||
import com.palmergames.bukkit.towny.object.Town;
|
||||
import com.palmergames.bukkit.towny.object.WorldCoord;
|
||||
import java.io.*;
|
||||
import java.lang.String;
|
||||
import java.net.MalformedURLException;
|
||||
import java.net.URL;
|
||||
import java.net.URLConnection;
|
||||
import java.util.Collection;
|
||||
import java.util.HashMap;
|
||||
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:
|
||||
//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()
|
||||
{
|
||||
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());
|
||||
|
@ -41,29 +34,31 @@ public class PluginMain extends JavaPlugin
|
|||
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();}};
|
||||
Runnable r = new Runnable() {
|
||||
public void run() {
|
||||
ThreadMethod();
|
||||
}
|
||||
};
|
||||
Thread t = new Thread(r);
|
||||
t.start();
|
||||
}
|
||||
|
||||
Boolean stop = false;
|
||||
|
||||
// Fired when plugin is disabled
|
||||
@Override
|
||||
public void onDisable()
|
||||
{
|
||||
public void onDisable() {
|
||||
SaveFiles(); //2015.08.09.
|
||||
stop = true;
|
||||
}
|
||||
|
||||
public void ThreadMethod() //<-- 2015.07.16.
|
||||
{
|
||||
while(!stop)
|
||||
{
|
||||
try
|
||||
{
|
||||
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)
|
||||
{
|
||||
for (Object obj : json) {
|
||||
JSONObject item = (JSONObject) obj;
|
||||
String author = item.getJSONObject("data").getString("author");
|
||||
String ign = item.getJSONObject("data").getString("body");
|
||||
|
@ -107,9 +102,7 @@ public class PluginMain extends JavaPlugin
|
|||
SetFlair(ign, flair, flairclass, author);
|
||||
}
|
||||
Thread.sleep(10000);
|
||||
}
|
||||
catch(Exception e)
|
||||
{
|
||||
} catch (Exception e) {
|
||||
System.out.println("Error!\n" + e);
|
||||
LastException = e; //2015.08.09.
|
||||
}
|
||||
|
@ -118,8 +111,7 @@ public class PluginMain extends JavaPlugin
|
|||
|
||||
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);
|
||||
URLConnection con = url.openConnection();
|
||||
con.setRequestProperty("User-Agent", "TheButtonAutoFlair");
|
||||
|
@ -132,21 +124,19 @@ public class PluginMain extends JavaPlugin
|
|||
}
|
||||
|
||||
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.
|
||||
//return p.Flair!=null; //2015.08.08.
|
||||
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, String username) {
|
||||
MaybeOfflinePlayer p = MaybeOfflinePlayer.AddPlayerIfNeeded(playername); //2015.08.08.
|
||||
String finalflair;
|
||||
p.FlairDecided = true;
|
||||
p.FlairRecognised = true;
|
||||
switch(flairclass)
|
||||
{
|
||||
switch (flairclass) {
|
||||
case "press-1":
|
||||
finalflair = "§c(" + text + ")§r";
|
||||
break;
|
||||
|
@ -196,8 +186,7 @@ public class PluginMain extends JavaPlugin
|
|||
//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(p, player);
|
||||
break;
|
||||
|
@ -205,8 +194,7 @@ public class PluginMain extends JavaPlugin
|
|||
}
|
||||
}
|
||||
|
||||
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.
|
||||
//return flair==null ? "" : flair;
|
||||
return flair; //2015.08.10.
|
||||
|
@ -218,13 +206,11 @@ public class PluginMain extends JavaPlugin
|
|||
|
||||
if (MaybeOfflinePlayer.AllPlayers.get(p.getName()).IgnoredFlair)
|
||||
return;
|
||||
if(MaybeOfflinePlayer.AllPlayers.get(p.getName()).AcceptedFlair)
|
||||
{
|
||||
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
|
||||
} else
|
||||
p.sendMessage("§9Are you Reddit user " + player.UserName + "?§r §6Type /u accept or /u ignore§r");
|
||||
}
|
||||
|
||||
|
@ -274,15 +260,13 @@ public class PluginMain extends JavaPlugin
|
|||
}*
|
||||
}*/
|
||||
|
||||
public static String GetColorForTown(String townname)
|
||||
{ //2015.07.20.
|
||||
public static String GetColorForTown(String townname) { //2015.07.20.
|
||||
if (TownColors.containsKey(townname))
|
||||
return TownColors.get(townname);
|
||||
return "";
|
||||
}
|
||||
|
||||
public static String GetPlayerTown(Player player)
|
||||
{ //2015.07.20.
|
||||
public static String GetPlayerTown(Player player) { //2015.07.20.
|
||||
try {
|
||||
Town town = WorldCoord.parseWorldCoord(player).getTownBlock().getTown(); //TODO
|
||||
return town.getName();
|
||||
|
@ -296,15 +280,13 @@ public class PluginMain extends JavaPlugin
|
|||
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();
|
||||
}
|
||||
|
||||
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...");
|
||||
MaybeOfflinePlayer.AllPlayers.clear();
|
||||
TownColors.clear();
|
||||
|
@ -312,12 +294,10 @@ public class PluginMain extends JavaPlugin
|
|||
System.out.println("Loading files for The Button Minecraft plugin..."); //2015.08.09.
|
||||
try {
|
||||
File file = new File("flairsaccepted.txt");
|
||||
if(file.exists())
|
||||
{
|
||||
if (file.exists()) {
|
||||
BufferedReader br = new BufferedReader(new FileReader("flairsaccepted.txt"));
|
||||
String line;
|
||||
while ((line = br.readLine()) != null)
|
||||
{
|
||||
while ((line = br.readLine()) != null) {
|
||||
String name = line.replace("\n", "");
|
||||
//System.out.println("Name: " + name);
|
||||
MaybeOfflinePlayer.AddPlayerIfNeeded(name).AcceptedFlair = true; //2015.08.08.
|
||||
|
@ -325,24 +305,20 @@ public class PluginMain extends JavaPlugin
|
|||
br.close();
|
||||
}
|
||||
file = new File("flairsignored.txt");
|
||||
if(file.exists())
|
||||
{
|
||||
if (file.exists()) {
|
||||
BufferedReader br = new BufferedReader(new FileReader("flairsignored.txt"));
|
||||
String line;
|
||||
while ((line = br.readLine()) != null)
|
||||
{
|
||||
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())
|
||||
{
|
||||
if (file.exists()) {
|
||||
BufferedReader br = new BufferedReader(new FileReader(file));
|
||||
String line;
|
||||
while((line=br.readLine())!=null)
|
||||
{
|
||||
while ((line = br.readLine()) != null) {
|
||||
String[] s = line.split(" ");
|
||||
if (s.length >= 2) //<-- 2015.08.10.
|
||||
TownColors.put(s[0], s[1]);
|
||||
|
@ -350,12 +326,10 @@ public class PluginMain extends JavaPlugin
|
|||
br.close();
|
||||
}
|
||||
file = new File("customflairs.txt"); //2015.08.09.
|
||||
if(file.exists())
|
||||
{
|
||||
if (file.exists()) {
|
||||
BufferedReader br = new BufferedReader(new FileReader(file));
|
||||
String line;
|
||||
while((line=br.readLine())!=null)
|
||||
{
|
||||
while ((line = br.readLine()) != null) {
|
||||
String[] s = line.split(" ");
|
||||
if (s.length >= 2) //2015.08.10.
|
||||
{
|
||||
|
@ -367,8 +341,7 @@ public class PluginMain extends JavaPlugin
|
|||
br.close();
|
||||
}
|
||||
file = new File("notificationsound.txt"); //2015.08.09.
|
||||
if(file.exists())
|
||||
{
|
||||
if (file.exists()) {
|
||||
BufferedReader br = new BufferedReader(new FileReader(file));
|
||||
String line = br.readLine();
|
||||
String[] split = line.split(" ");
|
||||
|
@ -383,18 +356,16 @@ public class PluginMain extends JavaPlugin
|
|||
LastException = e; //2015.08.09.
|
||||
}
|
||||
}
|
||||
|
||||
public static void SaveFiles() //<-- 2015.08.09.
|
||||
{
|
||||
try
|
||||
{
|
||||
try {
|
||||
FileWriter fw;
|
||||
fw = new FileWriter("flairsaccepted.txt");
|
||||
fw.close();
|
||||
fw = new FileWriter("flairsignored.txt");
|
||||
fw.close();
|
||||
}
|
||||
catch(Exception e)
|
||||
{
|
||||
} catch (Exception e) {
|
||||
System.out.println("Error!\n" + e);
|
||||
LastException = e; //2015.08.09.
|
||||
}
|
||||
|
@ -422,8 +393,8 @@ public class PluginMain extends JavaPlugin
|
|||
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 tempFile = new File("_temp.txt");
|
||||
|
||||
|
@ -445,12 +416,10 @@ public class PluginMain extends JavaPlugin
|
|||
}
|
||||
writer.close();
|
||||
reader.close();
|
||||
if(!tempFile.renameTo(inputFile))
|
||||
{
|
||||
if (!tempFile.renameTo(inputFile)) {
|
||||
inputFile.delete();
|
||||
return tempFile.renameTo(inputFile);
|
||||
}
|
||||
else
|
||||
} else
|
||||
return true;
|
||||
} catch (IOException e) {
|
||||
System.out.println("Error!\n" + e);
|
||||
|
|
Loading…
Reference in a new issue