Ir para conteúdo
  • 0

[Resolvido] Ajuda Scheduler


LuizB

Pergunta

porque o Runnable não esta Funfando ?

 

package me.cuthmf.kitpvp;
 
import java.util.ArrayList;
 
import org.bukkit.Bukkit;
import org.bukkit.Material;
import org.bukkit.Sound;
import org.bukkit.entity.Fireball;
import org.bukkit.entity.Player;
import org.bukkit.event.EventHandler;
import org.bukkit.event.Listener;
import org.bukkit.event.block.Action;
import org.bukkit.event.player.PlayerInteractEvent;
import org.bukkit.plugin.Plugin;
 
public class Delay implements Listener {
   
    ArrayList<String> Cooldown = new ArrayList<String>();
    Principal plugin;
   
    @EventHandler
    public void espada(PlayerInteractEvent esp)
    {
        final Player pl = esp.getPlayer();
 
                if(pl.getItemInHand().getType() == Material.STONE_SWORD)
                {
                        if(esp.getAction() == Action.LEFT_CLICK_AIR)
                        {
                            if(pl.hasPermission("funkits.pyro"))
                            {
                                if(Cooldown.contains(pl.getName()))
                                {
                                return;  
                                }
                                pl.launchProjectile(Fireball.class).setVelocity(pl.getLocation().getDirection().multiply(0.5));
                                pl.playSound(pl.getLocation(), Sound.BLAZE_HIT, 1, 2);
                                Cooldown.add(pl.getName());
                                Bukkit.getServer().getScheduler().scheduleSyncDelayedTask((Plugin) plugin, new Runnable() {
                                    public void run()
                                    {
                                        Cooldown.remove(pl.getName());
                                    }
                                   
                                }, 5 * 20);
                            }
                           
                            }
                        }
                    }
                }

Classe Principal:

 

package me.cuthmf.kitpvp;

import java.io.File;

import org.bukkit.plugin.java.JavaPlugin;

import kitpvp.kits.Kits;

public class Principal extends JavaPlugin{
	
	public static Principal plugin;
	
	public static Principal cf;
	
	
	@Override
	public void onEnable() {
		getServer().getPluginManager().registerEvents(new Eventos(), this);
		getServer().getPluginManager().registerEvents(new ArrayL(), this);
		getServer().getPluginManager().registerEvents(new Delay(), this);
		
		getCommand("kit").setExecutor(new Kits());
		
		cf = this;
		plugin = this;
		
		File f = new File(getDataFolder(), "config.yml"); 
		if(!f.exists());
			saveResource("config.yml", false);
		
	}
	
	@Override
	public void onLoad() {
		
	}

	@Override
	public void onDisable() {
		
	}
	
	
	
	
}

Link para o comentário
Compartilhar em outros sites

9 respostass a esta questão

Posts Recomendados

 

porque o Runnable não esta Funfando ?

 

 

package me.cuthmf.kitpvp;
 
import java.util.ArrayList;
 
import org.bukkit.Bukkit;
import org.bukkit.Material;
import org.bukkit.Sound;
import org.bukkit.entity.Fireball;
import org.bukkit.entity.Player;
import org.bukkit.event.EventHandler;
import org.bukkit.event.Listener;
import org.bukkit.event.block.Action;
import org.bukkit.event.player.PlayerInteractEvent;
import org.bukkit.plugin.Plugin;
 
public class Delay implements Listener {
    Principal plugin;
 

Classe Principal:

 

 

public class Principal extends JavaPlugin{
	public static Principal plugin;
	public void onEnable() {
		plugin = this;
	}
}

A variável Plugin está null

 

@Edit

package me.cuthmf.kitpvp;
 
import java.util.ArrayList;
 
import org.bukkit.Bukkit;
import org.bukkit.Material;
import org.bukkit.Sound;
import org.bukkit.entity.Fireball;
import org.bukkit.entity.Player;
import org.bukkit.event.EventHandler;
import org.bukkit.event.Listener;
import org.bukkit.event.block.Action;
import org.bukkit.event.player.PlayerInteractEvent;
import org.bukkit.plugin.Plugin;
 
public class Delay implements Listener {
   
    ArrayList<String> Cooldown = new ArrayList<String>();
   
    @EventHandler
    public void espada(PlayerInteractEvent esp){
        final Player pl = esp.getPlayer();
        if(pl.getItemInHand().getType() == Material.STONE_SWORD){
            if(esp.getAction() == Action.LEFT_CLICK_AIR){
                if(pl.hasPermission("funkits.pyro")){
                    if(Cooldown.contains(pl.getName())){
                        return;  
                    }
                    pl.launchProjectile(Fireball.class).setVelocity(pl.getLocation().getDirection().multiply(0.5));
                    pl.playSound(pl.getLocation(), Sound.BLAZE_HIT, 1, 2);
                    Cooldown.add(pl.getName());
                    Bukkit.getServer().getScheduler().scheduleSyncDelayedTask(Principal.plugin, new Runnable() {
                        public void run(){
                            Cooldown.remove(pl.getName());
                        }
                    }, 5 * 20);
                }
            }
        }
    }
}
Editado por Kaway
Link para o comentário
Compartilhar em outros sites

Guest BrunnoGamer

entao como faço pra resolver ?

 

Defina que "Principal" é o plugin

public Delay(Principal main) {
		this.plugin = main;
	}

Coloque no onEnable() da principal:

Bukkit.getServer().getPluginManager().registerEvents(new Delay(this), this);
Editado por BrunnoGamer
Link para o comentário
Compartilhar em outros sites

 

Defina que "Principal" é o plugin

public Delay(Principal main) {
		this.plugin = main;
	}

Coloque no onEnable() da principal:

Bukkit.getServer().getPluginManager().registerEvents(new Delay(this), this);

Coloco tudo isto na classe principal né ?

Editado por Cuthmf
Link para o comentário
Compartilhar em outros sites

A de cima coloca na clase Delay

 

A de baixo coloca dentro de "public void onEnable() {" da classe Principal  

Beleza vo testar.

 

posso subistituir a main pro principal ?

Editado por Cuthmf
Link para o comentário
Compartilhar em outros sites

Guest BrunnoGamer

Beleza vo testar.

 

posso subistituir a main pro principal ?

 

Não é necessário, não vai mudar em nada

 

Mas se quiser, tem que trocar o "this.plugin = main;" para "this.plugin = principal;"

Link para o comentário
Compartilhar em outros sites

Visitante
Este tópico está impedido de receber novos posts.
×
×
  • Criar Novo...