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

Wo ist der Fehler?

HappyMajor

Minecrafter
Registriert
6 Oktober 2012
Beiträge
21
Diamanten
0
Hey Leute,
ich möchte für einen Freund ein kleines Plugin schreiben,doch irgendwie funktioniert es nicht.
Ich möchte folgendes :
Wenn ein Spieler Zucker in der Hand hält und dann rechtsklickt,das er dann den Speed Potion Effect für 3 Sekunden erhält und
das Zucker dann verschwindet.

Mein 2tes Problem ist das ich,wie ihr sehen könnt,kein Rechtsklick Event verwendet habe.
Das liegt daran,das ich dann ja ein 2ten Eventhandler verwenden müsste,doch wie geht das?

Code:
@EventHandler
    public void onPlayerInteract(PlayerInteractEvent event){
    	Player p = event.getPlayer();
    	if(p.getItemInHand().getType() == Material.SUGAR && event.getClickedBlock().getType() == Material.AIR){
    		p.addPotionEffect(new PotionEffect(PotionEffectType.SPEED, 60, 1));
    		p.setItemInHand(null);          
    }
    }
}

Ich hoffe jemand kann mich erleuchten! :D
Schonmal Danke im voraus.
 

Selfmade

Minecrafter
Registriert
3 Februar 2013
Beiträge
11
Diamanten
0
Hey Leute,
ich möchte für einen Freund ein kleines Plugin schreiben,doch irgendwie funktioniert es nicht.
Ich möchte folgendes :
Wenn ein Spieler Zucker in der Hand hält und dann rechtsklickt,das er dann den Speed Potion Effect für 3 Sekunden erhält und
das Zucker dann verschwindet.

Mein 2tes Problem ist das ich,wie ihr sehen könnt,kein Rechtsklick Event verwendet habe.
Das liegt daran,das ich dann ja ein 2ten Eventhandler verwenden müsste,doch wie geht das?

Code:
@EventHandler
    public void onPlayerInteract(PlayerInteractEvent event){
    	Player p = event.getPlayer();
    	if(p.getItemInHand().getType() == Material.SUGAR && event.getClickedBlock().getType() == Material.AIR){
    		p.addPotionEffect(new PotionEffect(PotionEffectType.SPEED, 60, 1));
    		p.setItemInHand(null);          
    }
    }
}

Ich hoffe jemand kann mich erleuchten! :D
Schonmal Danke im voraus.



Ich würde es so machen damit er bei einen Rechtklick mit Zucker einen Zucker entfernt bekommt Habe ich aus dem Kopf geschrieben Endschuldige mich wenn es falsch ist

Code:
@EventHandler
    public void onPlayerInteract(PlayerInteractEvent event){
    if (event.getAction() == Action.RIGHT_CLICK_AIR || event.getAction() == Action.RIGHT_CLICK_BLOCK) {
    Player player = event.getPlayer();
    if (event.getItem() == null) {
    return;
    } else {
    if (event.getItem().getType() == Material.SUGAR) {
		
    if (player.getInventory().getItemInHand().getAmount() == 1) {
    event.getPlayer().getInventory().removeItem(new ItemStack(event.getItem().getTypeId(), 1));
    p.addPotionEffect(new PotionEffect(PotionEffectType.SPEED, 60, 1));
    } else {
    int amount = player.getInventory().getItemInHand().getAmount();
    amount--;
    player.getInventory().getItemInHand().setAmount(amount);
    p.addPotionEffect(new PotionEffect(PotionEffectType.SPEED, 60, 1));
    }
    }
    }
    }
    }
    }
}
 
Zuletzt bearbeitet:

HappyMajor

Minecrafter
Registriert
6 Oktober 2012
Beiträge
21
Diamanten
0
Hey Danke für deine Antwort!
Nur leider kann ich es gerade nicht testen,da ich mir gerade eine neue Craftbukkit Version heruntergeladen habe und nun
einen Fehler bekomme den ich noch nie hatte.

Er tretet bei folgendem Code auf :
Code:
package main;

import org.bukkit.plugin.java.JavaPlugin;

public class [U]Zucker_Speed[/U] extends JavaPlugin{ //irgendetwas ist mit Zucker_Speed falsch

}

Der Fehler lautet :The hierarchy of the type Zucker_Speed is inconsistent
Mit der anderen Craftbukkit version funktionierte alles normal,wieso jetzt nicht mehr?
 

HappyMajor

Minecrafter
Registriert
6 Oktober 2012
Beiträge
21
Diamanten
0
Code:
package main; 


