Implement new error handler and bug reporting system

This commit is contained in:
kaenganxt
2014-11-18 21:36:08 +01:00
parent d22b642481
commit f98ff82131
39 changed files with 1602 additions and 1420 deletions

View File

@@ -2,7 +2,6 @@ package de.anura.core.API;
import de.anura.core.AnuraCore; import de.anura.core.AnuraCore;
import java.sql.ResultSet; import java.sql.ResultSet;
import java.sql.SQLException;
import java.util.HashMap; import java.util.HashMap;
import java.util.Map; import java.util.Map;
import java.util.Set; import java.util.Set;
@@ -27,6 +26,9 @@ public class Core {
* @return The working MySQL Object * @return The working MySQL Object
*/ */
public static MySQL getMySql() { public static MySQL getMySql() {
if (AnuraCore.getSql() == null) {
return null;
}
if (!AnuraCore.getSql().isValid) { if (!AnuraCore.getSql().isValid) {
return null; return null;
} }
@@ -111,22 +113,24 @@ public class Core {
* @return Returns the short language name of the player (like de or en) * @return Returns the short language name of the player (like de or en)
*/ */
public static String getPlayerLang(CommandSender P) { public static String getPlayerLang(CommandSender P) {
try {
if (!(P instanceof Player)) { if (!(P instanceof Player)) {
return "en"; return "en";
} }
Player p = (Player) P; Player p = (Player) P;
if (!Core.cachedPlayerLanguage.containsKey(p)) { if (!Core.cachedPlayerLanguage.containsKey(p)) {
ResultSet rs = AnuraCore.sql.querySelect("SELECT lang FROM players WHERE uuid = '" + p.getUniqueId().toString() + "'"); ResultSet rs = AnuraCore.sql.querySelect("SELECT lang FROM players WHERE uuid = '" + p.getUniqueId().toString() + "'");
try {
rs.first(); rs.first();
Core.cachedPlayerLanguage.put(p, rs.getString("lang")); Core.cachedPlayerLanguage.put(p, rs.getString("lang"));
return rs.getString("lang"); return rs.getString("lang");
} catch (SQLException ex) {
System.out.println("SQLException in getPlayerLang of API: " + ex.getLocalizedMessage());
}
} else { } else {
return Core.cachedPlayerLanguage.get(p); return Core.cachedPlayerLanguage.get(p);
} }
} catch (Throwable e) {
Errors.reportException(e);
}
return "en"; return "en";
} }
@@ -187,6 +191,7 @@ public class Core {
} }
public static void endSitting(Player P) { public static void endSitting(Player P) {
try {
if (getMainClass().sittingPlayer.containsKey(P)) { if (getMainClass().sittingPlayer.containsKey(P)) {
MaterialData md = getMainClass().sittingBlocks.get(P).getState().getData(); MaterialData md = getMainClass().sittingBlocks.get(P).getState().getData();
if (md instanceof Stairs) { if (md instanceof Stairs) {
@@ -205,6 +210,9 @@ public class Core {
getMainClass().sittingBlocks.remove(P); getMainClass().sittingBlocks.remove(P);
} }
} }
} catch (Throwable e) {
Errors.reportException(e);
}
} }
public static boolean isInteger(String s) { public static boolean isInteger(String s) {

View File

@@ -0,0 +1,58 @@
package de.anura.core.API;
import java.sql.ResultSet;
import java.util.AbstractMap;
import java.util.Map.Entry;
import java.util.UUID;
import org.bukkit.entity.Player;
public class Errors {
public static void reportException(Throwable exc, String info) {
if (Core.getMySql() == null) {
System.err.println("FATAL ERROR: Error handler fired before init of mysql connection!!");
return;
}
try {
String message = exc.getLocalizedMessage();
String name = exc.getClass().toString();
String server = Core.getMainClass() == null ? "~not available~" : Core.getMainClass().getConfig().getString("server-name");
String errorSql = "INSERT INTO coreErrors (server, exception, msg, info, timestamp) VALUES('" + server + "', '" + name + "', '" + message + "', '" + info + "', '" + System.currentTimeMillis() / 1000 + "')";
Core.getMySql().queryUpdate(errorSql);
ResultSet rs = Core.getMySql().querySelect("SELECT id FROM coreErrors ORDER BY id DESC LIMIT 1");
rs.first();
int id = rs.getInt("id");
String elemSql = "INSERT INTO coreErrorStack(errorId, className, fileName, methodName, lineNumber, nativeMethod) VALUES";
boolean first = true;
for(StackTraceElement elem : exc.getStackTrace()) {
if (!first) {
elemSql += ",";
} else {
first = false;
}
elemSql += "('" + id + "', '" + elem.getClassName() + "', '" + elem.getFileName() + "', '" + elem.getMethodName() + "', '" + elem.getLineNumber() + "', " + elem.isNativeMethod() + ")";
}
Core.getMySql().queryUpdate(elemSql);
} catch (Throwable ex) {
System.err.println("FATAL ERROR: Error handler generated an exception!! (" + ex.getLocalizedMessage() + ")");
ex.printStackTrace();
}
}
public static void reportException(Throwable exc) {
reportException(exc, "");
}
public static void bugReport(Player P, String msg, Entry<String, Object>... data) {
UUID uuid = P.getUniqueId();
String dataText = "";
for(Entry<String, Object> date : data) {
dataText += date.getKey() + ":" + date.getValue().toString() + ";";
}
Core.getMySql().queryUpdate("INSERT INTO serverBugs(player, msg, data, timestamp) VALUES ((SELECT id FROM players WHERE uuid = '" + uuid.toString() + "'), '" + msg + "', '" + dataText + "', '" + System.currentTimeMillis() / 1000 + "')");
}
public static Entry<String, Object> make(String key, Object value) {
return new AbstractMap.SimpleEntry<>(key, value);
}
}

View File

@@ -3,7 +3,6 @@ package de.anura.core.API;
import de.anura.core.AnuraCore; import de.anura.core.AnuraCore;
import java.io.ByteArrayOutputStream; import java.io.ByteArrayOutputStream;
import java.io.DataOutputStream; import java.io.DataOutputStream;
import java.io.IOException;
import java.util.AbstractMap; import java.util.AbstractMap;
import java.util.Arrays; import java.util.Arrays;
import java.util.HashMap; import java.util.HashMap;
@@ -193,16 +192,13 @@ public class Inventories implements Listener {
} }
public static void executeAction(Player P, Action action, Object data) { public static void executeAction(Player P, Action action, Object data) {
if (action == Action.SERVER) {
try { try {
if (action == Action.SERVER) {
ByteArrayOutputStream b = new ByteArrayOutputStream(); ByteArrayOutputStream b = new ByteArrayOutputStream();
DataOutputStream out = new DataOutputStream(b); DataOutputStream out = new DataOutputStream(b);
out.writeUTF("Connect"); out.writeUTF("Connect");
out.writeUTF((String) data); out.writeUTF((String) data);
P.sendPluginMessage(AnuraCore.getInstance(), "BungeeCord", b.toByteArray()); P.sendPluginMessage(AnuraCore.getInstance(), "BungeeCord", b.toByteArray());
} catch (IOException ex) {
System.err.println("IOException whilst trying to connect to " + data);
}
} else if (action == Action.MESSAGE) { } else if (action == Action.MESSAGE) {
Core.statusMsg(P, (String) data, true); Core.statusMsg(P, (String) data, true);
} else if (action == Action.OPEN_INV) { } else if (action == Action.OPEN_INV) {
@@ -221,6 +217,9 @@ public class Inventories implements Listener {
} }
Core.statusMsg(P, "lang_changed", true); Core.statusMsg(P, "lang_changed", true);
} }
} catch(Throwable e) {
Errors.reportException(e);
}
} }
public static void addInvItems(Player P) { public static void addInvItems(Player P) {
@@ -235,6 +234,7 @@ public class Inventories implements Listener {
@EventHandler @EventHandler
public void onInvClick(InventoryClickEvent event) { public void onInvClick(InventoryClickEvent event) {
try {
if (checkInteracts.containsKey((Player) event.getWhoClicked()) && !checkInteracts.get((Player) event.getWhoClicked())) { if (checkInteracts.containsKey((Player) event.getWhoClicked()) && !checkInteracts.get((Player) event.getWhoClicked())) {
return; return;
} }
@@ -264,10 +264,14 @@ public class Inventories implements Listener {
player.setItemOnCursor(new ItemStack(Material.AIR)); player.setItemOnCursor(new ItemStack(Material.AIR));
player.updateInventory(); player.updateInventory();
} }
} catch(Throwable e) {
Errors.reportException(e);
}
} }
@EventHandler @EventHandler
public void onPlayerInteract(PlayerInteractEvent event) { public void onPlayerInteract(PlayerInteractEvent event) {
try {
if (checkInteracts.containsKey((Player) event.getPlayer()) && !checkInteracts.get((Player) event.getPlayer())) { if (checkInteracts.containsKey((Player) event.getPlayer()) && !checkInteracts.get((Player) event.getPlayer())) {
return; return;
} }
@@ -287,6 +291,9 @@ public class Inventories implements Listener {
} }
} }
} }
} catch(Throwable e) {
Errors.reportException(e);
}
} }
@EventHandler(priority=EventPriority.HIGH) @EventHandler(priority=EventPriority.HIGH)

View File

@@ -1,7 +1,6 @@
package de.anura.core.API; package de.anura.core.API;
import java.sql.ResultSet; import java.sql.ResultSet;
import java.sql.SQLException;
import java.util.HashMap; import java.util.HashMap;
import org.bukkit.Bukkit; import org.bukkit.Bukkit;
import org.bukkit.Statistic; import org.bukkit.Statistic;
@@ -14,6 +13,7 @@ public final class Level {
private static final HashMap<Player, Integer> ffLevel = new HashMap<>(); private static final HashMap<Player, Integer> ffLevel = new HashMap<>();
public Level() { public Level() {
try {
for (Player P : Bukkit.getOnlinePlayers()) { for (Player P : Bukkit.getOnlinePlayers()) {
Core.getMainClass().joinTime.put(P, (int) (System.currentTimeMillis() / 1000)); Core.getMainClass().joinTime.put(P, (int) (System.currentTimeMillis() / 1000));
Core.getMainClass().aimTheWaterWins.put(P, 0); Core.getMainClass().aimTheWaterWins.put(P, 0);
@@ -27,6 +27,9 @@ public final class Level {
} }
}, 20 * 60, 20 * 60); }, 20 * 60, 20 * 60);
} catch(Throwable e) {
Errors.reportException(e);
}
} }
public void saveStuffAll() { public void saveStuffAll() {
@@ -61,8 +64,8 @@ public final class Level {
anuraLevel.put(P, (int) rs.getDouble("level")); anuraLevel.put(P, (int) rs.getDouble("level"));
smashLevel.put(P, rs.getInt("smashLevel")); smashLevel.put(P, rs.getInt("smashLevel"));
ffLevel.put(P, rs.getInt("ffLevel")); ffLevel.put(P, rs.getInt("ffLevel"));
} catch (SQLException ex) { } catch(Throwable e) {
System.err.println("Error whilst loading player level"); Errors.reportException(e);
} }
} }
@@ -73,16 +76,16 @@ public final class Level {
} }
public void update(Player P) { public void update(Player P) {
try {
if (!anuraLevel.containsKey(P)) { if (!anuraLevel.containsKey(P)) {
return; return;
} }
saveStuff(P); saveStuff(P);
try {
String whereClause = " = (SELECT id FROM players WHERE uuid = '" + P.getUniqueId().toString() + "')"; String whereClause = " = (SELECT id FROM players WHERE uuid = '" + P.getUniqueId().toString() + "')";
ResultSet stats = Core.getMySql().querySelect("SELECT * FROM coreStats WHERE player" + whereClause); ResultSet stats = Core.getMySql().querySelect("SELECT * FROM coreStats WHERE player" + whereClause);
ResultSet features = Core.getMySql().querySelect("SELECT count(*) as features FROM coreFeatures WHERE playerId" + whereClause); ResultSet features = Core.getMySql().querySelect("SELECT count(*) as features FROM coreFeatures WHERE playerId" + whereClause);
ResultSet pots = Core.getMySql().querySelect("SELECT count(*) as pots FROM coreFoundPots WHERE player" + whereClause); ResultSet pots = Core.getMySql().querySelect("SELECT count(*) as pots FROM coreFoundPots WHERE player" + whereClause);
ResultSet stages = Core.getMySql().querySelect("SELECT count(*) as stages FROM jumpUsers WHERE userId" + whereClause); ResultSet stages = Core.getMySql().querySelect("SELECT count(*) as stages FROM jumpUsers WHERE playerId" + whereClause);
ResultSet smashClasses = Core.getMySql().querySelect("SELECT count(*) as classes FROM smashClasses WHERE playerId" + whereClause); ResultSet smashClasses = Core.getMySql().querySelect("SELECT count(*) as classes FROM smashClasses WHERE playerId" + whereClause);
stats.first(); stats.first();
features.first(); features.first();
@@ -105,8 +108,8 @@ public final class Level {
anuraLevel.put(P, (int) level); anuraLevel.put(P, (int) level);
smashLevel.put(P, (int) sLevel); smashLevel.put(P, (int) sLevel);
Core.getMySql().queryUpdate("UPDATE coreStats SET level = '" + level + "', smashLevel = '" + sLevel + "' WHERE player" + whereClause); Core.getMySql().queryUpdate("UPDATE coreStats SET level = '" + level + "', smashLevel = '" + sLevel + "' WHERE player" + whereClause);
} catch (SQLException ex) { } catch(Throwable e) {
System.err.println("SQLException whilst updating player level (" + ex.getLocalizedMessage() + ")"); Errors.reportException(e);
} }
} }

View File

@@ -1,7 +1,6 @@
package de.anura.core.API; package de.anura.core.API;
import java.sql.ResultSet; import java.sql.ResultSet;
import java.sql.SQLException;
import java.util.HashMap; import java.util.HashMap;
import org.bukkit.OfflinePlayer; import org.bukkit.OfflinePlayer;
@@ -27,13 +26,13 @@ public class Money {
} }
public static boolean loadMoney(OfflinePlayer P) { public static boolean loadMoney(OfflinePlayer P) {
ResultSet rs = Core.getMySql().querySelect("SELECT money FROM coreStats WHERE player = (SELECT id FROM players WHERE uuid = '" + P.getUniqueId().toString() + "')");
try { try {
ResultSet rs = Core.getMySql().querySelect("SELECT money FROM coreStats WHERE player = (SELECT id FROM players WHERE uuid = '" + P.getUniqueId().toString() + "')");
rs.first(); rs.first();
playerMoney.put(P, rs.getInt("money")); playerMoney.put(P, rs.getInt("money"));
return true; return true;
} catch (SQLException ex) { } catch(Throwable e) {
System.err.println("Could not load money for player " + P.getName()); Errors.reportException(e);
} }
return false; return false;
} }

