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

Effekt Plugin

FightingPlay

Kuhfänger
Registriert
28 April 2014
Beiträge
73
Diamanten
0
Minecraft
FightingPlay
Hallo habe heute versucht ein Plugin zu coden mit dem mann wenn man Zucker in der Hand hat und damit drückt man einen Effekt bekommt.
Nur leider passiert nichts.

Javascript:
import org.bukkit.Material;
import org.bukkit.entity.Player;
import org.bukkit.event.EventHandler;
import org.bukkit.event.block.Action;
import org.bukkit.event.player.PlayerInteractEvent;
import org.bukkit.plugin.java.JavaPlugin;
import org.bukkit.potion.PotionEffect;
import org.bukkit.potion.PotionEffectType;




public class ItemG extends JavaPlugin {
   
   


    @EventHandler
    public void onPlayerInteractEvent(PlayerInteractEvent e) {
            Player p = e.getPlayer();
       
       
        if(e.getAction() == Action.RIGHT_CLICK_AIR | e.getAction() == Action.RIGHT_CLICK_BLOCK) {
           
            if(e.getMaterial().equals(Material.SUGAR));
            
            p.addPotionEffect((PotionEffect) newPotionEffect(PotionEffectType.SPEED,200, 2));
 

JTK222

Threadripper
Registriert
5 September 2013
Beiträge
1.150
Diamanten
323
Minecraft
JTK222
1. Versuch es mal hiermit:
Code:
public void onPlayerItem (PlayerItemEvent event)
Außerdem hast du
Code:
if(e.getMaterial().equals(Material.SUGAR));
anstelle von
Code:
if(e.getMaterial().equals(Material.SUGAR)){

}

Was diese If abfrage sinnlos macht.
Außerdem was wohl der Grund ist dass es nicht funktioniert:
Code:
 p.addPotionEffect((PotionEffect) newPotionEffect(PotionEffectType.SPEED,200,2));
anstelle von
Code:
 p.addPotionEffect(new PotionEffect(PotionEffectType.SPEED,200,2));

Da es meiner Meinung nach Anfängerfehler sind solltest du dir Java noch etwas genauer anschauen und nicht die best mögliche Verbesserung benutzen die dir Eclipse anbietet.
 

FightingPlay

Kuhfänger
Registriert
28 April 2014
Beiträge
73
Diamanten
0
Minecraft
FightingPlay
Ok nur leider wird onPlayerIten und (PlayerItemEvent event) als Fehler markiert
Javascript:
package main;


import org.bukkit.Material;
import org.bukkit.entity.Player;
import org.bukkit.event.EventHandler;
import org.bukkit.event.block.Action;
import org.bukkit.event.player.PlayerInteractEvent;
import org.bukkit.plugin.java.JavaPlugin;
import org.bukkit.potion.PotionEffect;
import org.bukkit.potion.PotionEffectType;
import org.bukkit.event.Listener;
public class ItemG extends JavaPlugin {
  
    public void onPlayerItem (PlayerItemEvent event);
    @EventHandler
    public void onPlayerInteractEvent(PlayerInteractEvent e) {
            Player p = e.getPlayer();
      
      
        if(e.getAction() == Action.RIGHT_CLICK_AIR || e.getAction() == Action.RIGHT_CLICK_BLOCK) {
          
            if(e.getMaterial().equals(Material.SUGAR)); {
          
            p.addPotionEffect((PotionEffect) newPotionEffect(PotionEffectType.SPEED,200,2));
            }
        }
   
    }

    private PotionEffect newPotionEffect(PotionEffectType speed, int i, int j) {
        // TODO Auto-generated method stub
        return null;
    }
   
    }
 

FelixKlauke

Erzengel
Ehem. Teammitglied
Registriert
5 Januar 2014
Beiträge
1.038
Diamanten
299
Minecraft
FelixKlauke
Javascript:
@EventHandler
    public void onPlayerInteract( PlayerInteractEvent event ){
        if( event.getAction() == Action.RIGHT_CLICK_BLOCK || event.getAction() == Action.RIGHT_CLICK_AIR )
            if( event.getPlayer().getItemInHand().getType() == Material.SUGAR)
                event.getPlayer().addPotionEffect( new PotionEffect( PotionEffectType.SPEED,200, 2 ) );
    }

Und an 'implements Listener' und ans registrieren in der onEnable denken!
 

h3inz3l

Schafhirte
Registriert
12 April 2013
Beiträge
132
Diamanten
0
Minecraft
h3inz3l
Es ist ganz einfach, lass deine Main Klasse das Interace Listener implementieren mit

public class ItemG extends JavaPlugin implements Listener

Dann sollte deine Main Class noch eine onEnable Methode besitzen, in diese Schreibst du noch

getServer().getPluginManager().registerEvents(this, this);

Dann sollte die Sache an sich klappen.

ABER:

Das Event ist PlayerInteractEvent.

Zuletzt noch meinen Senf dazu, lernte zuerst Java, ich weis, es nervt das zu hören, aber es ist einfach das einzige was wirklich hilft. Außerdem findest du viel Hilfe in den Spigot Docs.(einfach mal googeln)

MFG h3inz3l aka Lucas

//Edit wieder war jeder andere schneller.
 

FightingPlay

Kuhfänger
Registriert
28 April 2014
Beiträge
73
Diamanten
0
Minecraft
FightingPlay
Trotzallem was ich bisjetzt aucf einer Seite gelsen habe erhalte ich trotzdem bei "event" und onEnable einen Fehler und es funktioniert immer noch nicht.

Javascript:
package main;


import org.bukkit.Material;
import org.bukkit.OfflinePlayer;
import org.bukkit.entity.Player;
import org.bukkit.event.EventHandler;
import org.bukkit.event.block.Action;
import org.bukkit.event.player.PlayerInteractEvent;
import org.bukkit.plugin.java.JavaPlugin;
import org.bukkit.potion.PotionEffect;
import org.bukkit.potion.PotionEffectType;
import org.bukkit.event.Listener;
public class ItemG extends JavaPlugin implements Listener {
   
   


  @EventHandler
  public void onPlayerInteractEvent(PlayerInteractEvent e) {
  Player p = e.getPlayer();
   
   
  if(e.getAction() == Action.RIGHT_CLICK_AIR || e.getAction() == Action.RIGHT_CLICK_BLOCK) {
   
  if(e.getMaterial().equals(Material.SUGAR)); {
       if( event.getPlayer().getItemInHand().getType() == Material.SUGAR)
  p.addPotionEffect((PotionEffect) newPotionEffect(PotionEffectType.SPEED,200,2));
  }
  }
   
   
  public void onDisable[];{
     getServer().getPluginManager().registerEvents(this, this);
  }
   
   
   
   
   
   
   
  }

   private PotionEffect newPotionEffect(PotionEffectType speed, int i, int j) {
     // TODO Auto-generated method stub
     return null;
   }
   
  }
 

h3inz3l

Schafhirte
Registriert
12 April 2013
Beiträge
132
Diamanten
0
Minecraft
h3inz3l
Sorry, aber weil du nicht lesen kannst.
Ich lasse das einfach mal stehen und bitte dich lies meinen und den der anderen noch einmal ganz genau, ebenfalls kann ich dir nur empfehlen, Java zu lernen

Zu deinem event...woher soll dein Java wissen, was event ist, du hast es nirgends deklariert
 
Zuletzt bearbeitet:

FightingPlay

Kuhfänger
Registriert
28 April 2014
Beiträge
73
Diamanten
0
Minecraft
FightingPlay
Javascript:
package main;


import org.bukkit.Material;
import org.bukkit.entity.Player;
import org.bukkit.event.EventHandler;
import org.bukkit.event.block.Action;
import org.bukkit.event.player.PlayerInteractEvent;
import org.bukkit.plugin.java.JavaPlugin;
import org.bukkit.potion.PotionEffect;
import org.bukkit.potion.PotionEffectType;
import org.bukkit.event.Listener;
import org.bukkit.event.Event;

public class ItemG extends JavaPlugin implements Listener {
  
   


    @EventHandler
    public void onPlayerInteractEvent(PlayerInteractEvent e) {
            Player p = e.getPlayer();
      
      
        if(e.getAction() == Action.RIGHT_CLICK_AIR || e.getAction() == Action.RIGHT_CLICK_BLOCK) {
          
            if(e.getMaterial().equals(Material.SUGAR)); {
            if(event.getPlayer().getItemInHand().getType() == Material.SUGAR)
            p.addPotionEffect((PotionEffect) newPotionEffect(PotionEffectType.SPEED,200,2));  }
        }
        }
       
       
        public void onEnable() {
       
        getServer().getPluginManager().registerEvents(this, this);
             
   
        registerEvents();
        System.out.println("ItemGui geladen");
       
       
        }
       
        public void onDisable() {
       
        System.out.println("ItemGui gestoppt");   
       
       
                          

    }

   


    private void registerEvents() {
            // TODO Auto-generated method stub
           
        }


    private PotionEffect newPotionEffect(PotionEffectType speed, int i, int j) {
        // TODO Auto-generated method stub
        return null;
    }
   
    }

So habe mir jetzt einige Tutorial angeschaut doch leider funktionert es immer noch nicht und bei event steht cannat be resolved.
Und es erscheint ein Fehler in der Console:
:631) [craftbukkit.jar:git-Bukkit-"8c3698b"]
at net.minecraft.server.v1_8_R1.PacketPlayInBlockPlace.a(PacketPlayInBlo
ckPlace.java:50) [craftbukkit.jar:git-Bukkit-"8c3698b"]
at net.minecraft.server.v1_8_R1.PacketPlayInBlockPlace.a(PacketPlayInBlo
ckPlace.java:80) [craftbukkit.jar:git-Bukkit-"8c3698b"]
at net.minecraft.server.v1_8_R1.PacketHandleTask.run(SourceFile:13) [cra
ftbukkit.jar:git-Bukkit-"8c3698b"]
at java.util.concurrent.Executors$RunnableAdapter.call(Unknown Source) [
?:1.8.0_45]
at java.util.concurrent.FutureTask.run(Unknown Source) [?:1.8.0_45]
at net.minecraft.server.v1_8_R1.MinecraftServer.z(MinecraftServer.java:6
45) [craftbukkit.jar:git-Bukkit-"8c3698b"]
at net.minecraft.server.v1_8_R1.DedicatedServer.z(DedicatedServer.java:2
84) [craftbukkit.jar:git-Bukkit-"8c3698b"]
at net.minecraft.server.v1_8_R1.MinecraftServer.y(MinecraftServer.java:6
00) [craftbukkit.jar:git-Bukkit-"8c3698b"]
at net.minecraft.server.v1_8_R1.MinecraftServer.run(MinecraftServer.java
:508) [craftbukkit.jar:git-Bukkit-"8c3698b"]
at java.lang.Thread.run(Unknown Source) [?:1.8.0_45]
Caused by: java.lang.Error: Unresolved compilation problem:
event cannot be resolved

at main.ItemG.onPlayerInteractEvent(ItemG.java:32) ~[?:?]
at sun.reflect.GeneratedMethodAccessor15.invoke(Unknown Source) ~[?:?]
at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source) ~[?:1
.8.0_45]
at java.lang.reflect.Method.invoke(Unknown Source) ~[?:1.8.0_45]
at org.bukkit.plugin.java.JavaPluginLoader$1.execute(JavaPluginLoader.ja
va:293) ~[craftbukkit.jar:git-Bukkit-"8c3698b"]
... 17 more
[17:58:07 ERROR]: Could not pass event PlayerInteractEvent to ItemI v1.0
org.bukkit.event.EventException
at org.bukkit.plugin.java.JavaPluginLoader$1.execute(JavaPluginLoader.ja
va:295) ~[craftbukkit.jar:git-Bukkit-"8c3698b"]
at org.bukkit.plugin.RegisteredListener.callEvent(RegisteredListener.jav
a:62) ~[craftbukkit.jar:git-Bukkit-"8c3698b"]
at org.bukkit.plugin.SimplePluginManager.fireEvent(SimplePluginManager.j
ava:501) [craftbukkit.jar:git-Bukkit-"8c3698b"]
at org.bukkit.plugin.SimplePluginManager.callEvent(SimplePluginManager.j
ava:486) [craftbukkit.jar:git-Bukkit-"8c3698b"]
at org.bukkit.craftbukkit.v1_8_R1.event.CraftEventFactory.callPlayerInte
ractEvent(CraftEventFactory.java:209) [craftbukkit.jar:git-Bukkit-"8c3698b"]
at net.minecraft.server.v1_8_R1.PlayerInteractManager.interact(PlayerInt
eractManager.java:453) [craftbukkit.jar:git-Bukkit-"8c3698b"]
at net.minecraft.server.v1_8_R1.PlayerConnection.a(PlayerConnection.java
:660) [craftbukkit.jar:git-Bukkit-"8c3698b"]
at net.minecraft.server.v1_8_R1.PacketPlayInBlockPlace.a(PacketPlayInBlo
ckPlace.java:50) [craftbukkit.jar:git-Bukkit-"8c3698b"]
at net.minecraft.server.v1_8_R1.PacketPlayInBlockPlace.a(PacketPlayInBlo
ckPlace.java:80) [craftbukkit.jar:git-Bukkit-"8c3698b"]
at net.minecraft.server.v1_8_R1.PacketHandleTask.run(SourceFile:13) [cra
ftbukkit.jar:git-Bukkit-"8c3698b"]
at java.util.concurrent.Executors$RunnableAdapter.call(Unknown Source) [
?:1.8.0_45]
at java.util.concurrent.FutureTask.run(Unknown Source) [?:1.8.0_45]
at net.minecraft.server.v1_8_R1.MinecraftServer.z(MinecraftServer.java:6
45) [craftbukkit.jar:git-Bukkit-"8c3698b"]
at net.minecraft.server.v1_8_R1.DedicatedServer.z(DedicatedServer.java:2
84) [craftbukkit.jar:git-Bukkit-"8c3698b"]
at net.minecraft.server.v1_8_R1.MinecraftServer.y(MinecraftServer.java:6
00) [craftbukkit.jar:git-Bukkit-"8c3698b"]
at net.minecraft.server.v1_8_R1.MinecraftServer.run(MinecraftServer.java
:508) [craftbukkit.jar:git-Bukkit-"8c3698b"]
at java.lang.Thread.run(Unknown Source) [?:1.8.0_45]
Caused by: java.lang.Error: Unresolved compilation problem:
event cannot be resolved

at main.ItemG.onPlayerInteractEvent(ItemG.java:32) ~[?:?]
at sun.reflect.GeneratedMethodAccessor15.invoke(Unknown Source) ~[?:?]
at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source) ~[?:1
.8.0_45]
at java.lang.reflect.Method.invoke(Unknown Source) ~[?:1.8.0_45]
at org.bukkit.plugin.java.JavaPluginLoader$1.execute(JavaPluginLoader.ja
va:293) ~[craftbukkit.jar:git-Bukkit-"8c3698b"]
... 16 more
[17:58:07 ERROR]: Could not pass event PlayerInteractEvent to ItemI v1.0
org.bukkit.event.EventException
at org.bukkit.plugin.java.JavaPluginLoader$1.execute(JavaPluginLoader.ja
va:295) ~[craftbukkit.jar:git-Bukkit-"8c3698b"]
at org.bukkit.plugin.RegisteredListener.callEvent(RegisteredListener.jav
a:62) ~[craftbukkit.jar:git-Bukkit-"8c3698b"]
at org.bukkit.plugin.SimplePluginManager.fireEvent(SimplePluginManager.j
ava:501) [craftbukkit.jar:git-Bukkit-"8c3698b"]
at org.bukkit.plugin.SimplePluginManager.callEvent(SimplePluginManager.j
ava:486) [craftbukkit.jar:git-Bukkit-"8c3698b"]
at org.bukkit.craftbukkit.v1_8_R1.event.CraftEventFactory.callPlayerInte
ractEvent(CraftEventFactory.java:209) [craftbukkit.jar:git-Bukkit-"8c3698b"]
at org.bukkit.craftbukkit.v1_8_R1.event.CraftEventFactory.callPlayerInte
ractEvent(CraftEventFactory.java:176) [craftbukkit.jar:git-Bukkit-"8c3698b"]
at org.bukkit.craftbukkit.v1_8_R1.event.CraftEventFactory.callPlayerInte
ractEvent(CraftEventFactory.java:172) [craftbukkit.jar:git-Bukkit-"8c3698b"]
at net.minecraft.server.v1_8_R1.PlayerConnection.a(PlayerConnection.java
:631) [craftbukkit.jar:git-Bukkit-"8c3698b"]
at net.minecraft.server.v1_8_R1.PacketPlayInBlockPlace.a(PacketPlayInBlo
ckPlace.java:50) [craftbukkit.jar:git-Bukkit-"8c3698b"]
at net.minecraft.server.v1_8_R1.PacketPlayInBlockPlace.a(PacketPlayInBlo
ckPlace.java:80) [craftbukkit.jar:git-Bukkit-"8c3698b"]
at net.minecraft.server.v1_8_R1.PacketHandleTask.run(SourceFile:13) [cra
ftbukkit.jar:git-Bukkit-"8c3698b"]
at java.util.concurrent.Executors$RunnableAdapter.call(Unknown Source) [
?:1.8.0_45]
at java.util.concurrent.FutureTask.run(Unknown Source) [?:1.8.0_45]
at net.minecraft.server.v1_8_R1.MinecraftServer.z(MinecraftServer.java:6
45) [craftbukkit.jar:git-Bukkit-"8c3698b"]
at net.minecraft.server.v1_8_R1.DedicatedServer.z(DedicatedServer.java:2
84) [craftbukkit.jar:git-Bukkit-"8c3698b"]
at net.minecraft.server.v1_8_R1.MinecraftServer.y(MinecraftServer.java:6
00) [craftbukkit.jar:git-Bukkit-"8c3698b"]
at net.minecraft.server.v1_8_R1.MinecraftServer.run(MinecraftServer.java
:508) [craftbukkit.jar:git-Bukkit-"8c3698b"]
at java.lang.Thread.run(Unknown Source) [?:1.8.0_45]
Caused by: java.lang.Error: Unresolved compilation problem:
event cannot be resolved

