Coding mit Java | Java-basierten APIs

  • Ersteller Ersteller ij9F_i0FaF-d9lrDSDDpDbfo
  • Erstellt am Erstellt am
Status
Für weitere Antworten geschlossen.
Es heißt Java ist auch eine Insel, und dieses Buch ist eher ein "Buch zum Nachschlagen". Es ist trotzdem nicht schlecht (Du kannst es trotzdem benutzen, man kann es kostenlos im Internet lesen). Ich empfehle Schrödinger Programmiert Java
 
Zuletzt bearbeitet von einem Moderator:
Wie kann ich bei einem blockbreakevent abfragen wie der block enstanden ist?
 
Ja du machst eine List, in die trägst du im Block Place Event alle Blöcke bzw. ihre Locations ein und fragst dann im BlockBreakEvent ab, ob der Block bzw. seine Location in der ArrayList enthalten ist.
So würde ich das machen.
 
ich will wissen wie er enstanden ist also gesetzt oder generiert wurde
 
Ja du machst eine List, in die trägst du im Block Place Event alle Blöcke bzw. ihre Locations ein und fragst dann im BlockBreakEvent ab, ob der Block bzw. seine Location in der ArrayList enthalten ist.
So würde ich das machen.
Das geht ja damit. Jeder Block der nicht in der ArrayList gelistet ist, muss dann generiert sein.
ich will wissen wie er enstanden ist also gesetzt oder generiert wurde
 
Hi, ;)

ich habe vor einiger zeit diesen code benutzt um spielernamen also den name tag zu ändern. nicht die farbe, sndern denn namen:
Code:
public static void disguise(Player p, String newName)
   {
  EntityHuman eh = ((CraftPlayer)p).getHandle();
  PacketPlayOutEntityDestroy p29 = new PacketPlayOutEntityDestroy(new int[]{p.getEntityId()});
  PacketPlayOutNamedEntitySpawn p20 = new PacketPlayOutNamedEntitySpawn(eh);
  try
  {
  Field profileField = p20.getClass().getDeclaredField("b");
  profileField.setAccessible(true);
  profileField.set(p20, new GameProfile(p.getUniqueId(), newName));
  }
  catch(Exception e)
  {
     e.printStackTrace();
  }
  for(Player o : Bukkit.getOnlinePlayers())
  {
  if(!o.getName().equals(p.getName()))
  {
  ((CraftPlayer)o).getHandle().playerConnection.sendPacket(p29);
  ((CraftPlayer)o).getHandle().playerConnection.sendPacket(p20);
  }
  }
  }
nur leider gibt es das field "b" nicht mehr. weiß jemand wie das nun sein muss? Danke! :)
schau ein paar seiten zurück, dann siehste es. :) :) ich wurde immer gekickt wenn ich mir ein beschriebenes buch geben lasse
 
Wie kann ich beim Playerinteractevent einen ItemStack/einen Itemnamen Abfragen?
Wenn es nur mit einem ItemStack geht, ich habe ihn bei den Befehlen definiert ;)

Ich nutze getItemInHand ;)
 
Hi, ;)

ich habe vor einiger zeit diesen code benutzt um spielernamen also den name tag zu ändern. nicht die farbe, sndern denn namen:
Code:
public static void disguise(Player p, String newName)
   {
  EntityHuman eh = ((CraftPlayer)p).getHandle();
  PacketPlayOutEntityDestroy p29 = new PacketPlayOutEntityDestroy(new int[]{p.getEntityId()});
  PacketPlayOutNamedEntitySpawn p20 = new PacketPlayOutNamedEntitySpawn(eh);
  try
  {
  Field profileField = p20.getClass().getDeclaredField("b");
  profileField.setAccessible(true);
  profileField.set(p20, new GameProfile(p.getUniqueId(), newName));
  }
  catch(Exception e)
  {
     e.printStackTrace();
  }
  for(Player o : Bukkit.getOnlinePlayers())
  {
  if(!o.getName().equals(p.getName()))
  {
  ((CraftPlayer)o).getHandle().playerConnection.sendPacket(p29);
  ((CraftPlayer)o).getHandle().playerConnection.sendPacket(p20);
  }
  }
  }
nur leider gibt es das field "b" nicht mehr. weiß jemand wie das nun sein muss? Danke! :)
Das Field gibt es noch, ist aber eine UUID und kein GameProfile mehr.
 
  • Like
Reaktionen: 5zig
Bildschirmfoto 2015-03-19 um 16.28.57.png

Vorab:
Oben ist der Integer high vordefiniert.
int high = 10;

Hallo, ich habe aktuell das Problem, dass ich diese Aktion (Ghastträne Rechtsklick) einmal ausführe, es mich nach 10 sek. zürückbringt, aber wenn ich diese Funktion mit einer zweiten Ghastträne ausführe, portet es mich SOFORT zürück.


Anders gesagt:

Aktion:
Bei Rechtsklick:
10 sek. warten.
Zu der Position kommen wo man vor 10 sek war.

Das funktioniert ja auch.
Aber beim 2. mal überspringt es die Wartezeit, was natürlich das ganze Konzept.... aus der Fassung bringt!



Kann mir wer helfen? :(
 
Anhang anzeigen 77984

Vorab:
Oben ist der Integer high vordefiniert.
int high = 10;

Hallo, ich habe aktuell das Problem, dass ich diese Aktion (Ghastträne Rechtsklick) einmal ausführe, es mich nach 10 sek. zürückbringt, aber wenn ich diese Funktion mit einer zweiten Ghastträne ausführe, portet es mich SOFORT zürück.


Anders gesagt:

Aktion:
Bei Rechtsklick:
10 sek. warten.
Zu der Position kommen wo man vor 10 sek war.

Das funktioniert ja auch.
Aber beim 2. mal überspringt es die Wartezeit, was natürlich das ganze Konzept.... aus der Fassung bringt!



Kann mir wer helfen? :(
Du musst den Wert wieder auf 10 zurücksetzen?
 
Am besten benutzt du nich den SyncRepeatingTask, sondern den SyncDelayedTask, dann brauchst du keinen int high
 
Status
Für weitere Antworten geschlossen.

Soziale Medien

  • X
  • TikTok

Über uns

  • GommeHD.net ist einer der größten Minecraft-Server der Welt. Dir gefällt unser Server? Dann unterstütze uns durch einen Kauf im Shop!
  • Shop