From 903ba91b4ca39835e1b9a472a7136ebdae7b3810 Mon Sep 17 00:00:00 2001 From: fullwall Date: Mon, 4 Mar 2024 20:46:36 +0800 Subject: [PATCH] Delete old template code --- .../main/java/net/citizensnpcs/Citizens.java | 28 ++- .../citizensnpcs/commands/NPCCommands.java | 21 +- .../commands/TemplateCommands.java | 115 ++++------- .../java/net/citizensnpcs/npc/Template.java | 191 ------------------ .../net/citizensnpcs/trait/ShopTrait.java | 2 +- .../{ => trait/shop}/StoredShops.java | 6 +- .../java/net/citizensnpcs/util/Messages.java | 4 +- main/src/main/resources/en.json | 14 +- main/src/main/resources/plugin.yml | 3 +- 9 files changed, 83 insertions(+), 301 deletions(-) delete mode 100644 main/src/main/java/net/citizensnpcs/npc/Template.java rename main/src/main/java/net/citizensnpcs/{ => trait/shop}/StoredShops.java (84%) diff --git a/main/src/main/java/net/citizensnpcs/Citizens.java b/main/src/main/java/net/citizensnpcs/Citizens.java index df0b74203..58645eac5 100644 --- a/main/src/main/java/net/citizensnpcs/Citizens.java +++ b/main/src/main/java/net/citizensnpcs/Citizens.java @@ -52,9 +52,7 @@ import net.citizensnpcs.api.npc.NPC; import net.citizensnpcs.api.npc.NPCDataStore; import net.citizensnpcs.api.npc.NPCRegistry; import net.citizensnpcs.api.npc.SimpleNPCDataStore; -import net.citizensnpcs.api.scripting.EventRegistrar; -import net.citizensnpcs.api.scripting.ObjectProvider; -import net.citizensnpcs.api.scripting.ScriptCompiler; +import net.citizensnpcs.api.npc.templates.TemplateRegistry; import net.citizensnpcs.api.trait.Trait; import net.citizensnpcs.api.trait.TraitFactory; import net.citizensnpcs.api.trait.TraitInfo; @@ -74,10 +72,10 @@ import net.citizensnpcs.editor.Editor; import net.citizensnpcs.npc.CitizensNPCRegistry; import net.citizensnpcs.npc.CitizensTraitFactory; import net.citizensnpcs.npc.NPCSelector; -import net.citizensnpcs.npc.Template; import net.citizensnpcs.npc.profile.ProfileFetcher; import net.citizensnpcs.npc.skin.Skin; import net.citizensnpcs.trait.ShopTrait; +import net.citizensnpcs.trait.shop.StoredShops; import net.citizensnpcs.util.Messages; import net.citizensnpcs.util.NMS; import net.citizensnpcs.util.PlayerUpdateTask; @@ -149,6 +147,7 @@ public class Citizens extends JavaPlugin implements CitizensPlugin { private NPCSelector selector; private StoredShops shops; private final Map storedRegistries = Maps.newHashMap(); + private TemplateRegistry templateRegistry; private CitizensTraitFactory traitFactory; @Override @@ -272,6 +271,10 @@ public class Citizens extends JavaPlugin implements CitizensPlugin { return shops; } + public TemplateRegistry getTemplateRegistry() { + return templateRegistry; + } + @Override public TraitFactory getTraitFactory() { return traitFactory; @@ -346,13 +349,14 @@ public class Citizens extends JavaPlugin implements CitizensPlugin { Editor.leaveAll(); despawnNPCs(saveOnDisable); HandlerList.unregisterAll(this); + + templateRegistry = null; npcRegistry = null; locationLookup = null; enabled = false; saveOnDisable = true; ProfileFetcher.shutdown(); Skin.clearCache(); - Template.shutdown(); NMS.shutdown(); CitizensAPI.shutdown(); } @@ -378,8 +382,6 @@ public class Citizens extends JavaPlugin implements CitizensPlugin { Bukkit.getPluginManager().disablePlugin(this); return; } - registerScriptHelpers(); - saves = createStorage(getDataFolder()); shops = new StoredShops(new YamlStorage(new File(getDataFolder(), "shops.yml"))); if (saves == null || !shops.loadFromDisk()) { @@ -394,6 +396,7 @@ public class Citizens extends JavaPlugin implements CitizensPlugin { traitFactory = new CitizensTraitFactory(this); traitFactory.registerTrait(TraitInfo.create(ShopTrait.class).withSupplier(() -> new ShopTrait(shops))); selector = new NPCSelector(this); + templateRegistry = new TemplateRegistry(new File(this.getDataFolder(), "templates").toPath()); Bukkit.getPluginManager().registerEvents(new EventListen(), this); Bukkit.getPluginManager().registerEvents(new Placeholders(), this); @@ -406,7 +409,6 @@ public class Citizens extends JavaPlugin implements CitizensPlugin { registerCommands(); NMS.load(commands); - Template.migrate(); Bukkit.getMessenger().registerOutgoingPluginChannel(this, "BungeeCord"); commands.registerTabCompletion(this); commands.setTranslationPrefixProvider(cmd -> "citizens.commands." + cmd.aliases()[0] @@ -446,12 +448,6 @@ public class Citizens extends JavaPlugin implements CitizensPlugin { commands.register(WaypointCommands.class); } - private void registerScriptHelpers() { - ScriptCompiler compiler = CitizensAPI.getScriptCompiler(); - compiler.registerGlobalContextProvider(new EventRegistrar(this)); - compiler.registerGlobalContextProvider(new ObjectProvider("plugin", this)); - } - public void reload() throws NPCLoadException { Editor.leaveAll(); config.reload(); @@ -461,14 +457,14 @@ public class Citizens extends JavaPlugin implements CitizensPlugin { getServer().getPluginManager().callEvent(new CitizensPreReloadEvent()); + templateRegistry = new TemplateRegistry(new File(this.getDataFolder(), "templates").toPath()); + saves.reloadFromSource(); saves.loadInto(npcRegistry); shops.loadFromDisk(); shops.load(); - Template.shutdown(); - getServer().getPluginManager().callEvent(new CitizensReloadEvent()); } diff --git a/main/src/main/java/net/citizensnpcs/commands/NPCCommands.java b/main/src/main/java/net/citizensnpcs/commands/NPCCommands.java index f632e18b3..7c08039f9 100644 --- a/main/src/main/java/net/citizensnpcs/commands/NPCCommands.java +++ b/main/src/main/java/net/citizensnpcs/commands/NPCCommands.java @@ -9,6 +9,7 @@ import java.nio.file.Files; import java.time.Duration; import java.util.ArrayList; import java.util.Arrays; +import java.util.Collection; import java.util.Collections; import java.util.Iterator; import java.util.List; @@ -56,7 +57,6 @@ import com.google.common.io.BaseEncoding; import net.citizensnpcs.Citizens; import net.citizensnpcs.Settings.Setting; -import net.citizensnpcs.StoredShops; import net.citizensnpcs.api.CitizensAPI; import net.citizensnpcs.api.ai.speech.SpeechContext; import net.citizensnpcs.api.ai.tree.StatusMapper; @@ -85,6 +85,8 @@ import net.citizensnpcs.api.npc.MemoryNPCDataStore; import net.citizensnpcs.api.npc.NPC; import net.citizensnpcs.api.npc.NPC.NPCUpdate; import net.citizensnpcs.api.npc.NPCRegistry; +import net.citizensnpcs.api.npc.templates.Template; +import net.citizensnpcs.api.npc.templates.TemplateRegistry; import net.citizensnpcs.api.trait.Trait; import net.citizensnpcs.api.trait.trait.Equipment; import net.citizensnpcs.api.trait.trait.Equipment.EquipmentSlot; @@ -105,7 +107,6 @@ import net.citizensnpcs.commands.history.RemoveNPCHistoryItem; import net.citizensnpcs.editor.Editor; import net.citizensnpcs.npc.EntityControllers; import net.citizensnpcs.npc.NPCSelector; -import net.citizensnpcs.npc.Template; import net.citizensnpcs.trait.Age; import net.citizensnpcs.trait.Anchors; import net.citizensnpcs.trait.ArmorStandTrait; @@ -150,6 +151,7 @@ import net.citizensnpcs.trait.SlimeSize; import net.citizensnpcs.trait.VillagerProfession; import net.citizensnpcs.trait.WitherTrait; import net.citizensnpcs.trait.WolfModifiers; +import net.citizensnpcs.trait.shop.StoredShops; import net.citizensnpcs.trait.waypoint.Waypoints; import net.citizensnpcs.util.Anchor; import net.citizensnpcs.util.Messages; @@ -164,11 +166,13 @@ public class NPCCommands { private final CommandHistory history; private final NPCSelector selector; private final StoredShops shops; + private final TemplateRegistry templateRegistry; private final NPCRegistry temporaryRegistry; public NPCCommands(Citizens plugin) { selector = plugin.getNPCSelector(); shops = plugin.getShops(); + templateRegistry = plugin.getTemplateRegistry(); temporaryRegistry = CitizensAPI.createCitizensBackedNPCRegistry(new MemoryNPCDataStore()); history = new CommandHistory(selector); } @@ -840,11 +844,18 @@ public class NPCCommands { Iterable parts = Splitter.on(',').trimResults().split(templateName); StringBuilder builder = new StringBuilder(); for (String part : parts) { - Template template = Template.byName(part); - if (template == null) { + if (part.contains(":")) { + Template template = templateRegistry.getTemplateByNamespacedKey(part); + if (template == null) + continue; + template.apply(npc); + builder.append(StringHelper.wrap(part) + ", "); continue; } - template.apply(npc); + Collection