at main.ItemG.onPlayerInteractEvent(ItemG.java:32) ~[?:?]
at sun.reflect.GeneratedMethodAccessor15.invoke(Unknown Source) ~[?:?]
at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source) ~[?:1
.8.0_45]
at java.lang.reflect.Method.invoke(Unknown Source) ~[?:1.8.0_45]
at org.bukkit.plugin.java.JavaPluginLoader$1.execute(JavaPluginLoader.ja
va:293) ~[craftbukkit.jar:git-Bukkit-"8c3698b"]
 

FightingPlay

Kuhfänger
Registriert
28 April 2014
Beiträge
73
Diamanten
0
Minecraft
FightingPlay
Ok dieser Fehler wurde nun behoben.
Nur wäre noch meine Frage wie deklariere ich event.
/ Es erscheint dieser Fehler
[18:52:28 ERROR]: Could not pass event PlayerInteractEvent to ItemI v1.0
org.bukkit.event.EventException
 

FightingPlay

Kuhfänger
Registriert
28 April 2014
Beiträge
73
Diamanten
0
Minecraft
FightingPlay
Code:
package main;


import org.bukkit.Material;
import org.bukkit.entity.Player;
import org.bukkit.event.EventHandler;
import org.bukkit.event.block.Action;
import org.bukkit.event.player.PlayerInteractEvent;
import org.bukkit.plugin.java.JavaPlugin;
import org.bukkit.potion.PotionEffect;
import org.bukkit.potion.PotionEffectType;
import org.bukkit.event.Listener;

