Könnte es daran liegen, das setItemInHand() nicht geht, wenn man in die Luft pointed? Das sollte das problem sein. Wie kann ich das lösen?Ich würde dir raten, nicht das bitweise "oder" zu verwenden.
Könnte es daran liegen, das setItemInHand() nicht geht, wenn man in die Luft pointed? Das sollte das problem sein. Wie kann ich das lösen?Ich würde dir raten, nicht das bitweise "oder" zu verwenden.
p.getInventory().remove(Material.DeinITEM);Könnte es daran liegen, das setItemInHand() nicht geht, wenn man in die Luft pointed? Das sollte das problem sein. Wie kann ich das lösen?
Sicher? Damit lösche ich ja das Item. Ich möchte aber das Item, das was ausgewält ist zur Bowl replacen.p.getInventory().remove(Material.DeinITEM);
Okay hab das dann falsch verstaden srySicher? Damit lösche ich ja das Item. Ich möchte aber das Item, das was ausgewält ist zur Bowl replacen.
Das gleiche wie vorhin.Was passiert wenn du p.updateInventory(); mit einfügst?
Wieviel Suppen hat man den insgesamt?Das gleiche wie vorhin.
Beliebig. Also manchmal 14, manchmal auch nur eine.Wieviel Suppen hat man den insgesamt?
Dein Tipp bringt mir auch nichts. paasiert das gleiche.@geilNico Zitierst meine Nachricht, aber ignorierst den Inhalt völlig? Cool.
Und hierzu: Bringt auch nichts, da es genau das selbe passiert.p.getItemInHand().setAmount(p.getItemInHand().getAmount() -1);
Ich glaube das wird auch die Schüssel löschen, kannst es aber mal versuchen ^^
Hast ihn wahrscheinlich nicht mal verstanden.Dein Tipp bringt mir auch nichts. paasiert das gleiche.
Dein Tipp bringt mir auch nichts. paasiert das gleiche.
Hey, ich habe ein Soup plugin geschrieben.
Code:@EventHandler public void onInteract(PlayerInteractEvent e) { Player p = e.getPlayer(); if(e.getAction() == Action.RIGHT_CLICK_AIR | e.getAction() == Action.RIGHT_CLICK_BLOCK) { if(e.getMaterial().equals(Material.MUSHROOM_SOUP)){ if(Main.soupingame.contains(e.getPlayer().getName())){ if(p.getHealth() < 20){ if(p.getHealth() >= 16){ p.setHealth(20); ItemStack bowl = new ItemStack(Material.BOWL); p.setItemInHand(bowl); } else{ int health = (int) p.getHealth(); p.setHealth(health + 4); ItemStack bowl = new ItemStack(Material.BOWL); p.setItemInHand(bowl); } } } else{ e.getPlayer().sendMessage(Main.error); } } } }
Nun habe ich das Problem, wenn ich die Muschroom Bowl rechtsklicke und dabei in die Luvt zeige, kommen nur Herzen hinzu und die Bowl wird nicht ersetze. Aber wenn ich auf den Boden (Block) zeige funktioniert alles.
Was habe ich falsch gemacht?
Das Paragraphzeichen ist ja am ENDE des Strings. Somit gibt es nur einen String der aus dem Split hervorgeht, -> Array.length == 1; arr[1]->ArrayIndexOutOfBounds.... : 1Bei dem Paragraph-Zeichen kommt aber immer noch die selbe Fehlermeldung.
Error:
PHP:[18:31:48 INFO]: [Ljava.lang.String;@26d61872 [18:31:48 WARN]: java.lang.ArrayIndexOutOfBoundsException: 1 [18:31:48 WARN]: at net.blockbreaker.serversigns.StatusSign.update(Status Sign.java:72) [18:31:48 WARN]: at net.blockbreaker.serversigns.StatusSigns$1.run(Status Signs.java:60) [18:31:48 WARN]: at org.bukkit.craftbukkit.v1_8_R1.scheduler.CraftTask.ru n(CraftTask.java:71) [18:31:48 WARN]: at org.bukkit.craftbukkit.v1_8_R1.scheduler.CraftSchedul er.mainThreadHeartbeat(CraftScheduler.java:350) [18:31:48 WARN]: at net.minecraft.server.v1_8_R1.MinecraftServer.z(Minecr aftServer.java:695) [18:31:48 WARN]: at net.minecraft.server.v1_8_R1.DedicatedServer.z(Dedica tedServer.java:316) [18:31:48 WARN]: at net.minecraft.server.v1_8_R1.MinecraftServer.y(Minecr aftServer.java:625) [18:31:48 WARN]: at net.minecraft.server.v1_8_R1.MinecraftServer.run(Mine craftServer.java:528) [18:31:48 WARN]: at java.lang.Thread.run(Unknown Source) [18:31:49 INFO]: A Minecraft Serverº0º500
Code:
PHP:package net.blockbreaker.serversigns; import java.io.DataInputStream; import java.io.DataOutputStream; import java.net.InetSocketAddress; import java.net.Socket; import org.bukkit.ChatColor; import org.bukkit.Location; import org.bukkit.block.Sign; public class StatusSign { private Location location; private Sign sign; private String name, ip; private int port; public StatusSign(Location location, String name, String ip, int port) { this.location = location; this.sign = (Sign) location.getBlock().getState(); this.name = name; this.ip = ip; this.port = port; } public Location getLocation() { return location; } public String getName() { return name; } public String getIP() { return ip; } public int getPort() { return port; } public void update() { try { Socket socket = new Socket(); socket.connect(new InetSocketAddress(ip, port), 1 * 1000); DataOutputStream out = new DataOutputStream(socket.getOutputStream()); DataInputStream in = new DataInputStream(socket.getInputStream()); out.write(0xFE); StringBuilder str = new StringBuilder(); int b; while ((b = in.read()) != -1) { if (b != 0 && b > 16 && b != 255 && b != 23 && b != 24) { str.append((char) b); } } /* <Name> <IP> <Current/Max> <MOTD> */ String[] data = str.toString().split("§"); //Hier String motd = data[0]; int onlinePlayers = Integer.valueOf(data[1]); int maxPlayers = Integer.valueOf(data[2]); sign.setLine(0, name); sign.setLine(1, ip); sign.setLine(2, onlinePlayers + "/" + maxPlayers); sign.setLine(3, motd); socket.close(); } catch (Exception e) { e.printStackTrace(); sign.setLine(0, name); sign.setLine(1, ip); sign.setLine(2, ChatColor.RED + "Error."); } sign.update(); } }
Du bist hier im GommeHD-Forum und regst dich auf, weil die Leute/Kinder kein Java können? Ich bitte dich Sheigutn...Hast ihn wahrscheinlich nicht mal verstanden.
Hab ich mir dann auch gedacht. Es ist aussichtslos.Du bist hier im GommeHD-Forum und regst dich auf, weil die Leute/Kinder kein Java können? Ich bitte dich Sheigutn...
a) Hat der Spieler Hunger , wenn er die Suppe benutzt? Probier es bitte mal mit mal ohne Hunger.
b) Wieso:
ItemStack bowl = new ItemStack(Material.BOWL);
p.setItemInHand(bowl);
Anstatt
p.setItemInHand(new ItemStack(Material.BOWL)?
-> Das gleiche gilt auch für Health
MfG,
Tim
P.S.: EDIT: Ich habe bereits gestellte Vorschläge aus meinem Beitrag entfernt.