ServerHilfe Posted March 29, 2017 Posted March 29, 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
BloodSKreaper Posted March 29, 2017 Posted March 29, 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
ServerHilfe Posted March 29, 2017 Author Posted March 29, 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
Joey Posted March 29, 2017 Posted March 29, 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
BloodSKreaper Posted March 29, 2017 Posted March 29, 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
ServerHilfe Posted March 29, 2017 Author Posted March 29, 2017 Aber ich kann loc dann ja immernoch nicht in einer anderen Klasse verwenden? :/
BloodSKreaper Posted March 29, 2017 Posted March 29, 2017 Wie sieht denn deine Methode aus, in der du die Location benötigst?
ServerHilfe Posted March 29, 2017 Author Posted March 29, 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);
BloodSKreaper Posted March 29, 2017 Posted March 29, 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
Recommended Posts
Create an account or sign in to comment
You need to be a member in order to leave a comment
Create an account
Sign up for a new account in our community. It's easy!
Register a new accountSign in
Already have an account? Sign in here.
Sign In Now