Jump to content

Villager wird nicht bewegt?


Reddi

Empfohlene Beiträge

Hallo.

Ich möchte, dass ein Villager immer wieder teleportiert wird, wenn er weg läuft.

Dazu hab ich schon einiges ausprobiert. Einmal sich selbst als Passenger setzen, dann stürzte aber MC eines Freundes ab. Dann Slowness, aber man kann ihn noch verschieben. Und dann wollte ich, dass er zusätzlich zudem Slowness noch den TP bekommt. Aber dann wurde er nicht teleportiert.

Nun hab ich eine Lösung gefunden. Und zwar nur das TP ohne alles. Nun ist es aber so, dass der Villager beim OnEnable gesetzt wird. Dann wird abgefragt, ob die Location nicht mit der des Villagers (Der der gesetzt wurde) übereinstimmt.

Wenn man jetzt einmal rejoint, dann wird der Villager gar nicht mehr teleportiert.

Hier der Code. Es ist schwer zu erklären 😄

Location location4 = new Location(Bukkit.getWorld("world"), 116.5, 128, 90.5);
		location4.setYaw(90);
		location4.setPitch(2);
		
		
		Villager villager = location4.getWorld().spawn(location4, Villager.class);
		belohnung.add(villager);
		
		task = Bukkit.getScheduler().scheduleSyncRepeatingTask(this, new Runnable() {
			
			@Override
			public void run() {
				villager.teleport(location4);
			}
		}, 20, 2);

Das ist der onEnable Teil. Der Villager wird gesetzt und wenn die Location nicht mit location4 übereinstimmt, dann wird er teleportiert. Wenn ich jetzt rejoine, dann wird der Villager, egal wo er steht, nicht mehr teleportiert.

Ich hoffe ihr versteht es.

EIne Frage hab ich dann noch:

Wie kann ich alle Villager einer Welt removen? Hab das mit Enity e : Bukkit.getWorld....getEntities() probiert, aber dann werden ja alle gekillt.

Danke schonma 😄

 

Link zu diesem Kommentar
Auf anderen Seiten teilen

Hi,

dazu benötigst du keinen Mod.

Du kannst jedem Entitie den NoAI NBT-Tag geben:

Zitat
NoAI Makes mobs have no AI. Mobs will not move on their own.     {NoAI:0b} or {NoAI:1b}

Also einfach beim spawnen des Villagers direkt mitgeben oder nachträglich per Chat-Command oder Command-Block setzen.

 

-Yuki

bearbeitet von Yuki
Link zu diesem Kommentar
Auf anderen Seiten teilen

Danke. Wie mach ich es dann, dass man sie nicht mehr verschieben kann? Dass sie sich nicht von selbst bewegen hab ich mit Slowness gemacht, ich kann das auch anpassen, aber viel wichtiger ist es, dass man sie als Spieler nicht mehr bewegen kann.

Reddi

Link zu diesem Kommentar
Auf anderen Seiten teilen

Hi,

Ok, da wirds schon schwieriger.

Wenn du die Möglichkeit hast diesen einzubauen, also einfach in ein kleines Häuschen packen oder eine Art Marktstand oder so.

Noch eine Option wäre über ihn einen Barriere-Block und rund um ihn herum Teppich, dann kommt der Spieler nicht ran und der Villager kann sich nicht raus bewegen.

Eine andere Möglichkeit wäre noch um deine /tp Option aufzugreifen, dem Villager einen Name geben und dann mit einem Command Block den Villager immer wieder zurück an seine Position zu teleportieren. Die Command-Blocks könnte man entweder in eine Bedrock-Box packen oder am Spawn unter das Bedrock, so kommt kein Spieler ran (je nach MC-Version).

 

-Yuki

Link zu diesem Kommentar
Auf anderen Seiten teilen

Erstelle ein Benutzerkonto oder melde dich an, um zu kommentieren

Du musst ein Benutzerkonto haben, um einen Kommentar verfassen zu können

Benutzerkonto erstellen

Neues Benutzerkonto für unsere Community erstellen. Es ist einfach!

Neues Benutzerkonto erstellen

Anmelden

Du hast bereits ein Benutzerkonto? Melde dich hier an.

Jetzt anmelden
×
×
  • Neu erstellen...
B
B