• Es freut uns dass du in unser Minecraft Forum gefunden hast. Hier kannst du mit über 130.000 Minecraft Fans über Minecraft diskutieren, Fragen stellen und anderen helfen. In diesem Minecraft Forum kannst du auch nach Teammitgliedern, Administratoren, Moderatoren , Supporter oder Sponsoren suchen. Gerne kannst du im Offtopic Bereich unseres Minecraft Forums auch über nicht Minecraft spezifische Themen reden. Wir hoffen dir gefällt es in unserem Minecraft Forum!

Spigot Location Exitlocation eines Porales herausfinden

xXSchrandXx

Schafhirte
Registriert
16 September 2012
Beiträge
126
Diamanten
302
Minecraft
xXSchrandXx
Hi,

ich brächte ein wenig Hilfe bei einem Problem:
Wie bekomme ich eine Location welche Weg von einem Portal schaut und X Blöcke von diesem Portal liegt.
Ca. so wie im Beispielbild:
1571405645510.png


Ich habe den Player, der das Portal erstellt und die BlockStates vom PortalCreateEvent (Hier der aktuelle Code).

Vielen Dank schon mal im voraus.


Mit freundlichem Gruß

xXSchrandXx
 

ImNowAPro

Minecrafter
Registriert
31 Dezember 2017
Beiträge
22
Diamanten
308
Minecraft
ImNowAPro
Ich weiß ob ich das Problem richtig verstanden habe, aber wenn die Z-Koordinate von allen Portalblöcken gleich ist, kann das Portal nur nach Norden oder Süden ausgerichtet sein. Andersrum, wenn die X-Koordinate von allen Portalblöcken gleich ist, kann es nur nach Osten oder Westen ausgerichtet sein. Dann weißt du die Richtung und kannst deine gewünschte Distanz addieren.
 
Zuletzt bearbeitet:

Gadse

Minecrafter
Registriert
22 Mai 2012
Beiträge
2
Diamanten
0
Minecraft
Gadse
Wenn dein Spieler das Portal erstellt, musst du doch nur schauen, in welche Richtung der Spieler schaut und die entgegengesetzte nehmen? Player#getEyeLocation()#getDirection()#normalize()#multiply(-1);

Alternativ inheriten Portale Orientable. Damit weißt du bereits, ob sie nach Norden/Süden ; oder Osten/Westen ausgerichtet sind. Von dort kannst du dann iterativ in beide Richtungen gehen, schauen ob sie direkt auf Blöcke treffen und dann die andere Richtung nehmen.
 

SirYwell

PlotSquared Entwickler
Registriert
30 Juni 2017
Beiträge
540
Diamanten
488
Minecraft
SirYwell
Wenn dein Spieler das Portal erstellt, musst du doch nur schauen, in welche Richtung der Spieler schaut und die entgegengesetzte nehmen? Player#getEyeLocation()#getDirection()#normalize()#multiply(-1);
Man kann auch seitlich ein Portal erstellen. Dein anderer Vorschlag gefällt mir besser :p
 

xXSchrandXx

Schafhirte
Registriert
16 September 2012
Beiträge
126
Diamanten
302
Minecraft
xXSchrandXx
Hi,

ich hab nach ner Zeit mal einfach was probiert:
createExitLocation:
  public static Location createExitLocation(@Nonnull Player Player, @Nonnull List<BlockState> List) {
    if (Player == null)
      return null;
    if (List == null)
      return null;
    if (List.isEmpty())
      return null;
    Location pl = Player.getLocation();
    Location el = null;
    double x = 0;
    double exity = List.get(0).getWorld().getMaxHeight();
    double z = 0;
    for (BlockState bs : List) {
      x = x + bs.getBlock().getLocation().getX();
      if (exity > bs.getBlock().getLocation().getY())
        exity = bs.getBlock().getLocation().getY();
      z = z + bs.getBlock().getLocation().getZ();
    }
    double centerx = x/List.size();
    double centerz = z/List.size();
    float exityaw = Player.getLocation().getYaw();
    exityaw = Math.round((exityaw / 90) * 90) + 180;
    float exitpitch = 0;
    //Moving X blocks in Yaw directory
    double exitx = ??;
    double exity = ??;
    //
    el = new Location(pl.getWorld(), exitx, exity, exitz, exityaw, exitpitch);
    if (!isSafeLocation(el))
      return null;
    return el;
  }
Wie kann ich jetzt so gesehen die Location am einfachsten um X Blöcke in die Blickrichtung von Yaw und Pitch verschieben?

Mit freundlichem Gruß

xXSchrandXx
 
Oben