diff --git a/api/src/main/java/net/islandearth/rpgregions/managers/data/region/ConfiguredRegion.java b/api/src/main/java/net/islandearth/rpgregions/managers/data/region/ConfiguredRegion.java index 4f2a067..a72d40f 100644 --- a/api/src/main/java/net/islandearth/rpgregions/managers/data/region/ConfiguredRegion.java +++ b/api/src/main/java/net/islandearth/rpgregions/managers/data/region/ConfiguredRegion.java @@ -318,11 +318,11 @@ public class ConfiguredRegion { try { File file = this.findFile(plugin); if (file == null) file = new File(plugin.getDataFolder() + "/regions/" + this.id + ".json"); - Writer writer = new FileWriter(file); - Gson gson = plugin.getGson(); - gson.toJson(this, writer); - writer.flush(); - writer.close(); + try (Writer writer = new FileWriter(file)) { + Gson gson = plugin.getGson(); + gson.toJson(this, writer); + writer.flush(); + } } catch (IOException e) { e.printStackTrace(); } diff --git a/api/src/main/java/net/islandearth/rpgregions/requirements/PreventType.java b/api/src/main/java/net/islandearth/rpgregions/requirements/PreventType.java index 32e65b4..a8be400 100644 --- a/api/src/main/java/net/islandearth/rpgregions/requirements/PreventType.java +++ b/api/src/main/java/net/islandearth/rpgregions/requirements/PreventType.java @@ -10,6 +10,7 @@ public enum PreventType { PUSH; public void prevent(PlayerMoveEvent event) { + if (event.getTo() == null) return; Player player = event.getPlayer(); switch (this) { case TELEPORT: diff --git a/rpgregions/src/main/java/net/islandearth/rpgregions/commands/RPGRegionsCommand.java b/rpgregions/src/main/java/net/islandearth/rpgregions/commands/RPGRegionsCommand.java index 555857a..51cdec3 100644 --- a/rpgregions/src/main/java/net/islandearth/rpgregions/commands/RPGRegionsCommand.java +++ b/rpgregions/src/main/java/net/islandearth/rpgregions/commands/RPGRegionsCommand.java @@ -148,11 +148,10 @@ public class RPGRegionsCommand extends BaseCommand { for (File file : folder.listFiles()) { // Exclude non-json files if (file.getName().endsWith(".json")) { - try { - Reader reader = new FileReader(file); + try (Reader reader = new FileReader(file)) { ConfiguredRegion region = plugin.getGson().fromJson(reader, ConfiguredRegion.class); - if (!region.getId().equals("exampleconfig")) plugin.getManagers().getRegionsCache().addConfiguredRegion(region); - reader.close(); + if (!region.getId().equals("exampleconfig")) + plugin.getManagers().getRegionsCache().addConfiguredRegion(region); } catch (Exception e) { plugin.getLogger().severe("Error loading region config " + file.getName() + ":"); e.printStackTrace(); diff --git a/rpgregions/src/main/java/net/islandearth/rpgregions/managers/RPGRegionsManagers.java b/rpgregions/src/main/java/net/islandearth/rpgregions/managers/RPGRegionsManagers.java index dc87086..d17c0b0 100644 --- a/rpgregions/src/main/java/net/islandearth/rpgregions/managers/RPGRegionsManagers.java +++ b/rpgregions/src/main/java/net/islandearth/rpgregions/managers/RPGRegionsManagers.java @@ -127,11 +127,9 @@ public class RPGRegionsManagers implements IRPGRegionsManagers { } // Exclude non-json files if (file.getName().endsWith(".json")) { - try { - Reader reader = new FileReader(file); + try (Reader reader = new FileReader(file)) { ConfiguredRegion region = plugin.getGson().fromJson(reader, ConfiguredRegion.class); if (!region.getId().equals("exampleconfig")) regionsCache.addConfiguredRegion(region); - reader.close(); } catch (Exception e) { plugin.getLogger().severe("Error loading region config " + file.getName() + ":"); e.printStackTrace(); diff --git a/rpgregions/src/main/java/net/islandearth/rpgregions/managers/data/yml/YamlStorage.java b/rpgregions/src/main/java/net/islandearth/rpgregions/managers/data/yml/YamlStorage.java index 2d44804..da899ec 100644 --- a/rpgregions/src/main/java/net/islandearth/rpgregions/managers/data/yml/YamlStorage.java +++ b/rpgregions/src/main/java/net/islandearth/rpgregions/managers/data/yml/YamlStorage.java @@ -51,7 +51,7 @@ public class YamlStorage implements IStorageManager { } RPGRegionsAccount account = new RPGRegionsAccount(uuid, regions); - cachedAccounts.put(uuid, account); + cachedAccounts.putIfAbsent(uuid, account); future.complete(account); long endTime = System.currentTimeMillis(); long totalTime = endTime - startTime;