Hallo,
ich habe aus Langeweile mal ein kleines Plugin programmiert. Dort drin enthalten ist ein Listener, der auf eine Interaktion mit einem Item hört. (ItemInteractEvent) und danach je nach Item eine unterschiedliche Funktion ausführt. Ich denke ich habe anscheinend den Listener falsch registriert, da bei einem anderen (EntityDeathEvent)
auch nichts passiert, auch die Nachricht wird nicht ausgegeben.
Ich hoffe jemand kann mit helfen.
LG,
Finnian
Der Code
MainClass
import org.bukkit.Bukkit;
import org.bukkit.plugin.PluginManager;
import org.bukkit.plugin.java.JavaPlugin;
import de.finnian.funplugin.commands.GoodStuffCmd;
import de.finnian.funplugin.listeners.EntityDeath;
import de.finnian.funplugin.listeners.InteractListener;
public class Main extends JavaPlugin{
public void onEnable() {
System.out.println("Das FunPlugin wurde angeschaltet.");
registerListeners();
registerCommands();
PluginManager pm = Bukkit.getPluginManager();
}
public void registerListeners() {
pm.registerEvents(new InteractListener(), this);
pm.registerEvents(new EntityDeath(), this);
}
public void registerCommands() {
getCommand("opstuff").setExecutor(new GoodStuffCmd());
}
}
InteractListener
import org.bukkit.Bukkit;
import org.bukkit.Material;
import org.bukkit.entity.Player;
import org.bukkit.entity.WitherSkull;
import org.bukkit.event.Listener;
import org.bukkit.event.block.Action;
import org.bukkit.event.player.PlayerInteractEvent;
import net.md_5.bungee.api.ChatColor;
public class InteractListener implements Listener{
public void onInteract(PlayerInteractEvent e) {
Player p = e.getPlayer();
if (e.getAction() == Action.RIGHT_CLICK_BLOCK) {
}
else if (e.getAction() == Action.RIGHT_CLICK_AIR) {
if (e.getItem().equals(Material.LIGHT_BLUE_CARPET)) {
Bukkit.getWorld("world").getBlockAt(p.getLocation()).setType(Material.WATER);
p.sendMessage(ChatColor.BLUE + "Das Wasser wurde plaziert(vllt. hilft es dir ja).");
}
}
else if (e.getAction() == Action.RIGHT_CLICK_BLOCK || e.getAction() == Action.RIGHT_CLICK_AIR) {
if (e.getItem().equals(Material.WITHER_SKELETON_SKULL)) {
p.launchProjectile(WitherSkull.class);
p.sendMessage(ChatColor.RED + "Du hast einen Witherkopf abgefeuert.");
}
else if (e.getItem().equals(Material.FIREWORK_ROCKET)) {
Bukkit.getWorld("world").createExplosion(p.getLocation(), 20);
p.sendMessage(ChatColor.DARK_RED + "Achtung! Du hast eine Explosion ausgelöst!");
}
}
}
}