• 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!

Hilfe

M

miccc345

Guest
Guten Abend ich wollte ein kleines plugin schreiben aber natürlich will es nie so wie man will

Code:
@EventHandler
   public void onPlayerInteract(PlayerInteractEvent ie) {
     if (ie.getAction() == Action.RIGHT_CLICK_BLOCK) {
       if (ie.getClickedBlock().getType() == Material.ANVIL) {
ie.getPlayer().sendMessage("test");
     }}}}}

Also wenn ich einen Anvil anklicke kommt die Nachricht test das funktioniert auch aber
wenn ich jetzt will das unter dem Anvil ein z.b. Diamantblock sein soll damit nur dann die Nachricht kommt hab ich gedacht ich mach das dazu

Code:
if (ie.getPlayer().getLocation().subtract(0.0D, 1.0D, 0.0D).getBlock().getType() == Material.DIAMOND_BLOCK){

Jetz ist es aber so das ich (Spieler) auf einen Diamantblock stehen muss damit diese nachricht kommt und nichtso wie ich das will
ich muss ja iwie den Anvil als location angeben und nicht den Player aber wie mache ich das am besten?
 

Chrisliebär❤️

nur echt mit ❤️
Moderator
Registriert
19 Mai 2014
Beiträge
1.675
Diamanten
830
M

miccc345

Guest
Vielen dank hat super geklappt !
hier der Code vllt hilfts ja auch jemanden

Code:
@EventHandler
   public void onPlayerInteract(PlayerInteractEvent ie) {
     if (ie.getAction() == Action.RIGHT_CLICK_BLOCK) {
       if (ie.getClickedBlock().getType() == Material.ANVIL) {
         if (ie.getClickedBlock().getRelative(BlockFace.DOWN).getType() == Material.DIAMOND_BLOCK) {
     
       ie.getPlayer().sendMessage("test");
     }}}}}
 
M

miccc345

Guest
ich hab jetzt das Plugin weiter ausgebaut und wieder einen fehler ....:(

Code:
@EventHandler
    public void onPlayerInteract(PlayerInteractEvent ie) {
     Player p = ie.getPlayer();
    if (ie.getAction() == Action.RIGHT_CLICK_BLOCK) {
    if (ie.getClickedBlock().getType() == Material.ANVIL) {
    if (ie.getClickedBlock().getRelative(BlockFace.DOWN).getType() == Material.STONE)
        if (p.getInventory().getItemInHand().getType() == Material.COBBLESTONE) {
        
          p.getInventory().removeItem(new ItemStack[] { new ItemStack(Material.COBBLESTONE, 1) });
        ItemStack item = new ItemStack(1, 1);
        
        ItemMeta meta = item.getItemMeta();
        meta.setDisplayName("§6 Gebrannter Stein");
        
        item.setItemMeta(meta);
        p.getInventory().addItem(item);
        
        
        ie.setCancelled(true);
        
        }}}}}
erklärung:
Also Spieler klickt einen Anvil an wenn unter dem Anvil ein Stein ist und ich einen Cobblestone in der Hand habe entfernt er ihn.
Und ich bekomme einen gebrannten stein mit dem namen "Gebrannter Stein" dann wird die aktion gecancelt das das AnvilMenü nicht aufgeht ...

So ansich funktioniert auch alles aber wenn nun der Cobblestone einen anderen Namen hat geht es nicht mehr und das ist mein Problem jemand eine Idee?

Und ich bekomme einen "gebrannten stein" ohne das es mir Cobblestone abzieht
 
Oben