wie wärs ganz einfach mit
Code:
if(e.getAchievement() == Achievement.COOK_FISH) {}
if(e.getAchievement() == Achievement.COOK_FISH) {}
Google mal Java.lang.IllegalArgumentException
Plugin already initialized!
hallu ? wäre echt mega nett wenn mir jemand helfen kann!!heywie füge ich neue dinge hinzu die geangelt werden können oder entferne beispielsweise den Fisch? also jetzt nicht das neue item einfach in das inventar packen, sondern richtig angeln.
im PlayerFishEvent gibt es keine liste mit dingen die gefischt werden können abzurufen.
danke!!![]()
![]()
Ich habe dir mal nen Quellcode gemacht.hallu ? wäre echt mega nett wenn mir jemand helfen kann!!![]()
Wie es oben ist sollte es gehen. Ist aber nicht getestet.Das wird ausgelöst, wenn man die Angel auswirft..
e.getCaught() zu Item casten, dann item.setItemstack(*);hallu ? wäre echt mega nett wenn mir jemand helfen kann!!![]()
Hier mal Code, weil es doch manche gibt, die immer Code als Erklärung sehen wollen [Alles nur so, wie ich es machen würdeWie es oben ist sollte es gehen. Ist aber nicht getestet.
@EventHandler
public void onPlayerFishEvent( PlayerFishEvent event ) {
if( event.getState() == PlayerFishEvent.State.CAUGHT_FISH ) { // Mit dem State kann man herausfinden ob der Angelhaken gerade ausgeworfen, oder aber ein Fisch eingefangen wird. (uvm.)
((Item) event.getCaught()).getItemStack(); // Das hier ist das Item.
event.getHook(); // Das ist der Angelhaken.
}
}
jaHier mal Code, weil es doch manche gibt, die immer Code als Erklärung sehen wollen [Alles nur so, wie ich es machen würde]:
Code:@EventHandler public void onPlayerFishEvent( PlayerFishEvent event ) { if( event.getState() == PlayerFishEvent.State.CAUGHT_FISH ) { // Mit dem State kann man herausfinden ob der Angelhaken gerade ausgeworfen, oder aber ein Fisch eingefangen wird. (uvm.) ((Item) event.getCaught()).getItemStack(); // Das hier ist das Item. event.getHook(); // Das ist der Angelhaken. } }
Dann machst du ganz einfach ne Liste mit den ganzen Sachen und ziehst dir Random eins raus...anders geht es anscheinend nichtjaaber wenn ich getCaught() zum item caste und daraus den itemstack ziehe bearbeite ich aber den gefangenen, will aber neue Dinge hinzufügen.
Du könntest das Buch speichern. (Wenn man das Item in der Hand hat /bookcopy oder so Ausführen) Und wenn der Spieler dann Joined bekommt er eben dieses Gespeicherte Buch. Ich habe man angenommen, das du dem Spieler das Buch beim Joinen gibst.Funktioniert!
nun aber zu einer anderen sache. ich habe einen text, der mir wenn ich den mit dem commandblock ausführe ein beschriebenes buch ins inventar packt. in diesem buch ist der text bunt, man kan auf die wörter klicken etc. wie gebe ich ingame jemanden so ein buch? der json text enthält ja Kommata, Strings etc.
vielen Dank!![]()
package com.github.superyoshi1000.choosetnt;
import java.util.Iterator;
import org.bukkit.Material;
import org.bukkit.block.Block;
import org.bukkit.entity.Entity;
import org.bukkit.entity.TNTPrimed;
import org.bukkit.event.EventHandler;
import org.bukkit.event.entity.EntityExplodeEvent;
import org.bukkit.plugin.java.JavaPlugin;
public class ChooseTNT extends JavaPlugin {
@EventHandler
public void onTntExplode( EntityExplodeEvent event ) {
Entity entity = event.getEntity();
if ( entity instanceof TNTPrimed ) {
Iterator<Block> blockIterator = event.blockList().iterator();
while ( blockIterator.hasNext() ) {
if ( !blockIterator.next().getType().equals( Material.BED_BLOCK ) ) {
blockIterator.remove();
}
}
}
}
}
Hallo Gommunity
Ich habe ein Problem mit ein Code.
Ich habe ein gutes Bedwars Plugin, allerdings kann TNT auch die Map zerstören.
Deswegen habe ich ein Code gesucht wo nur bestimmte Blöcke von TNT zerstört werden.
Ich bin zu einen etwas älteren Thread hier im Forum gestoßen: https://www.gommehd.net/threads/plugin-programmieren-tnt-soll-nur-ein-bed-zerstoeren-koennen.30549/
Ich habe das im meinen Code eingebaut und hier ist mein Code:
Allerdings funktioniert das iwie nicht.Code:package com.github.superyoshi1000.choosetnt; import java.util.Iterator; import org.bukkit.Material; import org.bukkit.block.Block; import org.bukkit.entity.Entity; import org.bukkit.entity.TNTPrimed; import org.bukkit.event.EventHandler; import org.bukkit.event.entity.EntityExplodeEvent; import org.bukkit.plugin.java.JavaPlugin; public class ChooseTNT extends JavaPlugin { @EventHandler public void onTntExplode( EntityExplodeEvent event ) { Entity entity = event.getEntity(); if ( entity instanceof TNTPrimed ) { Iterator<Block> blockIterator = event.blockList().iterator(); while ( blockIterator.hasNext() ) { if ( !blockIterator.next().getType().equals( Material.BED_BLOCK ) ) { blockIterator.remove(); } } } } }
Habe jetzt nicht so viel Ahnung von Java, aber kann mir jmd. helfen was ich falsch gemacht habe?
//Edit Natürlich wenn es funktioniert trage ich statt BED_BLOCK die Blöcke die es in BW gibt ein, da weiß ich wie das geht![]()
@EventHandler
public void onTntExplode( EntityExplodeEvent event ) {
Entity entity = event.getEntity();
if ( entity instanceof TNTPrimed) {
for(Block b : event.blockList()) {
if(b.getType() == Material.BED_BLOCK) {
event.blockList().remove(b);
}
}
}
}