Fix initialisation order of locationlookup

This commit is contained in:
fullwall 2024-06-05 10:27:04 +08:00
parent ff5b718a17
commit b899e26c39
12 changed files with 75 additions and 17 deletions

View File

@ -124,6 +124,12 @@
<version>4.3.3-SNAPSHOT</version>
<scope>provided</scope>
</dependency>
<dependency>
<groupId>org.reflections</groupId>
<artifactId>reflections</artifactId>
<version>0.10.2</version>
<scope>test</scope>
</dependency>
</dependencies>
<url>http://www.citizensnpcs.co</url>
<ciManagement>

View File

@ -181,9 +181,9 @@ public class Citizens extends JavaPlugin implements CitizensPlugin {
private void despawnNPCs(boolean save) {
for (NPCRegistry registry : Iterables.concat(Arrays.asList(npcRegistry), citizensBackedRegistries)) {
if (registry == null) {
if (registry == null)
continue;
}
if (save) {
if (registry == npcRegistry) {
storeNPCs(false);
@ -398,10 +398,10 @@ public class Citizens extends JavaPlugin implements CitizensPlugin {
Bukkit.getPluginManager().disablePlugin(this);
return;
}
locationLookup = new LocationLookup();
npcRegistry = new CitizensNPCRegistry(saves, "citizens");
locationLookup = new LocationLookup(npcRegistry);
locationLookup.runTaskTimer(CitizensAPI.getPlugin(), 0, 5);
npcRegistry = new CitizensNPCRegistry(saves, "citizens");
traitFactory = new CitizensTraitFactory(this);
traitFactory.registerTrait(TraitInfo.create(ShopTrait.class).withSupplier(() -> new ShopTrait(shops)));
selector = new NPCSelector(this);

View File

@ -32,6 +32,7 @@ public class AdminCommands {
Messaging.send(sender, " <yellow>-- <green>Author: fullwall");
Messaging.send(sender, " <yellow>-- <green><click:open_url:" + plugin.getDescription().getWebsite()
+ "><hover:show_text:Citizens website including wiki><u>Website</hover></click> <click:open_url:https://discord.gg/Q6pZGSR><hover:show_text:Citizens Support Discord><u>Support</hover></click>");
}
@Command(

View File

@ -686,7 +686,7 @@ public class HologramTrait extends Trait {
/**
* A helper class that models a hologram as a single entity that represents a single line in game.
*/
// TODO: make static (requires: view range/registry modelling)
// TODO: make view range part of hologram renderer?
public abstract static class SingleEntityHologramRenderer implements HologramRenderer {
protected NPC hologram;
private NPCRegistry registry;

View File

@ -66,6 +66,7 @@ import net.citizensnpcs.trait.versioned.ArmadilloTrait.ArmadilloState;
import net.citizensnpcs.trait.versioned.CamelTrait.CamelPose;
import net.citizensnpcs.trait.versioned.SnifferTrait.SnifferState;
import net.citizensnpcs.util.EntityPacketTracker.PacketAggregator;
import net.citizensnpcs.util.NMS.MinecraftNavigationType;
public class NMS {
private NMS() {
@ -562,6 +563,10 @@ public class NMS {
return BRIDGE.getProfile(meta);
}
public static float getRidingHeightOffset(Entity entity, Entity mount) {
return BRIDGE.getRidingHeightOffset(entity, mount);
}
public static MethodHandle getSetter(Class<?> clazz, String name) {
return getSetter(clazz, name, true);
}

View File

@ -1,6 +1,7 @@
{
"citizens.changed-implementation" : "Implementation von Citizens wurde geändert, Plugin wird deaktiviert.",
"citizens.commands.citizens.description" : "Zeigt grundlegende Plugin-Informationen",
"citizens.commands.citizens.reload.description" : "Lade Citizens frisch von der Festplatte, ohne vorheriges Speichern",
"citizens.commands.citizens.save.description" : "NPCs speichern",
"citizens.commands.citizens.save.help" : "Benutze -a um asynchron (zum Haupt-Thread) zu speichern.",
"citizens.commands.console-error" : "Bitte melde diesen Fehler: [Siehe Konsole]",
@ -12,6 +13,7 @@
"citizens.commands.invalid.class" : "Ungültige externe Befehlsklasse.",
"citizens.commands.invalid-mobtype" : "{0} ist kein gültiger NPC-Typ.",
"citizens.commands.invalid-number" : "Das ist keine gültige ID.",
"citizens.commands.npc.activationrange.description" : "Legt die Aktivierungsreichweite fest",
"citizens.commands.npc.activationrange.set" : "Aktivierungsreichweite wurde auf [[{0}]] gesetzt.",
"citizens.commands.npc.age.cannot-be-aged" : "Dem NPC-Typ {0} kann kein Alter zugewiesen werden.",
"citizens.commands.npc.age.description" : "Legt das Alter eines NPCs fest",
@ -23,6 +25,7 @@
"citizens.commands.npc.age.set-baby" : "[[{0}]] ist jetzt ein Baby.",
"citizens.commands.npc.age.set-normal" : "[[{0}]] ist nun [[{1}]] Ticks alt.",
"citizens.commands.npc.age.unlocked" : "Alter entsperrt.",
"citizens.commands.npc.aggressive.description" : "Legt den Aggresivitätsstatus der Entität fest",
"citizens.commands.npc.ai.started" : "Nutzt jetzt Minecraft KI.",
"citizens.commands.npc.ai.stopped" : "Nutzt nicht länger Minecraft KI.",
"citizens.commands.npc.allay.dancing-set" : "[[{0}]] tanzt jetzt.",
@ -32,6 +35,7 @@
"citizens.commands.npc.anchor.invalid-name" : "ungültiger Ankername.",
"citizens.commands.npc.anchor.missing" : "Der Anker {1} existiert nicht.",
"citizens.commands.npc.anchor.removed" : "Anker entfernt.",
"citizens.commands.npc.armorstand.description" : "Bearbeite Rüstungsständer Eigenschaften",
"citizens.commands.npc.axolotl.invalid-variant" : "Ungültige Variante. Gültige Varianten sind [[{0}]].",
"citizens.commands.npc.axolotl.playing-dead" : "[[{0}]] spielt jetzt tod.",
"citizens.commands.npc.axolotl.playing-dead-stopped" : "[[{0}]] spielt nicht mehr tod.",
@ -42,6 +46,7 @@
"citizens.commands.npc.bee.invalid-anger" : "Wut sollte über null sein.",
"citizens.commands.npc.bee.no-nectar" : "[[{0}]] hat keinen Nektar",
"citizens.commands.npc.bee.not-stung" : "[[{0}]] hat nicht mehr gestochen.",
"citizens.commands.npc.bossbar.description" : "Bearbeite Bossleisten Eigenschaften",
"citizens.commands.npc.camel.pose-set" : "Pose auf [[{0}]] gesetzt.",
"citizens.commands.npc.cat.collar-color-set" : "Halsbandfarbe auf [[{0}]] gesetzt.",
"citizens.commands.npc.cat.invalid-collar-color" : "Ungültige Halsbandfarbe angegeben. Gültige Möglichkeiten sind [[{0}]].",
@ -60,24 +65,66 @@
"citizens.commands.npc.command.cost-missing" : "Fehlende Kosten zu setzen.",
"citizens.commands.npc.command.cost-set" : "Setze die Kosten per Klick auf [[{0}]].",
"citizens.commands.npc.command.describe-format" : "<br> - {0} [{1}s] [cost:{2}] [exp:{3}] [<click:run_command:/npc cmd remove {4}><hover:show_text:Entferne den Befehl><red><u>-</hover></click>]",
"citizens.commands.npc.command.description" : "Steuert die Befehle, die beim Anklicken eines NPCs ausgeführt werden",
"citizens.commands.npc.command.errors-cleared" : "Fehler gelöscht für [[{0}]].",
"citizens.commands.npc.command.experience-cost-set" : "Setze XP-Level-Kosten per Klick auf [[{0}]].",
"citizens.commands.npc.command.hide-error-messages-set" : "Fehlermeldungen werden jetzt ausgeblendet.",
"citizens.commands.npc.command.hide-error-messages-unset" : "Fehlermeldungen werden nicht mehr ausgeblendet.",
"citizens.commands.npc.command.invalid-error-message" : "Ungültige Fehlermeldung. Gültige Meldungen sind [[{0}]].",
"citizens.commands.npc.command.invalid-player" : "[[{0}]] konnte nicht als Spieler gefunden werden.",
"citizens.commands.npc.command.left-hand-header" : "Befehle zum Ausführen bei [[left click]]:",
"citizens.commands.npc.command.none-added" : "Keine Befehle wurden hinzugefügt.",
"citizens.commands.npc.command.persist-sequence-set" : "Befehlssequenzen werden jetzt über Serverneustarts hinweg gespeichert.",
"citizens.commands.npc.command.persist-sequence-unset" : "Befehlssequenzen werden bei Serverneustarts nicht mehr gespeichert.",
"citizens.commands.npc.command.right-hand-header" : "Befehle zum Auszuführen bei [[right click]] ",
"citizens.commands.npc.commands.random-set" : "Befehle werden jetzt zufällig ausgeführt.",
"citizens.commands.npc.commands.random-unset" : "Befehle werden nicht mehr zufällig ausgeführt.",
"citizens.commands.npc.commands.sequential-set" : "Befehle werden nun der Reihe nach ausgeführt.",
"citizens.commands.npc.commands.sequential-unset" : "Befehle werden nicht länger der Reihe nach ausgeführt.",
"citizens.commands.npc.command.unknown-id" : "Unbekannte Befehl Id [[{0}]] für diesen NPC.",
"citizens.commands.npc.controllable.not-controllable" : "[[{0}]] ist nicht kontrollierbar.",
"citizens.commands.npc.controllable.removed" : "[[{0}]] kann nicht länger kontrolliert werden.",
"citizens.commands.npc.controllable.set" : "[[{0}]] kann nun kontrolliert werden.",
"citizens.commands.npc.copy.copied" : "[[{0}]] wurde kopiert.",
"citizens.commands.npc.copy.description" : "Kopiert einen NPC",
"citizens.commands.npc.create.description" : "Erstellt einen neuen NPC",
"citizens.commands.npc.create.invalid-location" : "Ort konnte nicht geparst werden oder wurde nicht gefunden.",
"citizens.commands.npc.create.invalid-mobtype" : "{0} ist kein gültiger NPC-Typ. Es wird der Standard-Typ verwendet.",
"citizens.commands.npc.create.npc-name-too-long" : "Namen von NPCs können nicht länger als 16 Zeichen sein. Der Name wurde gekürzt.",
"citizens.commands.npc.debug.description" : "Zeige Debug Informationen",
"citizens.commands.npc.description" : "Zeigt grundlegende NPC-Informationen",
"citizens.commands.npc.deselect" : "NPC abgewählt.",
"citizens.commands.npc.despawn.despawned" : "Du hast [[{0}]] despawned.",
"citizens.commands.npc.enderman.angry-set" : "[[{0}]] ist jetzt böse. >:(",
"citizens.commands.npc.enderman.angry-unset" : "[[{0}]] ist nicht mehr böse. :D",
"citizens.commands.npc.follow.set" : "[[{0}]] folgt jetzt [[{1}]].",
"citizens.commands.npc.follow.unset" : "[[{0}]] folgt niemandem mehr.",
"citizens.commands.npc.fox.crouching-set" : "[[{0}]] ist nun in der Hocke.",
"citizens.commands.npc.fox.crouching-unset" : "[[{0}]] ist nun nicht mehr in der Hocke.",
"citizens.commands.npc.fox.sitting-set" : "[[{0}]] sitzt nun.",
"citizens.commands.npc.fox.sitting-unset" : "[[{0}]] sitzt nun nicht mehr.",
"citizens.commands.npc.fox.sleeping-set" : "[[{0}]] schläft nun.",
"citizens.commands.npc.fox.sleeping-unset" : "[[{0}]] ist aufgewacht.",
"citizens.commands.npc.frog.invalid-variant" : "Ungültige Froschvariante. Gültige Varianten sind [[{0}]].",
"citizens.commands.npc.gamemode.description" : "Ändert den Spielmodus",
"citizens.commands.npc.gamemode.invalid" : "{0} ist kein valider Gamemode.",
"citizens.commands.npc.glowing.set" : "[[{0}]] leuchtet nun.",
"citizens.commands.npc.glowing.unset" : "[[{0}]] hat sich abgeleuchtet.",
"citizens.commands.npc.goat.description" : "Setzt die Ziegenmodifizierungen",
"citizens.commands.npc.gravity.disabled" : "Gravitation [[deaktiviert]].",
"citizens.commands.npc.gravity.enabled" : "Gravitation [[aktiviert]].",
"citizens.commands.npc.guardian.elder-set" : "[[{0}]] ist jetzt ein Wächterältester.",
"citizens.commands.npc.guardian.elder-unset" : "[[{0}]] ist nicht mehr ein Wächterältester.",
"citizens.commands.npc.hologram.invalid-text-id" : "Ungültige Zeile.",
"citizens.commands.npc.hologram.line-height-set" : "Zeilenhöhe beträgt nun [[{0}]].",
"citizens.commands.npc.hologram.line-removed" : "Zeile [[{0}]] entfernt.",
"citizens.commands.npc.hurt.description" : "Verletzt den NPC",
"citizens.commands.npc.leashable.set" : "[[{0}]] ist nun abseilbar.",
"citizens.commands.npc.leashable.stopped" : "[[{0}]] ist nun nicht mehr abseilbar.",
"citizens.commands.npc.lookclose.headonly-set" : "[[{0}]] wird nun nur den Körper rotieren.",
"citizens.commands.npc.lookclose.headonly-unset" : "[[{0}]] wird nun seinen Körper rotieren lassen.",
"citizens.commands.npc.lookclose.random-set" : "[[{0}]] wird jetzt zufällig durch die Gegend schauen.",
"citizens.commands.npc.lookclose.random-stopped" : "[[{0}]] wird jetzt nicht mehr zufällig durch die Gegend schauen.",
"citizens.commands.npc.lookclose.set" : "[[{0}]] wurd sich nun drehen, wenn Spieler in der Nähe sind.",
"citizens.commands.npc.lookclose.stopped" : "[[{0}]] wird sich nicht mehr drehen, wenn Spieler in der Nähe sind.",
"citizens.commands.npc.mount.failed" : "Kontrolle von [[{0}]] fehlgeschlagen.",

View File

@ -138,7 +138,6 @@
"citizens.commands.traitc.not-configurable" : "Esta plantilla no es configurable.",
"citizens.commands.traitc.not-on-npc" : "Los NPC's no pueden tener esta plantilla.",
"citizens.commands.trait.failed-to-add" : "<7>No se pueden agregar {0}.",
"citizens.commands.trait.failed-to-change" : "<7>No se pueden cambiar {0}.",
"citizens.commands.trait.failed-to-remove" : "<7>No se pueden eliminar {0}.",
"citizens.commands.trait.removed" : "Eliminado {0} satisfactoriamente.",
"citizens.commands.unknown-command" : "Comando desconocido. Querias decir:",

View File

@ -1,25 +1,31 @@
{
"citizens.changed-implementation" : "Implémentation de Citizen modifiée, désactivation du plugin.",
"citizens.commands.citizens.description" : "Voir les informations basiques du plugin",
"citizens.commands.citizens.reload.description" : "Charger Citizen directement depuis le disque, sans sauvegarde préalable ",
"citizens.commands.citizens.save.description" : "Sauvegarde des PNJs",
"citizens.commands.citizens.save.help" : "Utilisez le flag -a pour sauvegarder de manière désynchronisée (en dehors du serveur principal).",
"citizens.commands.console-error" : "Veuillez rapporter cette erreur\\: [Voir console]",
"citizens.commands.console-error" : "Veuillez rapporter cette erreur : [Voir console]",
"citizens.commands.errors.missing-world" : "Monde inconnu.",
"citizens.commands.errors.unknown-registry" : "Pré-numérotation du PNJ inconnue [[{0}]].",
"citizens.commands.help.command-missing" : "Commande /{0} inconnue.",
"citizens.commands.help.header" : "Aide",
"citizens.commands.id-not-found" : "Le PNJ portant l''ID [[{0}]] est introuvable.",
"citizens.commands.invalid.class" : "Classe de commande extérieur invalide.",
"citizens.commands.invalid.class" : "Classe de commande extérieure invalide.",
"citizens.commands.invalid-mobtype" : "[[{0}]] n''est pas un type de mob valide.",
"citizens.commands.invalid-number" : "Ce nombre est invalide.",
"citizens.commands.npc.activationrange.set" : "Portée fixée à [[{0}]].",
"citizens.commands.npc.activationrange.description" : "Définit la portée d'activation",
"citizens.commands.npc.activationrange.set" : "Portée d'activation fixée à [[{0}]].",
"citizens.commands.npc.age.cannot-be-aged" : "Il est impossible de définir un âge pour le type de mob {0}.",
"citizens.commands.npc.age.help" : "Uniquement applicable à des entités existant en bébés. Utilisez le flag [[-l]] pour empêcher le vieillissement (note\\: Un rechargement peut être requis pour voir ceci).",
"citizens.commands.npc.age.invalid-age" : "Age invalide. Les ages valides sont adulte, bébé, nombre entre -24000 et 0",
"citizens.commands.npc.age.description" : "Définit l'âge d'un PNJ",
"citizens.commands.npc.age.help" : "Uniquement applicable à des entitées pouvant être bébés. Utilisez le flag [[-l]] pour empêcher le vieillissement (note\\: Un rechargement peut être requis pour voir ceci).",
"citizens.commands.npc.age.invalid-age" : "Age invalide. Les ages valides sont adult, baby, nombre entre -24000 et 0",
"citizens.commands.npc.age.locked" : "Age verrouillé.",
"citizens.commands.npc.age.set" : "[[{0}]] est maintenant [[{1}]].",
"citizens.commands.npc.age.set-adult" : "[[{0}]] est maintenant adulte.",
"citizens.commands.npc.age.set-baby" : "[[{0}]] est maintenant bébé.",
"citizens.commands.npc.age.set-normal" : "[[{0}]] est maintenant agé de [[{1}]].",
"citizens.commands.npc.age.unlocked" : "Age déverouillé.",
"citizens.commands.npc.aggressive.description" : "Définit le statut d'agressivité de l'entitée ",
"citizens.commands.npc.ai.started" : "Application de l''IA de Minecraft.",
"citizens.commands.npc.ai.stopped" : "Arrêt de l''IA de Minecraft.",
"citizens.commands.npc.allay.dancing-set" : "[[{0}]] mis en mode dansant.",
@ -313,7 +319,6 @@
"citizens.commands.npc.tpto.from-not-found" : "Entité source introuvable.",
"citizens.commands.npc.tpto.success" : "Téléportation réalisée avec succès.",
"citizens.commands.npc.tpto.to-not-found" : "Entité de destination introuvable.",
"citizens.commands.npc.trackingdistance.set" : "Distance de suivi fixée à [[{0}]].",
"citizens.commands.npc.tropicalfish.body-color-set" : "Couleur du corps fixée à [[{0}]].",
"citizens.commands.npc.tropicalfish.invalid-color" : "Couleur de poisson invalide. Les couleurs valides sont\\: [[{0}]]",
"citizens.commands.npc.tropicalfish.invalid-pattern" : "Motif de poisson invalide. Les motifs valides sont\\: [[{0}]]",
@ -355,7 +360,6 @@
"citizens.commands.traitc.not-configurable" : "Cette caractéristique n''est pas paramétrable.",
"citizens.commands.traitc.not-on-npc" : "Le PNJ n''a pas cette caractéristique.",
"citizens.commands.trait.failed-to-add" : "<7> impossible d''ajouter {0}.",
"citizens.commands.trait.failed-to-change" : "<7>Impossible de changer {0}.",
"citizens.commands.trait.failed-to-remove" : "<7>Impossible de supprimer {0}.",
"citizens.commands.trait.removed" : "Suppression de {0} avec succès.",
"citizens.commands.unknown-command" : "Commande inconnue. Vouliez vous faire\\:",

View File

@ -78,7 +78,6 @@
"citizens.commands.traitc.not-configurable" : "Dit eigenschap kan niet worden aangepast.",
"citizens.commands.traitc.not-on-npc" : "De NPC heeft deze eigenschap niet.",
"citizens.commands.trait.failed-to-add" : "<7>Kon {0} niet toevoegen.",
"citizens.commands.trait.failed-to-change" : "<7>Kon {0} niet veranderen.",
"citizens.commands.trait.failed-to-remove" : "<7>Kon {0} niet verwijderen.",
"citizens.commands.trait.removed" : "{0} verwijderd.",
"citizens.commands.unknown-command" : "Onbekend commando, bedoelde je:",

View File

@ -253,7 +253,6 @@
"citizens.commands.traitc.not-configurable" : "Nie można konfigurować tej cechy.",
"citizens.commands.traitc.not-on-npc" : "NPC nie ma tej cechy.",
"citizens.commands.trait.failed-to-add" : "<7>Nie udało się dodać {0}.",
"citizens.commands.trait.failed-to-change" : "<7>Nie udało się zmienić {0}.",
"citizens.commands.trait.failed-to-remove" : "<7>Nie udało się usunąć {0}.",
"citizens.commands.trait.removed" : "Pomyślnie usunięto {0}.",
"citizens.commands.unknown-command" : "Nieznana komenda. Myślałeś może o:",

View File

@ -255,7 +255,6 @@
"citizens.commands.traitc.not-configurable" : "無法設定該特徵。",
"citizens.commands.traitc.not-on-npc" : "NPC 沒有該特徵。",
"citizens.commands.trait.failed-to-add" : "<7>無法新增 {0}。",
"citizens.commands.trait.failed-to-change" : "<7>無法變更 {0}。",
"citizens.commands.trait.failed-to-remove" : "<7>無法移除 {0}。",
"citizens.commands.trait.removed" : "成功移除 {0}。",
"citizens.commands.unknown-command" : "未知的指令。您是不是指:",

View File

@ -217,7 +217,6 @@
"citizens.commands.traitc.not-configurable" : "该特征是不可配置的.",
"citizens.commands.traitc.not-on-npc" : "没有这个特征.",
"citizens.commands.trait.failed-to-add" : "<7>无法添加 {0}.",
"citizens.commands.trait.failed-to-change" : "<7>无法更改 {0}.",
"citizens.commands.trait.failed-to-remove" : "<7>无法删除 {0}.",
"citizens.commands.trait.removed" : "已成功删除 {0}.",
"citizens.commands.unknown-command" : "未知命令, 你是否要使用:",