public class ItemG extends JavaPlugin implements Listener {
  
   


    @EventHandler
    public void onPlayerInteractEvent(PlayerInteractEvent event) {
            Player p = event.getPlayer();
      
      
        if(event.getAction() == Action.RIGHT_CLICK_AIR || event.getAction() == Action.RIGHT_CLICK_BLOCK) {
          
            if(event.getMaterial().equals(Material.SUGAR)); {
           
            if(event.getPlayer().getItemInHand().getType() == Material.SUGAR)
            p.addPotionEffect((PotionEffect) newPotionEffect(PotionEffectType.SPEED,200,2));  }
        }
        }
       
       
        public void onEnable() {
       
        getServer().getPluginManager().registerEvents(this, this);
             
   
        registerEvents();
        System.out.println("ItemGui geladen");
       
       
        }
       
        public void onDisable() {
       
        System.out.println("ItemGui gestoppt");   
       
       
                          

    }

   


    private void registerEvents() {
            // TODO Auto-generated method stub
           
        }


    private PotionEffect newPotionEffect(PotionEffectType speed, int i, int j) {
        // TODO Auto-generated method stub
        return null;
    }
   
    }
 

JTK222

Threadripper
Registriert
5 September 2013
Beiträge
1.150
Diamanten
323
Minecraft
JTK222
Ich wiederhole gerne noch einmal das folgende Zeile code falsch ist:
Code:
p.addPotionEffect((PotionEffect)newPotionEffect(PotionEffectType.SPEED,200,2));  }
Solltest du die richtige variante wollen steht sie bereits weiter oben.
 

