From d1d0a3dc246ce35742a13200da73103a58e05adc Mon Sep 17 00:00:00 2001 From: Denyk Date: Sun, 22 Mar 2020 20:31:49 +0100 Subject: [PATCH] Make structureutil compatible with older versions --- .../skyblock/command/commands/admin/StructureCommand.java | 2 ++ src/main/java/com/songoda/skyblock/island/IslandManager.java | 1 - .../com/songoda/skyblock/utils/structure/StructureUtil.java | 5 ++++- 3 files changed, 6 insertions(+), 2 deletions(-) diff --git a/src/main/java/com/songoda/skyblock/command/commands/admin/StructureCommand.java b/src/main/java/com/songoda/skyblock/command/commands/admin/StructureCommand.java index 25ef4c90..6e179622 100644 --- a/src/main/java/com/songoda/skyblock/command/commands/admin/StructureCommand.java +++ b/src/main/java/com/songoda/skyblock/command/commands/admin/StructureCommand.java @@ -185,6 +185,7 @@ public class StructureCommand extends SubCommand { "Command.Island.Admin.Structure.Save.Saved.Successful.Message") .replace("%name", args[1])); soundManager.playSound(player, Sounds.VILLAGER_YES.bukkitSound(), 1.0F, 1.0F); + return; } catch (Exception e) { messageManager.sendMessage(player, configLoad .getString("Command.Island.Admin.Structure.Save.Saved.Failed.Message")); @@ -198,6 +199,7 @@ public class StructureCommand extends SubCommand { soundManager.playSound(player, Sounds.ANVIL_LAND.bukkitSound(), 1.0F, 1.0F); } + } else if (args[0].equalsIgnoreCase("convert")) { if (args.length == 2) { File structureFile = new File(new File(skyblock.getDataFolder().toString() + "/structures"), args[1]); diff --git a/src/main/java/com/songoda/skyblock/island/IslandManager.java b/src/main/java/com/songoda/skyblock/island/IslandManager.java index 7564a957..4eacfafd 100644 --- a/src/main/java/com/songoda/skyblock/island/IslandManager.java +++ b/src/main/java/com/songoda/skyblock/island/IslandManager.java @@ -155,7 +155,6 @@ public class IslandManager { FileConfiguration configLoad_world = config_world.getFileConfiguration(); FileConfiguration configLoad_config = config_config.getFileConfiguration(); int x = (int) configLoad_world.get("World." + world.name() + ".nextAvailableLocation.island_number"); - System.out.println("Ile n°" + x); double r = Math.floor((Math.sqrt(x + 1) - 1) / 2) + 1; double p = (8 * r * (r -1)) / 2; double en = r * 2; diff --git a/src/main/java/com/songoda/skyblock/utils/structure/StructureUtil.java b/src/main/java/com/songoda/skyblock/utils/structure/StructureUtil.java index 41d64b6c..101569ae 100644 --- a/src/main/java/com/songoda/skyblock/utils/structure/StructureUtil.java +++ b/src/main/java/com/songoda/skyblock/utils/structure/StructureUtil.java @@ -35,6 +35,7 @@ import java.util.ArrayList; import java.util.LinkedHashMap; import java.util.List; import java.util.logging.Level; +import java.util.regex.Pattern; public final class StructureUtil { @@ -112,7 +113,9 @@ public final class StructureUtil { fileInputStream.close(); Storage storage; - if (!org.bukkit.craftbukkit.libs.org.apache.commons.codec.binary.Base64.isBase64(content)) { + Pattern pattern = Pattern.compile("^([A-Za-z0-9+/]{4})*([A-Za-z0-9+/]{3}=|[A-Za-z0-9+/]{2}==)?$"); + + if (!pattern.matcher(new String(content)).find()) { try { storage = new Gson().fromJson(Compression.decompress(content), Storage.class); } catch (JsonSyntaxException e) {