• 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!

Hilfe! Zuviele Touchs

Muchacho LP

Braumeister
Registriert
12 März 2013
Beiträge
369
Diamanten
0
Minecraft
ikrumi
Hallo liebe Community.


Habe wieder eine sehr wichtige Frage:

Bei meinem Plugin passiert einiges, sobald ich einen blauen Block berühre.
Das klappt auch alles schön und gut, aber wenn ich einmal drüberlaufe, denkt Bukkit, bzw. mein Plugin, dass ich fünfmal drüber laufe (iwas mit Intervall?!).

Kennt jemand ne Lösung?


Vielen Dank im Vorraus

Grüße Muchacho LP
 

Muchacho LP

Braumeister
Registriert
12 März 2013
Beiträge
369
Diamanten
0
Minecraft
ikrumi
Code:
@EventHandler
public void onPlayerMove(PlayerMoveEvent event){	
    	Player p = event.getPlayer();
    	final Location loc = event.getTo();
    	final Location loc2 = event.getFrom();
    	loc.setY(loc.getY() - 1);
    	loc2.setY(loc2.getY() - 1);
	final World w = loc.getWorld();
	final Block b = w.getBlockAt(loc);
    	if(b.getType() == Material.WOOL){
 		Wool wool = new Wool(b.getType(), b.getData());
 		if(wool.getColor() == DyeColor.BLUE){

Rest nebensächlich.
Wie kann ich das verhindern?

Weiss jemand eine Antwort???
 
Zuletzt bearbeitet von einem Moderator:

Muchacho LP

Braumeister
Registriert
12 März 2013
Beiträge
369
Diamanten
0
Minecraft
ikrumi
Also das mit der ArrayList klappt, aber dann kann ich den Block insgesamt auch nur einmal benutzen.
Denn wenn ich am Ende den Spieler aus der ArrayList remove, wird er wieder zu oft berührt!

EDIT:
Habs geschafft.
Danke an alle.
 

Lingo

Minecrafter
Registriert
18 Februar 2012
Beiträge
23
Diamanten
0
das lässt sich auch ganz einfach anders lösen:

Code:
@EventHandler
public void onPlayerMove(PlayerMoveEvent event){	
    	Player p = event.getPlayer();
    	final Location loc = event.getTo();
    	final Location loc2 = event.getFrom();
    	loc.setY(loc.getY() - 1);
    	loc2.setY(loc2.getY() - 1);
        [COLOR="#FFA500"]if(loc.getBlock().equals(loc2.getBlock()))
            return;[/COLOR]
	final World w = loc.getWorld();
	final Block b = w.getBlockAt(loc);
    	if(b.getType() == Material.WOOL){
 		Wool wool = new Wool(b.getType(), b.getData());
 		if(wool.getColor() == DyeColor.BLUE){
Code ungetestet, kleinere Fehler möglich...


damit frägst du ab, dass es während er auf dem block ist nochmal ausgelöst wird...


Gruß
 
Zuletzt bearbeitet:
Oben