changed to use static npc registry instead of NpcApiProvider

This commit is contained in:
D3v1s0m 2023-09-12 21:49:53 +05:30
parent 1008d31df0
commit 747e6b92be
No known key found for this signature in database
GPG Key ID: FA1F770C7B1D40C1
3 changed files with 10 additions and 7 deletions

@ -145,7 +145,7 @@ public class ZNpcsPlus extends JavaPlugin {
DataImporterRegistry importerRegistry = new DataImporterRegistry(configManager, adventure, bungeeConnector,
scheduler, packetFactory, textSerializer, typeRegistry, getDataFolder().getParentFile(),
propertyRegistry, skinCache);
propertyRegistry, skinCache, npcRegistry);
log(ChatColor.WHITE + " * Registerring components...");

@ -4,6 +4,7 @@ import lol.pyr.znpcsplus.config.ConfigManager;
import lol.pyr.znpcsplus.conversion.citizens.CitizensImporter;
import lol.pyr.znpcsplus.conversion.znpcs.ZNpcImporter;
import lol.pyr.znpcsplus.entity.EntityPropertyRegistryImpl;
import lol.pyr.znpcsplus.npc.NpcRegistryImpl;
import lol.pyr.znpcsplus.npc.NpcTypeRegistryImpl;
import lol.pyr.znpcsplus.packets.PacketFactory;
import lol.pyr.znpcsplus.scheduling.TaskScheduler;
@ -25,14 +26,14 @@ public class DataImporterRegistry {
public DataImporterRegistry(ConfigManager configManager, BukkitAudiences adventure, BungeeConnector bungeeConnector,
TaskScheduler taskScheduler, PacketFactory packetFactory, LegacyComponentSerializer textSerializer,
NpcTypeRegistryImpl typeRegistry, File pluginsFolder, EntityPropertyRegistryImpl propertyRegistry,
MojangSkinCache skinCache) {
MojangSkinCache skinCache, NpcRegistryImpl npcRegistry) {
register("znpcs", LazyLoader.of(() -> new ZNpcImporter(configManager, adventure, bungeeConnector, taskScheduler,
packetFactory, textSerializer, typeRegistry, propertyRegistry, skinCache, new File(pluginsFolder, "ServersNPC/data.json"))));
register("znpcsplus_legacy", LazyLoader.of(() -> new ZNpcImporter(configManager, adventure, bungeeConnector, taskScheduler,
packetFactory, textSerializer, typeRegistry, propertyRegistry, skinCache, new File(pluginsFolder, "ZNPCsPlusLegacy/data.json"))));
register("citizens", LazyLoader.of(() -> new CitizensImporter(configManager, adventure, bungeeConnector, taskScheduler,
packetFactory, textSerializer, typeRegistry, propertyRegistry, skinCache, new File(pluginsFolder, "Citizens/saves.yml"))));
packetFactory, textSerializer, typeRegistry, propertyRegistry, skinCache, new File(pluginsFolder, "Citizens/saves.yml"), npcRegistry)));
}
private void register(String id, LazyLoader<DataImporter> loader) {

@ -1,6 +1,5 @@
package lol.pyr.znpcsplus.conversion.citizens;
import lol.pyr.znpcsplus.api.NpcApiProvider;
import lol.pyr.znpcsplus.config.ConfigManager;
import lol.pyr.znpcsplus.conversion.DataImporter;
import lol.pyr.znpcsplus.conversion.citizens.model.CitizensTrait;
@ -8,6 +7,7 @@ import lol.pyr.znpcsplus.conversion.citizens.model.CitizensTraitsRegistry;
import lol.pyr.znpcsplus.entity.EntityPropertyRegistryImpl;
import lol.pyr.znpcsplus.npc.NpcEntryImpl;
import lol.pyr.znpcsplus.npc.NpcImpl;
import lol.pyr.znpcsplus.npc.NpcRegistryImpl;
import lol.pyr.znpcsplus.npc.NpcTypeRegistryImpl;
import lol.pyr.znpcsplus.packets.PacketFactory;
import lol.pyr.znpcsplus.scheduling.TaskScheduler;
@ -39,11 +39,12 @@ public class CitizensImporter implements DataImporter {
private final MojangSkinCache skinCache;
private final File dataFile;
private final CitizensTraitsRegistry traitsRegistry;
private final NpcRegistryImpl npcRegistry;
public CitizensImporter(ConfigManager configManager, BukkitAudiences adventure, BungeeConnector bungeeConnector,
TaskScheduler taskScheduler, PacketFactory packetFactory, LegacyComponentSerializer textSerializer,
NpcTypeRegistryImpl typeRegistry, EntityPropertyRegistryImpl propertyRegistry, MojangSkinCache skinCache,
File dataFile) {
File dataFile, NpcRegistryImpl npcRegistry) {
this.configManager = configManager;
this.adventure = adventure;
this.bungeeConnector = bungeeConnector;
@ -55,6 +56,7 @@ public class CitizensImporter implements DataImporter {
this.skinCache = skinCache;
this.dataFile = dataFile;
this.traitsRegistry = new CitizensTraitsRegistry(typeRegistry, propertyRegistry, skinCache);
this.npcRegistry = npcRegistry;
}
@Override
@ -96,8 +98,8 @@ public class CitizensImporter implements DataImporter {
}
}
String id = key.toLowerCase();
while (NpcApiProvider.get().getNpcRegistry().getById(id) != null) {
id += "_";
while (npcRegistry.getById(id) != null) {
id += "_"; // TODO: make a backup of the old npc instead
}
NpcEntryImpl entry = new NpcEntryImpl(id, npc);
entry.enableEverything();