Refreshed error handling, removed getlastereror

This commit is contained in:
Norbi Peti 2016-12-03 19:53:58 +01:00
parent 1af101c31e
commit 8c08370220
4 changed files with 50 additions and 127 deletions

View file

@ -25,6 +25,7 @@ import buttondevteam.chat.formatting.ChatFormatterBuilder;
import buttondevteam.chat.formatting.TellrawEvent; import buttondevteam.chat.formatting.TellrawEvent;
import buttondevteam.chat.formatting.TellrawPart; import buttondevteam.chat.formatting.TellrawPart;
import buttondevteam.chat.formatting.TellrawSerializer; import buttondevteam.chat.formatting.TellrawSerializer;
import buttondevteam.lib.TBMCCoreAPI;
import buttondevteam.lib.TBMCPlayer; import buttondevteam.lib.TBMCPlayer;
import buttondevteam.lib.chat.Channel; import buttondevteam.lib.chat.Channel;
import buttondevteam.lib.chat.TellrawSerializableEnum; import buttondevteam.lib.chat.TellrawSerializableEnum;
@ -255,18 +256,22 @@ public class ChatProcessing {
for (Player p : PluginMain.GetPlayers()) { for (Player p : PluginMain.GetPlayers()) {
try { try {
Resident resident = PluginMain.Instance.TU.getResidentMap().get(p.getName().toLowerCase()); Resident resident = PluginMain.Instance.TU.getResidentMap().get(p.getName().toLowerCase());
if (!resident.getName().equals(player.getName()) && resident.getModes().contains("spy")) if (resident != null && !resident.getName().equals(player.getName())
&& resident.getModes().contains("spy"))
Bukkit.getPlayer(resident.getName()).sendMessage(String.format("[SPY-%s] - %s: %s", Bukkit.getPlayer(resident.getName()).sendMessage(String.format("[SPY-%s] - %s: %s",
currentchannel.DisplayName, player.getDisplayName(), message)); currentchannel.DisplayName, player.getDisplayName(), message));
} catch (Exception e) { } catch (Exception e) {
} }
} }
} }
if (currentchannel.equals(Channel.TownChat)) { try {
try { if (currentchannel.equals(Channel.TownChat)) {
Town town = null; Town town = null;
try { try {
town = PluginMain.Instance.TU.getResidentMap().get(player.getName().toLowerCase()).getTown(); final Resident resident = PluginMain.Instance.TU.getResidentMap()
.get(player.getName().toLowerCase());
if (resident != null && resident.hasTown())
town = resident.getTown();
} catch (NotRegisteredException e) { } catch (NotRegisteredException e) {
} }
if (town == null) { if (town == null) {
@ -281,8 +286,7 @@ public class ChatProcessing {
Objective obj = PluginMain.SB.getObjective("town"); Objective obj = PluginMain.SB.getObjective("town");
for (Player p : PluginMain.GetPlayers()) { for (Player p : PluginMain.GetPlayers()) {
try { try {
if (PluginMain.Instance.TU.getResidentMap().get(p.getName().toLowerCase()).getTown().getName() if (town.getResidents().stream().anyMatch(r -> r.getName().equalsIgnoreCase(p.getName())))
.equals(town.getName()))
obj.getScore(p.getName()).setScore(index); obj.getScore(p.getName()).setScore(index);
else else
obj.getScore(p.getName()).setScore(-1); obj.getScore(p.getName()).setScore(-1);
@ -292,20 +296,13 @@ public class ChatProcessing {
} }
PluginMain.Instance.getServer().dispatchCommand(PluginMain.Console, PluginMain.Instance.getServer().dispatchCommand(PluginMain.Console,
String.format("tellraw @a[score_town=%d,score_town_min=%d] %s", index, index, jsonstr)); String.format("tellraw @a[score_town=%d,score_town_min=%d] %s", index, index, jsonstr));
} catch (IllegalStateException e) { } else if (currentchannel.equals(Channel.NationChat)) {
e.printStackTrace();
player.sendMessage("§cAn error occured while sending the message. (IllegalStateException)");
return true;
} catch (IllegalArgumentException e) {
e.printStackTrace();
player.sendMessage("§cAn error occured while sending the message. (IllegalArgumentException)");
return true;
}
} else if (currentchannel.equals(Channel.NationChat)) {
try {
Town town = null; Town town = null;
try { try {
town = PluginMain.Instance.TU.getResidentMap().get(player.getName().toLowerCase()).getTown(); final Resident resident = PluginMain.Instance.TU.getResidentMap()
.get(player.getName().toLowerCase());
if (resident != null && resident.hasTown())
town = resident.getTown();
} catch (NotRegisteredException e) { } catch (NotRegisteredException e) {
} }
if (town == null) { if (town == null) {
@ -329,8 +326,7 @@ public class ChatProcessing {
Objective obj = PluginMain.SB.getObjective("nation"); Objective obj = PluginMain.SB.getObjective("nation");
for (Player p : PluginMain.GetPlayers()) { for (Player p : PluginMain.GetPlayers()) {
try { try {
if (PluginMain.Instance.TU.getResidentMap().get(p.getName().toLowerCase()).getTown().getNation() if (nation.getResidents().stream().anyMatch(r -> r.getName().equalsIgnoreCase(p.getName())))
.getName().equals(nation.getName()))
obj.getScore(p.getName()).setScore(index); obj.getScore(p.getName()).setScore(index);
else else
obj.getScore(p.getName()).setScore(-1); obj.getScore(p.getName()).setScore(-1);
@ -339,17 +335,7 @@ public class ChatProcessing {
} }
PluginMain.Instance.getServer().dispatchCommand(PluginMain.Console, PluginMain.Instance.getServer().dispatchCommand(PluginMain.Console,
String.format("tellraw @a[score_nation=%d,score_nation_min=%d] %s", index, index, jsonstr)); String.format("tellraw @a[score_nation=%d,score_nation_min=%d] %s", index, index, jsonstr));
} catch (IllegalStateException e) { } else if (currentchannel.equals(Channel.AdminChat)) {
e.printStackTrace();
player.sendMessage("§cAn error occured while sending the message. (IllegalStateException)");
return true;
} catch (IllegalArgumentException e) {
e.printStackTrace();
player.sendMessage("§cAn error occured while sending the message. (IllegalArgumentException)");
return true;
}
} else if (currentchannel.equals(Channel.AdminChat)) {
try {
if (player != null && !player.isOp()) { if (player != null && !player.isOp()) {
player.sendMessage("§cYou need to be an OP to use this channel."); player.sendMessage("§cYou need to be an OP to use this channel.");
return true; return true;
@ -363,17 +349,7 @@ public class ChatProcessing {
} }
PluginMain.Instance.getServer().dispatchCommand(PluginMain.Console, PluginMain.Instance.getServer().dispatchCommand(PluginMain.Console,
String.format("tellraw @a[score_admin=%d,score_admin_min=%d] %s", 1, 1, jsonstr)); String.format("tellraw @a[score_admin=%d,score_admin_min=%d] %s", 1, 1, jsonstr));
} catch (IllegalStateException e) { } else if (currentchannel.equals(Channel.ModChat)) {
e.printStackTrace();
player.sendMessage("§cAn error occured while sending the message. (IllegalStateException)");
return true;
} catch (IllegalArgumentException e) {
e.printStackTrace();
player.sendMessage("§cAn error occured while sending the message. (IllegalArgumentException)");
return true;
}
} else if (currentchannel.equals(Channel.ModChat)) {
try {
if (player != null && !PluginMain.permission.playerInGroup(player, "mod")) { if (player != null && !PluginMain.permission.playerInGroup(player, "mod")) {
player.sendMessage("§cYou need to be a mod to use this channel."); player.sendMessage("§cYou need to be a mod to use this channel.");
return true; return true;
@ -387,18 +363,14 @@ public class ChatProcessing {
} }
PluginMain.Instance.getServer().dispatchCommand(PluginMain.Console, PluginMain.Instance.getServer().dispatchCommand(PluginMain.Console,
String.format("tellraw @a[score_mod=%d,score_mod_min=%d] %s", 1, 1, jsonstr)); String.format("tellraw @a[score_mod=%d,score_mod_min=%d] %s", 1, 1, jsonstr));
} catch (IllegalStateException e) { } else
e.printStackTrace(); PluginMain.Instance.getServer().dispatchCommand(PluginMain.Console,
player.sendMessage("§cAn error occured while sending the message. (IllegalStateException)"); String.format("tellraw @a %s", jsonstr));
return true; } catch (Exception e) {
} catch (IllegalArgumentException e) { TBMCCoreAPI.SendException("An error occured while sending a chat message!", e);
e.printStackTrace(); player.sendMessage("§cAn error occured while sending the message.");
player.sendMessage("§cAn error occured while sending the message. (IllegalArgumentException)"); return true;
return true; }
}
} else
PluginMain.Instance.getServer().dispatchCommand(PluginMain.Console,
String.format("tellraw @a %s", jsonstr));
PluginMain.Instance.getServer().getConsoleSender() PluginMain.Instance.getServer().getConsoleSender()
.sendMessage(String.format("[%s] <%s%s> %s", currentchannel.DisplayName, .sendMessage(String.format("[%s] <%s%s> %s", currentchannel.DisplayName,
(player != null ? player.getDisplayName() : sender.getName()), (player != null ? player.getDisplayName() : sender.getName()),

View file

@ -6,7 +6,6 @@ import net.milkbowl.vault.permission.Permission;
import org.bukkit.Bukkit; import org.bukkit.Bukkit;
import org.bukkit.command.ConsoleCommandSender; import org.bukkit.command.ConsoleCommandSender;
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;
import org.bukkit.plugin.RegisteredServiceProvider; import org.bukkit.plugin.RegisteredServiceProvider;
@ -120,6 +119,7 @@ public class PluginMain extends JavaPlugin { // Translated to Java: 2015.07.15.
} }
private void FlairGetterThreadMethod() { private void FlairGetterThreadMethod() {
int errorcount = 0;
while (!stop) { while (!stop) {
try { try {
String body = TBMCCoreAPI.DownloadString(FlairThreadURL + ".json?limit=1000"); String body = TBMCCoreAPI.DownloadString(FlairThreadURL + ".json?limit=1000");
@ -168,7 +168,11 @@ public class PluginMain extends JavaPlugin { // Translated to Java: 2015.07.15.
Thread.currentThread().interrupt(); Thread.currentThread().interrupt();
} }
} catch (Exception e) { } catch (Exception e) {
LastException = e; errorcount++;
if (errorcount >= 10) {
errorcount = 0;
TBMCCoreAPI.SendException("Error while getting flairs from Reddit!", e);
}
} }
} }
} }
@ -190,8 +194,6 @@ public class PluginMain extends JavaPlugin { // Translated to Java: 2015.07.15.
SetFlair(mp, flair, flairclass, mp.getUserName()); SetFlair(mp, flair, flairclass, mp.getUserName());
} }
public static Exception LastException;
private void SetFlair(ChatPlayer p, String text, String flairclass, String username) { private void SetFlair(ChatPlayer p, String text, String flairclass, String username) {
p.setUserName(username); p.setUserName(username);
p.setFlairState(FlairStates.Recognised); p.setFlairState(FlairStates.Recognised);
@ -200,34 +202,19 @@ public class PluginMain extends JavaPlugin { // Translated to Java: 2015.07.15.
p.SetFlair(Short.parseShort(text), true); p.SetFlair(Short.parseShort(text), true);
return; return;
case "unknown": case "unknown":
if (text.equals("-1")) // If true, only non-presser/can't press; if try {
// false, any flair (but we can still detect if (CheckForJoinDate(p)) {
// can't press) if (text.equals("-1")) // If true, only non-presser/can't press; if false, any flair (but we can still detect can't press)
{
try {
if (CheckForJoinDate(p)) {
p.SetFlair(ChatPlayer.FlairTimeNonPresser); p.SetFlair(ChatPlayer.FlairTimeNonPresser);
} else { else
p.SetFlair(ChatPlayer.FlairTimeCantPress); p.SetFlair(ChatPlayer.FlairTimeNone); // Flair unknown
} } else {
} catch (Exception e) { p.SetFlair(ChatPlayer.FlairTimeCantPress);
p.setFlairState(FlairStates.Commented); // Flair unknown
p.SetFlair(ChatPlayer.FlairTimeNone);
e.printStackTrace();
}
} else {
try {
if (CheckForJoinDate(p)) {
p.setFlairState(FlairStates.Commented); // Flair unknown
p.SetFlair(ChatPlayer.FlairTimeNone);
} else {
p.SetFlair(ChatPlayer.FlairTimeCantPress);
}
} catch (Exception e) {
p.setFlairState(FlairStates.Commented); // Flair unknown
p.SetFlair(ChatPlayer.FlairTimeNone);
e.printStackTrace();
} }
} catch (Exception e) {
p.setFlairState(FlairStates.Commented); // Flair unknown
p.SetFlair(ChatPlayer.FlairTimeNone);
TBMCCoreAPI.SendException("Error while checking join date for player " + p.getPlayerName() + "!", e);
} }
return; return;
default: default:
@ -289,12 +276,8 @@ public class PluginMain extends JavaPlugin { // Translated to Java: 2015.07.15.
PlayerListener.AlphaDeaths = yc.getInt("alphadeaths"); PlayerListener.AlphaDeaths = yc.getInt("alphadeaths");
} }
PluginMain.Instance.getLogger().info("Loaded files!"); PluginMain.Instance.getLogger().info("Loaded files!");
} catch (IOException e) { } catch (Exception e) {
PluginMain.Instance.getLogger().warning("Error!\n" + e); TBMCCoreAPI.SendException("Error while loading chat files!", e);
LastException = e;
} catch (InvalidConfigurationException e) {
PluginMain.Instance.getLogger().warning("Error!\n" + e);
LastException = e;
} }
} }
@ -310,9 +293,8 @@ public class PluginMain extends JavaPlugin { // Translated to Java: 2015.07.15.
yc.set("alphadeaths", PlayerListener.AlphaDeaths); yc.set("alphadeaths", PlayerListener.AlphaDeaths);
yc.save(file); yc.save(file);
PluginMain.Instance.getLogger().info("Saved files!"); PluginMain.Instance.getLogger().info("Saved files!");
} catch (IOException e) { } catch (Exception e) {
PluginMain.Instance.getLogger().warning("Error!\n" + e); TBMCCoreAPI.SendException("Error while loading chat files!", e);
LastException = e;
} }
} }

View file

@ -9,6 +9,7 @@ import buttondevteam.chat.ChatPlayer;
import buttondevteam.chat.FlairStates; import buttondevteam.chat.FlairStates;
import buttondevteam.chat.PlayerJoinTimerTask; import buttondevteam.chat.PlayerJoinTimerTask;
import buttondevteam.chat.PluginMain; import buttondevteam.chat.PluginMain;
import buttondevteam.lib.TBMCCoreAPI;
import buttondevteam.lib.TBMCPlayer; import buttondevteam.lib.TBMCPlayer;
public class AcceptCommand extends UCommandBase { public class AcceptCommand extends UCommandBase {
@ -65,7 +66,8 @@ public class AcceptCommand extends UCommandBase {
try { try {
PluginMain.Instance.DownloadFlair(mp); PluginMain.Instance.DownloadFlair(mp);
} catch (Exception e) { } catch (Exception e) {
e.printStackTrace(); TBMCCoreAPI.SendException(
"An error occured while downloading flair for " + player.getCustomName() + "!", e);
player.sendMessage( player.sendMessage(
"Sorry, but an error occured while trying to get your flair. Please contact a mod."); "Sorry, but an error occured while trying to get your flair. Please contact a mod.");
mp.Working = false; mp.Working = false;

View file

@ -1,33 +0,0 @@
package buttondevteam.chat.commands.ucmds.admin;
import org.bukkit.command.CommandSender;
import buttondevteam.chat.PluginMain;
public class GetLastErrorCommand extends AdminCommandBase {
@Override
public String[] GetHelpText(String alias) {
return new String[] { "§6---- Get last error ----",
"This command returns the last exception",
"Note that not all exceptions are recorded" };
}
@Override
public boolean OnCommand(CommandSender sender, String alias,
String[] args) {
if (PluginMain.LastException != null) {
sender.sendMessage("Last error:");
sender.sendMessage(PluginMain.LastException.toString());
PluginMain.LastException = null;
} else
sender.sendMessage("There were no exceptions.");
return true;
}
@Override
public String GetAdminCommandPath() {
return "getlasterror";
}
}