• Es freut uns dass du in unser Minecraft Forum gefunden hast. Hier kannst du mit über 130.000 Minecraft Fans über Minecraft diskutieren, Fragen stellen und anderen helfen. In diesem Minecraft Forum kannst du auch nach Teammitgliedern, Administratoren, Moderatoren , Supporter oder Sponsoren suchen. Gerne kannst du im Offtopic Bereich unseres Minecraft Forums auch über nicht Minecraft spezifische Themen reden. Wir hoffen dir gefällt es in unserem Minecraft Forum!

Bukkit Plugin: Variable damit das Plugin nur in einer bestimmten Welt funktioniert

TheFantasticFightMC

Minecrafter
Registriert
30 Oktober 2013
Beiträge
5
Diamanten
0
Hallo liebe Community ich möchte gerne wissen wie ich das in meinem Plugin so schreiben kann das es z.B. nur in der Welt Arenas funktioniert bei diesem einfach Plugin hat man wenn man dem Server betritt die Speedpotion und dass in allen Welten :( Ich glaube meine Frage ist ziemlich leicht zu beantworten xD (Ich bin noch ein Anfänger^^)

LG
 

Gawain

Redstoneengineer
Registriert
5 Januar 2012
Beiträge
36
Diamanten
7
So wie ich das verstehe willst du beim Joinen auf den Server die Speedpotion vergeben?

--> In diesem Fall einfach das JoinEvent nehmen und folgende Zeile hinzufügen:

event.getPlayer().addPotionEffect(new PotionEffect(PotionEffectType.SPEED, Integer.MAX_VALUE, 2));

Damit würdest du dem Spieler unendlich lang Speed II geben.
Hoffe das ich dir helfen konnte, ansonsten kannst du dich gerne bei mir melden.

Mit freundlichen Grüßen
Gawain
 

TheFantasticFightMC

Minecrafter
Registriert
30 Oktober 2013
Beiträge
5
Diamanten
0
So wie ich das verstehe willst du beim Joinen auf den Server die Speedpotion vergeben?

--> In diesem Fall einfach das JoinEvent nehmen und folgende Zeile hinzufügen:

event.getPlayer().addPotionEffect(new PotionEffect(PotionEffectType.SPEED, Integer.MAX_VALUE, 2));

Damit würdest du dem Spieler unendlich lang Speed II geben.
Hoffe das ich dir helfen konnte, ansonsten kannst du dich gerne bei mir melden.

Mit freundlichen Grüßen
Gawain

Das habe ich schon ich möchte es aber so machen das es nur in bestimmten Welten geht^^
 

TheFantasticFightMC

Minecrafter
Registriert
30 Oktober 2013
Beiträge
5
Diamanten
0
Code:
if(event.getPlayer().getLocation.getWorld().getName() == "arenaWelt"){
 event.getPlayer().addPotionEffect(new PotionEffect(PotionEffectType.SPEED, Integer.MAX_VALUE, 2));
}
Danke für die Hilfe aber ich habe immernoch einen Error ich hänge mal ein Bild an^^ Sry falls ich nerve :D Help.png
 

ThunderFlo

Kuhfänger
Registriert
22 September 2013
Beiträge
53
Diamanten
0
Code:
package Dein.Package.Name;

import org.bukkit.Bukkit;
import org.bukkit.entity.Player;
import org.bukkit.event.EventHandler;
import org.bukkit.event.Listener;
import org.bukkit.event.player.PlayerJoinEvent;
import org.bukkit.event.player.PlayerQuitEvent;
import org.bukkit.potion.PotionEffect;
import org.bukkit.potion.PotionEffectType;

public class JoinListener implements Listener {
	
	@EventHandler
	public void onPlayerJoin(PlayerJoinEvent e) {
		Player p = e.getPlayer();
		
		if (p == Bukkit.getWorld("Weltname")) {
			p.addPotionEffect(new PotionEffect(PotionEffectType.SPEED, 100000, 2));
		} 
	}
	
	@EventHandler
	public void onPlayerQuit(PlayerQuitEvent e) {
		Player p = e.getPlayer();
		
		if (p == Bukkit.getWorld("Weltname")) {
			p.getActivePotionEffects().remove(PotionEffectType.SPEED);
		} 
	}

}


Habs nicht getestet, aber ich denke es sollte gehen. Wenn der Spieler sich nun einloggt erhält er in der Welt Weltname (Da solltest DU den Weltnamen von deiner Welt angeben) den PotionEffectSpeed und falls er sich ausloggt wird er wieder removed.

Lg,
ThunderFlo
 
Zuletzt bearbeitet:

MrFlieder

Braumeister
Registriert
30 Dezember 2011
Beiträge
332
Diamanten
0
Minecraft
MrFlieder
Code:
package Dein.Package.Name;

import org.bukkit.Bukkit;
import org.bukkit.entity.Player;
import org.bukkit.event.EventHandler;
import org.bukkit.event.Listener;
import org.bukkit.event.player.PlayerJoinEvent;
import org.bukkit.event.player.PlayerQuitEvent;
import org.bukkit.potion.PotionEffect;
import org.bukkit.potion.PotionEffectType;

public class JoinListener implements Listener {
	
	@EventHandler
	public void onPlayerJoin(PlayerJoinEvent e) {
		Player p = e.getPlayer();
		
		if (p == Bukkit.getWorld("Weltname")) {
			p.addPotionEffect(new PotionEffect(PotionEffectType.SPEED, 100000, 2));
		} 
	}
	
	@EventHandler
	public void onPlayerQuit(PlayerQuitEvent e) {
		Player p = e.getPlayer();
		
		if (p == Bukkit.getWorld("Weltname")) {
			p.getActivePotionEffects().remove(PotionEffectType.SPEED);
		} 
	}

}


Habs nicht getestet, aber ich denke es sollte gehen. Wenn der Spieler sich nun einloggt erhält er in der Welt Weltname (Da solltest DU den Weltnamen von deiner Welt angeben) den PotionEffectSpeed und falls er sich ausloggt wird er wieder removed.

Lg,
ThunderFlo
Du vergleichst ein Player-Objekt mit einem World-Objekt?
So wird das nicht funktionieren.

Code:
if(p.getLocation().getWorld().getName().equalsIgnoreCase("Weltname"))
{
    p.addPotionEffect(new PotionEffect(PotionEffectType.SPEED, 100000, 2));
}
 
Oben