import org.bukkit.ChatColor;
import org.bukkit.Material;
import org.bukkit.block.Block;
import org.bukkit.command.Command;
import org.bukkit.command.CommandSender;
import org.bukkit.craftbukkit.v1_4_R1.Overridden;
import org.bukkit.entity.Item;
import org.bukkit.entity.Player;
import org.bukkit.event.EventHandler;
import org.bukkit.event.block.Action;
import org.bukkit.event.player.PlayerEvent;
import org.bukkit.event.player.PlayerInteractEvent;
import org.bukkit.inventory.ItemStack;
import org.bukkit.plugin.java.JavaPlugin;
import org.bukkit.potion.PotionEffect;
import org.bukkit.potion.PotionEffectType;



public class Zucker_Speed extends JavaPlugin{

    @Overridden
    public void onDisable() {
        // TODO Auto-generated method stub
    }

    @Overridden
    public void onEnable() {
        // TODO Auto-generated method stub
    }
    @EventHandler
    public void onPlayerInteract(PlayerInteractEvent event){
    	Player p = event.getPlayer();
    	if(p.getItemInHand().getType() == Material.SUGAR && event.getClickedBlock().getType() == Material.AIR){
    		p.addPotionEffect(new PotionEffect(PotionEffectType.SPEED, 60, 1));
    		p.setItemInHand(null);          
    }
    }
}

EDIT: games6471:
In Java 7
 
Zuletzt bearbeitet:

HappyMajor

Minecrafter
Registriert
6 Oktober 2012
Beiträge
21
Diamanten
0
Seit wann muss man das machen?
Musste ich vorher nie.

Weil bei der alten Craftbukkit Version gings noch.

EDIT : Geht immer noch nicht :
Code:
public class Zucker_Speed extends JavaPlugin implements Listener{
}

Der gleiche Fehler,Zucker_Speed ist rot unterstrichen und gibt folgenden Fehler aus :The hierarchy of the type Zucker_Speed is inconsistent

EDIT: Wie registriert man den Listener? Hab davon keine Ahnung,da ich das nie machen musste^^
 
Zuletzt bearbeitet:

Benni1000

Ehemaliges Teammitglied
Ehem. Teammitglied
Registriert
4 Mai 2012
Beiträge
1.396
Diamanten
0

HappyMajor

Minecrafter
Registriert
6 Oktober 2012
Beiträge
21
Diamanten
0
Benni1000 :
Ah danke,jetzt konnte ich den Fehler beheben!

So jetzt kann ich den Code von oben mal testen.

Selfmade :
Leider funktioniert der Code nicht,ein Fehler seh ich darin eig auch nicht,sieht eig ganz plausibel aus.
Code:
@EventHandler
    public void onPlayerInteract(PlayerInteractEvent event){
    if (event.getAction() == Action.RIGHT_CLICK_AIR || event.getAction() == Action.RIGHT_CLICK_BLOCK) {
    Player player = event.getPlayer();
    if (event.getItem() == null) {
    return;
    } else {
    if (event.getItem().getType() == Material.SUGAR) {
        
    if (player.getInventory().getItemInHand().getAmount() == 1) {
    event.getPlayer().getInventory().removeItem(new ItemStack(event.getItem().getTypeId(), 1));
    p.addPotionEffect(new PotionEffect(PotionEffectType.SPEED, 60, 1));
    } else {
    int amount = player.getInventory().getItemInHand().getAmount();
    amount--;
    player.getInventory().getItemInHand().setAmount(amount);
    p.addPotionEffect(new PotionEffect(PotionEffectType.SPEED, 60, 1));
    }
    }
    }
    }
    }
    }
}
 
Zuletzt bearbeitet von einem Moderator:

ScaryHutman

Vorarbeiter
Registriert
1 Januar 2013
Beiträge
205
Diamanten
0
Minecraft
Scary_Hutman
Ich bin mir zwar nicht ganz sicher, was du vor hast, aber ich geh' mal davon aus, dass du einem Spieler Speed geben möchtest und dann Zucker aus seinem Inventar nimmst ;)

Code:
@EventHandler
	public void onPlayerRightClick(PlayerInteractEvent event) {
		Player p = event.getPlayer();
		if(event.getAction() == Action.RIGHT_CLICK_AIR || event.getAction() == Action.RIGHT_CLICK_BLOCK) {
			if(p.getInventory().getItemInHand().getType() == Material.SUGAR) {
				p.addPotionEffect(new PotionEffect(PotionEffectType.SPEED, 60, 1));
				p.getInventory().removeItem(new ItemStack(Material.SUGAR, 1));
			}
		}
	}

ScaryHutman

P.S: Doppelpost bitte entfernen :p
 
Oben