fix default properties and name plate visibility when importing from citizens
This commit is contained in:
parent
01515c08b9
commit
bc8cbdcab1
2 changed files with 10 additions and 5 deletions
|
@ -4,6 +4,7 @@ import lol.pyr.znpcsplus.config.ConfigManager;
|
|||
import lol.pyr.znpcsplus.conversion.DataImporter;
|
||||
import lol.pyr.znpcsplus.conversion.citizens.model.CitizensTrait;
|
||||
import lol.pyr.znpcsplus.conversion.citizens.model.CitizensTraitsRegistry;
|
||||
import lol.pyr.znpcsplus.conversion.citizens.model.traits.TypeTrait;
|
||||
import lol.pyr.znpcsplus.entity.EntityPropertyRegistryImpl;
|
||||
import lol.pyr.znpcsplus.npc.NpcEntryImpl;
|
||||
import lol.pyr.znpcsplus.npc.NpcImpl;
|
||||
|
@ -52,7 +53,7 @@ public class CitizensImporter implements DataImporter {
|
|||
this.propertyRegistry = propertyRegistry;
|
||||
this.skinCache = skinCache;
|
||||
this.dataFile = dataFile;
|
||||
this.traitsRegistry = new CitizensTraitsRegistry(typeRegistry, propertyRegistry, skinCache, taskScheduler, textSerializer);
|
||||
this.traitsRegistry = new CitizensTraitsRegistry(propertyRegistry, skinCache, taskScheduler, textSerializer);
|
||||
this.npcRegistry = npcRegistry;
|
||||
}
|
||||
|
||||
|
@ -81,10 +82,12 @@ public class CitizensImporter implements DataImporter {
|
|||
world = Bukkit.getWorlds().get(0).getName();
|
||||
}
|
||||
NpcImpl npc = new NpcImpl(uuid, propertyRegistry, configManager, packetFactory, textSerializer, world, typeRegistry.getByName("armor_stand"), new NpcLocation(0, 0, 0, 0, 0));
|
||||
npc.getType().applyDefaultProperties(npc);
|
||||
|
||||
ConfigurationSection traits = npcSection.getConfigurationSection("traits");
|
||||
if (traits != null) {
|
||||
TypeTrait typeTrait = new TypeTrait(typeRegistry);
|
||||
npc = typeTrait.apply(npc, traits.getString("type"));
|
||||
npc.getType().applyDefaultProperties(npc);
|
||||
for (String traitName : traits.getKeys(false)) {
|
||||
Object trait = traits.get(traitName);
|
||||
CitizensTrait citizensTrait = traitsRegistry.getByName(traitName);
|
||||
|
@ -93,6 +96,10 @@ public class CitizensImporter implements DataImporter {
|
|||
}
|
||||
}
|
||||
}
|
||||
boolean nameVisible = Boolean.parseBoolean(npcSection.getString("metadata.name-visible", "true"));
|
||||
if (nameVisible) {
|
||||
npc.getHologram().addTextLineComponent(textSerializer.deserialize(name));
|
||||
}
|
||||
String id = key.toLowerCase();
|
||||
while (npcRegistry.getById(id) != null) {
|
||||
id += "_"; // TODO: make a backup of the old npc instead
|
||||
|
|
|
@ -1,7 +1,6 @@
|
|||
package lol.pyr.znpcsplus.conversion.citizens.model;
|
||||
|
||||
import lol.pyr.znpcsplus.api.entity.EntityPropertyRegistry;
|
||||
import lol.pyr.znpcsplus.api.npc.NpcTypeRegistry;
|
||||
import lol.pyr.znpcsplus.conversion.citizens.model.traits.*;
|
||||
import lol.pyr.znpcsplus.scheduling.TaskScheduler;
|
||||
import lol.pyr.znpcsplus.skin.cache.MojangSkinCache;
|
||||
|
@ -12,9 +11,8 @@ import java.util.HashMap;
|
|||
public class CitizensTraitsRegistry {
|
||||
private final HashMap<String, CitizensTrait> traitMap = new HashMap<>();
|
||||
|
||||
public CitizensTraitsRegistry(NpcTypeRegistry typeRegistry, EntityPropertyRegistry propertyRegistry, MojangSkinCache skinCache, TaskScheduler taskScheduler, LegacyComponentSerializer textSerializer) {
|
||||
public CitizensTraitsRegistry(EntityPropertyRegistry propertyRegistry, MojangSkinCache skinCache, TaskScheduler taskScheduler, LegacyComponentSerializer textSerializer) {
|
||||
register(new LocationTrait());
|
||||
register(new TypeTrait(typeRegistry));
|
||||
register(new ProfessionTrait(propertyRegistry));
|
||||
register(new VillagerTrait(propertyRegistry));
|
||||
register(new SkinTrait(propertyRegistry));
|
||||
|
|
Loading…
Reference in a new issue