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.DataImporter;
|
||||||
import lol.pyr.znpcsplus.conversion.citizens.model.CitizensTrait;
|
import lol.pyr.znpcsplus.conversion.citizens.model.CitizensTrait;
|
||||||
import lol.pyr.znpcsplus.conversion.citizens.model.CitizensTraitsRegistry;
|
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.entity.EntityPropertyRegistryImpl;
|
||||||
import lol.pyr.znpcsplus.npc.NpcEntryImpl;
|
import lol.pyr.znpcsplus.npc.NpcEntryImpl;
|
||||||
import lol.pyr.znpcsplus.npc.NpcImpl;
|
import lol.pyr.znpcsplus.npc.NpcImpl;
|
||||||
|
@ -52,7 +53,7 @@ public class CitizensImporter implements DataImporter {
|
||||||
this.propertyRegistry = propertyRegistry;
|
this.propertyRegistry = propertyRegistry;
|
||||||
this.skinCache = skinCache;
|
this.skinCache = skinCache;
|
||||||
this.dataFile = dataFile;
|
this.dataFile = dataFile;
|
||||||
this.traitsRegistry = new CitizensTraitsRegistry(typeRegistry, propertyRegistry, skinCache, taskScheduler, textSerializer);
|
this.traitsRegistry = new CitizensTraitsRegistry(propertyRegistry, skinCache, taskScheduler, textSerializer);
|
||||||
this.npcRegistry = npcRegistry;
|
this.npcRegistry = npcRegistry;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -81,10 +82,12 @@ public class CitizensImporter implements DataImporter {
|
||||||
world = Bukkit.getWorlds().get(0).getName();
|
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));
|
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");
|
ConfigurationSection traits = npcSection.getConfigurationSection("traits");
|
||||||
if (traits != null) {
|
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)) {
|
for (String traitName : traits.getKeys(false)) {
|
||||||
Object trait = traits.get(traitName);
|
Object trait = traits.get(traitName);
|
||||||
CitizensTrait citizensTrait = traitsRegistry.getByName(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();
|
String id = key.toLowerCase();
|
||||||
while (npcRegistry.getById(id) != null) {
|
while (npcRegistry.getById(id) != null) {
|
||||||
id += "_"; // TODO: make a backup of the old npc instead
|
id += "_"; // TODO: make a backup of the old npc instead
|
||||||
|
|
|
@ -1,7 +1,6 @@
|
||||||
package lol.pyr.znpcsplus.conversion.citizens.model;
|
package lol.pyr.znpcsplus.conversion.citizens.model;
|
||||||
|
|
||||||
import lol.pyr.znpcsplus.api.entity.EntityPropertyRegistry;
|
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.conversion.citizens.model.traits.*;
|
||||||
import lol.pyr.znpcsplus.scheduling.TaskScheduler;
|
import lol.pyr.znpcsplus.scheduling.TaskScheduler;
|
||||||
import lol.pyr.znpcsplus.skin.cache.MojangSkinCache;
|
import lol.pyr.znpcsplus.skin.cache.MojangSkinCache;
|
||||||
|
@ -12,9 +11,8 @@ import java.util.HashMap;
|
||||||
public class CitizensTraitsRegistry {
|
public class CitizensTraitsRegistry {
|
||||||
private final HashMap<String, CitizensTrait> traitMap = new HashMap<>();
|
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 LocationTrait());
|
||||||
register(new TypeTrait(typeRegistry));
|
|
||||||
register(new ProfessionTrait(propertyRegistry));
|
register(new ProfessionTrait(propertyRegistry));
|
||||||
register(new VillagerTrait(propertyRegistry));
|
register(new VillagerTrait(propertyRegistry));
|
||||||
register(new SkinTrait(propertyRegistry));
|
register(new SkinTrait(propertyRegistry));
|
||||||
|
|
Loading…
Reference in a new issue