View File

@@ -40,7 +40,8 @@ public class MySQL {
cfg.options().copyDefaults(true); cfg.options().copyDefaults(true);
try { try {
cfg.save(file); cfg.save(file);
} catch (IOException e) { } catch(Throwable e) {
Errors.reportException(e);
} }
this.host = cfg.getString(dbLoc + "host"); this.host = cfg.getString(dbLoc + "host");
this.port = cfg.getInt(dbLoc + "port"); this.port = cfg.getInt(dbLoc + "port");
@@ -65,9 +66,10 @@ public class MySQL {
Connection connLoc = DriverManager.getConnection("jdbc:mysql://" + this.host + ":" + this.port + "/" + this.db, this.username, this.pw); Connection connLoc = DriverManager.getConnection("jdbc:mysql://" + this.host + ":" + this.port + "/" + this.db, this.username, this.pw);
this.conn = connLoc; this.conn = connLoc;
return true; return true;
} catch (ClassNotFoundException | SQLException e) { } catch(Throwable e) {
return false; Errors.reportException(e);
} }
return false;
} }
private boolean hasConnection() { private boolean hasConnection() {
@@ -79,9 +81,10 @@ public class MySQL {
validConn = false; validConn = false;
} }
return validConn; return validConn;
} catch (SQLException e) { } catch(Throwable e) {
return false; Errors.reportException(e);
} }
return false;
} }
private Boolean reconnect() { private Boolean reconnect() {
@@ -128,8 +131,8 @@ public class MySQL {
try { try {
st = connLoc.prepareStatement(query); st = connLoc.prepareStatement(query);
st.executeUpdate(); st.executeUpdate();
} catch (SQLException e) { } catch(Throwable e) {
System.err.println("Failed to send Update '" + query + "'! (" + e.getLocalizedMessage() + ")"); Errors.reportException(e);
} }
this.closeRessources(null, st); this.closeRessources(null, st);
} }
@@ -147,8 +150,8 @@ public class MySQL {
} else { } else {
return returns; return returns;
} }
} catch (SQLException e) { } catch(Throwable e) {
System.err.println("Unknown error whilst trying to build Prepared Statement!"); Errors.reportException(e);
queryRedo(query, "select"); queryRedo(query, "select");
} }
return null; return null;
@@ -161,28 +164,23 @@ public class MySQL {
ResultSet rs; ResultSet rs;
try { try {
rs = st.executeQuery(); rs = st.executeQuery();
} catch (SQLException e) { } catch(Throwable e) {
System.err.println("Failed to send 'SELECT'-Query!(" + st.toString() + ") Will try to reconnect to database just in case... you know..."); Errors.reportException(e);
System.err.println("Caused by: " + e.getMessage());
return null; return null;
} }
return rs; return rs;
} }
private void closeRessources(ResultSet rs, PreparedStatement st) { private void closeRessources(ResultSet rs, PreparedStatement st) {
if (rs != null) {
try { try {
if (rs != null) {
rs.close(); rs.close();
} catch (SQLException e) {
}
} }
if (st != null) { if (st != null) {
try {
st.close(); st.close();
} catch (SQLException e) {
} }
} catch(Throwable e) {
Errors.reportException(e);
} }
} }
@@ -191,7 +189,8 @@ public class MySQL {
if (this.conn != null) { if (this.conn != null) {
this.conn.close(); this.conn.close();
} }
} catch (SQLException e) { } catch (Throwable e) {
Errors.reportException(e);
} finally { } finally {
this.conn = null; this.conn = null;
} }

View File

@@ -1,13 +1,13 @@
package de.anura.core; package de.anura.core;
import de.anura.core.API.Core; import de.anura.core.API.Core;
import de.anura.core.API.Errors;
import de.anura.core.API.Level; import de.anura.core.API.Level;
import de.anura.core.API.Money; import de.anura.core.API.Money;
import de.anura.core.API.MySQL; import de.anura.core.API.MySQL;
import de.anura.core.API.Tools; import de.anura.core.API.Tools;
import java.awt.image.BufferedImage; import java.awt.image.BufferedImage;
import java.io.File; import java.io.File;
import java.io.IOException;
import java.util.ArrayList; import java.util.ArrayList;
import java.util.HashMap; import java.util.HashMap;
import org.bukkit.Bukkit; import org.bukkit.Bukkit;
@@ -50,6 +50,7 @@ public class AnuraCore extends JavaPlugin {
@Override @Override
public void onEnable() { public void onEnable() {
try {
AnuraCore.sql = new MySQL(this); AnuraCore.sql = new MySQL(this);
AnuraCore.instance = this; AnuraCore.instance = this;
if (AnuraCore.sql.isValid) { if (AnuraCore.sql.isValid) {
@@ -74,10 +75,14 @@ public class AnuraCore extends JavaPlugin {
} else { } else {
Bukkit.getPluginManager().disablePlugin(this); Bukkit.getPluginManager().disablePlugin(this);
} }
} catch (Throwable e) {
Errors.reportException(e);
}
} }
@Override @Override
public void onDisable() { public void onDisable() {
try {
if (!AnuraCore.sql.isValid) { if (!AnuraCore.sql.isValid) {
return; return;
} }
@@ -86,17 +91,17 @@ public class AnuraCore extends JavaPlugin {
} }
File configFile = new File("plugins/Core/", "config.yml"); File configFile = new File("plugins/Core/", "config.yml");
File dbFile = new File("plugins/Core", "database.yml"); File dbFile = new File("plugins/Core", "database.yml");
try {
AnuraCore.sql.config.save(dbFile); AnuraCore.sql.config.save(dbFile);
this.getConfig().save(configFile); this.getConfig().save(configFile);
} catch (IOException e) {
}
sql.queryUpdate("DELETE FROM coreServers WHERE name = '" + this.getConfig().getString("server-name") + "'"); sql.queryUpdate("DELETE FROM coreServers WHERE name = '" + this.getConfig().getString("server-name") + "'");
features.reset(); features.reset();
level.update(); level.update();
for (Player P : this.sittingPlayer.keySet()) { for (Player P : this.sittingPlayer.keySet()) {
Core.endSitting(P); Core.endSitting(P);
} }
} catch (Throwable e) {
Errors.reportException(e);
}
} }
public static AnuraCore getInstance() { public static AnuraCore getInstance() {

View File

@@ -1,9 +1,9 @@
package de.anura.core; package de.anura.core;
import de.anura.core.API.Core; import de.anura.core.API.Core;
import de.anura.core.API.Errors;
import de.anura.core.API.Inventories; import de.anura.core.API.Inventories;
import java.sql.ResultSet; import java.sql.ResultSet;
import java.sql.SQLException;
import java.util.ArrayList; import java.util.ArrayList;
import java.util.HashMap; import java.util.HashMap;
import java.util.UUID; import java.util.UUID;
@@ -56,10 +56,10 @@ public class Features implements Listener {
public static ArrayList<UUID> wantFlight = new ArrayList<>(); public static ArrayList<UUID> wantFlight = new ArrayList<>();
public void updateFeatures(Player P) { public void updateFeatures(Player P) {
try {
if (!mainLobby()) { if (!mainLobby()) {
return; return;
} }
try {
ResultSet rs = Core.getMySql().querySelect("SELECT featureId FROM coreFeatures WHERE playerId = (SELECT id FROM players WHERE uuid = '" + P.getUniqueId().toString() + "')"); ResultSet rs = Core.getMySql().querySelect("SELECT featureId FROM coreFeatures WHERE playerId = (SELECT id FROM players WHERE uuid = '" + P.getUniqueId().toString() + "')");
resetPlayerFeatures(P); resetPlayerFeatures(P);
playerFeatures.put(P, new ArrayList<Feature>()); playerFeatures.put(P, new ArrayList<Feature>());
@@ -75,8 +75,8 @@ public class Features implements Listener {
featureEnabled.get(P).put(Feature.getById(rs.getInt("featureId")), true); featureEnabled.get(P).put(Feature.getById(rs.getInt("featureId")), true);
} }
} }
} catch (SQLException ex) { } catch (Throwable e) {
System.err.println("Could not update player features because of a sql exception: " + ex.getLocalizedMessage()); Errors.reportException(e);
} }
} }
@@ -96,6 +96,7 @@ public class Features implements Listener {
} }
public void disableFeature(Player P, Feature f) { public void disableFeature(Player P, Feature f) {
try {
if (!mainLobby()) { if (!mainLobby()) {
return; return;
} }
@@ -118,9 +119,13 @@ public class Features implements Listener {
featureEnabled.get(P).put(f, false); featureEnabled.get(P).put(f, false);
Core.statusMsg(P, "boat_off", true); Core.statusMsg(P, "boat_off", true);
} }
} catch (Throwable e) {
Errors.reportException(e);
}
} }
public void enableFeature(Player P, Feature f) { public void enableFeature(Player P, Feature f) {
try {
if (!mainLobby()) { if (!mainLobby()) {
return; return;
} }
@@ -141,6 +146,9 @@ public class Features implements Listener {
featureEnabled.get(P).put(f, true); featureEnabled.get(P).put(f, true);
Core.statusMsg(P, "boat_on", true); Core.statusMsg(P, "boat_on", true);
} }
} catch (Throwable e) {
Errors.reportException(e);
}
} }
public boolean hasFeature(Player P, Feature f) { public boolean hasFeature(Player P, Feature f) {
@@ -198,6 +206,7 @@ public class Features implements Listener {
@EventHandler @EventHandler
public void onPlayerMove(PlayerMoveEvent event) { public void onPlayerMove(PlayerMoveEvent event) {
try {
if (!mainLobby()) { if (!mainLobby()) {
return; return;
} }
@@ -215,10 +224,14 @@ public class Features implements Listener {
b.setPassenger(P); b.setPassenger(P);
} }
} }
} catch (Throwable e) {
Errors.reportException(e);
}
} }
@EventHandler @EventHandler
public void onToggleFlight(PlayerToggleFlightEvent event) { public void onToggleFlight(PlayerToggleFlightEvent event) {
try {
if (!mainLobby()) { if (!mainLobby()) {
return; return;
} }
@@ -237,17 +250,25 @@ public class Features implements Listener {
} }
event.setCancelled(true); event.setCancelled(true);
} }
} catch (Throwable e) {
Errors.reportException(e);
}
} }
@EventHandler @EventHandler
public void onBoatDestory(VehicleDestroyEvent event) { public void onBoatDestory(VehicleDestroyEvent event) {
try {
if (event.getVehicle().getType().equals(EntityType.BOAT) && AnuraCore.getInstance().getConfig().getBoolean("is-main-lobby")) { if (event.getVehicle().getType().equals(EntityType.BOAT) && AnuraCore.getInstance().getConfig().getBoolean("is-main-lobby")) {
event.setCancelled(true); event.setCancelled(true);
} }
} catch (Throwable e) {
Errors.reportException(e);
}
} }
@EventHandler @EventHandler
public void onExit(VehicleExitEvent event) { public void onExit(VehicleExitEvent event) {
try {
if (event.getVehicle().getType().equals(EntityType.BOAT) && AnuraCore.getInstance().getConfig().getBoolean("is-main-lobby")) { if (event.getVehicle().getType().equals(EntityType.BOAT) && AnuraCore.getInstance().getConfig().getBoolean("is-main-lobby")) {
event.getVehicle().remove(); event.getVehicle().remove();
Player p = (Player) event.getExited(); Player p = (Player) event.getExited();
@@ -256,5 +277,8 @@ public class Features implements Listener {
p.setFlying(true); p.setFlying(true);
} }
} }
} catch (Throwable e) {
Errors.reportException(e);
}
} }
} }

