Jump to content

Empfohlene Beiträge

Geschrieben

Hallo, 

Ich programmiere gerade ein Plugin das dafür sorgen soll, das wenn ein Spieler über einen Trampelpfad läuft er Speed Boost bekommen soll!

Eigentlich funktioniert aus alles nur das, ich nur SpeedBoost bekomme wenn ich wieder von einem anderen Block auf den Trampelpfad gehe und nicht solange ich auf ihm bin. Das liegt denke ich an dem if (vor e.getPlayer().getLoc....) aber wenn ich es mit while mache hängt der Server sich wegen überlastung auf. Habt ihr eine andere Idee??

 

Danke das du dir die Zeit genommen hast dies bis hier zu lesen, hier der Code:

 

@EventHandler 
	   public void onPlayerMoveEvent (PlayerMoveEvent e) { 
	   
	   Player p = e.getPlayer();

	  
	   if(e.getPlayer().getLocation().getBlock().getRelative(BlockFace.DOWN).getType() == Material.GRASS_PATH){
		   
		   p.addPotionEffect(new PotionEffect(PotionEffectType.SPEED, 25, (1)));
		   p.sendMessage("SpeedBoost durch Trampelpfad bekommen!");
	   }

 

Geschrieben

Ich habe eben versucht den Fehler zu reproduzieren und das ist mir auch gelungen. Ändert man allerdings den Block, also kein Graspfad, sondern Gras und läuft 3s auf diesem tritt der Fehler nicht auf.

 

Ich kann mir das leider nicht erklären.

 

Freundliche Grüße

BloodSKreaper

Geschrieben

Habe etwas entdeckt, das wahrscheinlich sehr entscheidend ist XD

 

Der Grasblock ist kein ganzer Block, sondern man sinkt darin ein - folglich ist der Block den der Spieler darstellt an der Position des Pfades und der Block darunter ist Erde oder Stein or whatever.

 

Freundliche Grüße

BloodSKreaper

Geschrieben
vor 12 Stunden schrieb BloodSKreaper:

Habe etwas entdeckt, das wahrscheinlich sehr entscheidend ist XD

 

Der Grasblock ist kein ganzer Block, sondern man sinkt darin ein - folglich ist der Block den der Spieler darstellt an der Position des Pfades und der Block darunter ist Erde oder Stein or whatever.

 

Freundliche Grüße

BloodSKreaper

Stimmt, darauf bin ich noch garnicht gekommen! Danke! 

 

Aber wie frage ich denn jetzt den Block ab? Mit relativen Koordinaten und dann 0 0 0 oder was?

Geschrieben

Ne,

Du kannst einfach testen ob der Spielerblock ein Graspfad ist. Das relative brauchst du ja nur um einen block über/unter/neben dem aktuellen Block zu bekommen.

 

Freundliche Grüße

BloodSKreaper

Erstelle ein Benutzerkonto oder melde dich an, um zu kommentieren

Du musst ein Benutzerkonto haben, um einen Kommentar verfassen zu können

Benutzerkonto erstellen

Neues Benutzerkonto für unsere Community erstellen. Es ist einfach!

Neues Benutzerkonto erstellen

Anmelden

Du hast bereits ein Benutzerkonto? Melde dich hier an.

Jetzt anmelden
×
×
  • Neu erstellen...
B
B