Coding mit Java | Java-basierten APIs

  • Ersteller Ersteller ij9F_i0FaF-d9lrDSDDpDbfo
  • Erstellt am Erstellt am
Status
Für weitere Antworten geschlossen.
Ich hab ein Problem in meinem Plugin wie kann ich abfragen ob der spieler einen grünen wolleblock abbaut. Ich habs schon damit probiert:
ItemStack rot = new ItemStack(Material.WOOL, (short) 14);
if(e.getBlock().getType().equals(rot)){
if(Main.red.contains(p.getName())){
e.setCancelled(true);
p.sendMessage(Main.pr+"Du darfst nicht dein eigenes bed abbauen");

}
}
 
@DREAMZii @geNAZt gerade ist mir bei SG aufgefallen, dass wenn man mit der 1.8 spielt, der Mapname mitten im Bildschirm steht, wo bekomme ich die neue API her, wie mache ich das dann wie in meinem Beispiel und wie mach ich dann damit einen Server? Genau so wie vorher oder ist das anders? Sind die Methoden in der API immer noch das Gleiche und was hat isch verändert?

Danke im Vorraus,
LG FrancoisduBois
 
@DREAMZii @geNAZt gerade ist mir bei SG aufgefallen, dass wenn man mit der 1.8 spielt, der Mapname mitten im Bildschirm steht, wo bekomme ich die neue API her, wie mache ich das dann wie in meinem Beispiel und wie mach ich dann damit einen Server? Genau so wie vorher oder ist das anders? Sind die Methoden in der API immer noch das Gleiche und was hat isch verändert?

Danke im Vorraus,
LG FrancoisduBois
Sie benutzen ja das neueste Spigot. Jedenfalls hat @geNAZt das bissl verändert, damit sie per ProtocolLib die neuen Packets senden können ;)
 
Was ist ProtocolLib ? :eek:;)
Wenn ich die neuste version von Spigot anschaue ist das aber noch 1.7.10
 
Hi :)
Ich wollte fragen , da ich es nicht schaffe , wie man es macht , dass wenn man bedrock berührt , dass man zum spawn zurück kommt :)

Danke schon mal :)

(Falls es keiner weiß verlinke ich hier mal jemanden :)

@DREAMZii
@geNAZt
:D
~Trouble ^^

@TroubleCrafterHD


@EventHandler
public void onMove(PlayerMoveEvent e){
Player p = e.getPlayer();
if(p.getLocation().subtract(0.0D, 1.0D, 0.0D).getBlock().getType() == Material.BEDROCK){
p.teleport(p.getWorld().getSpawnLocation());
//oder
p.performCommand("spawn");
}
}



So Sollte das gehn
 
  • Like
Reaktionen: TroubleCrafterHD
Ich hab ein Problem in meinem Plugin wie kann ich abfragen ob der spieler einen grünen wolleblock abbaut. Ich habs schon damit probiert:
ItemStack rot = new ItemStack(Material.WOOL, (short) 14);
if(e.getBlock().getType().equals(rot)){
if(Main.red.contains(p.getName())){
e.setCancelled(true);
p.sendMessage(Main.pr+"Du darfst nicht dein eigenes bed abbauen");

}
}
Könnte da mir jemand der online ist helfen ?
 
Nein du musst machen

if(e.getBlock().getType == Material.WOOL, (byte)14){
//und der rest
}

oder halt

ItemStack rot = new ItemStack(Material.WOOL, (byte)14);

ist eigentlich egal

oder es hängt mit der List zusammen, dass der Spieler nicht drin ist oder so, oder dass es nicht angenommen wird. Was ich allerdings nicht glaube
 
Zuletzt bearbeitet von einem Moderator:
Ich habe jetzt einen Server, auf dem ich mit der 1.8 Joinen kann, aber warum kann ich nichts mit den neuen Blöcken bauen ?
 
Wie mach ich es das die welt nach einem neustrt nicht gespeichert wird. DIe frage hab ich schon gestern gestellt. Die frage wurde dan auch gelöst aber nach ein par mal testen hat wie welt schon wieder gespeichert. Des halb stell ich die Frage noch mal hir.
Ich hoffe ihr könnt mir helfen.
Danke schon ma.
MFG
elimenator


PS: geht das villeicht mit der multivapi ?
 
Zuletzt bearbeitet von einem Moderator:
Einfach wenn die Runde neustartet die alte Welt löschen und wieder eine neue Welt nach einem Musterbeispiel kopieren ;)
 
Ich hab mit einfach eine kleine api geschrieben die das macht jetzt funktioniert es auch. Danke
 
Nein du musst machen

if(e.getBlock().getType == Material.WOOL, (byte)14){
//und der rest
}

oder halt

ItemStack rot = new ItemStack(Material.WOOL, (byte)14);

ist eigentlich egal

oder es hängt mit der List zusammen, dass der Spieler nicht drin ist oder so, oder dass es nicht angenommen wird. Was ich allerdings nicht glaube
das geht irgendie net :(



Ich hab das jetzt so:

@EventHandler
public void onNewPlayerBreak(BlockBreakEvent e){
Player p = e.getPlayer();

ItemStack rot = new ItemStack(Material.WOOL, (byte)14);
ItemStack blau = new ItemStack(Material.WOOL, (byte)3);
ItemStack grün = new ItemStack(Material.WOOL, (short) 13); //TODO
ItemStack gelb = new ItemStack(Material.WOOL, (short) 4); //TODO

if(!p.getItemInHand().getType().equals(Material.DIAMOND_HOE) && !e.getBlock().getType().equals(blau) && !e.getBlock().getType().equals(Material.SANDSTONE) && !e.getBlock().getType().equals(Material.ENDER_STONE) && !e.getBlock().getType().equals(Material.EMERALD_BLOCK) && !e.getBlock().getType().equals(Material.OBSIDIAN) && !e.getBlock().getType().equals(Material.CHEST)){
e.setCancelled(true);
}else if(p.getItemInHand().getType().equals(Material.DIAMOND_HOE)){
e.setCancelled(false);
if(Main.language.equalsIgnoreCase("ENGLISCH")){
if(Main.debug.equalsIgnoreCase("false")){
p.sendMessage("§7 You can breack the Block: §6"+e.getBlock().getType()+" §7because you have a §cDiamond Hoe §7in your Hand");
}else if(Main.debug.equalsIgnoreCase("true")){
Bukkit.broadcastMessage("§7The Player: §6"+p.getName()+" §7has destroyed the Block: §6"+e.getBlock().getType()+"§7 because he used the §cDiamond Hoe §7to breack him");
}
} else if(Main.language.equalsIgnoreCase("GERMAN")){
if(Main.debug.equalsIgnoreCase("false")){
p.sendMessage("§7 Du konntest den Block: §6"+e.getBlock().getType()+" §7zerstören weil du eine §cDiamantenHacke §7in de Hand hast!");
}else if(Main.debug.equalsIgnoreCase("true")){
Bukkit.broadcastMessage("§7Der Spieler: §6"+p.getName()+" §7hat den Block: §6"+e.getBlock().getType()+" §7zerstört weil er die DiamantenHacke §7benutzt hat");
}

}
}
}
 
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