View File

@@ -1,9 +1,9 @@
package de.anura.core; package de.anura.core;
import de.anura.core.API.Core; import de.anura.core.API.Core;
import de.anura.core.API.Errors;
import de.anura.core.API.Money; import de.anura.core.API.Money;
import java.sql.ResultSet; import java.sql.ResultSet;
import java.sql.SQLException;
import java.util.HashMap; import java.util.HashMap;
import java.util.Map; import java.util.Map;
import org.bukkit.ChatColor; import org.bukkit.ChatColor;
@@ -56,8 +56,8 @@ public class FlowerPots {
} }
this.foundCache.put(P, list); this.foundCache.put(P, list);
this.foundTimestamp.put(P, listTimes); this.foundTimestamp.put(P, listTimes);
} catch (SQLException ex) { } catch (Throwable e) {
System.out.println("Error refreshCache(FlowerPots)"); Errors.reportException(e);
} }
} }
@@ -88,6 +88,7 @@ public class FlowerPots {
} }
public void playerFoundPot(Player P, Integer pot) { public void playerFoundPot(Player P, Integer pot) {
try {
if (!foundPot(P, pot)) { if (!foundPot(P, pot)) {
Integer time = getPotWaitTime(pot); Integer time = getPotWaitTime(pot);
boolean alreadyFound = foundCache.get(P).containsKey(pot); boolean alreadyFound = foundCache.get(P).containsKey(pot);
@@ -112,7 +113,6 @@ public class FlowerPots {
} }
P.playSound(loc, Sound.LEVEL_UP, 1, (float) 1.5); P.playSound(loc, Sound.LEVEL_UP, 1, (float) 1.5);
ResultSet rs = AnuraCore.getSql().querySelect("SELECT url, name, money FROM corePots WHERE id = '" + pot + "'"); ResultSet rs = AnuraCore.getSql().querySelect("SELECT url, name, money FROM corePots WHERE id = '" + pot + "'");
try {
rs.first(); rs.first();
Money.payMoney(P, rs.getInt("money")); Money.payMoney(P, rs.getInt("money"));
P.sendMessage(ChatColor.RED + "---------- " + ChatColor.YELLOW + "Achievement" + ChatColor.RED + " ----------"); P.sendMessage(ChatColor.RED + "---------- " + ChatColor.YELLOW + "Achievement" + ChatColor.RED + " ----------");
@@ -120,9 +120,6 @@ public class FlowerPots {
P.sendMessage("" + ChatColor.GOLD + ChatColor.UNDERLINE + rs.getString("url")); P.sendMessage("" + ChatColor.GOLD + ChatColor.UNDERLINE + rs.getString("url"));
P.sendMessage(""); P.sendMessage("");
P.sendMessage(ChatColor.RED + "---------- " + ChatColor.YELLOW + "Achievement" + ChatColor.RED + " ----------"); P.sendMessage(ChatColor.RED + "---------- " + ChatColor.YELLOW + "Achievement" + ChatColor.RED + " ----------");
} catch (SQLException ex) {
System.out.println("Error playerFoundPot(FlowerPot)");
}
} else if (getPotWaitTime(pot) != -1 && foundCache.containsKey(P) && foundCache.get(P).containsKey(pot) && foundTimestamp.containsKey(P) && foundTimestamp.get(P).containsKey(pot)) { } else if (getPotWaitTime(pot) != -1 && foundCache.containsKey(P) && foundCache.get(P).containsKey(pot) && foundTimestamp.containsKey(P) && foundTimestamp.get(P).containsKey(pot)) {
int current = (int) (System.currentTimeMillis() / 1000); int current = (int) (System.currentTimeMillis() / 1000);
int found = foundTimestamp.get(P).get(pot); int found = foundTimestamp.get(P).get(pot);
@@ -145,5 +142,8 @@ public class FlowerPots {
P.sendMessage(text); P.sendMessage(text);
} }
} catch (Throwable e) {
Errors.reportException(e);
}
} }
} }

View File

@@ -1,7 +1,7 @@
package de.anura.core; package de.anura.core;
import de.anura.core.API.Errors;
import java.sql.ResultSet; import java.sql.ResultSet;
import java.sql.SQLException;
import java.util.HashMap; import java.util.HashMap;
import org.bukkit.ChatColor; import org.bukkit.ChatColor;
@@ -13,8 +13,8 @@ public class LanguageSupport {
public LanguageSupport(AnuraCore plugin) { public LanguageSupport(AnuraCore plugin) {
this.plugin = plugin; this.plugin = plugin;
ResultSet al = AnuraCore.sql.querySelect("SELECT name, short_name FROM coreAvailableLanguages");
try { try {
ResultSet al = AnuraCore.sql.querySelect("SELECT name, short_name FROM coreAvailableLanguages");
if (!al.next()) { if (!al.next()) {
return; return;
} }
@@ -31,8 +31,8 @@ public class LanguageSupport {
languageValues.get(lang).put(lv.getString("id"), lv.getString(lang)); languageValues.get(lang).put(lv.getString("id"), lv.getString(lang));
} }
} }
} catch (SQLException ex) { } catch (Throwable e) {
System.out.println("Language data could not be loaded: " + ex.getLocalizedMessage()); Errors.reportException(e);
} }
} }

View File

