diff --git a/main/pom.xml b/main/pom.xml index 1b4325f1d..d0bc36186 100644 --- a/main/pom.xml +++ b/main/pom.xml @@ -124,6 +124,12 @@ 4.3.3-SNAPSHOT provided + + org.reflections + reflections + 0.10.2 + test + http://www.citizensnpcs.co diff --git a/main/src/main/java/net/citizensnpcs/Citizens.java b/main/src/main/java/net/citizensnpcs/Citizens.java index c760b2e26..fbe0274ba 100644 --- a/main/src/main/java/net/citizensnpcs/Citizens.java +++ b/main/src/main/java/net/citizensnpcs/Citizens.java @@ -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); diff --git a/main/src/main/java/net/citizensnpcs/commands/AdminCommands.java b/main/src/main/java/net/citizensnpcs/commands/AdminCommands.java index c34627587..fc18b4fd8 100644 --- a/main/src/main/java/net/citizensnpcs/commands/AdminCommands.java +++ b/main/src/main/java/net/citizensnpcs/commands/AdminCommands.java @@ -32,6 +32,7 @@ public class AdminCommands { Messaging.send(sender, " -- Author: fullwall"); Messaging.send(sender, " -- Website Support"); + } @Command( diff --git a/main/src/main/java/net/citizensnpcs/trait/HologramTrait.java b/main/src/main/java/net/citizensnpcs/trait/HologramTrait.java index 1df2f7355..36f532524 100644 --- a/main/src/main/java/net/citizensnpcs/trait/HologramTrait.java +++ b/main/src/main/java/net/citizensnpcs/trait/HologramTrait.java @@ -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; diff --git a/main/src/main/java/net/citizensnpcs/util/NMS.java b/main/src/main/java/net/citizensnpcs/util/NMS.java index c27e7db7f..59e3aec9a 100644 --- a/main/src/main/java/net/citizensnpcs/util/NMS.java +++ b/main/src/main/java/net/citizensnpcs/util/NMS.java @@ -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); } diff --git a/main/src/main/resources/de.json b/main/src/main/resources/de.json index 662704759..8ca81b1da 100644 --- a/main/src/main/resources/de.json +++ b/main/src/main/resources/de.json @@ -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" : "
- {0} [{1}s] [cost:{2}] [exp:{3}] [-]", + "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.", diff --git a/main/src/main/resources/es.json b/main/src/main/resources/es.json index 0944fcfa4..832083307 100644 --- a/main/src/main/resources/es.json +++ b/main/src/main/resources/es.json @@ -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:", diff --git a/main/src/main/resources/fr.json b/main/src/main/resources/fr.json index 9eeb6ccee..0e2ebce9e 100644 --- a/main/src/main/resources/fr.json +++ b/main/src/main/resources/fr.json @@ -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\\:", diff --git a/main/src/main/resources/nl.json b/main/src/main/resources/nl.json index 5911c08f6..b519ac65c 100644 --- a/main/src/main/resources/nl.json +++ b/main/src/main/resources/nl.json @@ -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:", diff --git a/main/src/main/resources/pl.json b/main/src/main/resources/pl.json index 70f6a0e3e..c7c2b45d3 100644 --- a/main/src/main/resources/pl.json +++ b/main/src/main/resources/pl.json @@ -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:", diff --git a/main/src/main/resources/zh-tw.json b/main/src/main/resources/zh-tw.json index 810c2d019..5e6a7493c 100644 --- a/main/src/main/resources/zh-tw.json +++ b/main/src/main/resources/zh-tw.json @@ -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" : "未知的指令。您是不是指:", diff --git a/main/src/main/resources/zh.json b/main/src/main/resources/zh.json index 46c9db38c..2a33c575b 100644 --- a/main/src/main/resources/zh.json +++ b/main/src/main/resources/zh.json @@ -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" : "未知命令, 你是否要使用:",