ServerHilfe Geschrieben 29. März 2017 Share Geschrieben 29. März 2017 Also durch ein bestimmtes Item wird ein Inventar geöffnet in dem man dann auf "Annehmen" klicken muss. Also das Item muss man mit rechtklick auf den Boden klicken. Habe ich alles bereit gemacht! Jedoch weiss ich nicht wie ich die Location, also den Block auf den man draufgeklickt hat abspeichern soll? e.getClickedBlock kann man ja nicht in einem String oder so speichern :/ Ich den Block eben in einer anderen klasse.. Dort ist der InventoryClickEvent und nach dem Klicken auf "Annehmen" soll eben über dem geklickten block ein block spawnen.. (weiss auch nicht wie das gehen soll :D) Also wie man ein block spawnt weiss ich aber das es eins über der Location sein soll.. Man weiss ja nicht die genauen Koordinaten.. Kann mir jemand helfen? Danke für eure antworten Link zu diesem Kommentar Auf anderen Seiten teilen More sharing options...
BloodSKreaper Geschrieben 29. März 2017 Share Geschrieben 29. März 2017 Guten Tag, also durch dein Wirrwar blicke ich garnicht durch. Was genau willst du machen? Bitte formuliere das nocheinmal besser ganz frei nach dem Zitat: Zitat Ein Problem ist halb gelöst, wenn es klar formuliert ist. John Dewey Freundliche Grüße BloodSKreaper Link zu diesem Kommentar Auf anderen Seiten teilen More sharing options...
ServerHilfe Geschrieben 29. März 2017 Autor Share Geschrieben 29. März 2017 Ok Also wenn man eine "spezielle" Goldschaufen an den Boden drückt soll der Block auf den man geklickt hat gespeichert werden, weil ich das ganze in einer anderen klasse benötige.. Über dem geklickten Block soll dan ein Block spawnen. Wie man ein Block spawnt weis ich aber nicht wie man es machen soll, sodass das der Block eins über der Location gespawnt wird (Also die Location vom e.getClickedBlock) Ich meine man weis ja nicht die genauen Koordinaten Also ich benötige den Block in einer anderen Klasse, da es zwei verschiedene Events sind. Also der einte Event ist der PlayerInteractEvent und der Andere der InventoryClickEvent. Weil also in einem virtuellen Inventar muss man auf "annehmen" klicken damit der Block gesetzt wird. Und das Inventar öffnet sich halt durch die "spezielle" Goldschaufel. Ich hoffe das war jetzt besser Link zu diesem Kommentar Auf anderen Seiten teilen More sharing options...
Joey Geschrieben 29. März 2017 Share Geschrieben 29. März 2017 Da brauchst du den Block doch gar nicht. Hol dir mit getLocation() die Position des Blockes und übergib sie als Parameter in die Funktion. Du kannst ja die Location direkt weiter verwenden. Mfg, Joey Link zu diesem Kommentar Auf anderen Seiten teilen More sharing options...
BloodSKreaper Geschrieben 29. März 2017 Share Geschrieben 29. März 2017 vor 35 Minuten schrieb ServerHilfe: sodass das der Block eins über der Location gespawnt wird (Also die Location vom e.getClickedBlock) Ich meine man weis ja nicht die genauen Koordinaten Diese Koordinaten kannst du dir doch einfach selber zusammenholen. Beispiel: Block block = e.getClickedBlock(); Location loc = new Location(block.getLocation().getWorld(), block.getLocation().getBlockX(), block.getLocation().getBlockY() + 1, block.getLocation().getBlockZ()); Bei der Y-Koordinate findest du ein +1, das die Höhe um 1 erhöht. Freundliche Grüße BloodSKreaper Link zu diesem Kommentar Auf anderen Seiten teilen More sharing options...
ServerHilfe Geschrieben 29. März 2017 Autor Share Geschrieben 29. März 2017 Aber ich kann loc dann ja immernoch nicht in einer anderen Klasse verwenden? :/ Link zu diesem Kommentar Auf anderen Seiten teilen More sharing options...
BloodSKreaper Geschrieben 29. März 2017 Share Geschrieben 29. März 2017 Wie rufst du denn die Methode auf? Link zu diesem Kommentar Auf anderen Seiten teilen More sharing options...
ServerHilfe Geschrieben 29. März 2017 Autor Share Geschrieben 29. März 2017 Wieso soll ich eine Methode aufrufen? Link zu diesem Kommentar Auf anderen Seiten teilen More sharing options...
BloodSKreaper Geschrieben 29. März 2017 Share Geschrieben 29. März 2017 Wie sieht denn deine Methode aus, in der du die Location benötigst? Link zu diesem Kommentar Auf anderen Seiten teilen More sharing options...
ServerHilfe Geschrieben 29. März 2017 Autor Share Geschrieben 29. März 2017 Meinst du das? if(e.getCurrentItem().getItemMeta().getDisplayName().equalsIgnoreCase("§2§lAnnehmen")) { World world = p.getWorld(); world.getBlockAt(0,0,0).setType(Material.GOLD_BLOCK); Link zu diesem Kommentar Auf anderen Seiten teilen More sharing options...
BloodSKreaper Geschrieben 29. März 2017 Share Geschrieben 29. März 2017 Ah okay du willst das also so machen: Spieler macht rechtsklick mit der Schaufel -> Inventar mit annehmen öffnet sich -> bei Klick auf Annehmen soll der Block gesetzt werden Hierbei würde ich mit einer HashMap arbeiten. Bei dem ClickEvent kannst du die Daten ja in die Hashmap speichern und mit dem InventoryClickEvent die Daten aus der Hashmap aufrufen. Bsp: Hashmap mit Spieler-UUID und Location Freundliche Grüße BloodSKreaper Link zu diesem Kommentar Auf anderen Seiten teilen More sharing options...
ServerHilfe Geschrieben 30. März 2017 Autor Share Geschrieben 30. März 2017 Danke hat geklappt Link zu diesem Kommentar Auf anderen Seiten teilen More sharing options...
Empfohlene Beiträge
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 erstellenAnmelden
Du hast bereits ein Benutzerkonto? Melde dich hier an.
Jetzt anmelden