Minecraft Java Plugin Inhalt eines Schilds auslesen und als Title anzeigen?

2 Antworten

Vom Fragesteller als hilfreich ausgezeichnet

Hey Velentix,

ich habe mal ein kleines Event geschrieben bei dem (wenn man auf das Schild klickt), man den String des titles bekommt und auch den String der letzten Zeile des Schildes.

 @EventHandler
		  public void SignClick(PlayerInteractEvent event){
		    Player player = (Player) event.getPlayer();
		    Block block = event.getClickedBlock();
		    Sign sign = (Sign) block.getState();
		    if(event.getPlayer() instanceof Player){
		      if(event.getAction() == Action.RIGHT_CLICK_BLOCK){
		        
		        String title = sign.getLine(0); 
		         String lastLine = sign.getLine(3);
		      }
		    }
		  }

Hoffe das hilft dir,

LG Schmidi

Seliba  01.11.2018, 20:23
  1. Du hast kein Event geschrieben
  2. Der Zwischenschritt über den Block ist sinnlos
  3. Die Abfrage, ob der Spieler ein Spieler ist ist sinnlos, da das Event nur von Spielern getriggered werden kann
1
  1. Spigot ist keine API, nur so nebenbei
  2. Du kannst das PlayerMoveEvent verwenden, wobei das bei einer größeren Anzahl von Spielern viel Leistung ziehen wird. Alternativ einen BukkitScheduler / Scheduler aller x Sekunden drüberlaufen lassen. Mit der Methode Player.getTargetBlock(java.util.Set<Material> transparent, int maxDistance) bekommst du den Block, den der Spieler anschaut. Bei dem Set kannst du null angeben, da du keine Blöcke ignorieren willst. Der int maxDistance gibt an, wie viele Blöcke der anvisierte Block höchstens weg sein darf, damit er erfasst werden kann. Das kann z.B. 5 sein. Anschließend castest du den Player.getTargetBlock(null, 5).getState() zu einem Sign; mit Sign.getLine(int line) bekommst du dann den jeweiligen Inhalt der Zeile. Wie du einen Titel sendest, findest du z.B. hier: https://www.spigotmc.org/threads/send-titles-to-players-using-spigot-1-8-1-11-2.48819/.

Ich hoffe, ich konnte dir helfen, Fragen beantworte ich natürlich gerne :)

Seliba

Woher ich das weiß:Hobby
VelentixHD 
Fragesteller
 10.11.2018, 16:16

Vielen Dank an dich und @SchmidiMC
Kann leider nur eine hilfreichste Antwort auszeichnen...
Beide super Hilfreich!
Vielen Dank! :)

1
justTOin  15.12.2018, 19:19
Spigot ist keine API, nur so nebenbei

Natürlich ist Spigot eine API, was soll das denn sonst sein?

0
Seliba  16.12.2018, 13:25
@justTOin

Habe zu dem Zeitpunkt der Antwort geglaubt, es sei ein Framework. Natürlich ist es eine API :)

1