@@ -1,7 +1,7 @@
package de.anura.core; package de.anura.core;
import de.anura.core.API.Errors;
import java.sql.ResultSet; import java.sql.ResultSet;
import java.sql.SQLException;
import java.util.ArrayList; import java.util.ArrayList;
import java.util.HashMap; import java.util.HashMap;
@@ -81,6 +81,7 @@ public final class Permissions implements Listener {
} }
public void updatePlayer(Player P) { public void updatePlayer(Player P) {
try {
PermissionAttachment pa = this.permAttachments.get(P); PermissionAttachment pa = this.permAttachments.get(P);
for (String p : pa.getPermissions().keySet()) { for (String p : pa.getPermissions().keySet()) {
pa.unsetPermission(p); pa.unsetPermission(p);
@@ -118,6 +119,9 @@ public final class Permissions implements Listener {
String name = prefixes + P.getName() + suffixes; String name = prefixes + P.getName() + suffixes;
P.setDisplayName(name); P.setDisplayName(name);
P.setPlayerListName(listColor + P.getName()); P.setPlayerListName(listColor + P.getName());
} catch (Throwable e) {
Errors.reportException(e);
}
} }
private ArrayList<String> getParentPerms(Integer group, ArrayList<Integer> assigned) { private ArrayList<String> getParentPerms(Integer group, ArrayList<Integer> assigned) {
@@ -138,6 +142,7 @@ public final class Permissions implements Listener {
} }
public String reload() { public String reload() {
try {
ResultSet groupsRs = AnuraCore.sql.querySelect("SELECT prefix, suffix, parent, name, id, listColor FROM permGroups"); ResultSet groupsRs = AnuraCore.sql.querySelect("SELECT prefix, suffix, parent, name, id, listColor FROM permGroups");
ResultSet permsRs = AnuraCore.sql.querySelect("SELECT `group`, name FROM permPerms"); ResultSet permsRs = AnuraCore.sql.querySelect("SELECT `group`, name FROM permPerms");
ResultSet userRs = AnuraCore.sql.querySelect("SELECT playerUUID, `group` FROM permPlayerGroups"); ResultSet userRs = AnuraCore.sql.querySelect("SELECT playerUUID, `group` FROM permPlayerGroups");
@@ -149,7 +154,6 @@ public final class Permissions implements Listener {
this.groupSuffix.clear(); this.groupSuffix.clear();
HashMap<Integer, Integer> groupIds = new HashMap<>(); HashMap<Integer, Integer> groupIds = new HashMap<>();
this.groupAutoIncrement = 0; this.groupAutoIncrement = 0;
try {
groupsRs.last(); groupsRs.last();
if (groupsRs.getRow() != 0) { if (groupsRs.getRow() != 0) {
groupsRs.beforeFirst(); groupsRs.beforeFirst();
@@ -198,8 +202,8 @@ public final class Permissions implements Listener {
} }
} }
} catch (SQLException ex) { } catch (Throwable e) {
System.err.println("Was not able to load permissions. Sorry. (" + ex.getLocalizedMessage() + ")"); Errors.reportException(e);
} }
return ChatColor.GREEN + "Permissions reloaded!"; return ChatColor.GREEN + "Permissions reloaded!";
} }

View File

@@ -1,6 +1,7 @@
package de.anura.core; package de.anura.core;
import de.anura.core.API.Core; import de.anura.core.API.Core;
import de.anura.core.API.Errors;
import java.util.Calendar; import java.util.Calendar;
import java.util.Date; import java.util.Date;
import java.util.GregorianCalendar; import java.util.GregorianCalendar;
@@ -10,6 +11,7 @@ import org.bukkit.World;
public class RealTime { public class RealTime {
public static void setup() { public static void setup() {
try {
if (Core.getMainClass().getConfig().getBoolean("realtime-day")) { if (Core.getMainClass().getConfig().getBoolean("realtime-day")) {
for (World world : Bukkit.getWorlds()) { for (World world : Bukkit.getWorlds()) {
world.setGameRuleValue("doDaylightCycle", "false"); world.setGameRuleValue("doDaylightCycle", "false");
@@ -24,6 +26,9 @@ public class RealTime {
} }
}, 0, (20 * 60 * 10)); }, 0, (20 * 60 * 10));
} }
} catch (Throwable e) {
Errors.reportException(e);
}
} }
private static Integer[] getSystemTime() { private static Integer[] getSystemTime() {

View File

@@ -1,6 +1,7 @@
package de.anura.core; package de.anura.core;
import de.anura.core.API.Core; import de.anura.core.API.Core;
import de.anura.core.API.Errors;
import de.anura.core.API.Inventories; import de.anura.core.API.Inventories;
import de.anura.core.API.Level; import de.anura.core.API.Level;
import de.anura.core.API.Tools; import de.anura.core.API.Tools;
@@ -31,7 +32,6 @@ import de.anura.core.events.PlayerTeleport;
import de.anura.core.events.SignChange; import de.anura.core.events.SignChange;
import de.anura.core.events.WeatherChange; import de.anura.core.events.WeatherChange;
import java.sql.ResultSet; import java.sql.ResultSet;
import java.sql.SQLException;
import org.bukkit.Bukkit; import org.bukkit.Bukkit;
import org.bukkit.ChatColor; import org.bukkit.ChatColor;
import org.bukkit.Location; import org.bukkit.Location;
@@ -53,7 +53,7 @@ public class Setup {
Core.getMainClass().getConfig().addDefault("no-hunger", false); Core.getMainClass().getConfig().addDefault("no-hunger", false);
Core.getMainClass().getConfig().addDefault("no-rain", false); Core.getMainClass().getConfig().addDefault("no-rain", false);
Core.getMainClass().getConfig().addDefault("enable-leaves-decay", true); Core.getMainClass().getConfig().addDefault("enable-leaves-decay", true);
Core.getMainClass().getConfig().addDefault("server-name", "lobby"); Core.getMainClass().getConfig().addDefault("server-name", "none");
Core.getMainClass().getConfig().addDefault("allow-stairs-sit", false); Core.getMainClass().getConfig().addDefault("allow-stairs-sit", false);
Core.getMainClass().getConfig().addDefault("disable-mushroom-spread", false); Core.getMainClass().getConfig().addDefault("disable-mushroom-spread", false);
Core.getMainClass().getConfig().addDefault("on-join-to-spawn", false); Core.getMainClass().getConfig().addDefault("on-join-to-spawn", false);
@@ -88,6 +88,7 @@ public class Setup {
} }
public static void setupClasses() { public static void setupClasses() {
try {
Core.getMainClass().lang = new LanguageSupport(Core.getMainClass()); Core.getMainClass().lang = new LanguageSupport(Core.getMainClass());
new Inventories(Core.getMainClass()); new Inventories(Core.getMainClass());
setupInventories(); setupInventories();
@@ -98,7 +99,6 @@ public class Setup {
Core.getMainClass().level = new Level(); Core.getMainClass().level = new Level();
RealTime.setup(); RealTime.setup();
ResultSet rs = sql.querySelect("SELECT id, X, Y, Z, world, type, waitTime FROM corePots"); ResultSet rs = sql.querySelect("SELECT id, X, Y, Z, world, type, waitTime FROM corePots");
try {
while (rs.next()) { while (rs.next()) {
World w = Bukkit.getWorld(rs.getString("world")); World w = Bukkit.getWorld(rs.getString("world"));
if (w == null) { if (w == null) {
@@ -111,14 +111,15 @@ public class Setup {
} }
l.getBlock().setType(Material.BROWN_MUSHROOM); l.getBlock().setType(Material.BROWN_MUSHROOM);
} }
} catch (SQLException ex) {
System.err.println("Error whilst trying to setup flower pots");
}
Core.getMainClass().features = new Features(); Core.getMainClass().features = new Features();
Core.getMainClass().features.updateFeaturesAll(); Core.getMainClass().features.updateFeaturesAll();
} catch (Throwable e) {
Errors.reportException(e);
}
} }
public static void setupTasks() { public static void setupTasks() {
try {
Bukkit.getScheduler().scheduleSyncRepeatingTask(Core.getMainClass(), new Runnable() { Bukkit.getScheduler().scheduleSyncRepeatingTask(Core.getMainClass(), new Runnable() {
@Override @Override
@@ -143,7 +144,6 @@ public class Setup {
}, 5, 5); }, 5, 5);
ResultSet rs = sql.querySelect("SELECT world, X, Y, Z FROM coreStairs WHERE server = '" + Core.getMainClass().getConfig().getString("server-name") + "'"); ResultSet rs = sql.querySelect("SELECT world, X, Y, Z FROM coreStairs WHERE server = '" + Core.getMainClass().getConfig().getString("server-name") + "'");
try {
while (rs.next()) { while (rs.next()) {
World w = Bukkit.getWorld(rs.getString("world")); World w = Bukkit.getWorld(rs.getString("world"));
if (w == null) { if (w == null) {
@@ -154,9 +154,6 @@ public class Setup {
Core.getMainClass().sittableBlocks.add(l.getBlock()); Core.getMainClass().sittableBlocks.add(l.getBlock());
} }
} }
} catch (SQLException ex) {
System.err.println("Error whilst trying to setup stairs");
}
Bukkit.getScheduler().scheduleSyncRepeatingTask(Core.getMainClass(), new Runnable() { Bukkit.getScheduler().scheduleSyncRepeatingTask(Core.getMainClass(), new Runnable() {
@@ -178,6 +175,9 @@ public class Setup {
AnuraCore.getInstance().signs.updateServerSigns(); AnuraCore.getInstance().signs.updateServerSigns();
} }
}, 20 * 5, 20 * 5); }, 20 * 5, 20 * 5);
} catch (Throwable e) {
Errors.reportException(e);
}
} }
public static void setupCommands() { public static void setupCommands() {
@@ -218,6 +218,7 @@ public class Setup {
} }
private static void setupInventories() { private static void setupInventories() {
try {
Inventories.registerInventory("GAMEMODES", "select_gamemode_inv", ChatColor.DARK_BLUE); Inventories.registerInventory("GAMEMODES", "select_gamemode_inv", ChatColor.DARK_BLUE);
Inventories.putIntoInventory("GAMEMODES", 0, Inventories.buildItems(Material.RED_ROSE, "inv_lobby_tps", ChatColor.DARK_GREEN)); Inventories.putIntoInventory("GAMEMODES", 0, Inventories.buildItems(Material.RED_ROSE, "inv_lobby_tps", ChatColor.DARK_GREEN));
Inventories.putIntoInventory("GAMEMODES", 2, Inventories.buildItems(Material.CARROT_STICK, "inv_lobby_minigames", ChatColor.BLUE)); Inventories.putIntoInventory("GAMEMODES", 2, Inventories.buildItems(Material.CARROT_STICK, "inv_lobby_minigames", ChatColor.BLUE));
@@ -282,5 +283,8 @@ public class Setup {
Inventories.registerItemAction("CHARGE", Inventories.Action.OPEN_INV, "FEATURES"); Inventories.registerItemAction("CHARGE", Inventories.Action.OPEN_INV, "FEATURES");
Inventories.registerItemAction("DOOR", Inventories.Action.COMMAND, "spawn"); Inventories.registerItemAction("DOOR", Inventories.Action.COMMAND, "spawn");
Inventories.registerItemAction("EYE", Inventories.Action.SERVER, "lobby"); Inventories.registerItemAction("EYE", Inventories.Action.SERVER, "lobby");
} catch (Throwable e) {
Errors.reportException(e);
}
} }
} }

View File

@@ -1,6 +1,7 @@
package de.anura.core; package de.anura.core;
import de.anura.core.API.Core; import de.anura.core.API.Core;
import de.anura.core.API.Errors;
import static de.anura.core.AnuraCore.sql; import static de.anura.core.AnuraCore.sql;
import java.io.ByteArrayInputStream; import java.io.ByteArrayInputStream;
import java.io.ByteArrayOutputStream; import java.io.ByteArrayOutputStream;
@@ -21,11 +22,11 @@ import org.bukkit.plugin.messaging.PluginMessageListener;
public class Signs implements PluginMessageListener { public class Signs implements PluginMessageListener {
public void updateServerSigns() { public void updateServerSigns() {
try {
if (Bukkit.getOnlinePlayers().length == 0) { if (Bukkit.getOnlinePlayers().length == 0) {
return; return;
} }
ResultSet rs = sql.querySelect("SELECT DISTINCT value FROM coreWarpSigns WHERE type = 'server' AND server = '" + Core.getMainClass().getConfig().getString("server-name") + "'"); ResultSet rs = sql.querySelect("SELECT DISTINCT value FROM coreWarpSigns WHERE type = 'server' AND server = '" + Core.getMainClass().getConfig().getString("server-name") + "'");
try {
rs.last(); rs.last();
if (rs.getRow() == 0) { if (rs.getRow() == 0) {
return; return;
@@ -92,21 +93,19 @@ public class Signs implements PluginMessageListener {
} }
} }
} }
} catch (SQLException | IOException ex) { } catch (Throwable e) {
System.err.println("Exception in updateServerSigns()(Core): " + ex.getLocalizedMessage()); Errors.reportException(e);
} }
} }
@Override @Override
public void onPluginMessageReceived(String channel, Player player, byte[] message) { public void onPluginMessageReceived(String channel, Player player, byte[] message) {
try {
if (!channel.equals("BungeeCord")) { if (!channel.equals("BungeeCord")) {
return; return;
} }
DataInputStream in = new DataInputStream(new ByteArrayInputStream(message)); DataInputStream in = new DataInputStream(new ByteArrayInputStream(message));
try {
String subchannel = in.readUTF(); String subchannel = in.readUTF();
if (subchannel.equals("PlayerCount")) { if (subchannel.equals("PlayerCount")) {
String server = in.readUTF(); String server = in.readUTF();
@@ -165,8 +164,8 @@ public class Signs implements PluginMessageListener {
Core.getMainClass().perms.reload(); Core.getMainClass().perms.reload();
Core.getMainClass().perms.updateAllPlayers(); Core.getMainClass().perms.updateAllPlayers();
} }
} catch (IOException | SQLException ex) { } catch (Throwable e) {
System.err.println("Exception in updateServerSigns()(Core): " + ex.getLocalizedMessage()); Errors.reportException(e);
} }
} }
} }

View File

@@ -1,6 +1,7 @@
package de.anura.core.commands; package de.anura.core.commands;
import de.anura.core.API.Core; import de.anura.core.API.Core;
import de.anura.core.API.Errors;
import de.anura.core.AnuraCore; import de.anura.core.AnuraCore;
import de.anura.core.LanguageSupport; import de.anura.core.LanguageSupport;
import java.io.File; import java.io.File;
@@ -17,6 +18,7 @@ public class AdminCommands implements CommandExecutor {
@Override @Override
public boolean onCommand(CommandSender sender, Command cmd, String alias, String[] args) { public boolean onCommand(CommandSender sender, Command cmd, String alias, String[] args) {
try {
Player P = null; Player P = null;
if (sender instanceof Player) { if (sender instanceof Player) {
P = (Player) sender; P = (Player) sender;
@@ -78,6 +80,9 @@ public class AdminCommands implements CommandExecutor {
return true; return true;
} }
} }
} catch(Throwable e) {
Errors.reportException(e);
}
return false; return false;
} }
} }

View File

@@ -1,6 +1,7 @@
package de.anura.core.commands; package de.anura.core.commands;
import de.anura.core.API.Core; import de.anura.core.API.Core;
import de.anura.core.API.Errors;
import org.bukkit.Bukkit; import org.bukkit.Bukkit;
import org.bukkit.OfflinePlayer; import org.bukkit.OfflinePlayer;
import org.bukkit.command.BlockCommandSender; import org.bukkit.command.BlockCommandSender;
@@ -14,6 +15,7 @@ public class OtherCommands implements CommandExecutor {
@Override @Override
public boolean onCommand(CommandSender sender, Command cmd, String alias, String[] args) { public boolean onCommand(CommandSender sender, Command cmd, String alias, String[] args) {
try {
Player P = null; Player P = null;
if (sender instanceof Player) { if (sender instanceof Player) {
P = (Player) sender; P = (Player) sender;
@@ -52,7 +54,9 @@ public class OtherCommands implements CommandExecutor {
Core.getMainClass().aimTheWaterWins.put(player, Core.getMainClass().aimTheWaterWins.get(player) + 1); Core.getMainClass().aimTheWaterWins.put(player, Core.getMainClass().aimTheWaterWins.get(player) + 1);
return true; return true;
} }
}
} catch(Throwable e) {
Errors.reportException(e);
} }
return false; return false;
} }

View File

@@ -1,11 +1,11 @@
package de.anura.core.commands; package de.anura.core.commands;
import de.anura.core.API.Core; import de.anura.core.API.Core;
import de.anura.core.API.Errors;
import de.anura.core.API.Money; import de.anura.core.API.Money;
import static de.anura.core.AnuraCore.sql; import static de.anura.core.AnuraCore.sql;
import de.anura.core.Features; import de.anura.core.Features;
import java.sql.ResultSet; import java.sql.ResultSet;
import java.sql.SQLException;
import org.bukkit.Bukkit; import org.bukkit.Bukkit;
import org.bukkit.ChatColor; import org.bukkit.ChatColor;
import org.bukkit.Location; import org.bukkit.Location;
@@ -22,6 +22,7 @@ public class PlayerCommands implements CommandExecutor {
@Override @Override
public boolean onCommand(CommandSender sender, Command cmd, String cmdLabel, String[] args) { public boolean onCommand(CommandSender sender, Command cmd, String cmdLabel, String[] args) {
try {
Player P = null; Player P = null;
if (sender instanceof Player) { if (sender instanceof Player) {
P = (Player) sender; P = (Player) sender;
@@ -187,7 +188,6 @@ public class PlayerCommands implements CommandExecutor {
Core.statusMsg(P, "spawn_tp_done", true); Core.statusMsg(P, "spawn_tp_done", true);
return true; return true;
} else if (cmd.getName().equalsIgnoreCase("warp")) { } else if (cmd.getName().equalsIgnoreCase("warp")) {
try {
if (args.length == 0 || args.length > 2) { if (args.length == 0 || args.length > 2) {
Core.statusMsg(P, "wrong_args_count", false); Core.statusMsg(P, "wrong_args_count", false);
return false; return false;
@@ -240,9 +240,6 @@ public class PlayerCommands implements CommandExecutor {
P.teleport(loc); P.teleport(loc);
Core.statusMsg(P, "warp_tp_done", true); Core.statusMsg(P, "warp_tp_done", true);
return true; return true;
} catch (SQLException ex) {
System.out.println("Error: " + ex.getLocalizedMessage());
}
} else if (cmd.getName().equalsIgnoreCase("money")) { } else if (cmd.getName().equalsIgnoreCase("money")) {
if (args.length == 0) { if (args.length == 0) {
if (P == null) { if (P == null) {
@@ -311,6 +308,9 @@ public class PlayerCommands implements CommandExecutor {
} }
} }
} }
} catch(Throwable e) {
Errors.reportException(e);
}
return false; return false;
} }
} }

View File

@@ -1,6 +1,7 @@
package de.anura.core.commands; package de.anura.core.commands;
import de.anura.core.API.Core; import de.anura.core.API.Core;
import de.anura.core.API.Errors;
import de.anura.core.AnuraCore; import de.anura.core.AnuraCore;
import static de.anura.core.AnuraCore.sql; import static de.anura.core.AnuraCore.sql;
import de.anura.core.Features; import de.anura.core.Features;
@@ -12,7 +13,6 @@ import java.net.MalformedURLException;
import java.net.URI; import java.net.URI;
import java.net.URL; import java.net.URL;
import java.sql.ResultSet; import java.sql.ResultSet;
import java.sql.SQLException;
import javax.imageio.ImageIO; import javax.imageio.ImageIO;
import org.bukkit.Bukkit; import org.bukkit.Bukkit;
import org.bukkit.ChatColor; import org.bukkit.ChatColor;
@@ -33,6 +33,7 @@ public class TeamCommands implements CommandExecutor {
@Override @Override
public boolean onCommand(CommandSender sender, Command cmd, String alias, String[] args) { public boolean onCommand(CommandSender sender, Command cmd, String alias, String[] args) {
try {
Player P = null; Player P = null;
if (sender instanceof Player) { if (sender instanceof Player) {
P = (Player) sender; P = (Player) sender;
@@ -135,17 +136,12 @@ public class TeamCommands implements CommandExecutor {
} }
Core.getMySql().queryUpdate("INSERT INTO corePots(X,Y,Z,world,url,name,money,type) VALUES('" + l.getBlockX() + "','" + l.getBlockY() + "','" + l.getBlockZ() + "','" + l.getWorld().getName() + "','http://mc-anura.de','" + args[0] + "','1','0')"); Core.getMySql().queryUpdate("INSERT INTO corePots(X,Y,Z,world,url,name,money,type) VALUES('" + l.getBlockX() + "','" + l.getBlockY() + "','" + l.getBlockZ() + "','" + l.getWorld().getName() + "','http://mc-anura.de','" + args[0] + "','1','0')");
ResultSet rs = Core.getMySql().querySelect("SELECT id FROM corePots WHERE X = '" + l.getBlockX() + "' AND Y = '" + l.getBlockY() + "' AND Z = '" + l.getBlockZ() + "' AND world = '" + l.getWorld().getName() + "'"); ResultSet rs = Core.getMySql().querySelect("SELECT id FROM corePots WHERE X = '" + l.getBlockX() + "' AND Y = '" + l.getBlockY() + "' AND Z = '" + l.getBlockZ() + "' AND world = '" + l.getWorld().getName() + "'");
try {
rs.first(); rs.first();
Core.getMainClass().flowerPots.put(rs.getInt("id"), new Location(l.getWorld(), l.getBlockX(), l.getBlockY(), l.getBlockZ())); Core.getMainClass().flowerPots.put(rs.getInt("id"), new Location(l.getWorld(), l.getBlockX(), l.getBlockY(), l.getBlockZ()));
l.getBlock().setType(Material.BROWN_MUSHROOM); l.getBlock().setType(Material.BROWN_MUSHROOM);
Core.getMainClass().pots.refreshPot(rs.getInt("id")); Core.getMainClass().pots.refreshPot(rs.getInt("id"));
Core.statusMsg(sender, "set_arch_ok", true); Core.statusMsg(sender, "set_arch_ok", true);
return true; return true;
} catch (SQLException ex) {
System.out.println("Error onCommand. Setpot");
}
} else if (cmd.getName().equalsIgnoreCase("renderMap")) { } else if (cmd.getName().equalsIgnoreCase("renderMap")) {
if (!sender.hasPermission("core.commands.addmap")) { if (!sender.hasPermission("core.commands.addmap")) {
Core.statusMsg(sender, "no_perms", false); Core.statusMsg(sender, "no_perms", false);
@@ -256,7 +252,6 @@ public class TeamCommands implements CommandExecutor {
Core.getTools().sendStatusMsg(P, Core.getl("flyspeed_set_1", P) + " " + args[0] + Core.getl("flyspeed_set_2", P), true); Core.getTools().sendStatusMsg(P, Core.getl("flyspeed_set_1", P) + " " + args[0] + Core.getl("flyspeed_set_2", P), true);
return true; return true;
} else if (cmd.getName().equalsIgnoreCase("setwarp")) { } else if (cmd.getName().equalsIgnoreCase("setwarp")) {
try {
if (P == null) { if (P == null) {
Core.statusMsg(sender, "only_player_cmd", false); Core.statusMsg(sender, "only_player_cmd", false);
return true; return true;
@@ -291,9 +286,6 @@ public class TeamCommands implements CommandExecutor {
sql.queryUpdate("INSERT INTO coreWarps(`name`, server, world, X, Y, Z, userWarp) VALUES('" + name + "', '" + server + "', '" + world + "', '" + X + "', '" + Y + "', '" + Z + "', '" + userWarp + "')"); sql.queryUpdate("INSERT INTO coreWarps(`name`, server, world, X, Y, Z, userWarp) VALUES('" + name + "', '" + server + "', '" + world + "', '" + X + "', '" + Y + "', '" + Z + "', '" + userWarp + "')");
Core.statusMsg(P, "warp_set", true); Core.statusMsg(P, "warp_set", true);
return true; return true;
} catch (SQLException ex) {
System.out.println("Error: " + ex.getLocalizedMessage());
}
} else if (cmd.getName().equalsIgnoreCase("remwarp")) { } else if (cmd.getName().equalsIgnoreCase("remwarp")) {
if (args.length != 1) { if (args.length != 1) {
Core.statusMsg(P, "wrong_args_count", false); Core.statusMsg(P, "wrong_args_count", false);
@@ -305,7 +297,6 @@ public class TeamCommands implements CommandExecutor {
} }
String map = args[0]; String map = args[0];
ResultSet rs = sql.querySelect("SELECT name FROM coreWarps WHERE name = '" + map + "'"); ResultSet rs = sql.querySelect("SELECT name FROM coreWarps WHERE name = '" + map + "'");
try {
rs.last(); rs.last();
if (rs.getRow() == 0) { if (rs.getRow() == 0) {
Core.statusMsg(P, "warp_not_exist", false); Core.statusMsg(P, "warp_not_exist", false);
@@ -314,10 +305,6 @@ public class TeamCommands implements CommandExecutor {
sql.queryUpdate("DELETE FROM coreWarps WHERE name = '" + map + "'"); sql.queryUpdate("DELETE FROM coreWarps WHERE name = '" + map + "'");
Core.statusMsg(P, "warp_rem_done", true); Core.statusMsg(P, "warp_rem_done", true);
return true; return true;
} catch (SQLException ex) {
System.out.println("Error: " + ex.getLocalizedMessage());
}
} else if (cmd.getName().equalsIgnoreCase("toggleBoatFlight")) { } else if (cmd.getName().equalsIgnoreCase("toggleBoatFlight")) {
if (P != null && P.hasPermission("core.boat.toggleflight")) { if (P != null && P.hasPermission("core.boat.toggleflight")) {
if (Features.wantFlight.contains(P.getUniqueId())) { if (Features.wantFlight.contains(P.getUniqueId())) {
@@ -333,6 +320,9 @@ public class TeamCommands implements CommandExecutor {
return true; return true;
} }
} }
} catch(Throwable e) {
Errors.reportException(e);
}
return false; return false;
} }
} }

View File

@@ -1,5 +1,6 @@
package de.anura.core.events; package de.anura.core.events;
import de.anura.core.API.Errors;
import de.anura.core.AnuraCore; import de.anura.core.AnuraCore;
import org.bukkit.Location; import org.bukkit.Location;
import org.bukkit.Material; import org.bukkit.Material;
@@ -18,6 +19,7 @@ public class BlockBreak implements Listener {
@EventHandler @EventHandler
public void onBlockBreak(BlockBreakEvent event) { public void onBlockBreak(BlockBreakEvent event) {
try {
if (plugin.getConfig().getBoolean("no-change-blocks")) { if (plugin.getConfig().getBoolean("no-change-blocks")) {
if (!event.getPlayer().hasPermission("core.rules.blocks.break")) { if (!event.getPlayer().hasPermission("core.rules.blocks.break")) {
event.setCancelled(true); event.setCancelled(true);
@@ -48,6 +50,9 @@ public class BlockBreak implements Listener {
event.setCancelled(true); event.setCancelled(true);
} }
} }
} catch(Throwable e) {
Errors.reportException(e);
}
} }
private final AnuraCore plugin; private final AnuraCore plugin;
} }

View File

@@ -1,6 +1,7 @@
package de.anura.core.events; package de.anura.core.events;
import de.anura.core.API.Core; import de.anura.core.API.Core;
import de.anura.core.API.Errors;
import de.anura.core.AnuraCore; import de.anura.core.AnuraCore;
import org.bukkit.Material; import org.bukkit.Material;
import org.bukkit.block.Block; import org.bukkit.block.Block;
@@ -17,6 +18,7 @@ public class BlockPlace implements Listener {
@EventHandler @EventHandler
public void onBlockPlace(BlockPlaceEvent event) { public void onBlockPlace(BlockPlaceEvent event) {
try {
if (plugin.getConfig().getBoolean("no-change-blocks")) { if (plugin.getConfig().getBoolean("no-change-blocks")) {
if (!event.getPlayer().hasPermission("core.rules.blocks.place")) { if (!event.getPlayer().hasPermission("core.rules.blocks.place")) {
event.setCancelled(true); event.setCancelled(true);
@@ -36,6 +38,9 @@ public class BlockPlace implements Listener {
}, 3); }, 3);
} }
} catch(Throwable e) {
Errors.reportException(e);
}
} }
private final AnuraCore plugin; private final AnuraCore plugin;
} }

View File

@@ -1,5 +1,6 @@
package de.anura.core.events; package de.anura.core.events;
import de.anura.core.API.Errors;
import de.anura.core.AnuraCore; import de.anura.core.AnuraCore;
import org.bukkit.Material; import org.bukkit.Material;
import org.bukkit.event.EventHandler; import org.bukkit.event.EventHandler;
@@ -15,9 +16,13 @@ public class BlockSpread implements Listener {
@EventHandler @EventHandler
public void onBlockSpread(BlockSpreadEvent event) { public void onBlockSpread(BlockSpreadEvent event) {
try {
if (event.getNewState().getType().equals(Material.BROWN_MUSHROOM) && plugin.getConfig().getBoolean("disable-mushroom-spread")) { if (event.getNewState().getType().equals(Material.BROWN_MUSHROOM) && plugin.getConfig().getBoolean("disable-mushroom-spread")) {
event.setCancelled(true); event.setCancelled(true);
} }
} catch(Throwable e) {
Errors.reportException(e);
}
} }
private final AnuraCore plugin; private final AnuraCore plugin;
} }

View File

@@ -1,6 +1,7 @@
package de.anura.core.events; package de.anura.core.events;
import de.anura.core.API.Core; import de.anura.core.API.Core;
import de.anura.core.API.Errors;
import de.anura.core.AnuraCore; import de.anura.core.AnuraCore;
import org.bukkit.ChatColor; import org.bukkit.ChatColor;
import org.bukkit.event.EventHandler; import org.bukkit.event.EventHandler;
@@ -16,6 +17,7 @@ public class CmdPreprocess implements Listener {
@EventHandler @EventHandler
public void onCommandPreprocess(PlayerCommandPreprocessEvent event) { public void onCommandPreprocess(PlayerCommandPreprocessEvent event) {
try {
if (event.getMessage().startsWith("/?")) { if (event.getMessage().startsWith("/?")) {
if (!event.getPlayer().hasPermission("core.commands.help")) { if (!event.getPlayer().hasPermission("core.commands.help")) {
event.setCancelled(true); event.setCancelled(true);
@@ -25,6 +27,9 @@ public class CmdPreprocess implements Listener {
event.setCancelled(true); event.setCancelled(true);
Core.statusMsg(event.getPlayer(), "no_command_red_mg", ChatColor.YELLOW); Core.statusMsg(event.getPlayer(), "no_command_red_mg", ChatColor.YELLOW);
} }
} catch(Throwable e) {
Errors.reportException(e);
}
} }
private final AnuraCore plugin; private final AnuraCore plugin;
} }

View File

@@ -1,5 +1,6 @@
package de.anura.core.events; package de.anura.core.events;
import de.anura.core.API.Errors;
import de.anura.core.AnuraCore; import de.anura.core.AnuraCore;
import org.bukkit.Bukkit; import org.bukkit.Bukkit;
import org.bukkit.entity.Player; import org.bukkit.entity.Player;
@@ -15,6 +16,7 @@ public class DropItem implements Listener {
@EventHandler @EventHandler
public void onPlayerDropItem(PlayerDropItemEvent event) { public void onPlayerDropItem(PlayerDropItemEvent event) {
try {
if (AnuraCore.getInstance().getConfig().getBoolean("is-main-lobby") && !event.getPlayer().hasPermission("core.inventory.interact")) { if (AnuraCore.getInstance().getConfig().getBoolean("is-main-lobby") && !event.getPlayer().hasPermission("core.inventory.interact")) {
event.setCancelled(true); event.setCancelled(true);
final Player P = event.getPlayer(); final Player P = event.getPlayer();
@@ -25,5 +27,8 @@ public class DropItem implements Listener {
} }
}, 2); }, 2);
} }
} catch(Throwable e) {
Errors.reportException(e);
}
} }
} }

View File

@@ -1,5 +1,6 @@
package de.anura.core.events; package de.anura.core.events;
import de.anura.core.API.Errors;
import de.anura.core.AnuraCore; import de.anura.core.AnuraCore;
import org.bukkit.entity.Player; import org.bukkit.entity.Player;
import org.bukkit.event.EventHandler; import org.bukkit.event.EventHandler;
@@ -15,9 +16,13 @@ public class EntityDamage implements Listener {
@EventHandler @EventHandler
public void onEntityDamage(EntityDamageEvent event) { public void onEntityDamage(EntityDamageEvent event) {
try {
if (event.getEntity() instanceof Player && plugin.getConfig().getBoolean("no-damage")) { if (event.getEntity() instanceof Player && plugin.getConfig().getBoolean("no-damage")) {
event.setCancelled(true); event.setCancelled(true);
} }
} catch(Throwable e) {
Errors.reportException(e);
}
} }
private final AnuraCore plugin; private final AnuraCore plugin;
} }

View File

@@ -1,5 +1,6 @@
package de.anura.core.events; package de.anura.core.events;
import de.anura.core.API.Errors;
import de.anura.core.AnuraCore; import de.anura.core.AnuraCore;
import org.bukkit.entity.ItemFrame; import org.bukkit.entity.ItemFrame;
import org.bukkit.entity.Player; import org.bukkit.entity.Player;
@@ -16,6 +17,7 @@ public class EntityDamageByE implements Listener {
@EventHandler @EventHandler
public void onEntityDamageByE(EntityDamageByEntityEvent event) { public void onEntityDamageByE(EntityDamageByEntityEvent event) {
try {
if (event.getEntity() instanceof ItemFrame && plugin.getConfig().getBoolean("no-change-blocks")) { if (event.getEntity() instanceof ItemFrame && plugin.getConfig().getBoolean("no-change-blocks")) {
if (event.getDamager() instanceof Player) { if (event.getDamager() instanceof Player) {
if (!((Player) event.getDamager()).hasPermission("core.rules.blocks.break")) { if (!((Player) event.getDamager()).hasPermission("core.rules.blocks.break")) {
@@ -23,6 +25,9 @@ public class EntityDamageByE implements Listener {
} }
} }
} }
} catch(Throwable e) {
Errors.reportException(e);
}
} }
private final AnuraCore plugin; private final AnuraCore plugin;
} }

View File

@@ -1,5 +1,6 @@
package de.anura.core.events; package de.anura.core.events;
import de.anura.core.API.Errors;
import de.anura.core.AnuraCore; import de.anura.core.AnuraCore;
import org.bukkit.entity.Player; import org.bukkit.entity.Player;
import org.bukkit.event.EventHandler; import org.bukkit.event.EventHandler;
@@ -15,12 +16,16 @@ public class FoodChange implements Listener {
@EventHandler @EventHandler
public void onFoodLChange(FoodLevelChangeEvent event) { public void onFoodLChange(FoodLevelChangeEvent event) {
try {
if (plugin.getConfig().getBoolean("no-hunger")) { if (plugin.getConfig().getBoolean("no-hunger")) {
if (event.getEntity() instanceof Player) { if (event.getEntity() instanceof Player) {
((Player) event.getEntity()).setFoodLevel(20); ((Player) event.getEntity()).setFoodLevel(20);
} }
event.setCancelled(true); event.setCancelled(true);
} }
} catch(Throwable e) {
Errors.reportException(e);
}
} }
private final AnuraCore plugin; private final AnuraCore plugin;
} }

View File

@@ -1,5 +1,6 @@
package de.anura.core.events; package de.anura.core.events;
import de.anura.core.API.Errors;
import de.anura.core.AnuraCore; import de.anura.core.AnuraCore;
import org.bukkit.entity.Player; import org.bukkit.entity.Player;
import org.bukkit.event.EventHandler; import org.bukkit.event.EventHandler;
@@ -15,6 +16,7 @@ public class HangingEBreak implements Listener {
@EventHandler @EventHandler
public void onHangingBreakByE(HangingBreakByEntityEvent event) { public void onHangingBreakByE(HangingBreakByEntityEvent event) {
try {
Player P; Player P;
if (event.getRemover() instanceof Player) { if (event.getRemover() instanceof Player) {
P = (Player) event.getRemover(); P = (Player) event.getRemover();
@@ -26,6 +28,9 @@ public class HangingEBreak implements Listener {
event.setCancelled(true); event.setCancelled(true);
} }
} }
} catch(Throwable e) {
Errors.reportException(e);
}
} }
private final AnuraCore plugin; private final AnuraCore plugin;
} }

View File

@@ -1,5 +1,6 @@
package de.anura.core.events; package de.anura.core.events;
import de.anura.core.API.Errors;
import de.anura.core.AnuraCore; import de.anura.core.AnuraCore;
import org.bukkit.Bukkit; import org.bukkit.Bukkit;
import org.bukkit.Material; import org.bukkit.Material;
@@ -20,6 +21,7 @@ public class InvClick implements Listener {
@EventHandler @EventHandler
public void onInvClick(InventoryClickEvent event) { public void onInvClick(InventoryClickEvent event) {
try {
Player player = (Player) event.getWhoClicked(); Player player = (Player) event.getWhoClicked();
if (!player.hasPermission("core.inventory.interact") && plugin.getConfig().getBoolean("is-main-lobby")) { if (!player.hasPermission("core.inventory.interact") && plugin.getConfig().getBoolean("is-main-lobby")) {
event.setCancelled(true); event.setCancelled(true);
@@ -32,5 +34,8 @@ public class InvClick implements Listener {
} }
}, 1); }, 1);
} }
} catch(Throwable e) {
Errors.reportException(e);
}
} }
} }

View File

@@ -1,5 +1,6 @@
package de.anura.core.events; package de.anura.core.events;
import de.anura.core.API.Errors;
import de.anura.core.AnuraCore; import de.anura.core.AnuraCore;
import org.bukkit.block.Block; import org.bukkit.block.Block;
import org.bukkit.event.EventHandler; import org.bukkit.event.EventHandler;
@@ -15,6 +16,7 @@ public class LeavesDecay implements Listener {
@EventHandler @EventHandler
public void onLeavesDecay(LeavesDecayEvent event) { public void onLeavesDecay(LeavesDecayEvent event) {
try {
if (!plugin.getConfig().getBoolean("enable-leaves-decay")) { if (!plugin.getConfig().getBoolean("enable-leaves-decay")) {
Block b = event.getBlock(); Block b = event.getBlock();
byte data = b.getData(); byte data = b.getData();
@@ -24,6 +26,9 @@ public class LeavesDecay implements Listener {
b.setData(data); b.setData(data);
event.setCancelled(true); event.setCancelled(true);
} }
} catch(Throwable e) {
Errors.reportException(e);
}
} }
private final AnuraCore plugin; private final AnuraCore plugin;
} }

View File

@@ -1,6 +1,8 @@
package de.anura.core.events; package de.anura.core.events;
import de.anura.core.API.Errors;
import de.anura.core.AnuraCore; import de.anura.core.AnuraCore;
import java.util.IllegalFormatException;
import org.bukkit.ChatColor; import org.bukkit.ChatColor;
import org.bukkit.event.EventHandler; import org.bukkit.event.EventHandler;
import org.bukkit.event.Listener; import org.bukkit.event.Listener;
@@ -15,9 +17,13 @@ public class PlayerChat implements Listener {
@EventHandler @EventHandler
public void onPlayerChat(AsyncPlayerChatEvent event) { public void onPlayerChat(AsyncPlayerChatEvent event) {
try {
if (event.isAsynchronous()) { if (event.isAsynchronous()) {
event.setFormat(event.getPlayer().getDisplayName() + ChatColor.GRAY + ":" + ChatColor.WHITE + " " + event.getMessage()); event.setFormat(event.getPlayer().getDisplayName() + ChatColor.GRAY + ":" + ChatColor.WHITE + " " + event.getMessage());
} }
} catch(IllegalFormatException | NullPointerException e) {
Errors.reportException(e);
}
} }
private final AnuraCore plugin; private final AnuraCore plugin;
} }

View File

@@ -1,12 +1,11 @@
package de.anura.core.events; package de.anura.core.events;
import de.anura.core.API.Core; import de.anura.core.API.Core;
import de.anura.core.API.Errors;
import de.anura.core.AnuraCore; import de.anura.core.AnuraCore;
import java.io.ByteArrayOutputStream; import java.io.ByteArrayOutputStream;
import java.io.DataOutputStream; import java.io.DataOutputStream;
import java.io.IOException;
import java.sql.ResultSet; import java.sql.ResultSet;
import java.sql.SQLException;
import org.bukkit.Location; import org.bukkit.Location;
import org.bukkit.Material; import org.bukkit.Material;
import org.bukkit.block.Block; import org.bukkit.block.Block;
@@ -29,6 +28,7 @@ public class PlayerInteract implements Listener {
@EventHandler @EventHandler
public void onPlayerInteract(PlayerInteractEvent event) { public void onPlayerInteract(PlayerInteractEvent event) {
try {
final Block block = event.getClickedBlock(); final Block block = event.getClickedBlock();
if (plugin.selectableJumper.containsKey(event.getPlayer())) { if (plugin.selectableJumper.containsKey(event.getPlayer())) {
if (event.getPlayer().hasPermission("core.commands.setjumper")) { if (event.getPlayer().hasPermission("core.commands.setjumper")) {
@@ -65,7 +65,6 @@ public class PlayerInteract implements Listener {
String world = loc.getWorld().getName(); String world = loc.getWorld().getName();
String server = plugin.getConfig().getString("server-name"); String server = plugin.getConfig().getString("server-name");
ResultSet rs = AnuraCore.sql.querySelect("SELECT type, value FROM coreWarpSigns WHERE X = '" + X + "' AND Y = '" + Y + "' AND Z = '" + Z + "' AND world = '" + world + "' AND server = '" + server + "'"); ResultSet rs = AnuraCore.sql.querySelect("SELECT type, value FROM coreWarpSigns WHERE X = '" + X + "' AND Y = '" + Y + "' AND Z = '" + Z + "' AND world = '" + world + "' AND server = '" + server + "'");
try {
rs.last(); rs.last();
if (rs.getRow() != 0) { if (rs.getRow() != 0) {
rs.first(); rs.first();
@@ -92,12 +91,6 @@ public class PlayerInteract implements Listener {
P.sendPluginMessage(plugin, "BungeeCord", b.toByteArray()); P.sendPluginMessage(plugin, "BungeeCord", b.toByteArray());
} }
} }
} catch (SQLException ex) {
System.out.println("SQLException in playerInteract: " + ex.getLocalizedMessage());
} catch (IOException ex) {
System.out.println("IOException in playerInteract: " + ex.getLocalizedMessage());
}
event.setCancelled(true); event.setCancelled(true);
} else if (block.getState().getData() instanceof Stairs) { } else if (block.getState().getData() instanceof Stairs) {
if (plugin.stairMode.contains(event.getPlayer()) && event.getAction().equals(Action.RIGHT_CLICK_BLOCK)) { if (plugin.stairMode.contains(event.getPlayer()) && event.getAction().equals(Action.RIGHT_CLICK_BLOCK)) {
@@ -173,6 +166,9 @@ public class PlayerInteract implements Listener {
event.setCancelled(cancelled); event.setCancelled(cancelled);
} }
} }
} catch(Throwable e) {
Errors.reportException(e);
}
} }
private final AnuraCore plugin; private final AnuraCore plugin;
} }

View File

@@ -1,5 +1,6 @@
package de.anura.core.events; package de.anura.core.events;
import de.anura.core.API.Errors;
import de.anura.core.AnuraCore; import de.anura.core.AnuraCore;
import org.bukkit.Material; import org.bukkit.Material;
import org.bukkit.entity.Chicken; import org.bukkit.entity.Chicken;
@@ -18,6 +19,7 @@ public class PlayerInteractE implements Listener {
@EventHandler @EventHandler
public void onPlayerInteractE(PlayerInteractEntityEvent event) { public void onPlayerInteractE(PlayerInteractEntityEvent event) {
try {
if (event.getRightClicked().getType().equals(EntityType.ITEM_FRAME) && plugin.getConfig().getBoolean("no-change-blocks")) { if (event.getRightClicked().getType().equals(EntityType.ITEM_FRAME) && plugin.getConfig().getBoolean("no-change-blocks")) {
if (!event.getPlayer().hasPermission("core.rules.blocks.interact")) { if (!event.getPlayer().hasPermission("core.rules.blocks.interact")) {
event.setCancelled(true); event.setCancelled(true);
@@ -44,6 +46,9 @@ public class PlayerInteractE implements Listener {
} }
} }
} catch(Throwable e) {
Errors.reportException(e);
}
} }
private final AnuraCore plugin; private final AnuraCore plugin;
} }

View File

@@ -1,6 +1,7 @@
package de.anura.core.events; package de.anura.core.events;
import de.anura.core.API.Core; import de.anura.core.API.Core;
import de.anura.core.API.Errors;
import de.anura.core.AnuraCore; import de.anura.core.AnuraCore;
import java.sql.ResultSet; import java.sql.ResultSet;
import java.sql.SQLException; import java.sql.SQLException;
@@ -19,9 +20,9 @@ public class PlayerJoin implements Listener {
@EventHandler @EventHandler
public void onPlayerJoin(PlayerJoinEvent event) { public void onPlayerJoin(PlayerJoinEvent event) {
try {
UUID uuid = event.getPlayer().getUniqueId(); UUID uuid = event.getPlayer().getUniqueId();
ResultSet rs; ResultSet rs;
try {
rs = AnuraCore.getSql().querySelect("SELECT name FROM players WHERE uuid LIKE '" + uuid.toString() + "'"); rs = AnuraCore.getSql().querySelect("SELECT name FROM players WHERE uuid LIKE '" + uuid.toString() + "'");
if (rs == null) { if (rs == null) {
event.getPlayer().kickPlayer("Please try again"); event.getPlayer().kickPlayer("Please try again");
@@ -32,8 +33,6 @@ public class PlayerJoin implements Listener {
if (rs.getRow() != 1) { if (rs.getRow() != 1) {
AnuraCore.getSql().queryUpdate("INSERT INTO players(`uuid`,`game`,`waiting`,`gameName`) VALUES('" + uuid.toString() + "','none','none','')"); AnuraCore.getSql().queryUpdate("INSERT INTO players(`uuid`,`game`,`waiting`,`gameName`) VALUES('" + uuid.toString() + "','none','none','')");
} }
} catch (SQLException e) {
}
event.setJoinMessage(null); event.setJoinMessage(null);
event.getPlayer().getInventory().clear(); event.getPlayer().getInventory().clear();
plugin.pots.refreshCache(event.getPlayer()); plugin.pots.refreshCache(event.getPlayer());
@@ -46,6 +45,9 @@ public class PlayerJoin implements Listener {
if (plugin.getConfig().getBoolean("on-join-to-spawn")) { if (plugin.getConfig().getBoolean("on-join-to-spawn")) {
event.getPlayer().teleport(event.getPlayer().getWorld().getSpawnLocation()); event.getPlayer().teleport(event.getPlayer().getWorld().getSpawnLocation());
} }
} catch(Throwable e) {
Errors.reportException(e);
}
} }
private final AnuraCore plugin; private final AnuraCore plugin;
} }

View File

@@ -1,10 +1,10 @@
package de.anura.core.events; package de.anura.core.events;
import de.anura.core.API.Core; import de.anura.core.API.Core;
import de.anura.core.API.Errors;
import de.anura.core.AnuraCore; import de.anura.core.AnuraCore;
import java.io.ByteArrayOutputStream; import java.io.ByteArrayOutputStream;
import java.io.DataOutputStream; import java.io.DataOutputStream;
import java.io.IOException;
import org.bukkit.event.EventHandler; import org.bukkit.event.EventHandler;
import org.bukkit.event.Listener; import org.bukkit.event.Listener;
import org.bukkit.event.player.PlayerKickEvent; import org.bukkit.event.player.PlayerKickEvent;
@@ -18,9 +18,9 @@ public class PlayerKick implements Listener {
@EventHandler @EventHandler
public void onPlayerKick(PlayerKickEvent event) { public void onPlayerKick(PlayerKickEvent event) {
try {
AnuraCore.getInstance().disableCommandsAdventure.remove(event.getPlayer()); AnuraCore.getInstance().disableCommandsAdventure.remove(event.getPlayer());
if (!plugin.getConfig().getBoolean("is-main-lobby")) { if (!plugin.getConfig().getBoolean("is-main-lobby")) {
try {
Core.endSitting(event.getPlayer()); Core.endSitting(event.getPlayer());
event.setCancelled(true); event.setCancelled(true);
ByteArrayOutputStream b = new ByteArrayOutputStream(); ByteArrayOutputStream b = new ByteArrayOutputStream();
@@ -28,11 +28,11 @@ public class PlayerKick implements Listener {
out.writeUTF("Connect"); out.writeUTF("Connect");
out.writeUTF("lobby"); out.writeUTF("lobby");
event.getPlayer().sendPluginMessage(plugin, "BungeeCord", b.toByteArray()); event.getPlayer().sendPluginMessage(plugin, "BungeeCord", b.toByteArray());
} catch (IOException ex) {
}
} }
event.setLeaveMessage(null); event.setLeaveMessage(null);
} catch(Throwable e) {
Errors.reportException(e);
}
} }
private final AnuraCore plugin; private final AnuraCore plugin;
} }

View File

@@ -1,9 +1,9 @@
package de.anura.core.events; package de.anura.core.events;
import de.anura.core.API.Errors;
import de.anura.core.AnuraCore; import de.anura.core.AnuraCore;
import de.anura.core.ParticleEffect; import de.anura.core.ParticleEffect;
import java.sql.ResultSet; import java.sql.ResultSet;
import java.sql.SQLException;
import org.bukkit.Material; import org.bukkit.Material;
import org.bukkit.Sound; import org.bukkit.Sound;
import org.bukkit.block.Block; import org.bukkit.block.Block;
@@ -26,6 +26,7 @@ public class PlayerMove implements Listener {
@EventHandler @EventHandler
public void onPlayerMove(PlayerMoveEvent event) { public void onPlayerMove(PlayerMoveEvent event) {
try {
Player p = event.getPlayer(); Player p = event.getPlayer();
Block block = event.getTo().clone().getBlock(); Block block = event.getTo().clone().getBlock();
Block under = block.getLocation().subtract(0, 1, 0).getBlock(); Block under = block.getLocation().subtract(0, 1, 0).getBlock();
@@ -36,7 +37,6 @@ public class PlayerMove implements Listener {
if (block.getType().equals(Material.CARPET) && under.getType().equals(Material.SIGN_POST)) { if (block.getType().equals(Material.CARPET) && under.getType().equals(Material.SIGN_POST)) {
p.setWalkSpeed(0.6F); p.setWalkSpeed(0.6F);
} else if (block.getType().equals(Material.CARPET) && under.getType().equals(Material.ENDER_CHEST)) { } else if (block.getType().equals(Material.CARPET) && under.getType().equals(Material.ENDER_CHEST)) {
try {
double X = under.getLocation().getX(); double X = under.getLocation().getX();
double Y = under.getLocation().getY(); double Y = under.getLocation().getY();
double Z = under.getLocation().getZ(); double Z = under.getLocation().getZ();
@@ -49,12 +49,8 @@ public class PlayerMove implements Listener {
ParticleEffect.FIREWORKS_SPARK.display(p.getLocation(), (float) 0.1, (float) 0.1, (float) 0.1, (float) 0.3, 10); ParticleEffect.FIREWORKS_SPARK.display(p.getLocation(), (float) 0.1, (float) 0.1, (float) 0.1, (float) 0.3, 10);
} }
p.setWalkSpeed(0.2F); p.setWalkSpeed(0.2F);
} catch (SQLException ex) {
System.err.println(ex.getLocalizedMessage());
}
} else if (block.getType().equals(Material.CARPET) && under.getType().equals(Material.RAILS)) { } else if (block.getType().equals(Material.CARPET) && under.getType().equals(Material.RAILS)) {
try {
double X = under.getLocation().getX(); double X = under.getLocation().getX();
double Y = under.getLocation().getY(); double Y = under.getLocation().getY();
double Z = under.getLocation().getZ(); double Z = under.getLocation().getZ();
@@ -69,9 +65,6 @@ public class PlayerMove implements Listener {
p.playSound(p.getLocation(), Sound.EXPLODE, 1, 1); p.playSound(p.getLocation(), Sound.EXPLODE, 1, 1);
} }
p.setWalkSpeed(0.2F); p.setWalkSpeed(0.2F);
} catch (SQLException ex) {
System.err.println(ex.getLocalizedMessage());
}
} else { } else {
p.setWalkSpeed(0.2F); p.setWalkSpeed(0.2F);
} }
@@ -101,6 +94,8 @@ public class PlayerMove implements Listener {
if (!plugin.lastLoc.containsKey(p) || !plugin.lastLoc.get(p).getWorld().equals(p.getLocation().getWorld()) || plugin.lastLoc.get(p).distance(p.getLocation()) > 1) { if (!plugin.lastLoc.containsKey(p) || !plugin.lastLoc.get(p).getWorld().equals(p.getLocation().getWorld()) || plugin.lastLoc.get(p).distance(p.getLocation()) > 1) {
plugin.pots.refreshPlayer(p); plugin.pots.refreshPlayer(p);
} }
} catch(Throwable e) {
Errors.reportException(e);
}
} }
} }

View File

@@ -1,6 +1,7 @@
package de.anura.core.events; package de.anura.core.events;
import de.anura.core.API.Core; import de.anura.core.API.Core;
import de.anura.core.API.Errors;
import de.anura.core.API.Money; import de.anura.core.API.Money;
import de.anura.core.AnuraCore; import de.anura.core.AnuraCore;
import org.bukkit.entity.Boat; import org.bukkit.entity.Boat;
@@ -17,6 +18,7 @@ public class PlayerQuit implements Listener {
@EventHandler @EventHandler
public void onPlayerQuit(PlayerQuitEvent event) { public void onPlayerQuit(PlayerQuitEvent event) {
try {
if(event.getPlayer().getVehicle() != null){ if(event.getPlayer().getVehicle() != null){
if(event.getPlayer().getVehicle().getType().equals(EntityType.BOAT)){ if(event.getPlayer().getVehicle().getType().equals(EntityType.BOAT)){
Boat b = (Boat) event.getPlayer().getVehicle(); Boat b = (Boat) event.getPlayer().getVehicle();
@@ -28,5 +30,8 @@ public class PlayerQuit implements Listener {
AnuraCore.getInstance().disableCommandsAdventure.remove(event.getPlayer()); AnuraCore.getInstance().disableCommandsAdventure.remove(event.getPlayer());
Money.saveMoney(event.getPlayer()); Money.saveMoney(event.getPlayer());
Core.getLevel().update(event.getPlayer()); Core.getLevel().update(event.getPlayer());
} catch(Throwable e) {
Errors.reportException(e);
}
} }
} }

View File

@@ -22,6 +22,7 @@ public class PlayerTeleport implements Listener {
@EventHandler(priority = EventPriority.LOWEST) @EventHandler(priority = EventPriority.LOWEST)
public void onPlayerTeleport(PlayerTeleportEvent event) { public void onPlayerTeleport(PlayerTeleportEvent event) {
if (plugin.sittingPlayer.containsKey(event.getPlayer()) && !event.getCause().equals(TeleportCause.PLUGIN)) { if (plugin.sittingPlayer.containsKey(event.getPlayer()) && !event.getCause().equals(TeleportCause.PLUGIN)) {
if (event.getPlayer().isSneaking()) { if (event.getPlayer().isSneaking()) {
Player P = event.getPlayer(); Player P = event.getPlayer();

View File

@@ -1,9 +1,9 @@
package de.anura.core.events; package de.anura.core.events;
import de.anura.core.API.Core; import de.anura.core.API.Core;
import de.anura.core.API.Errors;
import de.anura.core.AnuraCore; import de.anura.core.AnuraCore;
import java.sql.ResultSet; import java.sql.ResultSet;
import java.sql.SQLException;
import java.util.AbstractMap.SimpleEntry; import java.util.AbstractMap.SimpleEntry;
import java.util.ArrayList; import java.util.ArrayList;
import java.util.Map.Entry; import java.util.Map.Entry;
@@ -22,7 +22,7 @@ public class SignChange implements Listener {
@EventHandler @EventHandler
public void onSignChange(SignChangeEvent event) { public void onSignChange(SignChangeEvent event) {
try {
if (event.getLine(0).equalsIgnoreCase("[Warp]")) { if (event.getLine(0).equalsIgnoreCase("[Warp]")) {
if (!event.getPlayer().hasPermission("core.signs.warp")) { if (!event.getPlayer().hasPermission("core.signs.warp")) {
event.setLine(0, ChatColor.STRIKETHROUGH + "[Warp]"); event.setLine(0, ChatColor.STRIKETHROUGH + "[Warp]");
@@ -33,7 +33,6 @@ public class SignChange implements Listener {
} }
if (event.getLine(1).equalsIgnoreCase("warp")) { if (event.getLine(1).equalsIgnoreCase("warp")) {
ResultSet rs = AnuraCore.sql.querySelect("SELECT name FROM coreWarps WHERE name = '" + event.getLine(2) + "'"); ResultSet rs = AnuraCore.sql.querySelect("SELECT name FROM coreWarps WHERE name = '" + event.getLine(2) + "'");
try {
rs.last(); rs.last();
if (rs.getRow() == 0) { if (rs.getRow() == 0) {
event.setLine(0, ChatColor.STRIKETHROUGH + "[Warp]"); event.setLine(0, ChatColor.STRIKETHROUGH + "[Warp]");
@@ -54,9 +53,6 @@ public class SignChange implements Listener {
event.setLine(3, ChatColor.BLUE + event.getLine(3)); event.setLine(3, ChatColor.BLUE + event.getLine(3));
Core.statusMsg(event.getPlayer(), "warpsign_created", true); Core.statusMsg(event.getPlayer(), "warpsign_created", true);
} }
} catch (SQLException ex) {
System.out.println("Error: " + ex.getLocalizedMessage());
}
} else if (event.getLine(1).equalsIgnoreCase("spawn")) { } else if (event.getLine(1).equalsIgnoreCase("spawn")) {
Location loc = event.getBlock().getLocation(); Location loc = event.getBlock().getLocation();
int X = loc.getBlockX(); int X = loc.getBlockX();
@@ -113,6 +109,9 @@ public class SignChange implements Listener {
} }
} }
} }
} catch(Throwable e) {
Errors.reportException(e);
}
} }
private final AnuraCore plugin; private final AnuraCore plugin;
} }

View File

@@ -1,5 +1,6 @@
package de.anura.core.events; package de.anura.core.events;
import de.anura.core.API.Errors;
import de.anura.core.AnuraCore; import de.anura.core.AnuraCore;
import org.bukkit.event.EventHandler; import org.bukkit.event.EventHandler;
import org.bukkit.event.Listener; import org.bukkit.event.Listener;
@@ -14,9 +15,12 @@ public class WeatherChange implements Listener {
@EventHandler @EventHandler
public void onWeatherChange(WeatherChangeEvent event) { public void onWeatherChange(WeatherChangeEvent event) {
try {
if (event.toWeatherState() && plugin.getConfig().getBoolean("no-rain")) { if (event.toWeatherState() && plugin.getConfig().getBoolean("no-rain")) {
event.setCancelled(true); event.setCancelled(true);
System.out.println("Stopped rain!"); }
} catch(Throwable e) {
Errors.reportException(e);
} }
} }
private final AnuraCore plugin; private final AnuraCore plugin;