1. 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!

PlugIn Enchantments auf Schildern

Dieses Thema im Forum "Programmierung" wurde erstellt von LoganBwDE, 26. Juli 2015.


  1. LoganBwDE
    Offline

    LoganBwDE Miner

    Registriert seit:
    26. November 2014
    Beiträge:
    184
    Geschlecht:
    männlich
    Minecraft:
    LoganBwDE
    Hallöle,

    und zwar komme ich leider nicht weiter. Ich habe bereits viel versucht, nun suche ich eure Hilfe.
    Es geht um diesen Code:
    Code (Text):
    1.  
    2. @EventHandler
    3.     public void onSignCreate(SignChangeEvent event)
    4.     {
    5.           Player p = event.getPlayer();
    6.           Sign schild = (Sign)event.getBlock().getState();
    7.            if(event.getLine(3).contains(":"))
    8.           {
    9.             final String[] enchid = schild.getLine(3).split(":");
    10.             if(enchid.length != 2)
    11.             {
    12.                 p.sendMessage(ChatColor.translateAlternateColorCodes('&', lengtherror));
    13.                 event.getBlock().setType(Material.AIR);
    14.                 return;
    15.             }
    16.             final Enchantment ench =  Enchantment.getByName(enchid[0]);
    17.             if(ench == null)
    18.             {
    19.                 p.sendMessage(ChatColor.translateAlternateColorCodes('&', enchnotfound));
    20.                 event.getBlock().setType(Material.AIR);
    21.                 return;
    22.             }
    23.             try
    24.             {
    25.                  ench2 = Integer.parseInt(enchid[1]);
    26.             }
    27.             catch (NumberFormatException e)
    28.             {
    29.                  p.sendMessage(error);
    30.              }
    31.           }  
    32.      }        
    33.  
    Ich möchte gerne wenn ich in der vierten Zeile ein Enchantment steht mit der zugehörigen "Stärke" des Enchantments ein Item enchanten. Jedoch klappt da etwas nicht ganz mit dem Splitten da wenn ich mir die length des Strings "enchid" ausgeben lasse, kommt nur 1 raus anstatt 2 wie erwartet. Jetzt stellt sich mir nur die Frage, was an diesem Code jetzt falsch ist. Hoffe auf ein paar konstruktive Antworten.

    Gruß
    LoganBwDE
     
  2. GPSforLEGENDS
    Offline

    GPSforLEGENDS Vorarbeiter

    Registriert seit:
    21. März 2014
    Beiträge:
    289
    Minecraft:
    GPSforLEGENDS
    Benutz final String[] enchid = event.getLine(3).split(":"); in Zeile 9
     
  3. LoganBwDE
    Offline

    LoganBwDE Miner

    Registriert seit:
    26. November 2014
    Beiträge:
    184
    Geschlecht:
    männlich
    Minecraft:
    LoganBwDE
    Danke werd ich heute mal probiern.

    EDIT: Habs mal probiert, geht jetzt auch. Doch nun will er die Enchantment nicht auf das Item packen...

    Code (Text):
    1.  
    2. public void onSignCreate(SignChangeEvent event)
    3.     {
    4.       Player p = event.getPlayer();
    5.       Sign schild = (Sign)event.getBlock().getState();
    6. if(event.getLine(3).contains(":"))
    7.           {
    8.             final String[] enchid = event.getLine(3).split(":");
    9.             String encha1 = enchid[0];
    10.             String encha2 = enchid[1];
    11.            
    12.             nench1 = Integer.parseInt(encha1);
    13.             nench2 = Integer.parseInt(encha2);
    14.            
    15.             if(enchid.length != 2)
    16.             {
    17.                 p.sendMessage(ChatColor.translateAlternateColorCodes('&', lengtherror + " Die Laenge betraegt naemlich " + enchid[0] + " " + enchid[1] ));
    18.                 event.getBlock().setType(Material.AIR);
    19.                 return;
    20.             }
    21.             final Enchantment ench = Enchantment.getById(nench1);
    22.             if(ench == null)
    23.             {
    24.                 p.sendMessage(ChatColor.translateAlternateColorCodes('&', enchnotfound));
    25.                 event.getBlock().setType(Material.AIR);
    26.                 return;
    27.             }
    28.             try
    29.                 {
    30.                     //ench2 = Integer.parseInt(enchid[1]);
    31.                   }
    32.                 catch (NumberFormatException e)
    33.                 {
    34.                   p.sendMessage(error);
    35.                 }
    36.           }
    37.           ench2 = nench2;
    38.  
    Das der Code zum Erstellen des Inventars:

    Code (Text):
    1.  
    2.  public Inventory createInventory(int id,int number)
    3.     {
    4.        
    5.         ItemStack inv = new ItemStack(id, number);
    6.         inv.addUnsafeEnchantment(ench, ench2);
    7.        Inventory invent = Bukkit.createInventory(null, 9,"§b" + invname);
    8.        for (int i = 0; i < invent.getSize(); i++)
    9.        {
    10.           invent.setItem(4, inv);
    11.        }
    12.        return invent;
    13.     }
    14.  
     
    Zuletzt bearbeitet: 27. Juli 2015
  4. LoganBwDE
    Offline

    LoganBwDE Miner

    Registriert seit:
    26. November 2014
    Beiträge:
    184
    Geschlecht:
    männlich
    Minecraft:
    LoganBwDE
    #pushittothetop
     
  5. GPSforLEGENDS
    Offline

    GPSforLEGENDS Vorarbeiter

    Registriert seit:
    21. März 2014
    Beiträge:
    289
    Minecraft:
    GPSforLEGENDS
    Code (Text):
    1. //ench2 = Integer.parseInt(enchid[1]);
    Sehr schlau zu versuchen auf ein Objekt zuzugreifen das ein Kommentar ist.
     
  6. LoganBwDE
    Offline

    LoganBwDE Miner

    Registriert seit:
    26. November 2014
    Beiträge:
    184
    Geschlecht:
    männlich
    Minecraft:
    LoganBwDE
    Das hab ich extra auskommentiert :D Auch wenn ichs nicht kommentiere funktioniert es nicht