Jump to content

Gekllickten Block abspeichern


ServerHilfe

Empfohlene Beiträge

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

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

Ok :D 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 :D

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 :D

Link zu diesem Kommentar
Auf anderen Seiten teilen

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 :D

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

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

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

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