From d326fa23f25980a4ef42f243dcff8c18fb178be7 Mon Sep 17 00:00:00 2001 From: Xiao-MoMi <70987828+Xiao-MoMi@users.noreply.github.com> Date: Sun, 14 Aug 2022 17:43:45 +0800 Subject: [PATCH] 1.8.9 --- .../customnameplates/ConfigManager.java | 24 +++---------------- .../customnameplates/CustomNameplates.java | 13 +++++++++- .../listener/PacketsListener.java | 2 -- .../customnameplates/listener/PapiReload.java | 17 +++++++++++++ .../customnameplates/utils/UpdateConfig.java | 24 +++++++++++++++++++ src/main/resources/config.yml | 1 + 6 files changed, 57 insertions(+), 24 deletions(-) create mode 100644 src/main/java/net/momirealms/customnameplates/listener/PapiReload.java create mode 100644 src/main/java/net/momirealms/customnameplates/utils/UpdateConfig.java diff --git a/src/main/java/net/momirealms/customnameplates/ConfigManager.java b/src/main/java/net/momirealms/customnameplates/ConfigManager.java index 3af5f7f..d9239b7 100644 --- a/src/main/java/net/momirealms/customnameplates/ConfigManager.java +++ b/src/main/java/net/momirealms/customnameplates/ConfigManager.java @@ -17,19 +17,12 @@ package net.momirealms.customnameplates; -import dev.dejvokep.boostedyaml.YamlDocument; -import dev.dejvokep.boostedyaml.dvs.versioning.BasicVersioning; -import dev.dejvokep.boostedyaml.settings.dumper.DumperSettings; -import dev.dejvokep.boostedyaml.settings.general.GeneralSettings; -import dev.dejvokep.boostedyaml.settings.loader.LoaderSettings; -import dev.dejvokep.boostedyaml.settings.updater.UpdaterSettings; import net.kyori.adventure.bossbar.BossBar; import net.kyori.adventure.key.Key; import net.momirealms.customnameplates.background.BackGround; import net.momirealms.customnameplates.bossbar.adventure.BossBarConfigA; import net.momirealms.customnameplates.bossbar.protocollib.BossBarConfigP; import net.momirealms.customnameplates.bossbar.protocollib.Overlay; -import net.momirealms.customnameplates.helper.Log; import net.momirealms.customnameplates.hook.Placeholders; import net.momirealms.customnameplates.utils.BGInfo; import net.momirealms.customnameplates.utils.NPInfo; @@ -39,7 +32,6 @@ import org.bukkit.configuration.file.FileConfiguration; import org.bukkit.configuration.file.YamlConfiguration; import java.io.File; -import java.io.IOException; import java.util.HashMap; import java.util.TreeMap; @@ -51,7 +43,6 @@ public class ConfigManager { public static HashMap papiBG = new HashMap<>(); public static HashMap papiNP = new HashMap<>(); public static HashMap fontWidth = new HashMap<>(); - private static Placeholders placeholders; public static YamlConfiguration getConfig(String configName) { File file = new File(CustomNameplates.instance.getDataFolder(), configName); @@ -112,14 +103,9 @@ public class ConfigManager { public static boolean tab; public static boolean oraxen; public static int fontOffset; + public static int version; public static void ReloadConfig(){ - try { - YamlDocument.create(new File(CustomNameplates.instance.getDataFolder(), "config.yml"), CustomNameplates.instance.getResource("config.yml"), GeneralSettings.DEFAULT, LoaderSettings.builder().setAutoUpdate(true).build(), DumperSettings.DEFAULT, UpdaterSettings.builder().setVersioning(new BasicVersioning("config-version")).build()); - }catch (IOException e){ - Log.warn(e.getMessage()); - } - CustomNameplates.instance.saveDefaultConfig(); CustomNameplates.instance.reloadConfig(); FileConfiguration config = CustomNameplates.instance.getConfig(); @@ -142,6 +128,7 @@ public class ConfigManager { itemsAdder = config.getBoolean("config.integrations.ItemsAdder",false); fontOffset = config.getInt("config.another-ascii-font.y-offset",3); + version = config.getInt("config-version",1); if (itemsAdder){ if(CustomNameplates.instance.getServer().getPluginManager().getPlugin("ItemsAdder") == null){ CustomNameplates.instance.getLogger().warning("Failed to initialize ItemsAdder!"); @@ -152,12 +139,7 @@ public class ConfigManager { if (placeholderAPI){ if(CustomNameplates.instance.getServer().getPluginManager().getPlugin("PlaceholderAPI") != null){ loadPapi(); - if (placeholders != null){ - placeholders.unregister(); - } - placeholders = new Placeholders(); - placeholders.register(); - AdventureManager.consoleMessage("[CustomNameplates] PlaceholderAPI Hooked!"); + }else { CustomNameplates.instance.getLogger().warning("Failed to initialize PlaceholderAPI!"); placeholderAPI = false; diff --git a/src/main/java/net/momirealms/customnameplates/CustomNameplates.java b/src/main/java/net/momirealms/customnameplates/CustomNameplates.java index 66790f3..25372f1 100644 --- a/src/main/java/net/momirealms/customnameplates/CustomNameplates.java +++ b/src/main/java/net/momirealms/customnameplates/CustomNameplates.java @@ -30,9 +30,11 @@ import net.momirealms.customnameplates.data.SqlHandler; import net.momirealms.customnameplates.helper.LibraryLoader; import net.momirealms.customnameplates.hook.Placeholders; import net.momirealms.customnameplates.listener.PacketsListener; +import net.momirealms.customnameplates.listener.PapiReload; import net.momirealms.customnameplates.listener.PlayerListener; import net.momirealms.customnameplates.resource.ResourceManager; import net.momirealms.customnameplates.scoreboard.ScoreBoardManager; +import net.momirealms.customnameplates.utils.UpdateConfig; import org.bukkit.Bukkit; import org.bukkit.entity.Entity; import org.bukkit.plugin.java.JavaPlugin; @@ -44,11 +46,11 @@ public final class CustomNameplates extends JavaPlugin { public static JavaPlugin instance; public static BukkitAudiences adventure; public static ProtocolManager protocolManager; + public static Placeholders placeholders; private ResourceManager resourceManager; private DataManager dataManager; private ScoreBoardManager scoreBoardManager; - private Placeholders placeholders; private Timer timer; private PacketsListener packetsListener; @@ -97,6 +99,12 @@ public final class CustomNameplates extends JavaPlugin { if (ConfigManager.MainConfig.tab){ AdventureManager.consoleMessage("[CustomNameplates] TAB Hooked!"); } + if (ConfigManager.MainConfig.placeholderAPI){ + placeholders = new Placeholders(); + placeholders.register(); + Bukkit.getPluginManager().registerEvents(new PapiReload(), this); + AdventureManager.consoleMessage("[CustomNameplates] PlaceholderAPI Hooked!"); + } Objects.requireNonNull(Bukkit.getPluginCommand("customnameplates")).setExecutor(new Execute(this)); Objects.requireNonNull(Bukkit.getPluginCommand("customnameplates")).setTabCompleter(new TabComplete()); this.resourceManager = new ResourceManager(this); @@ -108,6 +116,9 @@ public final class CustomNameplates extends JavaPlugin { instance.getPluginLoader().disablePlugin(instance); return; } + if (ConfigManager.MainConfig.version != 1){ + UpdateConfig.update(); + } AdventureManager.consoleMessage("[CustomNameplates] Plugin Enabled!"); } diff --git a/src/main/java/net/momirealms/customnameplates/listener/PacketsListener.java b/src/main/java/net/momirealms/customnameplates/listener/PacketsListener.java index 3bce00c..c48e9bc 100644 --- a/src/main/java/net/momirealms/customnameplates/listener/PacketsListener.java +++ b/src/main/java/net/momirealms/customnameplates/listener/PacketsListener.java @@ -36,8 +36,6 @@ import java.util.Optional; public class PacketsListener extends PacketAdapter { - private final CustomNameplates plugin; - public PacketsListener(CustomNameplates plugin) { super(plugin, ListenerPriority.HIGHEST, PacketType.Play.Server.SCOREBOARD_TEAM); this.plugin = plugin; diff --git a/src/main/java/net/momirealms/customnameplates/listener/PapiReload.java b/src/main/java/net/momirealms/customnameplates/listener/PapiReload.java new file mode 100644 index 0000000..a85ca08 --- /dev/null +++ b/src/main/java/net/momirealms/customnameplates/listener/PapiReload.java @@ -0,0 +1,17 @@ +package net.momirealms.customnameplates.listener; + +import net.momirealms.customnameplates.CustomNameplates; +import org.bukkit.event.EventHandler; +import org.bukkit.event.Listener; + +public class PapiReload implements Listener { + + @EventHandler + public void onReload(me.clip.placeholderapi.events.ExpansionUnregisterEvent event){ + if (CustomNameplates.placeholders != null){ + if (event.getExpansion().equals(CustomNameplates.placeholders)){ + CustomNameplates.placeholders.register(); + } + } + } +} \ No newline at end of file diff --git a/src/main/java/net/momirealms/customnameplates/utils/UpdateConfig.java b/src/main/java/net/momirealms/customnameplates/utils/UpdateConfig.java new file mode 100644 index 0000000..29f7f44 --- /dev/null +++ b/src/main/java/net/momirealms/customnameplates/utils/UpdateConfig.java @@ -0,0 +1,24 @@ +package net.momirealms.customnameplates.utils; + +import dev.dejvokep.boostedyaml.YamlDocument; +import dev.dejvokep.boostedyaml.dvs.versioning.BasicVersioning; +import dev.dejvokep.boostedyaml.settings.dumper.DumperSettings; +import dev.dejvokep.boostedyaml.settings.general.GeneralSettings; +import dev.dejvokep.boostedyaml.settings.loader.LoaderSettings; +import dev.dejvokep.boostedyaml.settings.updater.UpdaterSettings; +import net.momirealms.customnameplates.CustomNameplates; +import net.momirealms.customnameplates.helper.Log; + +import java.io.File; +import java.io.IOException; + +public class UpdateConfig { + + public static void update(){ + try { + YamlDocument.create(new File(CustomNameplates.instance.getDataFolder(), "config.yml"), CustomNameplates.instance.getResource("config.yml"), GeneralSettings.DEFAULT, LoaderSettings.builder().setAutoUpdate(true).build(), DumperSettings.DEFAULT, UpdaterSettings.builder().setVersioning(new BasicVersioning("config-version")).build()); + }catch (IOException e){ + Log.warn(e.getMessage()); + } + } +} diff --git a/src/main/resources/config.yml b/src/main/resources/config.yml index 4d450ca..15987b1 100644 --- a/src/main/resources/config.yml +++ b/src/main/resources/config.yml @@ -35,6 +35,7 @@ config: # Customize the folder where png files should be generated. # This is useful for those who want to keep their resource pack structure in order. + # if you are using Linux, use / instead nameplate-folder-path: 'font\nameplates\' background-folder-path: 'font\backgrounds\' space-split-folder-path: 'font\'