If a world is not found, only show the error once

This commit is contained in:
Eric 2017-04-10 20:06:05 +02:00
parent 8e5b61c7a0
commit 508baf4f6b

View File

@ -21,10 +21,14 @@ import java.text.ParseException;
import java.text.SimpleDateFormat; import java.text.SimpleDateFormat;
import java.util.ArrayList; import java.util.ArrayList;
import java.util.Calendar; import java.util.Calendar;
import java.util.HashSet;
import java.util.Set;
import java.util.UUID; import java.util.UUID;
public abstract class Database { public abstract class Database {
private static Set<String> notFoundWorlds = new HashSet<>();
ShopChest plugin; ShopChest plugin;
Connection connection; Connection connection;
@ -221,8 +225,9 @@ public abstract class Database {
/** /**
* Get all shops from the database * Get all shops from the database
* @param callback Callback that - if succeeded - returns an array of all shops (as {@code Shop[]}) * @param callback Callback that - if succeeded - returns an array of all shops (as {@code Shop[]})
* @param showConsoleMessages Whether console messages (errors or warnings) should be shown
*/ */
public void getShops(final Callback callback) { public void getShops(final boolean showConsoleMessages, final Callback callback) {
new BukkitRunnable() { new BukkitRunnable() {
@Override @Override
public void run() { public void run() {
@ -248,8 +253,8 @@ public abstract class Database {
if (world == null) { if (world == null) {
WorldNotFoundException ex = new WorldNotFoundException("Could not find world with name \"" + worldName + "\""); WorldNotFoundException ex = new WorldNotFoundException("Could not find world with name \"" + worldName + "\"");
if (callback != null) callback.callSyncError(ex); if (showConsoleMessages && !notFoundWorlds.contains(worldName)) plugin.getLogger().warning(ex.getMessage());
plugin.getLogger().warning(ex.getMessage()); notFoundWorlds.add(worldName);
plugin.debug("Failed to get shop (#" + id + ")"); plugin.debug("Failed to get shop (#" + id + ")");
plugin.debug(ex); plugin.debug(ex);
continue; continue;