diff --git a/build.gradle b/build.gradle index 5992a35..a46bccb 100644 --- a/build.gradle +++ b/build.gradle @@ -4,7 +4,7 @@ plugins { } group = 'net.momirealms' -version = '2.2.0.3-hotfix' +version = '2.2.0.4' repositories { mavenCentral() diff --git a/src/main/java/net/momirealms/customnameplates/CustomNameplates.java b/src/main/java/net/momirealms/customnameplates/CustomNameplates.java index 3fdc485..4c1695f 100644 --- a/src/main/java/net/momirealms/customnameplates/CustomNameplates.java +++ b/src/main/java/net/momirealms/customnameplates/CustomNameplates.java @@ -152,10 +152,10 @@ public final class CustomNameplates extends JavaPlugin { configManager.load(); messageManager.load(); dataManager.load(); - // image manager must before font manager + // image manager must load before font manager imageManager.load(); fontManager.load(); - // team manager must before nameplates manager + // team manager must load before nameplates manager teamManager.load(); nameplateManager.load(); chatBubblesManager.load(); diff --git a/src/main/java/net/momirealms/customnameplates/bungeecord/BungeeConfigManager.java b/src/main/java/net/momirealms/customnameplates/bungeecord/BungeeConfigManager.java index 2337881..98c423d 100644 --- a/src/main/java/net/momirealms/customnameplates/bungeecord/BungeeConfigManager.java +++ b/src/main/java/net/momirealms/customnameplates/bungeecord/BungeeConfigManager.java @@ -19,9 +19,9 @@ package net.momirealms.customnameplates.bungeecord; public class BungeeConfigManager { - private final NameplatesBungeeCord plugin; + private final CustomNameplates plugin; - public BungeeConfigManager(NameplatesBungeeCord plugin) { + public BungeeConfigManager(CustomNameplates plugin) { this.plugin = plugin; } diff --git a/src/main/java/net/momirealms/customnameplates/bungeecord/BungeeEventListener.java b/src/main/java/net/momirealms/customnameplates/bungeecord/BungeeEventListener.java index 6d9ba2f..b6219af 100644 --- a/src/main/java/net/momirealms/customnameplates/bungeecord/BungeeEventListener.java +++ b/src/main/java/net/momirealms/customnameplates/bungeecord/BungeeEventListener.java @@ -30,9 +30,9 @@ import java.util.Objects; public class BungeeEventListener implements Listener { - private final NameplatesBungeeCord plugin; + private final CustomNameplates plugin; - public BungeeEventListener (NameplatesBungeeCord plugin) { + public BungeeEventListener (CustomNameplates plugin) { this.plugin = plugin; } diff --git a/src/main/java/net/momirealms/customnameplates/bungeecord/NameplatesBungeeCord.java b/src/main/java/net/momirealms/customnameplates/bungeecord/CustomNameplates.java similarity index 91% rename from src/main/java/net/momirealms/customnameplates/bungeecord/NameplatesBungeeCord.java rename to src/main/java/net/momirealms/customnameplates/bungeecord/CustomNameplates.java index de66765..d5b689b 100644 --- a/src/main/java/net/momirealms/customnameplates/bungeecord/NameplatesBungeeCord.java +++ b/src/main/java/net/momirealms/customnameplates/bungeecord/CustomNameplates.java @@ -19,9 +19,9 @@ package net.momirealms.customnameplates.bungeecord; import net.md_5.bungee.api.plugin.Plugin; -public class NameplatesBungeeCord extends Plugin { +public class CustomNameplates extends Plugin { - public static NameplatesBungeeCord bungeePlugin; + public static CustomNameplates bungeePlugin; private BungeeEventListener bungeeEventListener; private BungeeConfigManager bungeeConfigManager; @@ -45,7 +45,7 @@ public class NameplatesBungeeCord extends Plugin { return bungeeConfigManager; } - public static NameplatesBungeeCord getPlugin() { + public static CustomNameplates getPlugin() { return bungeePlugin; } } diff --git a/src/main/java/net/momirealms/customnameplates/helper/VersionHelper.java b/src/main/java/net/momirealms/customnameplates/helper/VersionHelper.java index f48687a..dfc7f95 100644 --- a/src/main/java/net/momirealms/customnameplates/helper/VersionHelper.java +++ b/src/main/java/net/momirealms/customnameplates/helper/VersionHelper.java @@ -23,6 +23,7 @@ import net.momirealms.customnameplates.utils.AdventureUtils; import org.bukkit.Bukkit; import java.io.BufferedReader; +import java.io.IOException; import java.io.InputStream; import java.io.InputStreamReader; import java.net.URL; @@ -35,10 +36,13 @@ public class VersionHelper { private final CustomNameplates plugin; private final String pluginVersion; private boolean isLatest; + private final int pack_format; public VersionHelper(CustomNameplates plugin) { this.plugin = plugin; this.pluginVersion = plugin.getDescription().getVersion(); + this.isVersionNewerThan1_19_R2(); + this.pack_format = getPack_format(serverVersion); } public boolean isVersionNewerThan1_19_R2() { @@ -80,12 +84,33 @@ public class VersionHelper { AdventureUtils.consoleMessage("[CustomNameplates] Latest version: " + newest); AdventureUtils.consoleMessage("[CustomNameplates] Update is available: https://polymart.org/resource/customnameplates.2543"); } - } catch (Exception exception) { + } catch (IOException e) { + isLatest = true; Log.warn("Error occurred when checking update"); } }); } + private int getPack_format(String version) { + switch (version) { + case "v1_19_R3" -> { + return 13; + } + case "v1_19_R2" -> { + return 12; + } + case "v1_19_R1" -> { + return 9; + } + case "v1_18_R1", "v1_18_R2" -> { + return 8; + } + default -> { + return 7; + } + } + } + private boolean compareVer(String newV, String currentV) { if (newV == null || currentV == null || newV.isEmpty() || currentV.isEmpty()) { return false; @@ -141,4 +166,8 @@ public class VersionHelper { public boolean isLatest() { return isLatest || !ConfigManager.checkUpdate; } + + public int getPack_format() { + return pack_format; + } } diff --git a/src/main/java/net/momirealms/customnameplates/manager/ResourceManager.java b/src/main/java/net/momirealms/customnameplates/manager/ResourceManager.java index 896d460..128990d 100644 --- a/src/main/java/net/momirealms/customnameplates/manager/ResourceManager.java +++ b/src/main/java/net/momirealms/customnameplates/manager/ResourceManager.java @@ -17,8 +17,12 @@ package net.momirealms.customnameplates.manager; -import com.google.gson.*; -import com.google.gson.stream.JsonReader; +import com.google.gson.JsonArray; +import com.google.gson.JsonObject; +import com.google.gson.JsonPrimitive; +import io.th0rgal.oraxen.config.Settings; +import io.th0rgal.oraxen.utils.VirtualFile; +import io.th0rgal.oraxen.utils.ZipUtils; import net.momirealms.customnameplates.CustomNameplates; import net.momirealms.customnameplates.object.SimpleChar; import net.momirealms.customnameplates.object.background.BackGroundConfig; @@ -31,10 +35,16 @@ import org.apache.commons.lang.StringUtils; import org.bukkit.Bukkit; import java.io.*; +import java.math.BigInteger; import java.nio.charset.StandardCharsets; +import java.nio.file.attribute.FileTime; import java.util.ArrayList; +import java.util.Iterator; import java.util.List; import java.util.Objects; +import java.util.zip.Deflater; +import java.util.zip.ZipEntry; +import java.util.zip.ZipOutputStream; public class ResourceManager { @@ -175,6 +185,28 @@ public class ResourceManager { String path = "ResourcePack" + File.separator + "assets" + File.separator + "minecraft" + File.separator + "textures" + File.separator + "gui" + File.separator; plugin.saveResource(path + "bars.png", true); } + setPackFormat(); + } + + private void setPackFormat() { + plugin.saveResource("ResourcePack" + File.separator + "pack.mcmeta", false); + File format_file = new File(plugin.getDataFolder(), "ResourcePack" + File.separator + "pack.mcmeta"); + String line; + StringBuilder sb = new StringBuilder(); + try (BufferedReader reader = new BufferedReader(new InputStreamReader(new FileInputStream(format_file), StandardCharsets.UTF_8))) { + while ((line = reader.readLine()) != null) { + sb.append(line).append(System.lineSeparator()); + } + } catch (IOException e) { + e.printStackTrace(); + } + try (BufferedWriter writer = new BufferedWriter( + new OutputStreamWriter(new FileOutputStream(new File(plugin.getDataFolder(), + "ResourcePack" + File.separator + "pack.mcmeta")), StandardCharsets.UTF_8))) { + writer.write(sb.toString().replace("%version%", String.valueOf(plugin.getVersionHelper().getPack_format()))); + } catch (IOException e) { + e.printStackTrace(); + } } private void saveOffsets() { @@ -284,7 +316,7 @@ public class ResourceManager { private void hookCopy(File resourcePack_folder) { if (ConfigManager.itemsAdderHook){ try { - FileUtils.copyDirectory(resourcePack_folder, new File(Objects.requireNonNull(Bukkit.getPluginManager().getPlugin("ItemsAdder")).getDataFolder() + File.separator + "contents" + File.separator + "nameplates" + File.separator + "resourcepack") ); + FileUtils.copyDirectory(new File(resourcePack_folder, "assets"), new File(Objects.requireNonNull(Bukkit.getPluginManager().getPlugin("ItemsAdder")).getDataFolder() + File.separator + "contents" + File.separator + "nameplates" + File.separator + "resourcepack" + File.separator + "assets") ); } catch (IOException e){ e.printStackTrace(); @@ -301,4 +333,4 @@ public class ResourceManager { } } } -} +} \ No newline at end of file diff --git a/src/main/resources/ResourcePack/pack.mcmeta b/src/main/resources/ResourcePack/pack.mcmeta new file mode 100644 index 0000000..623a8a1 --- /dev/null +++ b/src/main/resources/ResourcePack/pack.mcmeta @@ -0,0 +1 @@ +{"pack":{"pack_format":%version%,"description":"CustomNameplates"}} \ No newline at end of file diff --git a/src/main/resources/bungee.yml b/src/main/resources/bungee.yml index fbf2ea5..810bd81 100644 --- a/src/main/resources/bungee.yml +++ b/src/main/resources/bungee.yml @@ -1,5 +1,5 @@ name: CustomNameplates -main: net.momirealms.customnameplates.bungeecord.Main -version: '2.0' +main: net.momirealms.customnameplates.bungeecord.CustomNameplates +version: '2.2.0.4' author: XiaoMoMi softDepends: [TAB, BungeeTabListPlus] \ No newline at end of file diff --git a/src/main/resources/contents/images/clock.png b/src/main/resources/contents/images/clock.png index 866f924..1e98239 100644 Binary files a/src/main/resources/contents/images/clock.png and b/src/main/resources/contents/images/clock.png differ diff --git a/src/main/resources/contents/images/coin.png b/src/main/resources/contents/images/coin.png index 9d162cb..5e7c063 100644 Binary files a/src/main/resources/contents/images/coin.png and b/src/main/resources/contents/images/coin.png differ diff --git a/src/main/resources/contents/images/compass.png b/src/main/resources/contents/images/compass.png index 2046679..3eb72b4 100644 Binary files a/src/main/resources/contents/images/compass.png and b/src/main/resources/contents/images/compass.png differ diff --git a/src/main/resources/contents/nameplates/cat.yml b/src/main/resources/contents/nameplates/cat.yml index 1bcc702..d5ebbe7 100644 --- a/src/main/resources/contents/nameplates/cat.yml +++ b/src/main/resources/contents/nameplates/cat.yml @@ -4,7 +4,7 @@ left: image: cat_left height: 16 ascent: 12 - width: 16 + width: 14 middle: image: cat_middle height: 16 @@ -14,4 +14,4 @@ right: image: cat_right height: 16 ascent: 12 - width: 16 \ No newline at end of file + width: 14 \ No newline at end of file diff --git a/src/main/resources/contents/nameplates/cat_left.png b/src/main/resources/contents/nameplates/cat_left.png index f6ec144..45275b7 100644 Binary files a/src/main/resources/contents/nameplates/cat_left.png and b/src/main/resources/contents/nameplates/cat_left.png differ diff --git a/src/main/resources/contents/nameplates/cat_right.png b/src/main/resources/contents/nameplates/cat_right.png index 8c15ffa..4a3bbc4 100644 Binary files a/src/main/resources/contents/nameplates/cat_right.png and b/src/main/resources/contents/nameplates/cat_right.png differ diff --git a/src/main/resources/contents/nameplates/wither.yml b/src/main/resources/contents/nameplates/wither.yml index d12d40e..eda71a3 100644 --- a/src/main/resources/contents/nameplates/wither.yml +++ b/src/main/resources/contents/nameplates/wither.yml @@ -4,7 +4,7 @@ left: image: wither_left height: 16 ascent: 12 - width: 16 + width: 13 middle: image: wither_middle height: 16 @@ -14,4 +14,4 @@ right: image: wither_right height: 16 ascent: 12 - width: 16 \ No newline at end of file + width: 13 \ No newline at end of file diff --git a/src/main/resources/contents/nameplates/wither_left.png b/src/main/resources/contents/nameplates/wither_left.png index 4e7c30e..4fc4e15 100644 Binary files a/src/main/resources/contents/nameplates/wither_left.png and b/src/main/resources/contents/nameplates/wither_left.png differ diff --git a/src/main/resources/contents/nameplates/wither_right.png b/src/main/resources/contents/nameplates/wither_right.png index f92ac66..d78f9cd 100644 Binary files a/src/main/resources/contents/nameplates/wither_right.png and b/src/main/resources/contents/nameplates/wither_right.png differ