[NOOB needs help] Invoking a void on event

Discussion in 'Plugin Development' started by ElCreeperHD, May 28, 2015.

Thread Status:
Not open for further replies.
  1. Offline

    ElCreeperHD

    Im making a plugin to make join messages and fireworks when VIP join, but i invoked a void that shoots fireworks and they don t shoot fireworks. Why?
    Here its the Event Handler class:
    Code:
    package com.gmail.elkillermc3.VIPS;
    
    import java.util.Random;
    
    import org.bukkit.Bukkit;
    import org.bukkit.ChatColor;
    import org.bukkit.Color;
    import org.bukkit.FireworkEffect;
    import org.bukkit.FireworkEffect.Type;
    import org.bukkit.entity.Firework;
    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.inventory.meta.FireworkMeta;
    
    public class Eventos
    implements Listener
    {
        public static VIPS plugin;
       
        public Eventos (VIPS i){
            plugin = i;       
        }
        @EventHandler
        public void onPlayerJoin(PlayerJoinEvent e){
            Player p = e.getPlayer();
            if (p.hasPermission("elcraftero.vips.mensaje"))
            {       
            Bukkit.broadcastMessage(ChatColor.GOLD + "El " + ChatColor.GREEN + "VIP " + ChatColor.RED + p.getName() + ChatColor.GOLD + " se ha conectado a ElCraftero!");}
            shootFireworks();
            {   
            if (p.hasPermission("elcraftero.vips.mensaje+"))
                Bukkit.broadcastMessage(ChatColor.GOLD + "El " + ChatColor.DARK_GREEN + "VIP+ " + ChatColor.RED + p.getName() + ChatColor.GOLD + " se ha conectado a ElCraftero!");}
            shootFireworks();       
           
        }
        @EventHandler
        public void onPlayerQuit(PlayerQuitEvent e)    {   
            Player p = e.getPlayer();
            if(p.hasPermission("elcraftero.vips.mensaje"))
            {
            Bukkit.broadcastMessage(ChatColor.GOLD + "El " + ChatColor.GREEN + "VIP " + ChatColor.RED + p.getName() + ChatColor.GOLD + " se ha desconectado de ElCraftero!");}
            {   
            if (p.hasPermission("elcraftero.vips.mensaje+"))
            Bukkit.broadcastMessage(ChatColor.GOLD + "El " + ChatColor.DARK_GREEN + "VIP+ " + ChatColor.RED + p.getName() + ChatColor.GOLD + " se ha desconectado de ElCraftero!");}      
        }
       
       
        public void shootFireworks(){
            for (Player p : Bukkit.getOnlinePlayers()){
                    Firework fw = (Firework) p.getWorld().spawn(p.getLocation(),Firework.class);
                    FireworkMeta fm = fw.getFireworkMeta();
                    Random r = new Random();
                    int fType = r.nextInt(5) + 1;
                    Type type = Type.BALL;
                    switch (fType) {
                    case 1:
                            type = Type.BALL;
                            break;
                    case 2:
                            type = Type.BALL_LARGE;
                            break;
                    case 3:
                            type = Type.BURST;
                            break;
                    case 4:
                            type = Type.CREEPER;
                            break;
                    case 5:
                            type = Type.STAR;
                    }
          
            int c1i = r.nextInt(17) + 1;
            int c2i = r.nextInt(17) + 1;
            Color c1 = getColor (c1i);
            Color c2 = getColor (c2i);
            FireworkEffect effect = FireworkEffect.builder()
                            .flicker(r.nextBoolean()).withColor(c1).withFade(c2)
                            .with(type).trail(r.nextBoolean()).build();
            fm.addEffect(effect);
            int power = r.nextInt(2)+1;
            fm.setPower(power);
            fw.setFireworkMeta(fm);
            }
    }
    public Color getColor(int c){
            switch (c){
            default:
            case 1:
                    return Color.AQUA;
            case 2:
                    return Color.BLACK;
            case 3:
                    return Color.BLUE;
            case 4:
                    return Color.FUCHSIA;
            case 5:
                    return Color.GRAY;
            case 6:
                    return Color.GREEN;
            case 7:
                    return Color.LIME;
            case 8:
                    return Color.MAROON;
            case 9:
                    return Color.NAVY;
            case 10:
                    return Color.OLIVE;
            case 11:
                    return Color.ORANGE;
            case 12:
                    return Color.PURPLE;
            case 13:
                    return Color.RED;
            case 14:
                    return Color.SILVER;
            case 15:
                    return Color.TEAL;
            case 16:
                    return Color.WHITE;
            case 17:
                    return Color.YELLOW;
            }
           
           
                 }
                   }
    
    
    
        
    
    Thx for helping!

     
  2. Offline

    Dirtcraft24

    You need to register your events! Without registering them it wont know when to do it or how so heres some examples:
    (Registering events goes inside the onEnable)


    Code:
    public void onEnable(){
            Bukkit.getServer().getPluginManager().registerEvents(this, this);
        }
     
  3. @ElCreeperHD Please format your code, otherwise it's difficult to read and understand. I also think you need to learn more about Java before diving into plugins, I'd recommend the Oracle tutorials or a Java book.
     
    teej107 likes this.
  4. Offline

    ElCreeperHD

    @Dirtcraft24 I think that this isn t the problem, the events are registered in main class , and the message displayed in case of an onJoinEvent displays, but the fireworks don t launch.
     
  5. Offline

    Timbals

    @ElCreeperHD I agree with @AdamQpzm. You need to format your code. Because it is nonsense right now (take a close look at the brackets).
     
Thread Status:
Not open for further replies.

Share This Page