FightingPlay

Kuhfänger
Registriert
28 April 2014
Beiträge
73
Diamanten
0
Minecraft
FightingPlay
So ist bearbeitet war dies noch der einzigste fehler ?

Denn ich erhalte diesen fehler in der Console:
Could not pass event PlayerInteractEvent to ItemI1.0
org.bukkit.event.EventExcepetion
 
Zuletzt bearbeitet:

JTK222

Threadripper
Registriert
5 September 2013
Beiträge
1.150
Diamanten
323
Minecraft
JTK222
Wundert mich dass es nur dieser ist werde jetzt mal den Ganzen Code verbessern:
Code:
package main;
import org.bukkit.Material;
import org.bukkit.entity.Player;
import org.bukkit.event.EventHandler;
import org.bukkit.event.block.Action;
import org.bukkit.event.player.PlayerInteractEvent;
import org.bukkit.plugin.java.JavaPlugin;
import org.bukkit.potion.PotionEffect;
import org.bukkit.potion.PotionEffectType;
import org.bukkit.event.Listener;

public class ItemG extends JavaPlugin implements Listener {

@EventHandler
public void onPlayerInteractEvent(PlayerInteractEvent event) {
       Player p = event.getPlayer();

     if(event.getAction() == Action.RIGHT_CLICK_AIR || event.getAction() == Action.RIGHT_CLICK_BLOCK) {
                  if(event.getMaterial().equals(Material.SUGAR)){
                         p.addPotionEffect(new PotionEffect(PotionEffectType.SPEED,200,2));
                  }
         }
}
   
public void onEnable() {
        registerEvents();
        System.out.println("ItemGui geladen");  
}
    
public void onDisable() {
        System.out.println("ItemGui gestoppt");
  }

private void registerEvents() {
            // Hier registrierst du alle Events falls du sie in einer neuen klasse haben möchtest was ich der Übersicht halber auch empfehlen würde musst du diese hier Registrieren.
           getServer().getPluginManager().registerEvents(this,this);
}
    }

Und ich würde dir ans Herz legen das du dir womöglich einige Tutorial Videos anschaust bei denen auch erklärt wird wie was funktioniert und nicht einfach den Code blind abzutippen oder
schlimmer via Copy und Paste zu übertragen

Edit: Es können Klammer Fehler vorhanden sein habe es nicht in Eclipse geschrieben.
 
Oben